bank20baht-ui 0.2.3 → 0.2.5
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 +13 -0
- package/dist/components/baht-form.d.ts +1 -0
- package/dist/components/primitives/baht-table.d.ts +61 -7
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/core/display.d.ts +23 -0
- package/dist/core/i18n.d.ts +2 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/custom-elements.json +257 -23
- package/dist/engine.js +207 -166
- package/dist/index.js +892 -762
- package/dist/react.d.ts +2 -2
- package/dist/tokens.css +1795 -639
- package/dist/vscode.html-custom-data.json +1 -1
- package/dist/web-types.json +6 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -53,6 +53,13 @@ the user can only fix what they see), but `getData()` still returns the full for
|
|
|
53
53
|
server (`bank20baht-validator`) always validates the complete schema. In a workflow, set
|
|
54
54
|
`view: 'summary'` on a step's form to pin the view that step renders.
|
|
55
55
|
|
|
56
|
+
### Read-only display
|
|
57
|
+
|
|
58
|
+
`<baht-form readonly>` shows a submission instead of editing it: values as text, option
|
|
59
|
+
labels instead of keys, chips for multi-picks, Yes/No, no help text, "Not provided" for
|
|
60
|
+
blanks. Same grid, same widths. `displayValue(field, value)` from `bank20baht-ui/engine`
|
|
61
|
+
gives you the same formatting for tables.
|
|
62
|
+
|
|
56
63
|
### Repeater — line items / repeating rows
|
|
57
64
|
|
|
58
65
|
```js
|
|
@@ -223,6 +230,7 @@ Geist / Geist Mono, borders-over-shadows, "paper" easing — plus a dark theme
|
|
|
223
230
|
```
|
|
224
231
|
|
|
225
232
|
- **Data (server-side paging)** — `baht-table` · `baht-list` · `baht-pagination` · `baht-filter`.
|
|
233
|
+
`baht-table` ships a ServiceNow-style column picker with dot-walking into reference columns (`requester.department`) and emits `baht-columns-change` so the host can persist the layout.
|
|
226
234
|
`items` is one page; `baht-page-change` asks your app to fetch the next one.
|
|
227
235
|
- **Feedback** — `baht-modal` · `baht-toast` · `baht-alert` · `baht-tooltip` · `baht-progress` ·
|
|
228
236
|
`baht-spinner` · `baht-skeleton`
|
|
@@ -284,6 +292,11 @@ React 19+ sets non-string JSX props as DOM properties, so object props (`form`,
|
|
|
284
292
|
@Component({ schemas: [CUSTOM_ELEMENTS_SCHEMA], /* … */ })
|
|
285
293
|
```
|
|
286
294
|
|
|
295
|
+
Bind `readonly` as an attribute (`[attr.readonly]="x ? '' : null"`), not a property — Angular
|
|
296
|
+
rewrites `[readonly]` to the native `readOnly`. Zoneless Angular may connect an element before
|
|
297
|
+
binding its props; since 0.2.3 every field primitive renders empty until `field` arrives. Full
|
|
298
|
+
list of gotchas: [docs/frameworks/angular.md](./docs/frameworks/angular.md#gotchas).
|
|
299
|
+
|
|
287
300
|
**Vue 3** — `vite.config.ts`:
|
|
288
301
|
|
|
289
302
|
```ts
|
|
@@ -79,6 +79,7 @@ export declare class BahtForm extends BahtElement {
|
|
|
79
79
|
* `renderField`/`.baht-error`). No-op for 'change'/'submit' modes. */
|
|
80
80
|
private onFieldBlur;
|
|
81
81
|
private renderField;
|
|
82
|
+
private renderReadonlyField;
|
|
82
83
|
protected render(): TemplateResult;
|
|
83
84
|
}
|
|
84
85
|
declare global {
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { TemplateResult } from 'lit';
|
|
2
2
|
import { BahtElement } from '../base.js';
|
|
3
3
|
export type CellRenderer = (value: unknown, row: Record<string, unknown>) => unknown;
|
|
4
|
+
/**
|
|
5
|
+
* One column: a plain label, or a reference column with its own fields that
|
|
6
|
+
* the picker can dot-walk into (`requester.department`). Fields nest.
|
|
7
|
+
*/
|
|
8
|
+
export type ColumnSpec = {
|
|
9
|
+
label: string;
|
|
10
|
+
fields?: ColumnMap;
|
|
11
|
+
};
|
|
12
|
+
export type ColumnMap = Record<string, string | ColumnSpec>;
|
|
13
|
+
/** What the picker committed: dotted keys plus the labels the header shows. */
|
|
14
|
+
export type ColumnsChangeDetail = {
|
|
15
|
+
visibleColumns: string[];
|
|
16
|
+
columns: Array<{
|
|
17
|
+
key: string;
|
|
18
|
+
label: string;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
4
21
|
/**
|
|
5
22
|
* Server-side data table. `items` is ONE page of rows — the component never
|
|
6
23
|
* slices or fetches; on `baht-page-change` the host fetches the next page and
|
|
@@ -25,9 +42,24 @@ export type CellRenderer = (value: unknown, row: Record<string, unknown>) => unk
|
|
|
25
42
|
* Available/Selected dual-list modal (add/remove, reorder, Select all/Clear
|
|
26
43
|
* all) derived from `columns` (or the first row's keys), no host wiring
|
|
27
44
|
* required. Set `t.columnPicker = false` (JS property — a boolean attribute
|
|
28
|
-
* can't express "off") to hide it
|
|
45
|
+
* can't express "off") to hide it. OK emits `baht-columns-change` with the
|
|
46
|
+
* chosen keys and their labels; persist that and feed it back as
|
|
47
|
+
* `visibleColumns` to remember a person's layout:
|
|
48
|
+
*
|
|
49
|
+
* t.addEventListener('baht-columns-change', (e) => save(e.detail.visibleColumns));
|
|
29
50
|
*
|
|
30
|
-
*
|
|
51
|
+
* Dot-walking (spec: reference columns). A column may declare `fields`, in
|
|
52
|
+
* which case the picker lets the person expand it and pick a sub-field —
|
|
53
|
+
* the key becomes `requester.department`, the header reads
|
|
54
|
+
* "Requested by › Department", and the cell resolves the path on the row.
|
|
55
|
+
* Rows whose values are plain objects get the same treatment automatically
|
|
56
|
+
* when no `columns` map is given.
|
|
57
|
+
*
|
|
58
|
+
* t.columns = {
|
|
59
|
+
* number: 'Number',
|
|
60
|
+
* requester: { label: 'Requested by', fields: { name: 'Name', department: 'Department' } },
|
|
61
|
+
* };
|
|
62
|
+
* t.visibleColumns = ['number', 'requester.name'];
|
|
31
63
|
*
|
|
32
64
|
* `visibleColumns` still works standalone for a host-controlled subset (no
|
|
33
65
|
* refetch) — pass it explicitly and the built-in picker (if also enabled)
|
|
@@ -36,8 +68,8 @@ export type CellRenderer = (value: unknown, row: Record<string, unknown>) => unk
|
|
|
36
68
|
export declare class BahtTable extends BahtElement {
|
|
37
69
|
/** Rows of the CURRENT page. */
|
|
38
70
|
items: Record<string, unknown>[];
|
|
39
|
-
/** column key -> display name;
|
|
40
|
-
columns:
|
|
71
|
+
/** column key -> display name, or a reference column with `fields` (property); empty = derive keys from the first row (`snake_case` -> `Title Case`). */
|
|
72
|
+
columns: ColumnMap;
|
|
41
73
|
loading: boolean;
|
|
42
74
|
error: boolean;
|
|
43
75
|
errorMessage: string;
|
|
@@ -50,9 +82,9 @@ export declare class BahtTable extends BahtElement {
|
|
|
50
82
|
rowKey: string;
|
|
51
83
|
/** Rows emit baht-row-click + get hover/keyboard affordances. */
|
|
52
84
|
clickable: boolean;
|
|
53
|
-
/** Custom cell renderers by column key (functions — a property, never JSON). */
|
|
85
|
+
/** Custom cell renderers by column key, dotted keys included (functions — a property, never JSON). */
|
|
54
86
|
renderers: Record<string, CellRenderer>;
|
|
55
|
-
/** Subset + order of
|
|
87
|
+
/** Subset + order of columns to render (dotted keys allowed); empty/omitted = show all top-level columns. */
|
|
56
88
|
visibleColumns: string[];
|
|
57
89
|
/** Built-in "Columns" toggle — derives its options from `columns`/rows. Set `column-picker="false"` to hide it. */
|
|
58
90
|
columnPicker: boolean;
|
|
@@ -70,22 +102,44 @@ export declare class BahtTable extends BahtElement {
|
|
|
70
102
|
/** Highlighted (not yet moved) options in each list. */
|
|
71
103
|
private pickAvail;
|
|
72
104
|
private pickSel;
|
|
105
|
+
/** Reference columns unfolded in the Available tree (dot-walk). */
|
|
106
|
+
private expanded;
|
|
73
107
|
private readonly onPickerKeydown;
|
|
74
108
|
disconnectedCallback(): void;
|
|
109
|
+
protected willUpdate(changed: Map<PropertyKey, unknown>): void;
|
|
110
|
+
/** The declared map, or one derived from the first row (nested objects become reference columns). */
|
|
111
|
+
private get spec();
|
|
112
|
+
/** Walk a dotted key through the spec; undefined when no such column exists. */
|
|
113
|
+
private specAt;
|
|
114
|
+
private isReference;
|
|
115
|
+
private childrenOf;
|
|
116
|
+
/** Every pickable key, reference fields included (`requester`, `requester.name`, ...). */
|
|
117
|
+
private allPaths;
|
|
75
118
|
private get allColumnKeys();
|
|
76
119
|
private get columnKeys();
|
|
120
|
+
/** "Requested by › Department" for a dotted key; the plain label otherwise. */
|
|
121
|
+
private labelFor;
|
|
122
|
+
/** The row's value at a dotted key (`requester.department`). */
|
|
123
|
+
private static valueAt;
|
|
77
124
|
private openPicker;
|
|
78
125
|
private closePicker;
|
|
79
126
|
private static selectedValues;
|
|
127
|
+
private toggleAvail;
|
|
128
|
+
private toggleExpanded;
|
|
80
129
|
private addToSelected;
|
|
81
130
|
private removeFromSelected;
|
|
82
131
|
private moveSelected;
|
|
83
132
|
private confirmPicker;
|
|
84
|
-
private labelFor;
|
|
85
133
|
private emitRow;
|
|
86
134
|
private cell;
|
|
87
135
|
private renderBody;
|
|
88
136
|
private renderColumnToggle;
|
|
137
|
+
/**
|
|
138
|
+
* One row of the Available tree. A reference column gets an expander that
|
|
139
|
+
* unfolds its fields (the dot-walk); every row is a toggle button so the
|
|
140
|
+
* list works from the keyboard without the native multi-select.
|
|
141
|
+
*/
|
|
142
|
+
private renderAvailRow;
|
|
89
143
|
private renderColumnModal;
|
|
90
144
|
protected render(): TemplateResult;
|
|
91
145
|
}
|
|
@@ -2,7 +2,7 @@ export { BahtButton, type ButtonVariant, type ButtonSize } from './baht-button.j
|
|
|
2
2
|
export { renderIcon, isIconName, type IconName } from './icons.js';
|
|
3
3
|
export { BahtBadge, type BadgeTone } from './baht-badge.js';
|
|
4
4
|
export { BahtCode, type CodeVariant } from './baht-code.js';
|
|
5
|
-
export { BahtTable, type CellRenderer } from './baht-table.js';
|
|
5
|
+
export { BahtTable, type CellRenderer, type ColumnMap, type ColumnSpec, type ColumnsChangeDetail, } from './baht-table.js';
|
|
6
6
|
export { BahtList, type ListItem } from './baht-list.js';
|
|
7
7
|
export { BahtPagination } from './baht-pagination.js';
|
|
8
8
|
export { BahtModal } from './baht-modal.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FieldDescriptor, FieldOption } from './types.js';
|
|
2
|
+
export type DisplayValue = {
|
|
3
|
+
kind: 'empty';
|
|
4
|
+
} | {
|
|
5
|
+
kind: 'text';
|
|
6
|
+
text: string;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'chips';
|
|
9
|
+
items: string[];
|
|
10
|
+
}
|
|
11
|
+
/** Repeater rows: one entry per row, each a list of `label: value` pairs. */
|
|
12
|
+
| {
|
|
13
|
+
kind: 'rows';
|
|
14
|
+
rows: Array<Array<{
|
|
15
|
+
label: string;
|
|
16
|
+
text: string;
|
|
17
|
+
}>>;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The read-only rendering of one field's value. `options` overrides the
|
|
21
|
+
* descriptor's own list when they were resolved dynamically (`optionsFrom`).
|
|
22
|
+
*/
|
|
23
|
+
export declare function displayValue(field: FieldDescriptor, value: unknown, options?: FieldOption[] | undefined): DisplayValue;
|
package/dist/core/i18n.d.ts
CHANGED
package/dist/core/index.d.ts
CHANGED
|
@@ -10,3 +10,4 @@ export { evaluate } from './engine/evaluate.js';
|
|
|
10
10
|
export { resolveNext, walkPath } from './engine/graph.js';
|
|
11
11
|
export { evalCondition, readRef } from './engine/conditions.js';
|
|
12
12
|
export { evalValueExpr } from './engine/expressions.js';
|
|
13
|
+
export { displayValue, type DisplayValue } from './display.js';
|
|
@@ -348,6 +348,36 @@
|
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
350
|
]
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"kind": "method",
|
|
354
|
+
"name": "renderReadonlyField",
|
|
355
|
+
"privacy": "private",
|
|
356
|
+
"return": {
|
|
357
|
+
"type": {
|
|
358
|
+
"text": "TemplateResult"
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"parameters": [
|
|
362
|
+
{
|
|
363
|
+
"name": "field",
|
|
364
|
+
"type": {
|
|
365
|
+
"text": "FieldDescriptor"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"name": "width",
|
|
370
|
+
"type": {
|
|
371
|
+
"text": "string"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"name": "visible",
|
|
376
|
+
"type": {
|
|
377
|
+
"text": "boolean"
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
]
|
|
351
381
|
}
|
|
352
382
|
],
|
|
353
383
|
"events": [
|
|
@@ -8348,7 +8378,7 @@
|
|
|
8348
8378
|
"declarations": [
|
|
8349
8379
|
{
|
|
8350
8380
|
"kind": "class",
|
|
8351
|
-
"description": "Server-side data table. `items` is ONE page of rows — the component never\nslices or fetches; on `baht-page-change` the host fetches the next page and\nre-feeds `items`/`page`. While that fetch runs, set `loading` to show\nskeleton rows.\n\n const t = document.querySelector('baht-table');\n t.columns = { name: 'Name', created_at: 'Created' };\n t.items = pageRows; // current page only\n t.loading = false; t.page = 1; t.totalPages = 12;\n t.addEventListener('baht-page-change', (e) => fetchPage(e.detail.page));\n t.addEventListener('baht-row-click', (e) => open(e.detail.id));\n\nSet `cursor-mode` for cursor-based APIs (no total count) — the footer\nbecomes a Prev/Next pair gated by `has-next`/`has-prev`, and the host\nlistens for `baht-cursor-change` instead of `baht-page-change`:\n\n t.cursorMode = true; t.hasNext = true; t.hasPrev = false;\n t.addEventListener('baht-cursor-change', (e) => fetchPage(e.detail.direction));\n\nA built-in \"Columns\" button is ON by default — it opens a ServiceNow-style\nAvailable/Selected dual-list modal (add/remove, reorder, Select all/Clear\nall) derived from `columns` (or the first row's keys), no host wiring\nrequired. Set `t.columnPicker = false` (JS property — a boolean attribute\ncan't express \"off\") to hide it:\n\n t.addEventListener('baht-columns-change', (e) =>
|
|
8381
|
+
"description": "Server-side data table. `items` is ONE page of rows — the component never\nslices or fetches; on `baht-page-change` the host fetches the next page and\nre-feeds `items`/`page`. While that fetch runs, set `loading` to show\nskeleton rows.\n\n const t = document.querySelector('baht-table');\n t.columns = { name: 'Name', created_at: 'Created' };\n t.items = pageRows; // current page only\n t.loading = false; t.page = 1; t.totalPages = 12;\n t.addEventListener('baht-page-change', (e) => fetchPage(e.detail.page));\n t.addEventListener('baht-row-click', (e) => open(e.detail.id));\n\nSet `cursor-mode` for cursor-based APIs (no total count) — the footer\nbecomes a Prev/Next pair gated by `has-next`/`has-prev`, and the host\nlistens for `baht-cursor-change` instead of `baht-page-change`:\n\n t.cursorMode = true; t.hasNext = true; t.hasPrev = false;\n t.addEventListener('baht-cursor-change', (e) => fetchPage(e.detail.direction));\n\nA built-in \"Columns\" button is ON by default — it opens a ServiceNow-style\nAvailable/Selected dual-list modal (add/remove, reorder, Select all/Clear\nall) derived from `columns` (or the first row's keys), no host wiring\nrequired. Set `t.columnPicker = false` (JS property — a boolean attribute\ncan't express \"off\") to hide it. OK emits `baht-columns-change` with the\nchosen keys and their labels; persist that and feed it back as\n`visibleColumns` to remember a person's layout:\n\n t.addEventListener('baht-columns-change', (e) => save(e.detail.visibleColumns));\n\nDot-walking (spec: reference columns). A column may declare `fields`, in\nwhich case the picker lets the person expand it and pick a sub-field —\nthe key becomes `requester.department`, the header reads\n\"Requested by › Department\", and the cell resolves the path on the row.\nRows whose values are plain objects get the same treatment automatically\nwhen no `columns` map is given.\n\n t.columns = {\n number: 'Number',\n requester: { label: 'Requested by', fields: { name: 'Name', department: 'Department' } },\n };\n t.visibleColumns = ['number', 'requester.name'];\n\n`visibleColumns` still works standalone for a host-controlled subset (no\nrefetch) — pass it explicitly and the built-in picker (if also enabled)\nstarts from that selection and keeps emitting updates for it.",
|
|
8352
8382
|
"name": "BahtTable",
|
|
8353
8383
|
"members": [
|
|
8354
8384
|
{
|
|
@@ -8364,10 +8394,10 @@
|
|
|
8364
8394
|
"kind": "field",
|
|
8365
8395
|
"name": "columns",
|
|
8366
8396
|
"type": {
|
|
8367
|
-
"text": "
|
|
8397
|
+
"text": "ColumnMap"
|
|
8368
8398
|
},
|
|
8369
8399
|
"default": "{}",
|
|
8370
|
-
"description": "column key -> display name;
|
|
8400
|
+
"description": "column key -> display name, or a reference column with `fields` (property); empty = derive keys from the first row (`snake_case` -> `Title Case`)."
|
|
8371
8401
|
},
|
|
8372
8402
|
{
|
|
8373
8403
|
"kind": "field",
|
|
@@ -8460,7 +8490,7 @@
|
|
|
8460
8490
|
"text": "Record<string, CellRenderer>"
|
|
8461
8491
|
},
|
|
8462
8492
|
"default": "{}",
|
|
8463
|
-
"description": "Custom cell renderers by column key (functions — a property, never JSON)."
|
|
8493
|
+
"description": "Custom cell renderers by column key, dotted keys included (functions — a property, never JSON)."
|
|
8464
8494
|
},
|
|
8465
8495
|
{
|
|
8466
8496
|
"kind": "field",
|
|
@@ -8469,7 +8499,7 @@
|
|
|
8469
8499
|
"text": "string[]"
|
|
8470
8500
|
},
|
|
8471
8501
|
"default": "[]",
|
|
8472
|
-
"description": "Subset + order of
|
|
8502
|
+
"description": "Subset + order of columns to render (dotted keys allowed); empty/omitted = show all top-level columns."
|
|
8473
8503
|
},
|
|
8474
8504
|
{
|
|
8475
8505
|
"kind": "field",
|
|
@@ -8575,12 +8605,104 @@
|
|
|
8575
8605
|
"privacy": "private",
|
|
8576
8606
|
"default": "[]"
|
|
8577
8607
|
},
|
|
8608
|
+
{
|
|
8609
|
+
"kind": "field",
|
|
8610
|
+
"name": "expanded",
|
|
8611
|
+
"type": {
|
|
8612
|
+
"text": "string[]"
|
|
8613
|
+
},
|
|
8614
|
+
"privacy": "private",
|
|
8615
|
+
"default": "[]",
|
|
8616
|
+
"description": "Reference columns unfolded in the Available tree (dot-walk)."
|
|
8617
|
+
},
|
|
8578
8618
|
{
|
|
8579
8619
|
"kind": "field",
|
|
8580
8620
|
"name": "onPickerKeydown",
|
|
8581
8621
|
"privacy": "private",
|
|
8582
8622
|
"readonly": true
|
|
8583
8623
|
},
|
|
8624
|
+
{
|
|
8625
|
+
"kind": "field",
|
|
8626
|
+
"name": "spec",
|
|
8627
|
+
"type": {
|
|
8628
|
+
"text": "ColumnMap"
|
|
8629
|
+
},
|
|
8630
|
+
"privacy": "private",
|
|
8631
|
+
"description": "The declared map, or one derived from the first row (nested objects become reference columns).",
|
|
8632
|
+
"readonly": true
|
|
8633
|
+
},
|
|
8634
|
+
{
|
|
8635
|
+
"kind": "method",
|
|
8636
|
+
"name": "specAt",
|
|
8637
|
+
"privacy": "private",
|
|
8638
|
+
"return": {
|
|
8639
|
+
"type": {
|
|
8640
|
+
"text": "ColumnSpec | undefined"
|
|
8641
|
+
}
|
|
8642
|
+
},
|
|
8643
|
+
"parameters": [
|
|
8644
|
+
{
|
|
8645
|
+
"name": "path",
|
|
8646
|
+
"type": {
|
|
8647
|
+
"text": "string"
|
|
8648
|
+
}
|
|
8649
|
+
}
|
|
8650
|
+
],
|
|
8651
|
+
"description": "Walk a dotted key through the spec; undefined when no such column exists."
|
|
8652
|
+
},
|
|
8653
|
+
{
|
|
8654
|
+
"kind": "method",
|
|
8655
|
+
"name": "isReference",
|
|
8656
|
+
"privacy": "private",
|
|
8657
|
+
"return": {
|
|
8658
|
+
"type": {
|
|
8659
|
+
"text": "boolean"
|
|
8660
|
+
}
|
|
8661
|
+
},
|
|
8662
|
+
"parameters": [
|
|
8663
|
+
{
|
|
8664
|
+
"name": "path",
|
|
8665
|
+
"type": {
|
|
8666
|
+
"text": "string"
|
|
8667
|
+
}
|
|
8668
|
+
}
|
|
8669
|
+
]
|
|
8670
|
+
},
|
|
8671
|
+
{
|
|
8672
|
+
"kind": "method",
|
|
8673
|
+
"name": "childrenOf",
|
|
8674
|
+
"privacy": "private",
|
|
8675
|
+
"return": {
|
|
8676
|
+
"type": {
|
|
8677
|
+
"text": "string[]"
|
|
8678
|
+
}
|
|
8679
|
+
},
|
|
8680
|
+
"parameters": [
|
|
8681
|
+
{
|
|
8682
|
+
"name": "path",
|
|
8683
|
+
"type": {
|
|
8684
|
+
"text": "string"
|
|
8685
|
+
}
|
|
8686
|
+
}
|
|
8687
|
+
]
|
|
8688
|
+
},
|
|
8689
|
+
{
|
|
8690
|
+
"kind": "method",
|
|
8691
|
+
"name": "allPaths",
|
|
8692
|
+
"privacy": "private",
|
|
8693
|
+
"return": {
|
|
8694
|
+
"type": {
|
|
8695
|
+
"text": "string[]"
|
|
8696
|
+
}
|
|
8697
|
+
},
|
|
8698
|
+
"parameters": [
|
|
8699
|
+
{
|
|
8700
|
+
"name": "prefix",
|
|
8701
|
+
"default": "''"
|
|
8702
|
+
}
|
|
8703
|
+
],
|
|
8704
|
+
"description": "Every pickable key, reference fields included (`requester`, `requester.name`, ...)."
|
|
8705
|
+
},
|
|
8584
8706
|
{
|
|
8585
8707
|
"kind": "field",
|
|
8586
8708
|
"name": "allColumnKeys",
|
|
@@ -8599,6 +8721,51 @@
|
|
|
8599
8721
|
"privacy": "private",
|
|
8600
8722
|
"readonly": true
|
|
8601
8723
|
},
|
|
8724
|
+
{
|
|
8725
|
+
"kind": "method",
|
|
8726
|
+
"name": "labelFor",
|
|
8727
|
+
"privacy": "private",
|
|
8728
|
+
"return": {
|
|
8729
|
+
"type": {
|
|
8730
|
+
"text": "string"
|
|
8731
|
+
}
|
|
8732
|
+
},
|
|
8733
|
+
"parameters": [
|
|
8734
|
+
{
|
|
8735
|
+
"name": "path",
|
|
8736
|
+
"type": {
|
|
8737
|
+
"text": "string"
|
|
8738
|
+
}
|
|
8739
|
+
}
|
|
8740
|
+
],
|
|
8741
|
+
"description": "\"Requested by › Department\" for a dotted key; the plain label otherwise."
|
|
8742
|
+
},
|
|
8743
|
+
{
|
|
8744
|
+
"kind": "method",
|
|
8745
|
+
"name": "valueAt",
|
|
8746
|
+
"privacy": "private",
|
|
8747
|
+
"static": true,
|
|
8748
|
+
"return": {
|
|
8749
|
+
"type": {
|
|
8750
|
+
"text": "unknown"
|
|
8751
|
+
}
|
|
8752
|
+
},
|
|
8753
|
+
"parameters": [
|
|
8754
|
+
{
|
|
8755
|
+
"name": "row",
|
|
8756
|
+
"type": {
|
|
8757
|
+
"text": "Record<string, unknown>"
|
|
8758
|
+
}
|
|
8759
|
+
},
|
|
8760
|
+
{
|
|
8761
|
+
"name": "path",
|
|
8762
|
+
"type": {
|
|
8763
|
+
"text": "string"
|
|
8764
|
+
}
|
|
8765
|
+
}
|
|
8766
|
+
],
|
|
8767
|
+
"description": "The row's value at a dotted key (`requester.department`)."
|
|
8768
|
+
},
|
|
8602
8769
|
{
|
|
8603
8770
|
"kind": "method",
|
|
8604
8771
|
"name": "openPicker",
|
|
@@ -8638,6 +8805,42 @@
|
|
|
8638
8805
|
}
|
|
8639
8806
|
]
|
|
8640
8807
|
},
|
|
8808
|
+
{
|
|
8809
|
+
"kind": "method",
|
|
8810
|
+
"name": "toggleAvail",
|
|
8811
|
+
"privacy": "private",
|
|
8812
|
+
"return": {
|
|
8813
|
+
"type": {
|
|
8814
|
+
"text": "void"
|
|
8815
|
+
}
|
|
8816
|
+
},
|
|
8817
|
+
"parameters": [
|
|
8818
|
+
{
|
|
8819
|
+
"name": "key",
|
|
8820
|
+
"type": {
|
|
8821
|
+
"text": "string"
|
|
8822
|
+
}
|
|
8823
|
+
}
|
|
8824
|
+
]
|
|
8825
|
+
},
|
|
8826
|
+
{
|
|
8827
|
+
"kind": "method",
|
|
8828
|
+
"name": "toggleExpanded",
|
|
8829
|
+
"privacy": "private",
|
|
8830
|
+
"return": {
|
|
8831
|
+
"type": {
|
|
8832
|
+
"text": "void"
|
|
8833
|
+
}
|
|
8834
|
+
},
|
|
8835
|
+
"parameters": [
|
|
8836
|
+
{
|
|
8837
|
+
"name": "key",
|
|
8838
|
+
"type": {
|
|
8839
|
+
"text": "string"
|
|
8840
|
+
}
|
|
8841
|
+
}
|
|
8842
|
+
]
|
|
8843
|
+
},
|
|
8641
8844
|
{
|
|
8642
8845
|
"kind": "method",
|
|
8643
8846
|
"name": "addToSelected",
|
|
@@ -8686,24 +8889,6 @@
|
|
|
8686
8889
|
}
|
|
8687
8890
|
}
|
|
8688
8891
|
},
|
|
8689
|
-
{
|
|
8690
|
-
"kind": "method",
|
|
8691
|
-
"name": "labelFor",
|
|
8692
|
-
"privacy": "private",
|
|
8693
|
-
"return": {
|
|
8694
|
-
"type": {
|
|
8695
|
-
"text": "string"
|
|
8696
|
-
}
|
|
8697
|
-
},
|
|
8698
|
-
"parameters": [
|
|
8699
|
-
{
|
|
8700
|
-
"name": "key",
|
|
8701
|
-
"type": {
|
|
8702
|
-
"text": "string"
|
|
8703
|
-
}
|
|
8704
|
-
}
|
|
8705
|
-
]
|
|
8706
|
-
},
|
|
8707
8892
|
{
|
|
8708
8893
|
"kind": "method",
|
|
8709
8894
|
"name": "emitRow",
|
|
@@ -8780,6 +8965,31 @@
|
|
|
8780
8965
|
}
|
|
8781
8966
|
}
|
|
8782
8967
|
},
|
|
8968
|
+
{
|
|
8969
|
+
"kind": "method",
|
|
8970
|
+
"name": "renderAvailRow",
|
|
8971
|
+
"privacy": "private",
|
|
8972
|
+
"return": {
|
|
8973
|
+
"type": {
|
|
8974
|
+
"text": "TemplateResult"
|
|
8975
|
+
}
|
|
8976
|
+
},
|
|
8977
|
+
"parameters": [
|
|
8978
|
+
{
|
|
8979
|
+
"name": "key",
|
|
8980
|
+
"type": {
|
|
8981
|
+
"text": "string"
|
|
8982
|
+
}
|
|
8983
|
+
},
|
|
8984
|
+
{
|
|
8985
|
+
"name": "depth",
|
|
8986
|
+
"type": {
|
|
8987
|
+
"text": "number"
|
|
8988
|
+
}
|
|
8989
|
+
}
|
|
8990
|
+
],
|
|
8991
|
+
"description": "One row of the Available tree. A reference column gets an expander that\nunfolds its fields (the dot-walk); every row is a toggle button so the\nlist works from the keyboard without the native multi-select."
|
|
8992
|
+
},
|
|
8783
8993
|
{
|
|
8784
8994
|
"kind": "method",
|
|
8785
8995
|
"name": "renderColumnModal",
|
|
@@ -10086,6 +10296,30 @@
|
|
|
10086
10296
|
"module": "./baht-table.js"
|
|
10087
10297
|
}
|
|
10088
10298
|
},
|
|
10299
|
+
{
|
|
10300
|
+
"kind": "js",
|
|
10301
|
+
"name": "ColumnMap",
|
|
10302
|
+
"declaration": {
|
|
10303
|
+
"name": "ColumnMap",
|
|
10304
|
+
"module": "./baht-table.js"
|
|
10305
|
+
}
|
|
10306
|
+
},
|
|
10307
|
+
{
|
|
10308
|
+
"kind": "js",
|
|
10309
|
+
"name": "ColumnSpec",
|
|
10310
|
+
"declaration": {
|
|
10311
|
+
"name": "ColumnSpec",
|
|
10312
|
+
"module": "./baht-table.js"
|
|
10313
|
+
}
|
|
10314
|
+
},
|
|
10315
|
+
{
|
|
10316
|
+
"kind": "js",
|
|
10317
|
+
"name": "ColumnsChangeDetail",
|
|
10318
|
+
"declaration": {
|
|
10319
|
+
"name": "ColumnsChangeDetail",
|
|
10320
|
+
"module": "./baht-table.js"
|
|
10321
|
+
}
|
|
10322
|
+
},
|
|
10089
10323
|
{
|
|
10090
10324
|
"kind": "js",
|
|
10091
10325
|
"name": "BahtList",
|