chore: release v1.0.14 with complete fix. By: AICoder
This commit is contained in:
parent
bae8adb2d3
commit
628e1d2021
@ -1,6 +1,6 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## [1.0.13] - 2026-06-08
|
## [1.0.14] - 2026-06-08
|
||||||
### Fixed
|
### Fixed
|
||||||
- **State Integration**: Bumped `@apigo.cc/state` to `1.0.18` to restore the globally injected `$`/`$$` helpers from the original UMD era, fixing `TagsInput` element targeting.
|
- **State Integration**: Bumped `@apigo.cc/state` to `1.0.18` to restore the globally injected `$`/`$$` helpers from the original UMD era, fixing `TagsInput` element targeting.
|
||||||
- **AutoForm Layout**: Fixed `horizontal` grid layout breakage caused by missing `AUTOFORM_STYLE` registration.
|
- **AutoForm Layout**: Fixed `horizontal` grid layout breakage caused by missing `AUTOFORM_STYLE` registration.
|
||||||
|
|||||||
25
README.md
25
README.md
@ -1,19 +1,33 @@
|
|||||||
# @apigo.cc/base - AI 逻辑操作说明书 (示例驱动)
|
# @apigo.cc/base - AI 逻辑操作说明书 (示例驱动)
|
||||||
|
|
||||||
本库是基于 `@apigo.cc/state` 增强的 UI 原子库,提供遵循 Bootstrap 5.3 规范的高阶业务组件。
|
本库是基于 `@apigo.cc/state` 增强的 UI 原子库,提供遵循 Bootstrap 5.3 规范的高阶业务组件。本包采用完全的全局注入模式。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 全局变量与核心 API 清单
|
||||||
|
引入 `base.js` 后,以下对象将直接挂载到 `window` / `globalThis` 上,可随时随地调用:
|
||||||
|
|
||||||
|
| 全局变量名 | 用途说明 |
|
||||||
|
| :--- | :--- |
|
||||||
|
| **`HTTP`** | 异步请求工具 (`HTTP.get`, `HTTP.post`, `HTTP.request` 等)。 |
|
||||||
|
| **`UI`** | 交互组件触发器 (`UI.toast`, `UI.alert`, `UI.confirm`, `UI.showDialog`)。 |
|
||||||
|
| **`AutoForm`** | 表单组件扩展注册器 (`AutoForm.register`) 和自定义控件库 (`AutoForm.customTypes`)。 |
|
||||||
|
| **`MouseMover`** | 拖拽辅助工具 (`MouseMover.start`)。 |
|
||||||
|
| **`VirtualScroll`** / **`List`** | 虚拟滚动列表核心算法类。 |
|
||||||
|
|
||||||
|
*(注意:底层状态库 `@apigo.cc/state` 暴露的 `NewState`, `Hash`, `LocalStorage`, `State`, `$`, `$$`, `Component` 以及危险的高级 API `_unsafeRefreshState` 也在全局可用。严禁随意调用 `_unsafeRefreshState`。)*
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. 快速集成 (Quick Start)
|
## 1. 快速集成 (Quick Start)
|
||||||
|
|
||||||
### 同步 UMD 集成 (推荐:消灭异步时序风险,实现“秒开”渲染)
|
|
||||||
将脚本放置在 `<head>` 中,确保地基在 DOM 解析前就绪:
|
将脚本放置在 `<head>` 中,确保地基在 DOM 解析前就绪:
|
||||||
```html
|
```html
|
||||||
<!-- 1. 基础状态机 (地基) -->
|
<!-- 1. 基础状态机 (地基) -->
|
||||||
<script src="dist/lib/state.js"></script>
|
<script src="dist/lib/state.js"></script>
|
||||||
<!-- 2. Bootstrap 适配层 -->
|
<!-- 2. Bootstrap 适配层 -->
|
||||||
<script src="dist/lib/bootstrap.js"></script>
|
<script src="dist/lib/bootstrap.js"></script>
|
||||||
<!-- 3. 本业务组件库 -->
|
<!-- 3. 本业务组件库 (原生注入) -->
|
||||||
<script src="dist/lib/base.js"></script>
|
<script src="dist/lib/base.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -22,11 +36,6 @@
|
|||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
### ESM 模块引入 (Legacy)
|
|
||||||
```javascript
|
|
||||||
const { HTTP, UI, AutoForm, State } = window.ApigoBase
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 2. 组件超能力示例 (Mega Examples)
|
## 2. 组件超能力示例 (Mega Examples)
|
||||||
|
|||||||
435
dist/base.js
vendored
435
dist/base.js
vendored
File diff suppressed because one or more lines are too long
2
dist/base.min.js
vendored
2
dist/base.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@apigo.cc/base",
|
"name": "@apigo.cc/base",
|
||||||
"version": "1.0.13",
|
"version": "1.0.14",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "dist/base.js",
|
"main": "dist/base.js",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
35
src/index.js
35
src/index.js
@ -1,29 +1,4 @@
|
|||||||
import { NewState, State } from '@apigo.cc/state'
|
|
||||||
import '@apigo.cc/bootstrap'
|
import '@apigo.cc/bootstrap'
|
||||||
|
|
||||||
// Re-exports
|
|
||||||
export * from './http.js'
|
|
||||||
export * from './ui.js'
|
|
||||||
export * from './form.js'
|
|
||||||
export * from './controls.js'
|
|
||||||
export * from './list.js'
|
|
||||||
export * from './nav.js'
|
|
||||||
export * from './interaction.js'
|
|
||||||
|
|
||||||
export { State }
|
|
||||||
|
|
||||||
if (typeof window !== 'undefined') {
|
|
||||||
window.addEventListener('beforeunload', (event) => {
|
|
||||||
if (State.exitBlocks > 0) event.preventDefault()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const htmlNode = document.documentElement;
|
|
||||||
if (!htmlNode.hasAttribute('$data-bs-theme') && !htmlNode.hasAttribute('data-bs-theme')) {
|
|
||||||
htmlNode.setAttribute('$data-bs-theme', "LocalStorage.darkMode?'dark':'light'");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Side effects: ensure global namespaces are populated
|
|
||||||
import { HTTP } from './http.js'
|
import { HTTP } from './http.js'
|
||||||
import { UI } from './ui.js'
|
import { UI } from './ui.js'
|
||||||
import { AutoForm } from './form.js'
|
import { AutoForm } from './form.js'
|
||||||
@ -37,13 +12,5 @@ globalThis.UI = UI
|
|||||||
globalThis.AutoForm = AutoForm
|
globalThis.AutoForm = AutoForm
|
||||||
globalThis.MouseMover = MouseMover
|
globalThis.MouseMover = MouseMover
|
||||||
globalThis.VirtualScroll = VirtualScroll
|
globalThis.VirtualScroll = VirtualScroll
|
||||||
|
globalThis.List = VirtualScroll
|
||||||
const ApigoBase = {
|
|
||||||
HTTP, UI, AutoForm, MouseMover, VirtualScroll, State,
|
|
||||||
List: VirtualScroll
|
|
||||||
};
|
|
||||||
|
|
||||||
if (typeof document !== 'undefined') {
|
|
||||||
globalThis.ApigoBase = ApigoBase;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
435
test/lib/base.js
435
test/lib/base.js
File diff suppressed because one or more lines are too long
@ -19,22 +19,22 @@ export default defineConfig({
|
|||||||
lib: {
|
lib: {
|
||||||
entry: resolve(__dirname, 'src/index.js'),
|
entry: resolve(__dirname, 'src/index.js'),
|
||||||
name: 'ApigoBase',
|
name: 'ApigoBase',
|
||||||
formats: ['umd']
|
formats: ['iife']
|
||||||
},
|
},
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
external: ['@apigo.cc/state', '@apigo.cc/bootstrap'],
|
external: ['@apigo.cc/state', '@apigo.cc/bootstrap'],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
format: 'umd',
|
format: 'iife',
|
||||||
name: 'ApigoBase',
|
name: 'ApigoBase',
|
||||||
entryFileNames: 'base.js',
|
entryFileNames: 'base.js',
|
||||||
globals: {
|
globals: {
|
||||||
'@apigo.cc/state': 'ApigoState',
|
'@apigo.cc/state': 'ApigoState', // Dummy mapping, as we rely on globalThis.State etc.
|
||||||
'@apigo.cc/bootstrap': 'bootstrap'
|
'@apigo.cc/bootstrap': 'bootstrap'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
format: 'umd',
|
format: 'iife',
|
||||||
name: 'ApigoBase',
|
name: 'ApigoBase',
|
||||||
entryFileNames: 'base.min.js',
|
entryFileNames: 'base.min.js',
|
||||||
globals: {
|
globals: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user