@object-ui/core 17.6.0 → 17.7.0
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/CHANGELOG.md +6610 -0
- package/README.md +101 -14
- package/dist/actions/ActionEngine.d.ts +4 -2
- package/dist/actions/ActionEngine.js +13 -8
- package/dist/actions/ActionRunner.d.ts +288 -27
- package/dist/actions/ActionRunner.js +443 -63
- package/dist/actions/TransactionManager.d.ts +7 -2
- package/dist/actions/actionKeys.d.ts +9 -7
- package/dist/actions/actionKeys.js +57 -14
- package/dist/actions/actionResponse.js +2 -2
- package/dist/actions/index.d.ts +1 -0
- package/dist/actions/index.js +1 -0
- package/dist/actions/recordDelete.d.ts +118 -0
- package/dist/actions/recordDelete.js +112 -0
- package/dist/adapters/ValueDataSource.d.ts +6 -1
- package/dist/adapters/ValueDataSource.js +1090 -98
- package/dist/adapters/batchTransaction.d.ts +1 -1
- package/dist/adapters/batchTransaction.js +1 -1
- package/dist/builder/schema-builder.d.ts +38 -81
- package/dist/builder/schema-builder.js +33 -152
- package/dist/data-scope/ViewDataProvider.d.ts +1 -1
- package/dist/data-scope/ViewDataProvider.js +21 -1
- package/dist/data-scope/element-data-source.d.ts +261 -7
- package/dist/data-scope/element-data-source.js +342 -52
- package/dist/data-scope/index.d.ts +9 -4
- package/dist/data-scope/index.js +9 -4
- package/dist/evaluator/ExpressionEvaluator.d.ts +86 -0
- package/dist/evaluator/ExpressionEvaluator.js +184 -12
- package/dist/evaluator/FormulaFunctions.d.ts +0 -10
- package/dist/evaluator/FormulaFunctions.js +166 -27
- package/dist/evaluator/declaredPredicate.d.ts +93 -9
- package/dist/evaluator/declaredPredicate.js +117 -16
- package/dist/evaluator/fieldRules.d.ts +88 -4
- package/dist/evaluator/fieldRules.js +203 -31
- package/dist/evaluator/index.d.ts +1 -0
- package/dist/evaluator/index.js +1 -0
- package/dist/evaluator/listConditional.d.ts +103 -34
- package/dist/evaluator/listConditional.js +127 -50
- package/dist/evaluator/optionRules.d.ts +77 -6
- package/dist/evaluator/optionRules.js +87 -10
- package/dist/evaluator/predicateInput.d.ts +15 -4
- package/dist/evaluator/predicateInput.js +35 -2
- package/dist/evaluator/rowPredicateCanon.d.ts +7 -18
- package/dist/evaluator/rowPredicateCanon.js +65 -115
- package/dist/evaluator/subjectPermissions.d.ts +76 -0
- package/dist/evaluator/subjectPermissions.js +44 -0
- package/dist/evaluator/unevaluablePredicate.d.ts +57 -0
- package/dist/evaluator/unevaluablePredicate.js +70 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +80 -2
- package/dist/protocols/index.d.ts +0 -1
- package/dist/protocols/index.js +9 -1
- package/dist/registry/Registry.d.ts +358 -31
- package/dist/registry/Registry.js +263 -11
- package/dist/registry/WidgetRegistry.js +7 -3
- package/dist/registry/html-tier-intrinsics.d.ts +90 -0
- package/dist/registry/html-tier-intrinsics.js +110 -0
- package/dist/registry/public-blocks.d.ts +8 -0
- package/dist/registry/public-blocks.js +57 -0
- package/dist/theme/ThemeEngine.js +1 -1
- package/dist/utils/chart-category-key.d.ts +82 -0
- package/dist/utils/chart-category-key.js +84 -0
- package/dist/utils/chart-measure-key.d.ts +64 -0
- package/dist/utils/chart-measure-key.js +65 -0
- package/dist/utils/chart-presentation.d.ts +95 -112
- package/dist/utils/chart-presentation.js +169 -104
- package/dist/utils/chart-series.d.ts +131 -5
- package/dist/utils/chart-series.js +98 -16
- package/dist/utils/column-sortability.d.ts +157 -0
- package/dist/utils/column-sortability.js +217 -0
- package/dist/utils/dashboard-filters.d.ts +38 -6
- package/dist/utils/dashboard-filters.js +107 -61
- package/dist/utils/dataset-format.d.ts +211 -30
- package/dist/utils/dataset-format.js +389 -46
- package/dist/utils/date-display.d.ts +354 -0
- package/dist/utils/date-display.js +463 -0
- package/dist/utils/date-macros.js +7 -0
- package/dist/utils/drill-down.d.ts +78 -0
- package/dist/utils/drill-down.js +93 -0
- package/dist/utils/emptiness.d.ts +96 -0
- package/dist/utils/emptiness.js +101 -0
- package/dist/utils/expand-fields.d.ts +76 -6
- package/dist/utils/expand-fields.js +76 -6
- package/dist/utils/extract-records.d.ts +65 -5
- package/dist/utils/extract-records.js +65 -8
- package/dist/utils/filter-converter.d.ts +152 -4
- package/dist/utils/filter-converter.js +1092 -22
- package/dist/utils/filter-tokens.d.ts +49 -5
- package/dist/utils/filter-tokens.js +105 -33
- package/dist/utils/grouping-fields.d.ts +61 -0
- package/dist/utils/grouping-fields.js +84 -0
- package/dist/utils/managedBy.d.ts +3 -3
- package/dist/utils/managedBy.js +5 -5
- package/dist/utils/native-date-value.d.ts +48 -0
- package/dist/utils/native-date-value.js +167 -0
- package/dist/utils/non-grid-row-ceiling.d.ts +143 -0
- package/dist/utils/non-grid-row-ceiling.js +141 -0
- package/dist/utils/normalize-list-view.d.ts +121 -1
- package/dist/utils/normalize-list-view.js +186 -6
- package/dist/utils/number-display.d.ts +63 -14
- package/dist/utils/number-display.js +34 -12
- package/dist/utils/object-aggregate-query.d.ts +113 -0
- package/dist/utils/object-aggregate-query.js +50 -0
- package/dist/utils/parent-scope.d.ts +123 -0
- package/dist/utils/parent-scope.js +140 -0
- package/dist/utils/predicate-fields.d.ts +45 -12
- package/dist/utils/predicate-fields.js +137 -12
- package/dist/utils/record-color.d.ts +75 -0
- package/dist/utils/record-color.js +65 -0
- package/dist/utils/record-source.d.ts +298 -0
- package/dist/utils/record-source.js +331 -0
- package/dist/utils/record-title.d.ts +148 -8
- package/dist/utils/record-title.js +220 -26
- package/dist/utils/reference-keys.d.ts +21 -22
- package/dist/utils/reference-keys.js +532 -29
- package/dist/utils/sort-query.d.ts +115 -15
- package/dist/utils/sort-query.js +240 -13
- package/dist/utils/text-comparand.d.ts +92 -0
- package/dist/utils/text-comparand.js +99 -0
- package/dist/utils/without-denied-fields.d.ts +49 -0
- package/dist/utils/without-denied-fields.js +52 -0
- package/dist/validation/index.d.ts +8 -4
- package/dist/validation/index.js +8 -4
- package/dist/validation/schema-validator.d.ts +1 -1
- package/dist/validation/schema-validator.js +200 -82
- package/dist/validation/validators/object-validation-engine.d.ts +1 -1
- package/dist/validation/validators/object-validation-engine.js +14 -3
- package/package.json +8 -9
- package/dist/data-scope/DataScopeManager.d.ts +0 -127
- package/dist/data-scope/DataScopeManager.js +0 -229
- package/dist/protocols/ResponsiveProtocol.d.ts +0 -73
- package/dist/protocols/ResponsiveProtocol.js +0 -158
- package/dist/validation/validation-engine.d.ts +0 -88
- package/dist/validation/validation-engine.js +0 -434
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Is this value a gate the author DECLARED but the client cannot EVALUATE?
|
|
10
|
+
* (objectui#11358)
|
|
11
|
+
*
|
|
12
|
+
* A predicate gate (`visible` / `hidden` / `enabled` / `disabled` /
|
|
13
|
+
* `condition`) is in one of three states, and this is the one place the third
|
|
14
|
+
* is told apart from the other two:
|
|
15
|
+
*
|
|
16
|
+
* - **absent** — `null` / `undefined` / `''` / blank predicate text. Nothing
|
|
17
|
+
* was declared; {@link hasDeclaredPredicate} answers "not declared" (and
|
|
18
|
+
* reports a blank one, objectui#8069).
|
|
19
|
+
* - **evaluable** — a boolean, a predicate string, or an envelope whose
|
|
20
|
+
* `source` is a non-blank string.
|
|
21
|
+
* - **declared but not evaluable** — anything else that is present: an
|
|
22
|
+
* envelope with no string `source` (the `ast`-only `{ dialect: 'cel', ast }`
|
|
23
|
+
* an authoring door can admit), a number (`0`, `42`), an object with no
|
|
24
|
+
* `source` (`{}`), an array. This function answers `true` for exactly
|
|
25
|
+
* these.
|
|
26
|
+
*
|
|
27
|
+
* Triage's ruling on objectui#11358 makes the third state "declared and
|
|
28
|
+
* faulting": it is a gate, so it is never "no gate", and it cannot be
|
|
29
|
+
* evaluated, so it takes the path every other faulting predicate takes —
|
|
30
|
+
* reported, and answered with the fail direction its key already has. Before
|
|
31
|
+
* that ruling the normalizer folded it to `undefined`, the same answer as
|
|
32
|
+
* "absent", so every reader showed / enabled / ran it in silence: ADR-0137 D4's
|
|
33
|
+
* "a gate predicate that is blank or faulting is diagnosed, never a silent
|
|
34
|
+
* `true`", broken by a fold.
|
|
35
|
+
*
|
|
36
|
+
* Read by the normalizer ({@link toPredicateInput}, which now keeps the state
|
|
37
|
+
* instead of folding it), the evaluation step
|
|
38
|
+
* (`ExpressionEvaluator.evaluateCondition`, which reports it and answers it as a
|
|
39
|
+
* fault), the canonical predicate helper (`evalFieldPredicate`, which tags its
|
|
40
|
+
* reason) and the dev-mode schema validator (which still refuses it). ⛔ Not
|
|
41
|
+
* re-exported from the package entry: it is the internal definition those four
|
|
42
|
+
* share, not public API.
|
|
43
|
+
*
|
|
44
|
+
* ⚠️ No client-side reading of what an `ast` MEANT: the client evaluates
|
|
45
|
+
* `source` text only, so an `ast` with no `source` is not evaluable here,
|
|
46
|
+
* whatever it says.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isUnevaluablePredicate(value: unknown): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* The `reason` reported for a gate that is declared but cannot be evaluated,
|
|
51
|
+
* tagged like an engine reason (`[parse]`, `[type]`, `[blank]`) because it
|
|
52
|
+
* travels the same two channels — `evalFieldPredicate`'s one-time warning and
|
|
53
|
+
* its `onFault` passback — and a caller that routes on the tag must tell it
|
|
54
|
+
* apart from a predicate that faulted with text in it: the fix is to give the
|
|
55
|
+
* gate a `source` (or delete it), never to debug CEL syntax.
|
|
56
|
+
*/
|
|
57
|
+
export declare const UNEVALUABLE_PREDICATE_REASON: string;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Is this value a gate the author DECLARED but the client cannot EVALUATE?
|
|
10
|
+
* (objectui#11358)
|
|
11
|
+
*
|
|
12
|
+
* A predicate gate (`visible` / `hidden` / `enabled` / `disabled` /
|
|
13
|
+
* `condition`) is in one of three states, and this is the one place the third
|
|
14
|
+
* is told apart from the other two:
|
|
15
|
+
*
|
|
16
|
+
* - **absent** — `null` / `undefined` / `''` / blank predicate text. Nothing
|
|
17
|
+
* was declared; {@link hasDeclaredPredicate} answers "not declared" (and
|
|
18
|
+
* reports a blank one, objectui#8069).
|
|
19
|
+
* - **evaluable** — a boolean, a predicate string, or an envelope whose
|
|
20
|
+
* `source` is a non-blank string.
|
|
21
|
+
* - **declared but not evaluable** — anything else that is present: an
|
|
22
|
+
* envelope with no string `source` (the `ast`-only `{ dialect: 'cel', ast }`
|
|
23
|
+
* an authoring door can admit), a number (`0`, `42`), an object with no
|
|
24
|
+
* `source` (`{}`), an array. This function answers `true` for exactly
|
|
25
|
+
* these.
|
|
26
|
+
*
|
|
27
|
+
* Triage's ruling on objectui#11358 makes the third state "declared and
|
|
28
|
+
* faulting": it is a gate, so it is never "no gate", and it cannot be
|
|
29
|
+
* evaluated, so it takes the path every other faulting predicate takes —
|
|
30
|
+
* reported, and answered with the fail direction its key already has. Before
|
|
31
|
+
* that ruling the normalizer folded it to `undefined`, the same answer as
|
|
32
|
+
* "absent", so every reader showed / enabled / ran it in silence: ADR-0137 D4's
|
|
33
|
+
* "a gate predicate that is blank or faulting is diagnosed, never a silent
|
|
34
|
+
* `true`", broken by a fold.
|
|
35
|
+
*
|
|
36
|
+
* Read by the normalizer ({@link toPredicateInput}, which now keeps the state
|
|
37
|
+
* instead of folding it), the evaluation step
|
|
38
|
+
* (`ExpressionEvaluator.evaluateCondition`, which reports it and answers it as a
|
|
39
|
+
* fault), the canonical predicate helper (`evalFieldPredicate`, which tags its
|
|
40
|
+
* reason) and the dev-mode schema validator (which still refuses it). ⛔ Not
|
|
41
|
+
* re-exported from the package entry: it is the internal definition those four
|
|
42
|
+
* share, not public API.
|
|
43
|
+
*
|
|
44
|
+
* ⚠️ No client-side reading of what an `ast` MEANT: the client evaluates
|
|
45
|
+
* `source` text only, so an `ast` with no `source` is not evaluable here,
|
|
46
|
+
* whatever it says.
|
|
47
|
+
*/
|
|
48
|
+
export function isUnevaluablePredicate(value) {
|
|
49
|
+
if (value === null || value === undefined)
|
|
50
|
+
return false;
|
|
51
|
+
if (typeof value === 'boolean' || typeof value === 'string')
|
|
52
|
+
return false;
|
|
53
|
+
if (typeof value === 'object') {
|
|
54
|
+
return typeof value.source !== 'string';
|
|
55
|
+
}
|
|
56
|
+
// A number (`0` included — it is present, not absent), a function, a symbol
|
|
57
|
+
// or a bigint: nothing a predicate is spelled as.
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The `reason` reported for a gate that is declared but cannot be evaluated,
|
|
62
|
+
* tagged like an engine reason (`[parse]`, `[type]`, `[blank]`) because it
|
|
63
|
+
* travels the same two channels — `evalFieldPredicate`'s one-time warning and
|
|
64
|
+
* its `onFault` passback — and a caller that routes on the tag must tell it
|
|
65
|
+
* apart from a predicate that faulted with text in it: the fix is to give the
|
|
66
|
+
* gate a `source` (or delete it), never to debug CEL syntax.
|
|
67
|
+
*/
|
|
68
|
+
export const UNEVALUABLE_PREDICATE_REASON = '[unevaluable] the gate is declared but has no `source` to evaluate (an ' +
|
|
69
|
+
'`ast`-only envelope, a number, an object or an array) — it fails in the ' +
|
|
70
|
+
'direction its key fails on any fault';
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
export type { SchemaNode, ComponentRendererProps } from './types/index.js';
|
|
9
9
|
export * from './registry/Registry.js';
|
|
10
10
|
export * from './registry/public-blocks.js';
|
|
11
|
+
export * from './registry/html-tier-intrinsics.js';
|
|
11
12
|
export * from './registry/PluginSystem.js';
|
|
12
13
|
export * from './registry/PluginScopeImpl.js';
|
|
13
14
|
export * from './registry/WidgetRegistry.js';
|
|
@@ -17,9 +18,12 @@ export * from './utils/dom-props.js';
|
|
|
17
18
|
export * from './utils/filter-converter.js';
|
|
18
19
|
export * from './utils/managedBy.js';
|
|
19
20
|
export * from './utils/extract-records.js';
|
|
21
|
+
export * from './utils/non-grid-row-ceiling.js';
|
|
22
|
+
export * from './utils/emptiness.js';
|
|
20
23
|
export * from './utils/expand-fields.js';
|
|
21
24
|
export * from './utils/retired-field-types.js';
|
|
22
25
|
export * from './utils/unmaterialized-fields.js';
|
|
26
|
+
export * from './utils/column-sortability.js';
|
|
23
27
|
export * from './utils/column-identity.js';
|
|
24
28
|
export * from './utils/sort-values.js';
|
|
25
29
|
export * from './utils/sort-query.js';
|
|
@@ -51,14 +55,24 @@ export * from './utils/dashboard-filters.js';
|
|
|
51
55
|
export * from './utils/merge-filters.js';
|
|
52
56
|
export * from './utils/compare-to.js';
|
|
53
57
|
export * from './utils/chart-series.js';
|
|
58
|
+
export * from './utils/chart-measure-key.js';
|
|
59
|
+
export * from './utils/chart-category-key.js';
|
|
60
|
+
export * from './utils/object-aggregate-query.js';
|
|
54
61
|
export * from './utils/chart-presentation.js';
|
|
55
62
|
export * from './utils/number-display.js';
|
|
63
|
+
export * from './utils/date-display.js';
|
|
64
|
+
export * from './utils/native-date-value.js';
|
|
56
65
|
export * from './utils/dataset-format.js';
|
|
57
66
|
export * from './utils/dataset-pivot.js';
|
|
58
67
|
export * from './utils/record-title.js';
|
|
68
|
+
export * from './utils/record-color.js';
|
|
59
69
|
export * from './utils/export-filename.js';
|
|
60
70
|
export * from './utils/reference-keys.js';
|
|
61
71
|
export * from './utils/predicate-record.js';
|
|
72
|
+
export * from './utils/without-denied-fields.js';
|
|
73
|
+
export * from './utils/parent-scope.js';
|
|
62
74
|
export * from './utils/predicate-fields.js';
|
|
75
|
+
export * from './utils/grouping-fields.js';
|
|
63
76
|
export * from './utils/normalize-list-view.js';
|
|
77
|
+
export * from './utils/record-source.js';
|
|
64
78
|
export * from './utils/humanize-label.js';
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export * from './registry/Registry.js';
|
|
9
9
|
export * from './registry/public-blocks.js';
|
|
10
|
+
export * from './registry/html-tier-intrinsics.js';
|
|
10
11
|
export * from './registry/PluginSystem.js';
|
|
11
12
|
export * from './registry/PluginScopeImpl.js';
|
|
12
13
|
export * from './registry/WidgetRegistry.js';
|
|
@@ -21,6 +22,17 @@ export * from './utils/dom-props.js';
|
|
|
21
22
|
export * from './utils/filter-converter.js';
|
|
22
23
|
export * from './utils/managedBy.js';
|
|
23
24
|
export * from './utils/extract-records.js';
|
|
25
|
+
// The non-grid row ceiling (objectui#7210), homed beside the `extractRecords`
|
|
26
|
+
// it wraps by objectui#7508's ruling A′. `@object-ui/react` re-exports three of
|
|
27
|
+
// these names and keeps only the React footnote, `NonGridRowCeilingNote`.
|
|
28
|
+
export * from './utils/non-grid-row-ceiling.js';
|
|
29
|
+
// The emptiness FLOOR (objectui#8496, director seat, decision batch #86): the
|
|
30
|
+
// weakest common claim about "is this value empty" — `null`, `undefined`, the
|
|
31
|
+
// empty string, the empty array — below `plugin-detail`, `plugin-list`,
|
|
32
|
+
// `plugin-kanban` and `@object-ui/fields`, each of which used to spell those
|
|
33
|
+
// four members privately. Surfaces EXTEND it or DECLINE a member out loud; ⛔
|
|
34
|
+
// the floor itself never grows past the four.
|
|
35
|
+
export * from './utils/emptiness.js';
|
|
24
36
|
export * from './utils/expand-fields.js';
|
|
25
37
|
// The RETIREMENT gate (objectui#4914, maintainer ruling B). Homed here rather
|
|
26
38
|
// than in `@object-ui/fields` because `@object-ui/components` is one of its six
|
|
@@ -29,6 +41,12 @@ export * from './utils/expand-fields.js';
|
|
|
29
41
|
// name, so its published surface is unchanged.
|
|
30
42
|
export * from './utils/retired-field-types.js';
|
|
31
43
|
export * from './utils/unmaterialized-fields.js';
|
|
44
|
+
// [#5729] The consumer half of objectstack#10235's ruling: the SERVED
|
|
45
|
+
// per-column sortability projection, and the one spelling of its contract
|
|
46
|
+
// (`entry exists && sortable: true`). Homed beside the storage-fact set above
|
|
47
|
+
// because a consumer that reaches for one must be able to see the other and
|
|
48
|
+
// know which one the platform actually served.
|
|
49
|
+
export * from './utils/column-sortability.js';
|
|
32
50
|
export * from './utils/column-identity.js';
|
|
33
51
|
export * from './utils/sort-values.js';
|
|
34
52
|
export * from './utils/sort-query.js';
|
|
@@ -55,14 +73,29 @@ export * from './runtime/capabilities.js';
|
|
|
55
73
|
export { composeStacks } from '@objectstack/spec';
|
|
56
74
|
export * from './utils/drill-down.js';
|
|
57
75
|
export * from './utils/date-macros.js';
|
|
58
|
-
// Session-scoped filter placeholders ({current_user_id} / {current_org_id})
|
|
76
|
+
// Session-scoped filter placeholders ({current_user_id} / {current_org_id}),
|
|
77
|
+
// the record-scoped `{record_id}` (objectui#7297),
|
|
59
78
|
// plus `resolveFilterPlaceholders`, the single entry point every surface
|
|
60
|
-
// should call so no vocabulary is silently skipped (
|
|
79
|
+
// should call so no vocabulary is silently skipped (objectstack-ai/objectstack#3574).
|
|
61
80
|
export * from './utils/filter-tokens.js';
|
|
62
81
|
export * from './utils/dashboard-filters.js';
|
|
63
82
|
export * from './utils/merge-filters.js';
|
|
64
83
|
export * from './utils/compare-to.js';
|
|
65
84
|
export * from './utils/chart-series.js';
|
|
85
|
+
// "Which result column carries the measure?" — one answer for the row
|
|
86
|
+
// projection and the series binding alike, delegated to the spec's own
|
|
87
|
+
// derivation so the two cannot drift (objectui#8266).
|
|
88
|
+
export * from './utils/chart-measure-key.js';
|
|
89
|
+
// "Which result column carries the CATEGORY?" — the same move on the other
|
|
90
|
+
// axis, delegated to the contract's own published derivation so a relay cannot
|
|
91
|
+
// floor the x-axis binding on a literal the aggregate contradicts
|
|
92
|
+
// (objectui#8269).
|
|
93
|
+
export * from './utils/chart-category-key.js';
|
|
94
|
+
// "Which CALL does an object-bound aggregate make when its `groupBy` is the
|
|
95
|
+
// structured date-bucketing node?" — the same move on the REQUEST rather than
|
|
96
|
+
// on a result column, so the chart and the metric cannot post two different
|
|
97
|
+
// wires for one authored shape (objectui#8613).
|
|
98
|
+
export * from './utils/object-aggregate-query.js';
|
|
66
99
|
// The AUTHORED half of a dataset-bound chart (objectui#4229's data/presentation
|
|
67
100
|
// split), shared by the dashboard widget and the report's embedded chart so the
|
|
68
101
|
// same spec keys are lowered identically on both (objectui#4877).
|
|
@@ -73,12 +106,26 @@ export * from './utils/chart-presentation.js';
|
|
|
73
106
|
// `dataset-format` below from reaching it (so the two drifted). `@object-ui/i18n`
|
|
74
107
|
// re-exports these names unchanged, so both import paths name the same symbol.
|
|
75
108
|
export * from './utils/number-display.js';
|
|
109
|
+
// The ONE date-display path (objectui#7178) — the same story one type over.
|
|
110
|
+
// It lived in `@object-ui/fields`' React barrel, which `dataset-format`
|
|
111
|
+
// below could not import, so a date-valued measure rendered its raw ISO
|
|
112
|
+
// string. `@object-ui/fields` re-exports these names unchanged.
|
|
113
|
+
export * from './utils/date-display.js';
|
|
114
|
+
// The native date/time control adapters (objectui#3127), moved down from
|
|
115
|
+
// `@object-ui/fields` so `@object-ui/components`' data table can share them
|
|
116
|
+
// instead of keeping private copies (objectui#10625). `@object-ui/fields`
|
|
117
|
+
// re-exports these names unchanged.
|
|
118
|
+
export * from './utils/native-date-value.js';
|
|
76
119
|
export * from './utils/dataset-format.js';
|
|
77
120
|
// Pivot lookup-key encoders, shared by every cross-tab renderer so the
|
|
78
121
|
// dashboard widget and the report renderer key their buckets identically
|
|
79
122
|
// (objectstack#5473 / objectstack#5665).
|
|
80
123
|
export * from './utils/dataset-pivot.js';
|
|
81
124
|
export * from './utils/record-title.js';
|
|
125
|
+
// The one `colorField` ladder every record view shares (objectui#7243) — the
|
|
126
|
+
// gantt, calendar and timeline all resolve an authored option colour here
|
|
127
|
+
// instead of each guessing at the raw stored value.
|
|
128
|
+
export * from './utils/record-color.js';
|
|
82
129
|
export * from './utils/export-filename.js';
|
|
83
130
|
export * from './utils/reference-keys.js';
|
|
84
131
|
// Binds a fetched record into an expression scope the way the SERVER binds it
|
|
@@ -86,10 +133,41 @@ export * from './utils/reference-keys.js';
|
|
|
86
133
|
// `toPredicateRecord` for why an unnormalized one gives the same predicate
|
|
87
134
|
// different verdicts on different surfaces.
|
|
88
135
|
export * from './utils/predicate-record.js';
|
|
136
|
+
// The field-read rule for ONE record (objectui#10594, ruling A): the row as the
|
|
137
|
+
// viewer may read it, which every surface that builds a display value from a
|
|
138
|
+
// whole row calls. It replaced module-private copies in `@object-ui/fields`,
|
|
139
|
+
// `@object-ui/react`, `@object-ui/app-shell` and `@object-ui/plugin-detail`.
|
|
140
|
+
export * from './utils/without-denied-fields.js';
|
|
141
|
+
// The parent-relationship condition a detail-page related list is scoped by.
|
|
142
|
+
// One implementation, imported by BOTH the row query and the tab-badge count
|
|
143
|
+
// probe — objectui#8882 is what two of them cost.
|
|
144
|
+
export * from './utils/parent-scope.js';
|
|
89
145
|
// The other half of a view's field appetite: the fields its PREDICATES read,
|
|
90
146
|
// which the column-derived `$select` never asked the server for.
|
|
91
147
|
export * from './utils/predicate-fields.js';
|
|
148
|
+
// The THIRD source of a view's field appetite: the fields it GROUPS BY. The
|
|
149
|
+
// spec's `grouping` block is a sibling of `columns`, not a subset, so a grid
|
|
150
|
+
// may group by a field it never shows (objectui#7179).
|
|
151
|
+
export * from './utils/grouping-fields.js';
|
|
92
152
|
export * from './utils/normalize-list-view.js';
|
|
153
|
+
// The ONE record-source ladder, both halves. `resolveRecordSourceConfig`
|
|
154
|
+
// (`ce2aaefe1`) is the PRODUCER — the ruled `data` / `staticData` /
|
|
155
|
+
// `objectName` ladder, hand-copied into five view plugins with no gate holding
|
|
156
|
+
// them together. `resolveRecordSourceObjectName` (`b041b9c0c`) is the READER
|
|
157
|
+
// over its output: six view plugins each spelled "the object this block is
|
|
158
|
+
// bound to — the resolved data config's object when it names one, else
|
|
159
|
+
// `objectName`" locally, and had drifted. Both are deliberately SEPARATE from
|
|
160
|
+
// the `normalizeListViewSchema` gap-fill above: that one answers how
|
|
161
|
+
// `objectName` gets POPULATED when absent (#7477 ruling B), these answer which
|
|
162
|
+
// object a block RESOLVES (the three-rung ladder `77cb489b4` declared). Merging them
|
|
163
|
+
// would override one standing ruling or the other.
|
|
164
|
+
// A THIRD reading ships beside them since objectui#9571:
|
|
165
|
+
// `recordSourceDataArmForType` answers which `data` arm a registered block TYPE
|
|
166
|
+
// declares, for the one consumer that cannot be handed the arm as a parameter —
|
|
167
|
+
// `SchemaRenderer`, which is generic over every type and holds only
|
|
168
|
+
// `schema.type`. Read its docblock before adding a row; it transports the call
|
|
169
|
+
// sites' own literals rather than re-deriving them.
|
|
170
|
+
export * from './utils/record-source.js';
|
|
93
171
|
// The single home for the VALUE fallback prettifier (a stored value becomes a
|
|
94
172
|
// display string when nothing resolves it). `@object-ui/fields` and
|
|
95
173
|
// `@object-ui/plugin-charts` each carried a byte-identical private copy;
|
package/dist/protocols/index.js
CHANGED
|
@@ -15,5 +15,13 @@ export * from './KeyboardProtocol.js';
|
|
|
15
15
|
// which declares its own `NotificationSystemConfig` and is what every surface
|
|
16
16
|
// reads. Re-typing the bridge would have meant re-declaring a vocabulary the
|
|
17
17
|
// spec had just retired (AGENTS.md #0.1).
|
|
18
|
-
|
|
18
|
+
// `ResponsiveProtocol` removed in the objectstack#11027 uptake (objectui#7580):
|
|
19
|
+
// it bridged `@objectstack/spec/ui`'s `ResponsiveConfig`, which that retirement
|
|
20
|
+
// deleted with no successor, and it had zero importers in this repo (measured on
|
|
21
|
+
// objectui#4773; `docs/audits/2901-spec-enum-renderer-coverage.md` had already
|
|
22
|
+
// recorded it as one of the zero-importer protocols). Re-typing the bridge would
|
|
23
|
+
// have meant re-declaring a vocabulary the spec had just retired, for a reader
|
|
24
|
+
// that does not exist — AGENTS.md #0.1, and the same disposition
|
|
25
|
+
// `NotificationProtocol` got above. The layout vocabulary that DOES have a
|
|
26
|
+
// renderer is re-homed instead, in `@object-ui/types` and `@object-ui/layout`.
|
|
19
27
|
export * from './SharingProtocol.js';
|