base-paint 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -1
- package/dist/blocks.d.ts +160 -6
- package/dist/blocks.d.ts.map +1 -1
- package/dist/blocks.js +1212 -27
- package/dist/blocks.js.map +1 -1
- package/dist/charts.d.ts +6 -4
- package/dist/charts.d.ts.map +1 -1
- package/dist/charts.js +426 -67
- package/dist/charts.js.map +1 -1
- package/dist/controls.d.ts +20 -5
- package/dist/controls.d.ts.map +1 -1
- package/dist/controls.js +242 -34
- package/dist/controls.js.map +1 -1
- package/dist/font.d.ts +3 -3
- package/dist/font.js +3 -3
- package/dist/help.d.ts +3 -3
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +32 -15
- package/dist/help.js.map +1 -1
- package/dist/helpShell.d.ts.map +1 -1
- package/dist/helpShell.js +2 -2
- package/dist/helpShell.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/injector.d.ts +1 -1
- package/dist/output/saveHtml.d.ts +37 -2
- package/dist/output/saveHtml.d.ts.map +1 -1
- package/dist/output/saveHtml.js +125 -15
- package/dist/output/saveHtml.js.map +1 -1
- package/dist/pageShapes.d.ts +117 -0
- package/dist/pageShapes.d.ts.map +1 -0
- package/dist/pageShapes.js +366 -0
- package/dist/pageShapes.js.map +1 -0
- package/dist/pageUi.d.ts +37 -0
- package/dist/pageUi.d.ts.map +1 -0
- package/dist/pageUi.js +237 -0
- package/dist/pageUi.js.map +1 -0
- package/dist/spec/charts.d.ts +16 -3
- package/dist/spec/charts.d.ts.map +1 -1
- package/dist/spec/charts.js +1 -1
- package/dist/spec/charts.js.map +1 -1
- package/dist/spec/controls.d.ts +30 -5
- package/dist/spec/controls.d.ts.map +1 -1
- package/dist/spec/controls.js +16 -3
- package/dist/spec/controls.js.map +1 -1
- package/dist/spec/help.d.ts +34 -6
- package/dist/spec/help.d.ts.map +1 -1
- package/dist/spec/help.js +21 -4
- package/dist/spec/help.js.map +1 -1
- package/dist/spec/index.d.ts +6 -3
- package/dist/spec/index.d.ts.map +1 -1
- package/dist/spec/index.js +27 -2
- package/dist/spec/index.js.map +1 -1
- package/dist/style.d.ts.map +1 -1
- package/dist/style.js +279 -47
- package/dist/style.js.map +1 -1
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +7 -2
- package/dist/text.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,101 @@
|
|
|
1
1
|
# base-paint help模板铁律
|
|
2
2
|
|
|
3
3
|
1. 新页面只许 blocks 组装,禁新巨串:HTML/CSS/JS 大字面量不得进 `src`(走子路径 `base-paint/blocks` 组合或本 help模板管线)。
|
|
4
|
-
2. 改模板只改源:`assets/help-template.html`(唯一真相源;3 槽注释 + 前缀 `__HELP_TITLE__` 占位即契约;行尾 CRLF 禁转 LF
|
|
4
|
+
2. 改模板只改源:`assets/help-template.html`(唯一真相源;3 槽注释 + 前缀 `__HELP_TITLE__` 占位即契约;行尾 CRLF 禁转 LF)。**还原/变异回写这一件时**:它被 `.gitattributes` 钉了 `text eol=crlf`(库内存 LF、检出 CRLF),故**不要**拿 `git show HEAD:<路径>` 的原文直接写回(那是 LF,会让 `gen-help-shell.cjs` 的 CRLF 断言当场抛错);用工作树原文读进写出(`readFileSync` → `writeFileSync`)即逐字节安全。
|
|
5
5
|
3. 改后跑 gen:一键 `pnpm --filter base-paint gen:help-shell`(重写 `src/helpShell.ts`+测试哈希;字节锁随 `pnpm test` 在 CI 验 drift,`gen:help-shell:check` 本地同口径)。
|
|
6
6
|
4. 过门:字节锁(`test/help-shell-136.test.mjs` 哈希)+像素门(skill-calorie `help-shell-134` 双端/覆盖序)+ `tsc -b` 全绿。
|
|
7
7
|
5. 手改生成物(`src/helpShell.ts`/测试哈希)必红:`--check` 非 0+字节锁红。
|
|
8
8
|
6. 源不进包:`files` 仅 `dist`(省约 105KB;追溯靠仓库+哈希锁),包内只留 `dist/helpShell.js`。
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 组件目录(发现口)
|
|
13
|
+
|
|
14
|
+
**包名说明**:目录叫 `packages/base-render`,npm 包名叫 `base-paint`——是同一个包,下文均用包名,引用时照抄即可。
|
|
15
|
+
|
|
16
|
+
本节回答“该调谁”。help 铁律见上,一字未动。机读正身在 `src/spec/`(冻结签名)+契约正本 `../../docs/base-paint-contract.md`;行为示例看 `test/`。
|
|
17
|
+
|
|
18
|
+
### 速查三问
|
|
19
|
+
|
|
20
|
+
| 我要画 | 调谁 | 从哪引 |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| 分布条 | `renderDistributionRows` | `base-paint/blocks`(子路径) |
|
|
23
|
+
| 徽章 | `renderStatusBadge`(空态/失败回执另有 `renderEmptyState`/`renderErrorReceipt`) | `base-paint` 根 |
|
|
24
|
+
| 环图 | `charts`(`donut` 种)+ `chartsCss` 取样式 + `buildChartsHelpersJs` 取脚本 | `base-paint` 根 |
|
|
25
|
+
|
|
26
|
+
注意:`blocks` 整组只走子路径 `base-paint/blocks`,根出口没有它;以下除注明外均走 `base-paint` 根。
|
|
27
|
+
|
|
28
|
+
### 区块组装(`base-paint/blocks`)——新页面只许 blocks 组装
|
|
29
|
+
|
|
30
|
+
| 函数 | 一句话 |
|
|
31
|
+
|---|---|
|
|
32
|
+
| `renderPageShell` | 页面容器与标题区,每页外层 |
|
|
33
|
+
| `renderTocBlock` | 目录区块 |
|
|
34
|
+
| `renderCaliberLine` | 口径说明行(一行小字) |
|
|
35
|
+
| `renderConclusionBar` | 结论条(一句话总结) |
|
|
36
|
+
| `renderMiniBar` | 细进度条 |
|
|
37
|
+
| `renderDistributionRows` | 分布行(名+条+值,窄槽语义见包内测试) |
|
|
38
|
+
| `renderChips` | 标签片组 |
|
|
39
|
+
| `renderChangeRows` | 变化行(涨跌对照) |
|
|
40
|
+
| `renderKpiCard`/`renderKpiGrid` | 指标卡/指标卡宫格 |
|
|
41
|
+
| `renderDataTable` | 数据表 |
|
|
42
|
+
| `renderChartBlock` | 图表容器块(承 `charts` 的产出) |
|
|
43
|
+
| `renderListRows` | 列表行 |
|
|
44
|
+
| `renderPreBlock` | 预排文本块(命令/CLI 展示) |
|
|
45
|
+
| `renderDetailSection` | 详情分区 |
|
|
46
|
+
| `renderDisclosure` | 折叠展开区 |
|
|
47
|
+
| `renderParamForm` | 参数表单 |
|
|
48
|
+
| `renderEmptyBlock` | 空态块 |
|
|
49
|
+
| `renderCopyBlock` | 可复制文本块 |
|
|
50
|
+
| `renderFeedbackBlock` | 反馈块 |
|
|
51
|
+
| `blocksCss` | 区块样式唯一产出者(配 `BLOCK_STYLE_SECTIONS` 分段表) |
|
|
52
|
+
|
|
53
|
+
示例:`test/blocks.test.mjs`;源:`src/blocks.ts`。
|
|
54
|
+
|
|
55
|
+
### 控件(根)——原子交互与状态
|
|
56
|
+
|
|
57
|
+
| 函数 | 一句话 |
|
|
58
|
+
|---|---|
|
|
59
|
+
| `renderToast`/`createToastController` | 轻提示与它的控制器(含堆叠语义) |
|
|
60
|
+
| `copyText`/`createCopyRuntime`/`bindCopyAction` | 复制三件套(双通道+提示反馈,唯一实现) |
|
|
61
|
+
| `buildSharedHelpersJs` | 共享脚本唯一产出者(`SHARED-HELPERS` 槽填充物) |
|
|
62
|
+
| `renderActionBar` | 操作条 |
|
|
63
|
+
| `renderStatusBadge` | 状态徽标(`ok`/`warn`/`danger`/`empty`) |
|
|
64
|
+
| `renderEmptyState` | 空态 |
|
|
65
|
+
| `renderErrorReceipt` | 失败回执 |
|
|
66
|
+
| `TOAST_ICON_GLYPHS` | 提示图标表 |
|
|
67
|
+
|
|
68
|
+
示例:`test/controls.test.mjs`、`test/copy-*.test.mjs`;源:`src/controls.ts`。
|
|
69
|
+
|
|
70
|
+
### 图表(根)——8 种纯字符串产出
|
|
71
|
+
|
|
72
|
+
- `charts`:统一入口,`bar`/`line`/`donut`/`progress`/`combo`/`sparkline`/`gauge`/`scatter`(CSS+SVG 字符串,无 canvas)。
|
|
73
|
+
- `buildChartsHelpersJs`:图表脚本唯一产出者;`chartsCss`:图表样式。
|
|
74
|
+
- 示例:`test/charts.test.mjs`;源:`src/charts.ts`;种定义:`src/spec/charts.ts`。
|
|
75
|
+
|
|
76
|
+
### 页面级(根)——整页怎么摆,不参与区块组合
|
|
77
|
+
|
|
78
|
+
- 形状件(`src/pageShapes.ts`):`renderFactStrip` 事实条;`renderMediaFigure`/`renderMediaPlaceholder` 图片与媒体占位;`renderTimelineRows` 时间轴行;`pageShapeCss` 形状样式;`MEDIA_RATIOS` 比例表。
|
|
79
|
+
- 移动端配方(`src/pageUi.ts`):`pageUiCss` 断点/触摸区/安全区样式;`PAGE_UI_CLASS`/`PAGE_UI_VIEWPORT` 挂载常量。是否启用由整页装配决定,不启用则产出逐字节不变。
|
|
80
|
+
|
|
81
|
+
### 管线与契约(根)
|
|
82
|
+
|
|
83
|
+
| 函数 | 一句话 |
|
|
84
|
+
|---|---|
|
|
85
|
+
| `fillTemplate` | 占位符填充器(模板+数据组装,失败抛错不返空页) |
|
|
86
|
+
| `buildStyleSheet`/`cx`/`token` | 样式表唯一产出者与类名工具(`STYLE_TOKENS` 11 个 token 唯一真相源) |
|
|
87
|
+
| `buildDataText`/`buildLogText` | 复制文本序列化(`text`/`json`/`csv` 三格式) |
|
|
88
|
+
| `renderPage`/`renderReco` | 页面与推荐渲染;`escapeHtml` 转义;`RenderError` |
|
|
89
|
+
| `mountInjector`/`openPage` | 多页挂载与开页 |
|
|
90
|
+
| `createPageRegistry`/`pageOrReco`/`recoDescriptor` | 页面注册与推荐描述 |
|
|
91
|
+
| `BODY_FONT_STACK` | 正文字体栈 |
|
|
92
|
+
| `renderHelpShell` | 数据页分型 help 模板渲染 |
|
|
93
|
+
|
|
94
|
+
### 错误类口径
|
|
95
|
+
|
|
96
|
+
`RenderError` 根有导出;其余 `*Error`(`TemplateError`/`ControlsError`/`TextError`/`ChartError`/`BlocksError`/`HelpSchemaError`)不在根导出——冻结面无条目,调用方按 `name`/`code` 判定。
|
|
97
|
+
|
|
98
|
+
### 正身与测试索引
|
|
99
|
+
|
|
100
|
+
- 冻结签名正身:`src/spec/`(7 件)↔ `../../docs/base-paint-contract.md`,由 `test/contract-signatures.test.mjs` 逐字锁死。
|
|
101
|
+
- 分组示例:`test/render.test.mjs`、`test/template.test.mjs`、`test/style.test.mjs`、`test/text.test.mjs`、`test/help.test.mjs`、`test/help-shell-136.test.mjs`(字节锁)、`test/ui-fix-154.test.mjs`。
|
package/dist/blocks.d.ts
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* `actionHtml`(B-10)沿用冻结语义(调用方负责内容安全)。
|
|
30
30
|
*/
|
|
31
31
|
import { ACTION_ID_ATTR, COPY_ACTION_IDS, DEFAULT_DATA_ATTR, TOAST_DEFAULTS } from './spec/index.js';
|
|
32
|
-
import type { ActionBarInput, ChartKind, CopyButtonInput, EmptyStateInput, ErrorReceiptInput, Scene, StatusKind, ToastInput } from './spec/index.js';
|
|
32
|
+
import type { ActionBarInput, ChartKind, CopyButtonInput, CopyFormatTexts, EmptyStateInput, ErrorReceiptInput, Scene, StatusKind, ToastInput } from './spec/index.js';
|
|
33
33
|
import type { BarChartInput, ComboChartInput, DonutChartInput, GaugeChartInput, LineChartInput, ProgressChartInput, ScatterChartInput, SparklineChartInput } from './spec/charts.js';
|
|
34
34
|
/** 区块层错误。code 恒为 `bad-input`(输入缺失/非法一律抛,缺失阻断不返空)。 */
|
|
35
35
|
export declare class BlocksError extends Error {
|
|
@@ -45,9 +45,101 @@ export interface PageShellInput {
|
|
|
45
45
|
readonly eyebrow?: string;
|
|
46
46
|
/** 已组合好的区块 HTML(受信透传,不转义)。 */
|
|
47
47
|
readonly content: string;
|
|
48
|
+
/** 可打印版式(#420):为真时版面根加 `ilife-page-printable`,打印规则挂在它名下
|
|
49
|
+
* (隐藏页内导航与复制区)。不给/给假 → 产物与旧版逐字相同(类不出现,规则不命中)。 */
|
|
50
|
+
readonly printable?: boolean;
|
|
48
51
|
}
|
|
49
52
|
/** B-01:单页容器+标题三件套(eyebrow/title/subtitle)+正文。 */
|
|
50
53
|
export declare function renderPageShell(input: PageShellInput): string;
|
|
54
|
+
export interface TocItem {
|
|
55
|
+
/** 锚点 id(由调用方给,区块不猜;须与页内 `id` 属性逐字相同)。 */
|
|
56
|
+
readonly id: string;
|
|
57
|
+
readonly text: string;
|
|
58
|
+
}
|
|
59
|
+
export interface TocBlockInput {
|
|
60
|
+
readonly items: readonly TocItem[];
|
|
61
|
+
}
|
|
62
|
+
/** #420-1 页内导航区块(`<nav aria-label="页内导航">` + 逐项 `<a href="#id">`)。
|
|
63
|
+
* 空列表=不出这一块(与「没内容不留空块」同口径,返回空串);缺失(`undefined`)→ `bad-input`
|
|
64
|
+
* (非数组即拒);项缺 `id`/`text` → `bad-input`。 */
|
|
65
|
+
export declare function renderTocBlock(input: TocBlockInput): string;
|
|
66
|
+
/** #420-2 口径说明行(纯文本单参;五字符转义表与区块层其余函数同源 `esc`)。
|
|
67
|
+
* 聚合数字旁那句灰色小字(例如「周目标口径=每日目标 × 7」)的唯一落点。
|
|
68
|
+
*
|
|
69
|
+
* t154-r3(负责人第三轮要求 1「用竖线分割的部分都要优化」):**签名一字不改**(全仓 141 处
|
|
70
|
+
* 调用点一行不用动),函数内部按全角竖线拆段 ⇒ 逐段一枚 `<span>`,段间分隔交给 CSS 的细竖线
|
|
71
|
+
* (`.…-caliber > span + span` 的 `border-left` hairline + flex 间距)——「拿字符当分隔」换成
|
|
72
|
+
* 「拿版式当分隔」。判据:产物该行的**文本里不再出现该竖线字符**(分隔只活在版式里)。
|
|
73
|
+
* · 不带分隔符的行(多数调用点)**逐字节同改前**:仍是「一个 `<p>` + 一段纯文本」;
|
|
74
|
+
* flex 只对「真的有 span 子件」的行生效(CSS 侧 `.…-caliber:has(> span)`)。
|
|
75
|
+
* · 空段丢弃(首尾竖线/连续两条竖线):不出版面的空位;全空的无实义行退化回原样文本
|
|
76
|
+
* (没有可分的段,不静默吞字符)。 */
|
|
77
|
+
export declare function renderCaliberLine(text: string): string;
|
|
78
|
+
/** #507 结论条(审查必改 #3):一行判定句的浅底条,形状住公共层、**调用方只传文本**。
|
|
79
|
+
*
|
|
80
|
+
* 与 `renderCaliberLine` 同族(页面级、单参纯文本、五字符转义同源 `esc`;样式随 `pageShell` 区落盘,
|
|
81
|
+
* 不进 `BLOCK_STYLE_SECTIONS` 那 12 项闭集)。区别只在角色:口径行是**旁注**(灰小字),
|
|
82
|
+
* 结论条是**主读法**(一行结论句,读者扫一眼就知道今天怎么样)。
|
|
83
|
+
*
|
|
84
|
+
* 此前这条形状是**页面内联 8 个魔法值**(`homeDocs.ts` 的 `CONCLUSION_STYLE`,逐字照搬老实物
|
|
85
|
+
* `.view-summary`),与本仓「版面单源住公共层」的纪律冲突——该件自述「本页不再出现任何一条
|
|
86
|
+
* 自写 `font-size`/`color` 规则」,而 `color:var(--blue2)` 就在那串内联里。搬到这里之后,
|
|
87
|
+
* 页面侧只留「传什么文本」。 */
|
|
88
|
+
export declare function renderConclusionBar(text: string): string;
|
|
89
|
+
export interface MiniBarInput {
|
|
90
|
+
/** 占比:0–100 的有限数,越界夹取。 */
|
|
91
|
+
readonly pct: number;
|
|
92
|
+
/** 填充色:冻结 token 名(`--blue`,自动包 `var()`)/`var(--<冻结 token>)`/`#rgb`/`#rrggbb`/
|
|
93
|
+
* `rgb()`/`rgba()`/CSS 具名色;不给=用样式段的缺省色(冻结 token `var(--blue)`)。清单外抛 `bad-input`。 */
|
|
94
|
+
readonly color?: string;
|
|
95
|
+
}
|
|
96
|
+
/** #421-1 占比迷你条(「数字+图形同格」的图形侧):一截横条按 `pct` 撑宽。
|
|
97
|
+
* 只表达「一眼看出差距」,不替代图表——精确读数(坐标/悬停)仍走 `renderChartBlock` 的共享图表。 */
|
|
98
|
+
export declare function renderMiniBar(input: MiniBarInput): string;
|
|
99
|
+
export interface DistributionRowInput {
|
|
100
|
+
readonly label: string;
|
|
101
|
+
/** 显示值(`null`/`undefined` 置空;转义与 `renderDataTable` 的单元格同口径)。 */
|
|
102
|
+
readonly value: string | number | null;
|
|
103
|
+
/** 占比:0–100 的有限数,越界夹取。 */
|
|
104
|
+
readonly pct: number;
|
|
105
|
+
/** 填充色:冻结 token 名(`--blue`,自动包 `var()`)/`var(--<冻结 token>)`/`#rgb`/`#rrggbb`/
|
|
106
|
+
* `rgb()`/`rgba()`/CSS 具名色;不给=用样式段的缺省色(冻结 token `var(--blue)`)。清单外抛 `bad-input`。 */
|
|
107
|
+
readonly color?: string;
|
|
108
|
+
/** 名称栏的附加类名(空格分隔):调用方按域标色,区块不认领域。 */
|
|
109
|
+
readonly labelClass?: string;
|
|
110
|
+
}
|
|
111
|
+
export interface DistributionRowsInput {
|
|
112
|
+
readonly rows: readonly DistributionRowInput[];
|
|
113
|
+
}
|
|
114
|
+
/** #421-2 分布条行:`名称 | 条 | 数值` 一格三栏,逐行拼出(行即件,不另加容器类)。
|
|
115
|
+
* `rows: []` = 空串(与「没内容不留空块」同口径);缺失(`undefined`)→ `bad-input`(非数组即拒);
|
|
116
|
+
* 行内校验逐条 fail-fast。 */
|
|
117
|
+
export declare function renderDistributionRows(input: DistributionRowsInput): string;
|
|
118
|
+
export interface ChipItemInput {
|
|
119
|
+
readonly text: string;
|
|
120
|
+
}
|
|
121
|
+
export interface ChipsInput {
|
|
122
|
+
readonly items: readonly ChipItemInput[];
|
|
123
|
+
}
|
|
124
|
+
/** #421-3 徽章(并列小标签,如分类/标签这类短词并排):逐项 `<span class="ilife-block-chip">`。
|
|
125
|
+
* 项即件(不另加容器类);`items: []` = 空串;缺失(`undefined`)→ `bad-input`(非数组即拒)。 */
|
|
126
|
+
export declare function renderChips(input: ChipsInput): string;
|
|
127
|
+
export interface ChangeRowInput {
|
|
128
|
+
readonly label: string;
|
|
129
|
+
/** 改前(不给/`null` = 空槽;转义与 `renderDataTable` 的单元格同口径)。 */
|
|
130
|
+
readonly before?: string | number | null;
|
|
131
|
+
/** 改后(同上)。 */
|
|
132
|
+
readonly after?: string | number | null;
|
|
133
|
+
/** 箭头位(缺省为真)。为假时**仍占箭位**(可见性占位),左右两栏与真行不塌。 */
|
|
134
|
+
readonly arrow?: boolean;
|
|
135
|
+
}
|
|
136
|
+
export interface ChangeRowsInput {
|
|
137
|
+
readonly rows: readonly ChangeRowInput[];
|
|
138
|
+
}
|
|
139
|
+
/** #421-4 字段变更行(回执页「改前 → 改后」对照):`字段名 | 改前 | 箭头 | 改后`。
|
|
140
|
+
* `arrow: false` 只把字形藏起来、不删栏位(与老技能同一手法:左右栏靠箭位对齐);
|
|
141
|
+
* `rows: []` = 空串;缺失(`undefined`)→ `bad-input`(非数组即拒)。 */
|
|
142
|
+
export declare function renderChangeRows(input: ChangeRowsInput): string;
|
|
51
143
|
export interface KpiCardInput {
|
|
52
144
|
readonly label: string;
|
|
53
145
|
readonly value: string;
|
|
@@ -55,22 +147,42 @@ export interface KpiCardInput {
|
|
|
55
147
|
readonly detail?: string;
|
|
56
148
|
readonly status?: StatusKind;
|
|
57
149
|
readonly statusText?: string;
|
|
150
|
+
/** 可选进度条(#418):百分比 0–100;不给=不产条(零变)。 */
|
|
151
|
+
readonly bar?: {
|
|
152
|
+
readonly pct: number;
|
|
153
|
+
};
|
|
58
154
|
}
|
|
59
155
|
/** B-02:单张 KPI 卡(value 带 `tnum`;非法 status 由冻结语义降级 `empty`)。 */
|
|
60
156
|
export declare function renderKpiCard(input: KpiCardInput): string;
|
|
157
|
+
/** B-02 伴生布局的标题选项(#513 段标题槽):只 `title` 一位,与 `renderChartBlock`/`copyArea`
|
|
158
|
+
* 的 `title` 位同形(非空字符串 ⇒ 段标题 h2;缺省/空串 ⇒ 零渲染)。 */
|
|
159
|
+
export interface KpiGridOptions {
|
|
160
|
+
readonly title?: string;
|
|
161
|
+
}
|
|
61
162
|
/** B-02 伴生布局:KPI 卡网格(不是第 13 个区块,无独立样式区,用 `kpiCard` 区)。 */
|
|
62
|
-
export declare function renderKpiGrid(cards: readonly KpiCardInput[]): string;
|
|
163
|
+
export declare function renderKpiGrid(cards: readonly KpiCardInput[], opts?: KpiGridOptions): string;
|
|
63
164
|
export type DataTableAlign = 'left' | 'center' | 'right';
|
|
64
165
|
export interface DataTableColumn {
|
|
65
166
|
readonly key: string;
|
|
66
167
|
readonly label: string;
|
|
67
168
|
readonly align?: DataTableAlign;
|
|
68
169
|
}
|
|
170
|
+
/** 表格行(#513 行标记槽):单元格映射+可选 `marker`(非空字符串 ⇒ 首格前插行徽标;
|
|
171
|
+
* 缺省/空串 ⇒ 不产出。非字符串非 undefined 即 `bad-input`)。列 key 叫 `marker` 的表不受影响——
|
|
172
|
+
* 全仓既有调用点无此列键(#513 实施时 grep 实测),见证据件。 */
|
|
173
|
+
export type DataTableRow = Readonly<Record<string, unknown> & {
|
|
174
|
+
marker?: unknown;
|
|
175
|
+
}>;
|
|
69
176
|
export interface DataTableInput {
|
|
70
177
|
readonly columns: readonly DataTableColumn[];
|
|
71
|
-
readonly rows: readonly
|
|
178
|
+
readonly rows: readonly DataTableRow[];
|
|
72
179
|
readonly caption?: string;
|
|
73
180
|
readonly emptyText?: string;
|
|
181
|
+
/** 单元格 HTML(#567 状态列):`(列 key, 单元格原值) => 受信 HTML/undefined`。
|
|
182
|
+
* 返回 `undefined` 即走缺省转义文本;返回字符串即**受信透传、不转义**(与
|
|
183
|
+
* `renderDisclosure` 的 `contentHtml` 同口径)——调用方须自行转义插值,
|
|
184
|
+
* 不得把未转义的用户输入拼进去。返回非字符串非 undefined 即 `bad-input`。 */
|
|
185
|
+
readonly cellHtml?: (columnKey: string, value: unknown) => string | undefined;
|
|
74
186
|
}
|
|
75
187
|
/** B-03:语义表格(`table/thead/th/td`;零行 → `renderEmptyState`,不渲染空表)。 */
|
|
76
188
|
export declare function renderDataTable(input: DataTableInput): string;
|
|
@@ -119,12 +231,29 @@ export interface DisclosureInput {
|
|
|
119
231
|
}
|
|
120
232
|
/** B-08:折叠区(原生 `details/summary`;`[open]` 驱动展开态;复制按钮在内容里不触发 toggle=宿主行为)。 */
|
|
121
233
|
export declare function renderDisclosure(input: DisclosureInput): string;
|
|
234
|
+
/** 下拉候选项(#474 追加 · 加法式):字符串项=值即文本(旧行为逐字节不变);
|
|
235
|
+
* 对象项=`value` 走机器面、`label` 走显示面(如 `{ value: 'fade', label: '淡入淡出' }`)。 */
|
|
236
|
+
export interface ParamOption {
|
|
237
|
+
readonly value: string;
|
|
238
|
+
readonly label: string;
|
|
239
|
+
}
|
|
122
240
|
export interface ParamFieldInput {
|
|
123
241
|
readonly name: string;
|
|
124
242
|
readonly label: string;
|
|
125
243
|
readonly value?: string;
|
|
126
244
|
readonly hint?: string;
|
|
127
245
|
readonly required?: boolean;
|
|
246
|
+
/** 只读(#397):`true` 时 `<input>` 落裸 `readonly`;`options` 下拉(`select` 无 `readonly`)落裸 `disabled`。 */
|
|
247
|
+
readonly readonly?: boolean;
|
|
248
|
+
/** 数字步长(#397):数字串或有限数,须大于 0;任一数字约束出现即 `type="number"`。 */
|
|
249
|
+
readonly step?: string | number;
|
|
250
|
+
/** 数字下界(#397):数字串或有限数。 */
|
|
251
|
+
readonly min?: string | number;
|
|
252
|
+
/** 数字上界(#397):数字串或有限数,须大于等于 `min`。 */
|
|
253
|
+
readonly max?: string | number;
|
|
254
|
+
/** 候选项(#397;#474 追加对象项):非空项数组;给了即渲染 `<select>` 代替 `<input>`,
|
|
255
|
+
* `value` 命中的一项落 `selected`(对象项按 `value` 比机器值),`hint` 化作首项占位(`value=""` 禁选)。 */
|
|
256
|
+
readonly options?: readonly (string | ParamOption)[];
|
|
128
257
|
}
|
|
129
258
|
export interface ParamFormInput {
|
|
130
259
|
readonly fields: readonly ParamFieldInput[];
|
|
@@ -132,7 +261,13 @@ export interface ParamFormInput {
|
|
|
132
261
|
/** 初始预览文本(受信透传;实时重算由宿主在 `input` 事件里做,DB-7)。 */
|
|
133
262
|
readonly previewText?: string;
|
|
134
263
|
}
|
|
135
|
-
/** B-09:参数表单(`placeholder = hint`;`required` 落 `data-required` 供宿主拦截;零 JS)。
|
|
264
|
+
/** B-09:参数表单(`placeholder = hint`;`required` 落 `data-required` 供宿主拦截;零 JS)。
|
|
265
|
+
* #397 可选约束:`readonly` 落裸 `readonly`;`step/min/max` 落同名属性(任一出现即
|
|
266
|
+
* `type="number"`,`step` 须大于 0,`min` 不得大于 `max`,非法一律 `bad-input`);
|
|
267
|
+
* `options` 给了即渲染 `<select>`(`value` 命中项 `selected`,`hint` 化作首项占位,
|
|
268
|
+
* `readonly` 化作 `disabled`,与 `step/min/max` 互斥)。
|
|
269
|
+
* #474 追加:`options` 收 `{ value, label }` 对象项——`value` 是机器值(`selected` 按它比)、
|
|
270
|
+
* `label` 是显示文本;字符串项走原路,全字符串调用方的产物**逐字节不变**。 */
|
|
136
271
|
export declare function renderParamForm(input: ParamFormInput): string;
|
|
137
272
|
export interface EmptyBlockInput extends EmptyStateInput {
|
|
138
273
|
readonly title?: string;
|
|
@@ -146,15 +281,34 @@ export interface CopyBlockInput {
|
|
|
146
281
|
readonly dataActionId?: string;
|
|
147
282
|
readonly logActionId?: string;
|
|
148
283
|
readonly buttons?: ActionBarInput['buttons'];
|
|
284
|
+
/** **三格式形态**(#247):给了就出不带 `data-t` 的复制数据按钮 + 格式选择菜单
|
|
285
|
+
* (三个格式项各自带该格式已序列化文本)。与 `dataText` 互斥、需要 `dataActionId`
|
|
286
|
+
* (菜单项的 `data-action-id` 留空,唯一性不与它冲突)。 */
|
|
287
|
+
readonly dataFormats?: CopyFormatTexts;
|
|
149
288
|
}
|
|
150
|
-
/** B-11:复制区块(冻结 `renderActionBar`;id 缺省取 `COPY_ACTION_IDS.actionBar.*`,调用方须保页内唯一)。
|
|
289
|
+
/** B-11:复制区块(冻结 `renderActionBar`;id 缺省取 `COPY_ACTION_IDS.actionBar.*`,调用方须保页内唯一)。
|
|
290
|
+
* `dataFormats` 给三格式形态(`dataText` 单格式),两者同给 → `bad-input`。
|
|
291
|
+
* 标题去重(#336 base 侧兜底,与 `copyArea` 的 `COPY_TITLE_DUP_OF_BUTTON` 同口径):
|
|
292
|
+
* `title` 与复制数据按钮同名(`ACTION_BAR_DEFAULTS.copyDataLabel`=「复制数据」)时不出 `<h2>`
|
|
293
|
+
* (只留动作不留说明文本);其他标题照旧。 */
|
|
151
294
|
export declare function renderCopyBlock(input: CopyBlockInput): string;
|
|
152
295
|
export interface FeedbackBlockInput {
|
|
153
296
|
readonly title?: string;
|
|
154
297
|
readonly toast?: ToastInput;
|
|
155
298
|
readonly error?: ErrorReceiptInput;
|
|
299
|
+
/** **页内静态提示形态(#154)**:显式置 `true` 时,`toast` 不再走冻结 `renderToast`
|
|
300
|
+
* (深色毛玻璃卡 +「✓ 知道了」关闭按钮),改渲染为**浅色静态提示**——
|
|
301
|
+
* `var(--soft)` 底 + 1px `var(--line)` 描边 + 圆角 14px,**不带关闭按钮**、不进 toast 栈、
|
|
302
|
+
* 不自动消失(页内静态提示不该能被点掉;点击委派也点不到它)。图标取同源 `TOAST_ICON_GLYPHS`,
|
|
303
|
+
* 语义色按 `toast.icon`(`ToastIcon` 五值)落在图标底盘上。
|
|
304
|
+
*
|
|
305
|
+
* **缺省值口径(逐字节)**:不给/给 `false`/给任何非 `true` 值 → 老行为一行不差
|
|
306
|
+
* (`renderToast` 逐字组合,见 `test/blocks.test.mjs` 与新证据件 t154)。
|
|
307
|
+
* 开法:`renderFeedbackBlock({ toast: { msg, detail, icon }, staticNotice: true })`。 */
|
|
308
|
+
readonly staticNotice?: boolean;
|
|
156
309
|
}
|
|
157
|
-
/** B-12:反馈区块(冻结 `renderToast` 和/或 `renderErrorReceipt`;两者至少其一)。
|
|
310
|
+
/** B-12:反馈区块(冻结 `renderToast` 和/或 `renderErrorReceipt`;两者至少其一)。
|
|
311
|
+
* `staticNotice === true` 时 `toast` 改走浅色静态形态(#154),其余逐字照旧。 */
|
|
158
312
|
export declare function renderFeedbackBlock(input: FeedbackBlockInput): string;
|
|
159
313
|
export interface BlocksCssInput {
|
|
160
314
|
/** 类名前缀;缺省 `STYLE_PREFIX`(`ilife-`)。 */
|
package/dist/blocks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,EAEL,cAAc,EAEd,eAAe,EAEf,iBAAiB,EAMjB,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB,EAEjB,KAAK,EAEL,UAAU,EACV,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAI1B,qDAAqD;AACrD,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;gBAEf,OAAO,EAAE,MAAM;CAK5B;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,EAEL,cAAc,EAEd,eAAe,EAEf,iBAAiB,EAMjB,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EAEjB,KAAK,EAEL,UAAU,EACV,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAI1B,qDAAqD;AACrD,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;gBAEf,OAAO,EAAE,MAAM;CAK5B;AAsED,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB,8KAavB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAmCtE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;sDACkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAiB7D;AAMD,MAAM,WAAW,OAAO;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CACpC;AAED;;4CAE4C;AAC5C,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAc3D;AAOD;;;;;;;;;;yBAUyB;AACzB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUtD;AAED;;;;;;;;;oBASoB;AACpB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAgHD,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;yFACqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;iEACiE;AACjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CASzD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;yFACqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAChD;AAED;;wBAEwB;AACxB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAyB3E;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED;wEACwE;AACxE,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAarD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,cAAc;IACd,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,CAAC;CAC1C;AAED;;2DAE2D;AAC3D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAsB/D;AAMD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AASD,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAmCzD;AAED;iDACiD;AACjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,CAc3F;AAMD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;0CAE0C;AAC1C,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEpF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;0DAGsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;CAC/E;AAYD,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAqE7D;AAMD,MAAM,MAAM,oBAAoB,GAC5B,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,kBAAkB,GACrE,eAAe,GAAG,mBAAmB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEhF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA0B/D;AAMD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA8B3D;AAMD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAmB3D;AAMD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAiBD,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAuCrE;AAMD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAU/D;AAMD;2EAC2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,kGAAkG;IAClG,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B;qFACiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;iDAMiD;AACjD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA4E7D;AAMD,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAS/D;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C;;+CAE2C;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;CACxC;AAED;;;;2BAI2B;AAC3B,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA+B7D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC;;;;;;;;0FAQsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AA2CD;+DAC+D;AAC/D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAgBrE;AA2oCD,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;qDAEqD;AACrD,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,CAUxD;AAID,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;AAC9E,YAAY,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,CAAC"}
|