@stndrds/schema 1.0.0-alpha.279 → 1.0.0-alpha.281
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/dist/all-BVp3k9Hi.d.ts +471 -0
- package/dist/all-CnIU2anT.d.mts +471 -0
- package/dist/{chunk-PQEOIDXD.mjs → chunk-A5PPZ2FM.mjs} +1 -1
- package/dist/{chunk-ZEPGMHCK.js → chunk-E47WAI5K.js} +4 -4
- package/dist/{chunk-ZBWTAKZO.js → chunk-HWZRSXFB.js} +6 -1
- package/dist/{chunk-DEHBEFGO.js → chunk-LRFLSFIA.js} +3 -3
- package/dist/{chunk-QUZ3PN36.mjs → chunk-MLTXSBOB.mjs} +1 -1
- package/dist/{chunk-5PLJHYSL.mjs → chunk-ORPCS24B.mjs} +5 -11
- package/dist/{chunk-FRCDMQER.js → chunk-OYHBQMC7.js} +34 -0
- package/dist/{chunk-V2WJFUZW.mjs → chunk-SYQDFZ74.mjs} +6 -1
- package/dist/{chunk-QMAVKX3Y.js → chunk-TU6ECJFZ.js} +37 -43
- package/dist/chunk-XCLVXM7F.mjs +74 -0
- package/dist/exceptions.d.mts +5 -0
- package/dist/exceptions.d.ts +5 -0
- package/dist/exceptions.js +39 -39
- package/dist/exceptions.mjs +1 -1
- package/dist/{index-C3P5Dnwt.d.mts → index-DWoqObyG.d.mts} +13 -22
- package/dist/{index-SpFpkWVC.d.ts → index-TMlrIKAY.d.ts} +13 -22
- package/dist/index.d.mts +259 -94
- package/dist/index.d.ts +259 -94
- package/dist/index.js +1178 -317
- package/dist/index.mjs +970 -124
- package/dist/utils.d.mts +16 -1
- package/dist/utils.d.ts +16 -1
- package/dist/utils.js +11 -6
- package/dist/utils.mjs +2 -1
- package/dist/validation/all.d.mts +2 -2
- package/dist/validation/all.d.ts +2 -2
- package/dist/validation/all.js +29 -29
- package/dist/validation/all.mjs +4 -4
- package/dist/validation/config/index.d.mts +1 -1
- package/dist/validation/config/index.d.ts +1 -1
- package/dist/validation/config/index.js +11 -11
- package/dist/validation/config/index.mjs +2 -2
- package/dist/validation/object/index.js +14 -14
- package/dist/validation/object/index.mjs +2 -2
- package/package.json +2 -2
- package/dist/all-Bk8cRKsu.d.mts +0 -482
- package/dist/all-C_tC90ZM.d.ts +0 -482
- package/dist/chunk-QY6QFRRV.mjs +0 -41
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
3
|
+
var chunkOYHBQMC7_js = require('./chunk-OYHBQMC7.js');
|
|
4
|
+
var chunkTU6ECJFZ_js = require('./chunk-TU6ECJFZ.js');
|
|
5
|
+
var chunkLRFLSFIA_js = require('./chunk-LRFLSFIA.js');
|
|
6
|
+
var chunkE47WAI5K_js = require('./chunk-E47WAI5K.js');
|
|
7
7
|
require('./chunk-EW5XR2X3.js');
|
|
8
8
|
require('./chunk-QWKLQRBX.js');
|
|
9
9
|
require('./chunk-KNGWHQLR.js');
|
|
@@ -13,7 +13,7 @@ var chunk5WATIVCA_js = require('./chunk-5WATIVCA.js');
|
|
|
13
13
|
var chunkSI34M4IC_js = require('./chunk-SI34M4IC.js');
|
|
14
14
|
var chunkYIP5FJ5H_js = require('./chunk-YIP5FJ5H.js');
|
|
15
15
|
var chunkZPFOKBIN_js = require('./chunk-ZPFOKBIN.js');
|
|
16
|
-
var
|
|
16
|
+
var chunkHWZRSXFB_js = require('./chunk-HWZRSXFB.js');
|
|
17
17
|
require('./chunk-ACKMC6FL.js');
|
|
18
18
|
require('./chunk-E6JUYGJX.js');
|
|
19
19
|
var chunkQ4SZAMJT_js = require('./chunk-Q4SZAMJT.js');
|
|
@@ -81,7 +81,7 @@ function inferInverseCardinality(cardinality) {
|
|
|
81
81
|
return cardinality === "one" ? "many" : "many";
|
|
82
82
|
}
|
|
83
83
|
function isAttributeSortable2(attr) {
|
|
84
|
-
return
|
|
84
|
+
return chunkTU6ECJFZ_js.isAttributeSortable(attr);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
// src/types/audit.ts
|
|
@@ -148,14 +148,14 @@ function sessionStateToLegacyStatus(state) {
|
|
|
148
148
|
return "idle";
|
|
149
149
|
case "parked":
|
|
150
150
|
if (state.parkedOn === void 0) {
|
|
151
|
-
throw new
|
|
151
|
+
throw new chunkHWZRSXFB_js.SchemaError("parked state without parkedOn", chunkHWZRSXFB_js.SchemaErrorCode.INVARIANT_VIOLATION);
|
|
152
152
|
}
|
|
153
153
|
return state.parkedOn === "agents" ? "waiting_agents" : "waiting_human";
|
|
154
154
|
case "terminal":
|
|
155
155
|
if (state.outcome === void 0) {
|
|
156
|
-
throw new
|
|
156
|
+
throw new chunkHWZRSXFB_js.SchemaError(
|
|
157
157
|
"terminal state without outcome",
|
|
158
|
-
|
|
158
|
+
chunkHWZRSXFB_js.SchemaErrorCode.INVARIANT_VIOLATION
|
|
159
159
|
);
|
|
160
160
|
}
|
|
161
161
|
return state.outcome;
|
|
@@ -185,6 +185,18 @@ var SESSION_TERMINAL_STATUSES = [
|
|
|
185
185
|
function isTerminalSessionStatus(status2) {
|
|
186
186
|
return SESSION_TERMINAL_STATUSES.includes(status2);
|
|
187
187
|
}
|
|
188
|
+
var CLAIMABLE_SESSION_STATUSES = [
|
|
189
|
+
"idle",
|
|
190
|
+
"completed",
|
|
191
|
+
"waiting_human",
|
|
192
|
+
"waiting_agents",
|
|
193
|
+
"cancelled",
|
|
194
|
+
"failed",
|
|
195
|
+
"timeout"
|
|
196
|
+
];
|
|
197
|
+
function isClaimableSessionStatus(status2) {
|
|
198
|
+
return CLAIMABLE_SESSION_STATUSES.includes(status2);
|
|
199
|
+
}
|
|
188
200
|
var DEFAULT_APPROVAL_POLICY = Object.freeze({
|
|
189
201
|
mutation: "ask",
|
|
190
202
|
destructive: "ask",
|
|
@@ -205,7 +217,7 @@ var NATIVE_AGENT_UI_PART_IDS_METADATA_KEY = "__stndrdsNativeUiPartIds";
|
|
|
205
217
|
var NATIVE_AGENT_UI_PART_IDS_METADATA_SCHEMA_VERSION = 1;
|
|
206
218
|
var INVALID_NATIVE_PART_IDS = "Native agent UI part IDs metadata is invalid";
|
|
207
219
|
function invalidNativePartIds() {
|
|
208
|
-
throw new
|
|
220
|
+
throw new chunkHWZRSXFB_js.ValidationError(INVALID_NATIVE_PART_IDS, []);
|
|
209
221
|
}
|
|
210
222
|
function isPlainRecord(value) {
|
|
211
223
|
if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
@@ -376,9 +388,6 @@ function isListView(view) {
|
|
|
376
388
|
function isFieldGroup(group2) {
|
|
377
389
|
return group2.type === "fields";
|
|
378
390
|
}
|
|
379
|
-
function isRelationGroup(group2) {
|
|
380
|
-
return group2.type === "relation";
|
|
381
|
-
}
|
|
382
391
|
|
|
383
392
|
// src/types/pagination.ts
|
|
384
393
|
var COUNT_MODES = ["none", "estimated", "exact"];
|
|
@@ -386,7 +395,7 @@ function parseCountMode(value) {
|
|
|
386
395
|
if (typeof value === "string" && COUNT_MODES.includes(value)) {
|
|
387
396
|
return value;
|
|
388
397
|
}
|
|
389
|
-
throw new
|
|
398
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
390
399
|
// biome-ignore lint/style/useTemplate: see the comment above.
|
|
391
400
|
"countMode must be one of: " + COUNT_MODES.join(", ") + " (received: " + String(value) + ")",
|
|
392
401
|
[]
|
|
@@ -493,7 +502,7 @@ function isDateRangeValue(value) {
|
|
|
493
502
|
return typeof value === "object" && value !== null && typeof value.start === "string";
|
|
494
503
|
}
|
|
495
504
|
function normalizeDateValue(value, attr) {
|
|
496
|
-
if (
|
|
505
|
+
if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) return null;
|
|
497
506
|
if (isDateRangeValue(value)) {
|
|
498
507
|
return attr.endDate ? { start: value.start, end: value.end ?? null } : value.start;
|
|
499
508
|
}
|
|
@@ -631,7 +640,7 @@ function formatMultiselect(value, attribute) {
|
|
|
631
640
|
return value.join(", ");
|
|
632
641
|
}
|
|
633
642
|
function formatAttributeValue(value, attribute) {
|
|
634
|
-
if (
|
|
643
|
+
if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) {
|
|
635
644
|
return EMPTY_VALUE_PLACEHOLDER;
|
|
636
645
|
}
|
|
637
646
|
switch (attribute.type) {
|
|
@@ -784,7 +793,7 @@ function renderLabelExpression(template, values, fallback = DEFAULT_LABEL_FALLBA
|
|
|
784
793
|
break;
|
|
785
794
|
}
|
|
786
795
|
}
|
|
787
|
-
const isEmpty2 =
|
|
796
|
+
const isEmpty2 = chunkE47WAI5K_js.isNullishOrEmptyString(value);
|
|
788
797
|
if (isEmpty2 && pipes.length === 0) return "";
|
|
789
798
|
for (const pipeExpr of pipes) {
|
|
790
799
|
const { name: pipeName, args } = parsePipeExpression(pipeExpr);
|
|
@@ -861,7 +870,7 @@ function relationPropertyDefs(attribute) {
|
|
|
861
870
|
return attribute.properties?.definitions;
|
|
862
871
|
}
|
|
863
872
|
function extractValueRefs(value) {
|
|
864
|
-
if (
|
|
873
|
+
if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) return [];
|
|
865
874
|
if (typeof value === "string") return [{ id: value }];
|
|
866
875
|
if (Array.isArray(value)) return value.flatMap((item) => extractValueRefs(item));
|
|
867
876
|
if (typeof value === "object" && "id" in value) {
|
|
@@ -1065,24 +1074,24 @@ function validateObjectName(name) {
|
|
|
1065
1074
|
OBJECT_NAME_SCHEMA.parse(name);
|
|
1066
1075
|
} catch (error) {
|
|
1067
1076
|
if (error instanceof z2__default.default.ZodError) {
|
|
1068
|
-
throw new
|
|
1077
|
+
throw new chunkHWZRSXFB_js.SchemaError(error.issues[0].message, chunkHWZRSXFB_js.SchemaErrorCode.INVALID_OBJECT_NAME);
|
|
1069
1078
|
}
|
|
1070
1079
|
throw error;
|
|
1071
1080
|
}
|
|
1072
1081
|
}
|
|
1073
1082
|
function validateViewName(name) {
|
|
1074
1083
|
if (!name || name.length === 0) {
|
|
1075
|
-
throw new
|
|
1084
|
+
throw new chunkHWZRSXFB_js.ValidationError("View name cannot be empty", [
|
|
1076
1085
|
{ path: ["name"], message: "View name cannot be empty" }
|
|
1077
1086
|
]);
|
|
1078
1087
|
}
|
|
1079
1088
|
if (name.length > MAX_NAME_LENGTH) {
|
|
1080
|
-
throw new
|
|
1089
|
+
throw new chunkHWZRSXFB_js.ValidationError("View name is too long", [
|
|
1081
1090
|
{ path: ["name"], message: `View name is too long (max ${MAX_NAME_LENGTH} characters)` }
|
|
1082
1091
|
]);
|
|
1083
1092
|
}
|
|
1084
1093
|
if (!VIEW_NAME_REGEX.test(name)) {
|
|
1085
|
-
throw new
|
|
1094
|
+
throw new chunkHWZRSXFB_js.ValidationError("Invalid view name format", [
|
|
1086
1095
|
{
|
|
1087
1096
|
path: ["name"],
|
|
1088
1097
|
message: "View name must be in kebab-case (e.g., 'detail', 'list-view')"
|
|
@@ -1114,10 +1123,10 @@ function validateAttributeName(name) {
|
|
|
1114
1123
|
"[AttributeBuilder] Invalid attribute name format.\nName must be a valid variable identifier:\n \u2705 Valid: 'firstName', 'first_name', 'FirstName', 'FIRST_NAME'\n \u274C Invalid: 'first-name', 'first name', '123name', 'first.name'"
|
|
1115
1124
|
);
|
|
1116
1125
|
}
|
|
1117
|
-
if (
|
|
1126
|
+
if (chunkTU6ECJFZ_js.RESERVED_ATTRIBUTE_NAMES.includes(name)) {
|
|
1118
1127
|
throw new Error(
|
|
1119
1128
|
`[AttributeBuilder] "${name}" is a reserved name and cannot be used as an attribute name.
|
|
1120
|
-
Reserved names: ${
|
|
1129
|
+
Reserved names: ${chunkTU6ECJFZ_js.RESERVED_ATTRIBUTE_NAMES.join(", ")}`
|
|
1121
1130
|
);
|
|
1122
1131
|
}
|
|
1123
1132
|
}
|
|
@@ -1184,7 +1193,7 @@ var DEFAULT_AGENT_EXECUTION_CONFIG = {
|
|
|
1184
1193
|
var AgentBuilder = class {
|
|
1185
1194
|
constructor(config) {
|
|
1186
1195
|
if (!config.name || config.name.trim().length === 0) {
|
|
1187
|
-
throw new
|
|
1196
|
+
throw new chunkHWZRSXFB_js.ValidationError("Agent name is required", []);
|
|
1188
1197
|
}
|
|
1189
1198
|
this.bp = { name: config.name, system: true, visibility: "workspace", triggers: [] };
|
|
1190
1199
|
}
|
|
@@ -1318,13 +1327,13 @@ var AgentBuilder = class {
|
|
|
1318
1327
|
}
|
|
1319
1328
|
build() {
|
|
1320
1329
|
if (!this.bp.systemPrompt) {
|
|
1321
|
-
throw new
|
|
1330
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Agent "${this.bp.name}": systemPrompt is required`, []);
|
|
1322
1331
|
}
|
|
1323
1332
|
if (!this.bp.model) {
|
|
1324
|
-
throw new
|
|
1333
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Agent "${this.bp.name}": model is required`, []);
|
|
1325
1334
|
}
|
|
1326
1335
|
if (this.bp.system && this.bp.visibility === "private") {
|
|
1327
|
-
throw new
|
|
1336
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
1328
1337
|
`Agent "${this.bp.name}": system agents must use workspace visibility`,
|
|
1329
1338
|
[]
|
|
1330
1339
|
);
|
|
@@ -1332,7 +1341,7 @@ var AgentBuilder = class {
|
|
|
1332
1341
|
assertUniqueBy(
|
|
1333
1342
|
this.bp.triggers,
|
|
1334
1343
|
(t) => t.name,
|
|
1335
|
-
(name) => new
|
|
1344
|
+
(name) => new chunkHWZRSXFB_js.ValidationError(`Agent "${this.bp.name}": duplicate trigger name "${name}"`, [])
|
|
1336
1345
|
);
|
|
1337
1346
|
return {
|
|
1338
1347
|
...this.bp,
|
|
@@ -1387,7 +1396,7 @@ var BaseAttributeBuilder = class {
|
|
|
1387
1396
|
* @see https://standardschema.dev/
|
|
1388
1397
|
*/
|
|
1389
1398
|
get "~standard"() {
|
|
1390
|
-
const zodSchema =
|
|
1399
|
+
const zodSchema = chunkE47WAI5K_js.createAttributeValidator(this.build());
|
|
1391
1400
|
return createStandardSchemaProps(zodSchema);
|
|
1392
1401
|
}
|
|
1393
1402
|
constructor(type, name, label) {
|
|
@@ -2134,9 +2143,9 @@ var RollupAttributeBuilder = class extends BaseAttributeBuilder {
|
|
|
2134
2143
|
if (fn === "original" && targetType !== void 0 && targetType !== "select" && targetType !== "status" && targetType !== "multiselect") {
|
|
2135
2144
|
const relation2 = this.attr.relationAttribute ?? "relation";
|
|
2136
2145
|
const target = this.attr.targetAttribute ?? "field";
|
|
2137
|
-
throw new
|
|
2146
|
+
throw new chunkHWZRSXFB_js.SchemaError(
|
|
2138
2147
|
`Rollup "${this.attr.name}": .using("original") only supports a "select", "status", or "multiselect" target, but .targetType("${targetType}") was given. To surface a plain ${targetType} value from a related record, use a formula instead \u2014 e.g. formula({ name: "${this.attr.name}", label: "\u2026" }).expression("${relation2}.${target}").`,
|
|
2139
|
-
|
|
2148
|
+
chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2140
2149
|
);
|
|
2141
2150
|
}
|
|
2142
2151
|
return super.build();
|
|
@@ -2646,7 +2655,7 @@ var ObjectBuilder = class {
|
|
|
2646
2655
|
* @see https://standardschema.dev/
|
|
2647
2656
|
*/
|
|
2648
2657
|
get "~standard"() {
|
|
2649
|
-
const zodSchema =
|
|
2658
|
+
const zodSchema = chunkE47WAI5K_js.createObjectValidator(this.build());
|
|
2650
2659
|
return createStandardSchemaProps(zodSchema);
|
|
2651
2660
|
}
|
|
2652
2661
|
/**
|
|
@@ -2774,7 +2783,7 @@ var ObjectBuilder = class {
|
|
|
2774
2783
|
assertUniqueBy(
|
|
2775
2784
|
[...this.obj.attributes, ...finalAttrs],
|
|
2776
2785
|
(attribute) => attribute.name,
|
|
2777
|
-
(name) => new
|
|
2786
|
+
(name) => new chunkHWZRSXFB_js.DuplicateError(
|
|
2778
2787
|
"attribute",
|
|
2779
2788
|
name,
|
|
2780
2789
|
`Object "${this.obj.name}": duplicate attribute name "${name}"`
|
|
@@ -2799,6 +2808,21 @@ var ObjectBuilder = class {
|
|
|
2799
2808
|
this.obj.metadata = { ...this.obj.metadata, order: value };
|
|
2800
2809
|
return this;
|
|
2801
2810
|
}
|
|
2811
|
+
/**
|
|
2812
|
+
* Hide this object from navigation surfaces — the sidebar data section and
|
|
2813
|
+
* the command palette, which already honour `metadata.hidden`. For objects
|
|
2814
|
+
* that own a dedicated surface: `drives` has the Drive page, so listing it
|
|
2815
|
+
* beside business objects would offer the same thing twice under two
|
|
2816
|
+
* different affordances.
|
|
2817
|
+
*
|
|
2818
|
+
* The object stays whole everywhere else: API, search, permissions, agent
|
|
2819
|
+
* tools, filters and record pages all continue to see it. This hides a
|
|
2820
|
+
* navigation entry; it never restricts access.
|
|
2821
|
+
*/
|
|
2822
|
+
hidden() {
|
|
2823
|
+
this.obj.metadata = { ...this.obj.metadata, hidden: true };
|
|
2824
|
+
return this;
|
|
2825
|
+
}
|
|
2802
2826
|
/**
|
|
2803
2827
|
* Set the label expression template for displaying records
|
|
2804
2828
|
* This is REQUIRED for every object.
|
|
@@ -2888,26 +2912,26 @@ var ObjectBuilder = class {
|
|
|
2888
2912
|
throw new Error("[ObjectBuilder] Missing required field: label");
|
|
2889
2913
|
}
|
|
2890
2914
|
if (!this._labelExpression) {
|
|
2891
|
-
throw new
|
|
2915
|
+
throw new chunkHWZRSXFB_js.SchemaError(
|
|
2892
2916
|
`Object "${this.obj.name}" must have a labelExpression. The labelExpression defines how records are displayed in lists and relations (e.g. "{{ name }}").`,
|
|
2893
|
-
|
|
2917
|
+
chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2894
2918
|
);
|
|
2895
2919
|
}
|
|
2896
2920
|
const labelResult = labelExpressionSchema.safeParse(this._labelExpression);
|
|
2897
2921
|
if (!labelResult.success) {
|
|
2898
2922
|
const errorMsg = labelResult.error.issues[0]?.message ?? "Invalid labelExpression";
|
|
2899
|
-
throw new
|
|
2923
|
+
throw new chunkHWZRSXFB_js.SchemaError(
|
|
2900
2924
|
`Invalid labelExpression for "${this.obj.name}": ${errorMsg}`,
|
|
2901
|
-
|
|
2925
|
+
chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2902
2926
|
);
|
|
2903
2927
|
}
|
|
2904
2928
|
if (this._embeddingExpression !== void 0) {
|
|
2905
2929
|
const embeddingResult = labelExpressionSchema.safeParse(this._embeddingExpression);
|
|
2906
2930
|
if (!embeddingResult.success) {
|
|
2907
2931
|
const errorMsg = embeddingResult.error.issues[0]?.message ?? "Invalid embeddingExpression";
|
|
2908
|
-
throw new
|
|
2932
|
+
throw new chunkHWZRSXFB_js.SchemaError(
|
|
2909
2933
|
`Invalid embeddingExpression for "${this.obj.name}": ${errorMsg}`,
|
|
2910
|
-
|
|
2934
|
+
chunkHWZRSXFB_js.SchemaErrorCode.VALIDATION_FAILED
|
|
2911
2935
|
);
|
|
2912
2936
|
}
|
|
2913
2937
|
}
|
|
@@ -2949,7 +2973,7 @@ function object(config) {
|
|
|
2949
2973
|
}
|
|
2950
2974
|
function validatePresetStructure(presetId, nodes, depth) {
|
|
2951
2975
|
const fail = (message, detail) => {
|
|
2952
|
-
throw new
|
|
2976
|
+
throw new chunkHWZRSXFB_js.ValidationError(message, [
|
|
2953
2977
|
{ path: ["documentLayout", "presets", presetId], message: detail }
|
|
2954
2978
|
]);
|
|
2955
2979
|
};
|
|
@@ -3048,74 +3072,6 @@ var GroupBuilder = class {
|
|
|
3048
3072
|
return this.data;
|
|
3049
3073
|
}
|
|
3050
3074
|
};
|
|
3051
|
-
var RelationGroupBuilder = class {
|
|
3052
|
-
constructor(id, label, attribute) {
|
|
3053
|
-
this.data = { type: "relation" };
|
|
3054
|
-
this.data.id = id;
|
|
3055
|
-
this.data.label = label;
|
|
3056
|
-
this.data.attribute = attribute;
|
|
3057
|
-
}
|
|
3058
|
-
/**
|
|
3059
|
-
* Set group description
|
|
3060
|
-
*/
|
|
3061
|
-
description(value) {
|
|
3062
|
-
this.data.description = value;
|
|
3063
|
-
return this;
|
|
3064
|
-
}
|
|
3065
|
-
/**
|
|
3066
|
-
* Make group collapsible
|
|
3067
|
-
* @param collapsed - Initial collapsed state (default: false)
|
|
3068
|
-
*/
|
|
3069
|
-
collapsible(collapsed = false) {
|
|
3070
|
-
this.data.collapsible = true;
|
|
3071
|
-
this.data.collapsed = collapsed;
|
|
3072
|
-
return this;
|
|
3073
|
-
}
|
|
3074
|
-
/**
|
|
3075
|
-
* Set display order
|
|
3076
|
-
*/
|
|
3077
|
-
order(value) {
|
|
3078
|
-
this.data.order = value;
|
|
3079
|
-
return this;
|
|
3080
|
-
}
|
|
3081
|
-
/**
|
|
3082
|
-
* Set columns to display in the relations table
|
|
3083
|
-
* @example .columns("name", "email", "phone")
|
|
3084
|
-
*/
|
|
3085
|
-
columns(...names) {
|
|
3086
|
-
this.data.columns = names;
|
|
3087
|
-
return this;
|
|
3088
|
-
}
|
|
3089
|
-
/**
|
|
3090
|
-
* Set the group as read-only (no add/remove/edit)
|
|
3091
|
-
*/
|
|
3092
|
-
readOnly(value = true) {
|
|
3093
|
-
this.data.readOnly = value;
|
|
3094
|
-
return this;
|
|
3095
|
-
}
|
|
3096
|
-
/**
|
|
3097
|
-
* Allow creating new related records inline
|
|
3098
|
-
*/
|
|
3099
|
-
allowCreate(value = true) {
|
|
3100
|
-
this.data.allowCreate = value;
|
|
3101
|
-
return this;
|
|
3102
|
-
}
|
|
3103
|
-
/**
|
|
3104
|
-
* Build the relation group definition
|
|
3105
|
-
*/
|
|
3106
|
-
build() {
|
|
3107
|
-
if (!this.data.id) {
|
|
3108
|
-
throw new Error("[RelationGroupBuilder] id is required");
|
|
3109
|
-
}
|
|
3110
|
-
if (!this.data.label) {
|
|
3111
|
-
throw new Error("[RelationGroupBuilder] label is required");
|
|
3112
|
-
}
|
|
3113
|
-
if (!this.data.attribute) {
|
|
3114
|
-
throw new Error("[RelationGroupBuilder] attribute is required");
|
|
3115
|
-
}
|
|
3116
|
-
return this.data;
|
|
3117
|
-
}
|
|
3118
|
-
};
|
|
3119
3075
|
var TableTabConfig = class {
|
|
3120
3076
|
/** @internal */
|
|
3121
3077
|
constructor(view, tabData) {
|
|
@@ -3466,7 +3422,7 @@ var TabBuilder = class {
|
|
|
3466
3422
|
// ─────────────────────────────────────────────────────────────────────────
|
|
3467
3423
|
/**
|
|
3468
3424
|
* Create a form tab with groups
|
|
3469
|
-
* @example .form(group("info", "Info").fields("name", "email")
|
|
3425
|
+
* @example .form(group("info", "Info").fields("name", "email"))
|
|
3470
3426
|
*/
|
|
3471
3427
|
form(...groups) {
|
|
3472
3428
|
if (groups.length === 0) {
|
|
@@ -3477,9 +3433,7 @@ var TabBuilder = class {
|
|
|
3477
3433
|
const tab = {
|
|
3478
3434
|
...this.base,
|
|
3479
3435
|
type: "form",
|
|
3480
|
-
groups: groups.map(
|
|
3481
|
-
(g) => g instanceof GroupBuilder || g instanceof RelationGroupBuilder ? g.build() : g
|
|
3482
|
-
)
|
|
3436
|
+
groups: groups.map((g) => g instanceof GroupBuilder ? g.build() : g)
|
|
3483
3437
|
};
|
|
3484
3438
|
return this.view._addTab(tab);
|
|
3485
3439
|
}
|
|
@@ -3790,7 +3744,7 @@ var ListViewBuilder = class {
|
|
|
3790
3744
|
}
|
|
3791
3745
|
const config = {
|
|
3792
3746
|
defaultFilters: this.data.defaultFilters ? {
|
|
3793
|
-
id:
|
|
3747
|
+
id: chunkOYHBQMC7_js.generateId(),
|
|
3794
3748
|
combinator: this.data.defaultFilters.combinator,
|
|
3795
3749
|
rules: this.data.defaultFilters.rules
|
|
3796
3750
|
} : void 0,
|
|
@@ -3805,7 +3759,7 @@ var ListViewBuilder = class {
|
|
|
3805
3759
|
visibility: tab.visibility,
|
|
3806
3760
|
columns: tab.columns,
|
|
3807
3761
|
filters: tab.filters ? {
|
|
3808
|
-
id:
|
|
3762
|
+
id: chunkOYHBQMC7_js.generateId(),
|
|
3809
3763
|
combinator: tab.filters.combinator,
|
|
3810
3764
|
rules: tab.filters.rules
|
|
3811
3765
|
} : void 0,
|
|
@@ -3971,7 +3925,7 @@ var ListViewTabConfigBuilder = class _ListViewTabConfigBuilder {
|
|
|
3971
3925
|
const protectedAttribute = findProtectedTabFilterAttribute(filters);
|
|
3972
3926
|
if (protectedAttribute) {
|
|
3973
3927
|
const message = `Tab filters cannot target "${protectedAttribute}". Use .visibility("private")`;
|
|
3974
|
-
throw new
|
|
3928
|
+
throw new chunkHWZRSXFB_js.ValidationError(message, [{ path: ["filters"], message }]);
|
|
3975
3929
|
}
|
|
3976
3930
|
this.tabData.filters = filters;
|
|
3977
3931
|
return this;
|
|
@@ -4023,9 +3977,6 @@ function listView(name, label) {
|
|
|
4023
3977
|
function group(id, label) {
|
|
4024
3978
|
return new GroupBuilder(id, label);
|
|
4025
3979
|
}
|
|
4026
|
-
function relationGroup(id, label, attribute) {
|
|
4027
|
-
return new RelationGroupBuilder(id, label, attribute);
|
|
4028
|
-
}
|
|
4029
3980
|
|
|
4030
3981
|
// src/feature-flags/flag-builder.ts
|
|
4031
3982
|
function validateFlagName(name) {
|
|
@@ -4185,7 +4136,7 @@ function jsonFlag(name, defaultValue) {
|
|
|
4185
4136
|
|
|
4186
4137
|
// src/feature-flags/flag-registry.ts
|
|
4187
4138
|
function duplicateFlagError(name) {
|
|
4188
|
-
return new
|
|
4139
|
+
return new chunkHWZRSXFB_js.DuplicateError(
|
|
4189
4140
|
"feature flag",
|
|
4190
4141
|
name,
|
|
4191
4142
|
`Flag "${name}" is already registered. Each flag name must be unique.`
|
|
@@ -4263,7 +4214,7 @@ var FlagRegistry = class {
|
|
|
4263
4214
|
getOrThrow(name) {
|
|
4264
4215
|
const flag = this.get(name);
|
|
4265
4216
|
if (!flag) {
|
|
4266
|
-
throw new
|
|
4217
|
+
throw new chunkHWZRSXFB_js.NotFoundError(
|
|
4267
4218
|
"Feature flag",
|
|
4268
4219
|
name,
|
|
4269
4220
|
void 0,
|
|
@@ -4362,7 +4313,25 @@ var FlagService = class {
|
|
|
4362
4313
|
* @returns Map of flag names to resolved values
|
|
4363
4314
|
*/
|
|
4364
4315
|
async resolveAll(context = {}) {
|
|
4365
|
-
const
|
|
4316
|
+
const flagNames = this.collectFlagNames();
|
|
4317
|
+
const overrides = this.repository && flagNames.size > 0 ? await this.getAllOverrides(context, [...flagNames]) : emptyOverrides();
|
|
4318
|
+
return this.resolveNames(flagNames, overrides, context);
|
|
4319
|
+
}
|
|
4320
|
+
/**
|
|
4321
|
+
* Resolve every flag from static defaults only, never touching the
|
|
4322
|
+
* overrides repository.
|
|
4323
|
+
*
|
|
4324
|
+
* For callers running outside any tenant context (e.g. tenant-less public
|
|
4325
|
+
* HTTP routes such as the connectors OAuth callback): overrides are
|
|
4326
|
+
* tenant-scoped in storage, so without a tenant there is nothing to fetch —
|
|
4327
|
+
* and asking the repository anyway would require the very context that is
|
|
4328
|
+
* absent.
|
|
4329
|
+
*/
|
|
4330
|
+
resolveAllStatic() {
|
|
4331
|
+
return this.resolveNames(this.collectFlagNames(), emptyOverrides(), {});
|
|
4332
|
+
}
|
|
4333
|
+
/** Flag names known to this service: registry entries plus static defaults. */
|
|
4334
|
+
collectFlagNames() {
|
|
4366
4335
|
const flagNames = /* @__PURE__ */ new Set();
|
|
4367
4336
|
for (const name of this.registry.listNames()) {
|
|
4368
4337
|
flagNames.add(name);
|
|
@@ -4370,10 +4339,12 @@ var FlagService = class {
|
|
|
4370
4339
|
for (const name of this.staticDefaults.keys()) {
|
|
4371
4340
|
flagNames.add(name);
|
|
4372
4341
|
}
|
|
4373
|
-
|
|
4342
|
+
return flagNames;
|
|
4343
|
+
}
|
|
4344
|
+
resolveNames(flagNames, overrides, context) {
|
|
4345
|
+
const resolved = /* @__PURE__ */ new Map();
|
|
4374
4346
|
for (const name of flagNames) {
|
|
4375
|
-
|
|
4376
|
-
resolved.set(name, value);
|
|
4347
|
+
resolved.set(name, this.resolveValue(name, overrides, context));
|
|
4377
4348
|
}
|
|
4378
4349
|
return resolved;
|
|
4379
4350
|
}
|
|
@@ -4420,19 +4391,19 @@ var FlagService = class {
|
|
|
4420
4391
|
*/
|
|
4421
4392
|
async setOverride(flagName, level, value, options = {}) {
|
|
4422
4393
|
if (!this.repository) {
|
|
4423
|
-
throw new
|
|
4394
|
+
throw new chunkHWZRSXFB_js.SchemaError(
|
|
4424
4395
|
"Cannot set override: no FeatureFlagsRepository configured. Add featureFlags to your DatabaseAdapter to enable runtime overrides.",
|
|
4425
|
-
|
|
4396
|
+
chunkHWZRSXFB_js.SchemaErrorCode.CONFIGURATION_REQUIRED
|
|
4426
4397
|
);
|
|
4427
4398
|
}
|
|
4428
4399
|
const flag = this.registry.get(flagName);
|
|
4429
4400
|
if (flag && !flag.allowedLevels.includes(level)) {
|
|
4430
4401
|
const message = `Flag "${flagName}" does not allow ${level}-level overrides. Allowed levels: ${flag.allowedLevels.join(", ")}`;
|
|
4431
|
-
throw new
|
|
4402
|
+
throw new chunkHWZRSXFB_js.ValidationError(message, [{ path: ["level"], message }]);
|
|
4432
4403
|
}
|
|
4433
4404
|
if (flag?.system) {
|
|
4434
4405
|
const message = `Flag "${flagName}" is a system flag and cannot be overridden via API.`;
|
|
4435
|
-
throw new
|
|
4406
|
+
throw new chunkHWZRSXFB_js.ValidationError(message, [{ path: ["flagName"], message }]);
|
|
4436
4407
|
}
|
|
4437
4408
|
await this.repository.setOverride({
|
|
4438
4409
|
flagName,
|
|
@@ -4452,9 +4423,9 @@ var FlagService = class {
|
|
|
4452
4423
|
*/
|
|
4453
4424
|
async deleteOverride(flagName, level, targetId) {
|
|
4454
4425
|
if (!this.repository) {
|
|
4455
|
-
throw new
|
|
4426
|
+
throw new chunkHWZRSXFB_js.SchemaError(
|
|
4456
4427
|
"Cannot delete override: no FeatureFlagsRepository configured.",
|
|
4457
|
-
|
|
4428
|
+
chunkHWZRSXFB_js.SchemaErrorCode.CONFIGURATION_REQUIRED
|
|
4458
4429
|
);
|
|
4459
4430
|
}
|
|
4460
4431
|
await this.repository.deleteOverride(flagName, level, targetId);
|
|
@@ -4591,7 +4562,7 @@ var NativeObjectRegistryClass = class {
|
|
|
4591
4562
|
if (!object2.system) {
|
|
4592
4563
|
const message = `[NativeObjectRegistry] Cannot register object "${object2.name}" (id: ${object2.id}): missing system flag.
|
|
4593
4564
|
Native objects must have system=true. Did you call .runtime() on the builder? Remove that call \u2014 objects are system:true by default.`;
|
|
4594
|
-
throw new
|
|
4565
|
+
throw new chunkHWZRSXFB_js.ValidationError(message, []);
|
|
4595
4566
|
}
|
|
4596
4567
|
if (this.objects.has(object2.name)) {
|
|
4597
4568
|
const existing = this.objects.get(object2.name);
|
|
@@ -4599,7 +4570,7 @@ Native objects must have system=true. Did you call .runtime() on the builder? Re
|
|
|
4599
4570
|
- Existing: "${existing?.label}" (id: ${existing?.id})
|
|
4600
4571
|
- New: "${object2.label}" (id: ${object2.id})
|
|
4601
4572
|
Please use unique names for each native object.`;
|
|
4602
|
-
throw new
|
|
4573
|
+
throw new chunkHWZRSXFB_js.DuplicateError("object", object2.name, message);
|
|
4603
4574
|
}
|
|
4604
4575
|
this.objects.set(object2.name, cloneObjectDefinition(object2));
|
|
4605
4576
|
}
|
|
@@ -4631,7 +4602,7 @@ Please use unique names for each native object.`;
|
|
|
4631
4602
|
if (!object2) {
|
|
4632
4603
|
const message = `[NativeObjectRegistry] Native object "${name}" not found.
|
|
4633
4604
|
Available objects: ${this.listNames().join(", ")}`;
|
|
4634
|
-
throw new
|
|
4605
|
+
throw new chunkHWZRSXFB_js.NotFoundError("Native object", name, chunkHWZRSXFB_js.SchemaErrorCode.OBJECT_NOT_FOUND, message);
|
|
4635
4606
|
}
|
|
4636
4607
|
return object2;
|
|
4637
4608
|
}
|
|
@@ -4761,6 +4732,12 @@ var MEMORY_VIEW = detailView("memory-detail", "Memory").for("memory").default().
|
|
|
4761
4732
|
}).tab("content", "Content").richtext("content").titleAttribute("name").build();
|
|
4762
4733
|
var MEMORY_LIST_VIEW = listView("memory-list", "Memories").for("memory").default().tab("workspace", "Memories").default().icon("table").visibility("workspace").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").tab("mine", "My memories").icon("lock").visibility("private").table().columns("name", "kind", "description", "createdAt").sort("name", "asc").build();
|
|
4763
4734
|
|
|
4735
|
+
// src/native/drive.object.ts
|
|
4736
|
+
var DRIVE_OBJECT_NAME = "drives";
|
|
4737
|
+
var DRIVE_OBJECT = object({ name: DRIVE_OBJECT_NAME, label: "Drive" }).sealed().icon("folder").hidden().pluralLabel("Drives").labelExpression("{{ name }}").embeddingExpression("{{ name }}\n{{ description }}").attribute(text({ name: "name", label: "Name" }).required()).attribute(text({ name: "description", label: "Description" }).multiline()).build();
|
|
4738
|
+
var DRIVE_VIEW = detailView("drive-detail", "Drive").for(DRIVE_OBJECT_NAME).default().sidePanel({ attributes: ["description"] }).tab("documents", "Documents").documents().build();
|
|
4739
|
+
var DRIVE_LIST_VIEW = listView("drive-list", "Drives").for(DRIVE_OBJECT_NAME).default().tab("workspace", "Shared").default().icon("users").visibility("workspace").table().columns("name", "description", "updatedAt").sort("name", "asc").tab("mine", "My drives").icon("lock").visibility("private").table().columns("name", "description", "updatedAt").sort("name", "asc").build();
|
|
4740
|
+
|
|
4764
4741
|
// src/views/registry.ts
|
|
4765
4742
|
function cloneViewDefinition(view) {
|
|
4766
4743
|
return structuredClone(view);
|
|
@@ -4787,7 +4764,7 @@ var ViewRegistry = class {
|
|
|
4787
4764
|
const key = this.makeKey(view.object, view.name, view.type);
|
|
4788
4765
|
if (this.views.has(key)) {
|
|
4789
4766
|
const message = `[ViewRegistry] Duplicate view: "${view.name}" (${view.type}) for object "${view.object}"`;
|
|
4790
|
-
throw new
|
|
4767
|
+
throw new chunkHWZRSXFB_js.DuplicateError("view", key, message);
|
|
4791
4768
|
}
|
|
4792
4769
|
const storedView = cloneViewDefinition(view);
|
|
4793
4770
|
this.views.set(key, storedView);
|
|
@@ -4832,7 +4809,7 @@ var ViewRegistry = class {
|
|
|
4832
4809
|
const availableNames = available.map((v) => `${v.name} (${v.type})`).join(", ") || "(none)";
|
|
4833
4810
|
const message = `[ViewRegistry] View "${viewName}" not found for object "${objectName}".
|
|
4834
4811
|
Available views: ${availableNames}`;
|
|
4835
|
-
throw new
|
|
4812
|
+
throw new chunkHWZRSXFB_js.NotFoundError("View", `${objectName}:${viewName}`, void 0, message);
|
|
4836
4813
|
}
|
|
4837
4814
|
return view;
|
|
4838
4815
|
}
|
|
@@ -4920,7 +4897,7 @@ var viewRegistry = new ViewRegistry();
|
|
|
4920
4897
|
// src/views/auto-generator.ts
|
|
4921
4898
|
function getRuntimeAttributes(attributes, excludeNames = []) {
|
|
4922
4899
|
return attributes.filter(
|
|
4923
|
-
(attr) => !(!
|
|
4900
|
+
(attr) => !(!chunkTU6ECJFZ_js.getAttributeCapabilities(attr).lifecycle.visibleInRuntime || attr.system || excludeNames.includes(attr.name))
|
|
4924
4901
|
);
|
|
4925
4902
|
}
|
|
4926
4903
|
function sortAttributes(attributes) {
|
|
@@ -4953,7 +4930,7 @@ function generateDefaultDetailView(object2, options = {}) {
|
|
|
4953
4930
|
const { includeActivityTab = true, includeDocumentsTab = true, excludeAttributes = [] } = options;
|
|
4954
4931
|
const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
|
|
4955
4932
|
const sortedAttrs = sortAttributes(
|
|
4956
|
-
runtimeAttrs.filter((attr) =>
|
|
4933
|
+
runtimeAttrs.filter((attr) => chunkTU6ECJFZ_js.getAttributeCapabilities(attr).presentation.formField)
|
|
4957
4934
|
);
|
|
4958
4935
|
const formTab = {
|
|
4959
4936
|
id: "form",
|
|
@@ -5010,7 +4987,7 @@ function generateDefaultListView(object2, options = {}) {
|
|
|
5010
4987
|
const { excludeAttributes = [], maxListColumns = 5 } = options;
|
|
5011
4988
|
const runtimeAttrs = getRuntimeAttributes(object2.attributes, excludeAttributes);
|
|
5012
4989
|
const sortedAttrs = sortAttributes(
|
|
5013
|
-
runtimeAttrs.filter((attr) =>
|
|
4990
|
+
runtimeAttrs.filter((attr) => chunkTU6ECJFZ_js.getAttributeCapabilities(attr).presentation.defaultColumn)
|
|
5014
4991
|
);
|
|
5015
4992
|
const columns = sortedAttrs.slice(0, maxListColumns).map((attr) => attr.name);
|
|
5016
4993
|
const config = {
|
|
@@ -5140,7 +5117,7 @@ var FormRegistry = class {
|
|
|
5140
5117
|
const forms = Array.isArray(formOrForms) ? formOrForms : [formOrForms];
|
|
5141
5118
|
for (const f of forms) {
|
|
5142
5119
|
if (this.forms.has(f.name)) {
|
|
5143
|
-
throw new
|
|
5120
|
+
throw new chunkHWZRSXFB_js.DuplicateError("form", f.name, `[FormRegistry] Duplicate form: "${f.name}"`);
|
|
5144
5121
|
}
|
|
5145
5122
|
this.forms.set(f.name, cloneFormDefinition(f));
|
|
5146
5123
|
}
|
|
@@ -5701,7 +5678,7 @@ function assertAcyclicComputedDependencies(nodes) {
|
|
|
5701
5678
|
}
|
|
5702
5679
|
function parseCompileFormula(expression) {
|
|
5703
5680
|
try {
|
|
5704
|
-
return
|
|
5681
|
+
return chunkLRFLSFIA_js.parseComputedFormula(expression);
|
|
5705
5682
|
} catch (error) {
|
|
5706
5683
|
if (error instanceof Error) {
|
|
5707
5684
|
throw new ComputedFormulaCompileError(error.message);
|
|
@@ -6452,9 +6429,9 @@ function evaluateCall(functionName, args) {
|
|
|
6452
6429
|
case "percent_not_empty":
|
|
6453
6430
|
return percentByEmptyState(args[0], false);
|
|
6454
6431
|
case "count_empty":
|
|
6455
|
-
return collectionItems(args[0]).filter(
|
|
6432
|
+
return collectionItems(args[0]).filter(chunkE47WAI5K_js.isNullishOrEmptyString).length;
|
|
6456
6433
|
case "count_not_empty":
|
|
6457
|
-
return collectionItems(args[0]).filter((item) => !
|
|
6434
|
+
return collectionItems(args[0]).filter((item) => !chunkE47WAI5K_js.isNullishOrEmptyString(item)).length;
|
|
6458
6435
|
case "count_unique":
|
|
6459
6436
|
return uniqueNonEmpty(collectionItems(args[0])).length;
|
|
6460
6437
|
default:
|
|
@@ -6497,14 +6474,14 @@ function percentByEmptyState(value, countEmpty) {
|
|
|
6497
6474
|
if (items.length === 0) {
|
|
6498
6475
|
return 0;
|
|
6499
6476
|
}
|
|
6500
|
-
const count = items.filter((item) =>
|
|
6477
|
+
const count = items.filter((item) => chunkE47WAI5K_js.isNullishOrEmptyString(item) === countEmpty).length;
|
|
6501
6478
|
return count / items.length;
|
|
6502
6479
|
}
|
|
6503
6480
|
function uniqueNonEmpty(values) {
|
|
6504
6481
|
const seen = /* @__PURE__ */ new Set();
|
|
6505
6482
|
const result = [];
|
|
6506
6483
|
for (const value of values) {
|
|
6507
|
-
if (
|
|
6484
|
+
if (chunkE47WAI5K_js.isNullishOrEmptyString(value)) {
|
|
6508
6485
|
continue;
|
|
6509
6486
|
}
|
|
6510
6487
|
const key = uniqueKey(value);
|
|
@@ -6618,11 +6595,11 @@ function evaluateComputedAst(node, input) {
|
|
|
6618
6595
|
return evaluateAst(node, input);
|
|
6619
6596
|
}
|
|
6620
6597
|
function evaluateComputedFormula(expression, input) {
|
|
6621
|
-
return evaluateAst(
|
|
6598
|
+
return evaluateAst(chunkLRFLSFIA_js.parseComputedFormula(expression), input);
|
|
6622
6599
|
}
|
|
6623
6600
|
function evaluateComputedFormulaWithResult(expression, input, returnType, decimals) {
|
|
6624
6601
|
try {
|
|
6625
|
-
const raw = evaluateAst(
|
|
6602
|
+
const raw = evaluateAst(chunkLRFLSFIA_js.parseComputedFormula(expression), input);
|
|
6626
6603
|
const value = returnType ? formatComputedResult(raw, returnType, decimals) : raw;
|
|
6627
6604
|
return { value };
|
|
6628
6605
|
} catch (error) {
|
|
@@ -6747,10 +6724,10 @@ var COMPUTED_FUNCTION_METADATA = [
|
|
|
6747
6724
|
];
|
|
6748
6725
|
|
|
6749
6726
|
// src/filters/operators.ts
|
|
6750
|
-
var isEmpty = (v) =>
|
|
6727
|
+
var isEmpty = (v) => chunkE47WAI5K_js.isNullishOrEmptyString(v) || Array.isArray(v) && v.length === 0;
|
|
6751
6728
|
var toStr = (v) => v == null ? "" : String(v);
|
|
6752
6729
|
var toNum = (v) => {
|
|
6753
|
-
if (
|
|
6730
|
+
if (chunkE47WAI5K_js.isNullishOrEmptyString(v)) return null;
|
|
6754
6731
|
const n = typeof v === "number" ? v : Number(v);
|
|
6755
6732
|
return Number.isFinite(n) ? n : null;
|
|
6756
6733
|
};
|
|
@@ -6883,7 +6860,7 @@ var OPERATOR_SPECS = {
|
|
|
6883
6860
|
appliesTo: ["date"],
|
|
6884
6861
|
evaluateInMemory: (v, rv) => {
|
|
6885
6862
|
const d = toDate2(v);
|
|
6886
|
-
const bounds =
|
|
6863
|
+
const bounds = chunkTU6ECJFZ_js.resolveIsWithinBounds(rv);
|
|
6887
6864
|
if (!(d && bounds)) return false;
|
|
6888
6865
|
return d.getTime() >= bounds.startMs && d.getTime() < bounds.endMs;
|
|
6889
6866
|
}
|
|
@@ -6919,7 +6896,7 @@ var OPERATOR_SPECS = {
|
|
|
6919
6896
|
// src/filters/evaluate.ts
|
|
6920
6897
|
var systemAttribute = (name, type) => ({ id: `system:${name}`, name, label: name, type, system: true });
|
|
6921
6898
|
var RECORD_SYSTEM_ATTRIBUTES = [
|
|
6922
|
-
...Object.entries(
|
|
6899
|
+
...Object.entries(chunkTU6ECJFZ_js.SYSTEM_FILTER_ATTRIBUTE_TYPES).map(
|
|
6923
6900
|
([name, type]) => systemAttribute(name, type)
|
|
6924
6901
|
)
|
|
6925
6902
|
];
|
|
@@ -6960,7 +6937,7 @@ function evaluateRule(rule, values, attrByName) {
|
|
|
6960
6937
|
(definition) => definition.name === rule.property
|
|
6961
6938
|
);
|
|
6962
6939
|
if (!property) return false;
|
|
6963
|
-
const positiveOperator =
|
|
6940
|
+
const positiveOperator = chunkTU6ECJFZ_js.normalizeForEdgeRpc(rule.operator);
|
|
6964
6941
|
const propertySpec = OPERATOR_SPECS[positiveOperator];
|
|
6965
6942
|
if (!propertySpec?.appliesTo.includes(property.type)) return false;
|
|
6966
6943
|
const rootValue = values[rule.attribute];
|
|
@@ -6978,7 +6955,7 @@ function evaluateRule(rule, values, attrByName) {
|
|
|
6978
6955
|
property
|
|
6979
6956
|
);
|
|
6980
6957
|
});
|
|
6981
|
-
return (rule.quantifier ??
|
|
6958
|
+
return (rule.quantifier ?? chunkTU6ECJFZ_js.getOperatorPolarity(rule.operator)) === "none" ? !matches : matches;
|
|
6982
6959
|
}
|
|
6983
6960
|
const spec = OPERATOR_SPECS[rule.operator];
|
|
6984
6961
|
if (!spec) return false;
|
|
@@ -7027,7 +7004,7 @@ function normalizePhoneComparands(stored, rule) {
|
|
|
7027
7004
|
return [normalizeOne(stored), normalizeOne(rule)];
|
|
7028
7005
|
}
|
|
7029
7006
|
function normalizeComparableValue(type, value) {
|
|
7030
|
-
if (type === "currency") return
|
|
7007
|
+
if (type === "currency") return chunkTU6ECJFZ_js.extractCurrencyFilterValue(value);
|
|
7031
7008
|
if (type === "date") {
|
|
7032
7009
|
if (isDateRangeValue(value)) return dateValueStart(value);
|
|
7033
7010
|
if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.toISOString();
|
|
@@ -7050,37 +7027,6 @@ var CONNECTOR_CALLBACK_PARAM = {
|
|
|
7050
7027
|
provider: "connector_provider"
|
|
7051
7028
|
};
|
|
7052
7029
|
|
|
7053
|
-
// src/utils/canonical-json.ts
|
|
7054
|
-
function canonicalStringify(value) {
|
|
7055
|
-
const seen = /* @__PURE__ */ new Set();
|
|
7056
|
-
function encode(v) {
|
|
7057
|
-
if (v === null) return "null";
|
|
7058
|
-
switch (typeof v) {
|
|
7059
|
-
case "string":
|
|
7060
|
-
case "number":
|
|
7061
|
-
case "boolean":
|
|
7062
|
-
return JSON.stringify(v);
|
|
7063
|
-
case "undefined":
|
|
7064
|
-
return void 0;
|
|
7065
|
-
case "object":
|
|
7066
|
-
break;
|
|
7067
|
-
default:
|
|
7068
|
-
throw new chunkZBWTAKZO_js.ValidationError(`Cannot canonicalize value of type ${typeof v}`, []);
|
|
7069
|
-
}
|
|
7070
|
-
const obj = v;
|
|
7071
|
-
if (seen.has(obj)) throw new chunkZBWTAKZO_js.ValidationError("Cannot canonicalize circular structure", []);
|
|
7072
|
-
seen.add(obj);
|
|
7073
|
-
try {
|
|
7074
|
-
if (Array.isArray(obj)) return `[${obj.map((e) => encode(e) ?? "null").join(",")}]`;
|
|
7075
|
-
const entries = Object.entries(obj).map(([k, val]) => [k, encode(val)]).filter((pair) => pair[1] !== void 0).sort(([a], [b]) => a < b ? -1 : 1);
|
|
7076
|
-
return `{${entries.map(([k, val]) => `${JSON.stringify(k)}:${val}`).join(",")}}`;
|
|
7077
|
-
} finally {
|
|
7078
|
-
seen.delete(obj);
|
|
7079
|
-
}
|
|
7080
|
-
}
|
|
7081
|
-
return encode(value) ?? "null";
|
|
7082
|
-
}
|
|
7083
|
-
|
|
7084
7030
|
// src/utils/attribute-defaults.ts
|
|
7085
7031
|
var TODAY_DEFAULT = "today";
|
|
7086
7032
|
function dateInTimezone(date2, timezone) {
|
|
@@ -7167,10 +7113,10 @@ var attributeNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
|
|
|
7167
7113
|
'The attribute\'s machine name \u2014 the record\'s field key, and what `{{ name }}` refers to in a labelExpression. Must be a valid identifier: starts with a letter or underscore, then only letters/digits/underscores ("montantHt", "first_name", "FIRST_NAME" are valid; "first-name", "first name", "123name" are not). Max 63 characters. Cannot be a name reserved by the record shape itself (id, createdAt, updatedAt, createdBy, lastUpdatedBy, objectId, label, embeddingText, values, metadata, deletedAt, deletedBy, schemaVersion).'
|
|
7168
7114
|
);
|
|
7169
7115
|
var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
|
|
7170
|
-
if (
|
|
7116
|
+
if (chunkTU6ECJFZ_js.RESERVED_OBJECT_NAMES.includes(name)) {
|
|
7171
7117
|
ctx.addIssue({
|
|
7172
7118
|
code: z2.z.ZodIssueCode.custom,
|
|
7173
|
-
message: `"${name}" is a reserved object name (${
|
|
7119
|
+
message: `"${name}" is a reserved object name (${chunkTU6ECJFZ_js.RESERVED_OBJECT_NAMES.join(", ")}) and cannot be used for a new object.`
|
|
7174
7120
|
});
|
|
7175
7121
|
}
|
|
7176
7122
|
try {
|
|
@@ -7184,7 +7130,7 @@ var objectNameSchema = z2.z.string().min(1).superRefine((name, ctx) => {
|
|
|
7184
7130
|
function withConfigCheck(schema) {
|
|
7185
7131
|
return schema.superRefine((attribute, ctx) => {
|
|
7186
7132
|
try {
|
|
7187
|
-
const parsedConfig =
|
|
7133
|
+
const parsedConfig = chunkLRFLSFIA_js.parseAttributeConfigForCreate(attribute.type, {
|
|
7188
7134
|
...attribute.config ?? {},
|
|
7189
7135
|
description: attribute.description
|
|
7190
7136
|
});
|
|
@@ -7200,7 +7146,7 @@ function withConfigCheck(schema) {
|
|
|
7200
7146
|
});
|
|
7201
7147
|
}
|
|
7202
7148
|
} catch (error) {
|
|
7203
|
-
if (error instanceof
|
|
7149
|
+
if (error instanceof chunkHWZRSXFB_js.ValidationError) {
|
|
7204
7150
|
for (const issue of error.errors) {
|
|
7205
7151
|
ctx.addIssue({
|
|
7206
7152
|
code: z2.z.ZodIssueCode.custom,
|
|
@@ -7247,7 +7193,7 @@ var plannedObjectSchema = z2.z.object({
|
|
|
7247
7193
|
'Human-readable plural display label (e.g. "Devis"/"Invoices"). Defaults from `label` if omitted.'
|
|
7248
7194
|
),
|
|
7249
7195
|
description: z2.z.string().optional().describe("Help text describing what this object represents."),
|
|
7250
|
-
icon:
|
|
7196
|
+
icon: chunkLRFLSFIA_js.iconNameSchema.describe(
|
|
7251
7197
|
"Required icon name for the object. Must be a catalogue value \u2014 call `search_icons` and use a name it returns verbatim. A name that is not in the catalogue is rejected without any hint as to what would have worked, so never guess one."
|
|
7252
7198
|
),
|
|
7253
7199
|
labelExpression: labelExpressionSchema.describe(
|
|
@@ -7305,13 +7251,13 @@ var proposedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
|
|
|
7305
7251
|
z2.z.object({
|
|
7306
7252
|
objectName: viewTargetObjectNameSchema,
|
|
7307
7253
|
viewType: z2.z.literal("list").describe("Targets the object's default list view (the grid)."),
|
|
7308
|
-
canonicalConfig:
|
|
7254
|
+
canonicalConfig: chunkTU6ECJFZ_js.listViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
|
|
7309
7255
|
baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
|
|
7310
7256
|
}).strict(),
|
|
7311
7257
|
z2.z.object({
|
|
7312
7258
|
objectName: viewTargetObjectNameSchema,
|
|
7313
7259
|
viewType: z2.z.literal("detail").describe("Targets the object's default detail view (the single-record view)."),
|
|
7314
|
-
canonicalConfig:
|
|
7260
|
+
canonicalConfig: chunkTU6ECJFZ_js.detailViewConfigSchema.describe(CANONICAL_CONFIG_DESCRIPTION),
|
|
7315
7261
|
baselineToken: z2.z.string().min(1).optional().describe(BASELINE_TOKEN_DESCRIPTION)
|
|
7316
7262
|
}).strict()
|
|
7317
7263
|
]);
|
|
@@ -7325,13 +7271,13 @@ var persistedDefaultViewTargetSchema = z2.z.discriminatedUnion("viewType", [
|
|
|
7325
7271
|
z2.z.object({
|
|
7326
7272
|
objectName: z2.z.string().min(1),
|
|
7327
7273
|
viewType: z2.z.literal("list"),
|
|
7328
|
-
canonicalConfig:
|
|
7274
|
+
canonicalConfig: chunkTU6ECJFZ_js.listViewConfigSchema,
|
|
7329
7275
|
...persistedBaselineFields
|
|
7330
7276
|
}).strict(),
|
|
7331
7277
|
z2.z.object({
|
|
7332
7278
|
objectName: z2.z.string().min(1),
|
|
7333
7279
|
viewType: z2.z.literal("detail"),
|
|
7334
|
-
canonicalConfig:
|
|
7280
|
+
canonicalConfig: chunkTU6ECJFZ_js.detailViewConfigSchema,
|
|
7335
7281
|
...persistedBaselineFields
|
|
7336
7282
|
}).strict()
|
|
7337
7283
|
]).superRefine((target, ctx) => {
|
|
@@ -7478,7 +7424,7 @@ function boundSerializedPlanInput(input, ctx) {
|
|
|
7478
7424
|
});
|
|
7479
7425
|
return z2.z.NEVER;
|
|
7480
7426
|
}
|
|
7481
|
-
const serializedBytes = new TextEncoder().encode(canonicalStringify(input)).byteLength;
|
|
7427
|
+
const serializedBytes = new TextEncoder().encode(chunkOYHBQMC7_js.canonicalStringify(input)).byteLength;
|
|
7482
7428
|
if (serializedBytes > SCHEMA_PLAN_LIMITS.serializedBytes) {
|
|
7483
7429
|
ctx.addIssue({
|
|
7484
7430
|
code: "too_big",
|
|
@@ -7538,325 +7484,1229 @@ var persistedSchemaPlanSchema = z2.z.preprocess(
|
|
|
7538
7484
|
structuralPersistedSchemaPlanSchema
|
|
7539
7485
|
);
|
|
7540
7486
|
|
|
7487
|
+
// src/architect/define-operation.ts
|
|
7488
|
+
function defineOperation(def) {
|
|
7489
|
+
return def;
|
|
7490
|
+
}
|
|
7491
|
+
var operationBase = { id: z2.z.string().min(1) };
|
|
7492
|
+
var viewOperationBase = { ...operationBase, viewId: z2.z.string().min(1) };
|
|
7493
|
+
function mapView(state, viewId, fn) {
|
|
7494
|
+
if (!state.views.some((v) => v.id === viewId)) {
|
|
7495
|
+
throw new chunkHWZRSXFB_js.ValidationError(`View "${viewId}" is not in the draftable state`, []);
|
|
7496
|
+
}
|
|
7497
|
+
return { ...state, views: state.views.map((v) => v.id === viewId ? fn(v) : v) };
|
|
7498
|
+
}
|
|
7499
|
+
function moveWithin(items, from, toIndex) {
|
|
7500
|
+
const next = [...items];
|
|
7501
|
+
const [item] = next.splice(from, 1);
|
|
7502
|
+
next.splice(toIndex, 0, item);
|
|
7503
|
+
return next;
|
|
7504
|
+
}
|
|
7505
|
+
function reorderById(items, order, what) {
|
|
7506
|
+
if (order.length !== items.length) {
|
|
7507
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
7508
|
+
`${what} order lists ${order.length} ids for ${items.length} items`,
|
|
7509
|
+
[]
|
|
7510
|
+
);
|
|
7511
|
+
}
|
|
7512
|
+
return order.map((id) => {
|
|
7513
|
+
const found = items.find((item) => item.id === id);
|
|
7514
|
+
if (!found) throw new chunkHWZRSXFB_js.ValidationError(`${what} "${id}" is not in this collection`, []);
|
|
7515
|
+
return found;
|
|
7516
|
+
});
|
|
7517
|
+
}
|
|
7518
|
+
|
|
7519
|
+
// src/architect/operations/detail-view.ts
|
|
7520
|
+
function mapFormTab(view, tabId, fn) {
|
|
7521
|
+
const found = view.tabs.find((t) => t.id === tabId);
|
|
7522
|
+
if (!found) throw new chunkHWZRSXFB_js.ValidationError(`Tab "${tabId}" is not in view "${view.id}"`, []);
|
|
7523
|
+
if (found.type !== "form") {
|
|
7524
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Tab "${tabId}" is not a form tab`, []);
|
|
7525
|
+
}
|
|
7526
|
+
return { ...view, tabs: view.tabs.map((t) => t.id === tabId ? fn(found) : t) };
|
|
7527
|
+
}
|
|
7528
|
+
function requireGroup(tab, groupId) {
|
|
7529
|
+
const found = tab.groups.find((g) => g.id === groupId);
|
|
7530
|
+
if (!found) throw new chunkHWZRSXFB_js.ValidationError(`Group "${groupId}" is not in tab "${tab.id}"`, []);
|
|
7531
|
+
return found;
|
|
7532
|
+
}
|
|
7533
|
+
function locateField(tab, fieldId) {
|
|
7534
|
+
for (const group2 of tab.groups) {
|
|
7535
|
+
const field = group2.fields.find((f) => f.id === fieldId);
|
|
7536
|
+
if (field) return { group: group2, field };
|
|
7537
|
+
}
|
|
7538
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Field slot "${fieldId}" is not in tab "${tab.id}"`, []);
|
|
7539
|
+
}
|
|
7540
|
+
var tabPayload = z2.z.custom(
|
|
7541
|
+
(value) => typeof value === "object" && value !== null && "id" in value && "type" in value,
|
|
7542
|
+
{ message: "A tab must be an object carrying id and type" }
|
|
7543
|
+
);
|
|
7544
|
+
var groupPayload = z2.z.custom(
|
|
7545
|
+
(value) => typeof value === "object" && value !== null && "id" in value && "fields" in value,
|
|
7546
|
+
{ message: "A group must be an object carrying id and fields" }
|
|
7547
|
+
);
|
|
7548
|
+
var fieldPayload = z2.z.custom(
|
|
7549
|
+
(value) => typeof value === "object" && value !== null && "id" in value,
|
|
7550
|
+
{ message: "A field slot must be an object carrying an id" }
|
|
7551
|
+
);
|
|
7552
|
+
var addTabSchema = z2.z.object({
|
|
7553
|
+
...viewOperationBase,
|
|
7554
|
+
type: z2.z.literal("add_tab"),
|
|
7555
|
+
tab: tabPayload
|
|
7556
|
+
});
|
|
7557
|
+
var addTab = defineOperation({
|
|
7558
|
+
type: "add_tab",
|
|
7559
|
+
schema: addTabSchema,
|
|
7560
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => {
|
|
7561
|
+
if (view.tabs.some((t) => t.id === op.tab.id)) {
|
|
7562
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Tab "${op.tab.id}" already exists in view "${op.viewId}"`, []);
|
|
7563
|
+
}
|
|
7564
|
+
return { ...view, tabs: [...view.tabs, op.tab] };
|
|
7565
|
+
}),
|
|
7566
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tab.id }),
|
|
7567
|
+
describe: (op) => `Ajoute l'onglet \xAB ${op.tab.label} \xBB`
|
|
7568
|
+
});
|
|
7569
|
+
var removeTabSchema = z2.z.object({
|
|
7570
|
+
...viewOperationBase,
|
|
7571
|
+
type: z2.z.literal("remove_tab"),
|
|
7572
|
+
tabId: z2.z.string().min(1)
|
|
7573
|
+
});
|
|
7574
|
+
var removeTab = defineOperation({
|
|
7575
|
+
type: "remove_tab",
|
|
7576
|
+
schema: removeTabSchema,
|
|
7577
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => {
|
|
7578
|
+
if (!view.tabs.some((t) => t.id === op.tabId)) {
|
|
7579
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
|
|
7580
|
+
}
|
|
7581
|
+
return { ...view, tabs: view.tabs.filter((t) => t.id !== op.tabId) };
|
|
7582
|
+
}),
|
|
7583
|
+
focus: (op) => ({ viewId: op.viewId }),
|
|
7584
|
+
describe: (op) => `Supprime l'onglet ${op.tabId}`
|
|
7585
|
+
});
|
|
7586
|
+
var updateTabSchema = z2.z.object({
|
|
7587
|
+
...viewOperationBase,
|
|
7588
|
+
type: z2.z.literal("update_tab"),
|
|
7589
|
+
tabId: z2.z.string().min(1),
|
|
7590
|
+
changes: z2.z.object({
|
|
7591
|
+
label: z2.z.string().min(1).optional(),
|
|
7592
|
+
icon: z2.z.custom((v) => typeof v === "string" && v.length > 0).optional(),
|
|
7593
|
+
order: z2.z.number().int().optional()
|
|
7594
|
+
}).refine((c) => Object.keys(c).length > 0, "update_tab needs at least one change")
|
|
7595
|
+
});
|
|
7596
|
+
var updateTab = defineOperation({
|
|
7597
|
+
type: "update_tab",
|
|
7598
|
+
schema: updateTabSchema,
|
|
7599
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => {
|
|
7600
|
+
if (!view.tabs.some((t) => t.id === op.tabId)) {
|
|
7601
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Tab "${op.tabId}" is not in view "${op.viewId}"`, []);
|
|
7602
|
+
}
|
|
7603
|
+
return {
|
|
7604
|
+
...view,
|
|
7605
|
+
tabs: view.tabs.map((t) => t.id === op.tabId ? { ...t, ...op.changes } : t)
|
|
7606
|
+
};
|
|
7607
|
+
}),
|
|
7608
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
|
|
7609
|
+
describe: (op) => op.changes.label ? `Renomme l'onglet en \xAB ${op.changes.label} \xBB` : `Modifie l'onglet ${op.tabId}`
|
|
7610
|
+
});
|
|
7611
|
+
var reorderTabsSchema = z2.z.object({
|
|
7612
|
+
...viewOperationBase,
|
|
7613
|
+
type: z2.z.literal("reorder_tabs"),
|
|
7614
|
+
tabOrder: z2.z.array(z2.z.string().min(1))
|
|
7615
|
+
});
|
|
7616
|
+
var reorderTabs = defineOperation({
|
|
7617
|
+
type: "reorder_tabs",
|
|
7618
|
+
schema: reorderTabsSchema,
|
|
7619
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => ({
|
|
7620
|
+
...view,
|
|
7621
|
+
tabs: reorderById(view.tabs, op.tabOrder, "Tab")
|
|
7622
|
+
})),
|
|
7623
|
+
focus: (op) => ({ viewId: op.viewId }),
|
|
7624
|
+
describe: () => "R\xE9ordonne les onglets"
|
|
7625
|
+
});
|
|
7626
|
+
var addGroupSchema = z2.z.object({
|
|
7627
|
+
...viewOperationBase,
|
|
7628
|
+
type: z2.z.literal("add_group"),
|
|
7629
|
+
tabId: z2.z.string().min(1),
|
|
7630
|
+
group: groupPayload
|
|
7631
|
+
});
|
|
7632
|
+
var addGroup = defineOperation({
|
|
7633
|
+
type: "add_group",
|
|
7634
|
+
schema: addGroupSchema,
|
|
7635
|
+
apply: (state, op) => mapView(
|
|
7636
|
+
state,
|
|
7637
|
+
op.viewId,
|
|
7638
|
+
(view) => mapFormTab(view, op.tabId, (tab) => {
|
|
7639
|
+
if (tab.groups.some((g) => g.id === op.group.id)) {
|
|
7640
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
7641
|
+
`Group "${op.group.id}" already exists in tab "${op.tabId}"`,
|
|
7642
|
+
[]
|
|
7643
|
+
);
|
|
7644
|
+
}
|
|
7645
|
+
return { ...tab, groups: [...tab.groups, op.group] };
|
|
7646
|
+
})
|
|
7647
|
+
),
|
|
7648
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId, groupId: op.group.id }),
|
|
7649
|
+
describe: (op) => `Ajoute le groupe \xAB ${op.group.label} \xBB`
|
|
7650
|
+
});
|
|
7651
|
+
var removeGroupSchema = z2.z.object({
|
|
7652
|
+
...viewOperationBase,
|
|
7653
|
+
type: z2.z.literal("remove_group"),
|
|
7654
|
+
tabId: z2.z.string().min(1),
|
|
7655
|
+
groupId: z2.z.string().min(1)
|
|
7656
|
+
});
|
|
7657
|
+
var removeGroup = defineOperation({
|
|
7658
|
+
type: "remove_group",
|
|
7659
|
+
schema: removeGroupSchema,
|
|
7660
|
+
apply: (state, op) => mapView(
|
|
7661
|
+
state,
|
|
7662
|
+
op.viewId,
|
|
7663
|
+
(view) => mapFormTab(view, op.tabId, (tab) => {
|
|
7664
|
+
requireGroup(tab, op.groupId);
|
|
7665
|
+
return { ...tab, groups: tab.groups.filter((g) => g.id !== op.groupId) };
|
|
7666
|
+
})
|
|
7667
|
+
),
|
|
7668
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
|
|
7669
|
+
describe: (op) => `Supprime le groupe ${op.groupId}`
|
|
7670
|
+
});
|
|
7671
|
+
var setGroupLabelSchema = z2.z.object({
|
|
7672
|
+
...viewOperationBase,
|
|
7673
|
+
type: z2.z.literal("set_group_label"),
|
|
7674
|
+
tabId: z2.z.string().min(1),
|
|
7675
|
+
groupId: z2.z.string().min(1),
|
|
7676
|
+
label: z2.z.string().min(1)
|
|
7677
|
+
});
|
|
7678
|
+
var setGroupLabel = defineOperation({
|
|
7679
|
+
type: "set_group_label",
|
|
7680
|
+
schema: setGroupLabelSchema,
|
|
7681
|
+
apply: (state, op) => mapView(
|
|
7682
|
+
state,
|
|
7683
|
+
op.viewId,
|
|
7684
|
+
(view) => mapFormTab(view, op.tabId, (tab) => {
|
|
7685
|
+
requireGroup(tab, op.groupId);
|
|
7686
|
+
return {
|
|
7687
|
+
...tab,
|
|
7688
|
+
groups: tab.groups.map((g) => g.id === op.groupId ? { ...g, label: op.label } : g)
|
|
7689
|
+
};
|
|
7690
|
+
})
|
|
7691
|
+
),
|
|
7692
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId, groupId: op.groupId }),
|
|
7693
|
+
describe: (op) => `Renomme le groupe en \xAB ${op.label} \xBB`
|
|
7694
|
+
});
|
|
7695
|
+
var reorderGroupsSchema = z2.z.object({
|
|
7696
|
+
...viewOperationBase,
|
|
7697
|
+
type: z2.z.literal("reorder_groups"),
|
|
7698
|
+
tabId: z2.z.string().min(1),
|
|
7699
|
+
groupOrder: z2.z.array(z2.z.string().min(1))
|
|
7700
|
+
});
|
|
7701
|
+
var reorderGroups = defineOperation({
|
|
7702
|
+
type: "reorder_groups",
|
|
7703
|
+
schema: reorderGroupsSchema,
|
|
7704
|
+
apply: (state, op) => mapView(
|
|
7705
|
+
state,
|
|
7706
|
+
op.viewId,
|
|
7707
|
+
(view) => mapFormTab(view, op.tabId, (tab) => ({
|
|
7708
|
+
...tab,
|
|
7709
|
+
groups: reorderById(tab.groups, op.groupOrder, "Group")
|
|
7710
|
+
}))
|
|
7711
|
+
),
|
|
7712
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
|
|
7713
|
+
describe: () => "R\xE9ordonne les groupes"
|
|
7714
|
+
});
|
|
7715
|
+
var addFieldSchema = z2.z.object({
|
|
7716
|
+
...viewOperationBase,
|
|
7717
|
+
type: z2.z.literal("add_field"),
|
|
7718
|
+
tabId: z2.z.string().min(1),
|
|
7719
|
+
groupId: z2.z.string().min(1),
|
|
7720
|
+
field: fieldPayload,
|
|
7721
|
+
index: z2.z.number().int().min(0).optional()
|
|
7722
|
+
});
|
|
7723
|
+
var addField = defineOperation({
|
|
7724
|
+
type: "add_field",
|
|
7725
|
+
schema: addFieldSchema,
|
|
7726
|
+
apply: (state, op) => mapView(
|
|
7727
|
+
state,
|
|
7728
|
+
op.viewId,
|
|
7729
|
+
(view) => mapFormTab(view, op.tabId, (tab) => {
|
|
7730
|
+
requireGroup(tab, op.groupId);
|
|
7731
|
+
if (tab.groups.some((g) => g.fields.some((f) => f.id === op.field.id))) {
|
|
7732
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
7733
|
+
`Field slot "${op.field.id}" already exists in tab "${op.tabId}"`,
|
|
7734
|
+
[]
|
|
7735
|
+
);
|
|
7736
|
+
}
|
|
7737
|
+
return {
|
|
7738
|
+
...tab,
|
|
7739
|
+
groups: tab.groups.map((group2) => {
|
|
7740
|
+
if (group2.id !== op.groupId) return group2;
|
|
7741
|
+
const at = op.index ?? group2.fields.length;
|
|
7742
|
+
return {
|
|
7743
|
+
...group2,
|
|
7744
|
+
fields: [...group2.fields.slice(0, at), op.field, ...group2.fields.slice(at)]
|
|
7745
|
+
};
|
|
7746
|
+
})
|
|
7747
|
+
};
|
|
7748
|
+
})
|
|
7749
|
+
),
|
|
7750
|
+
focus: (op) => ({
|
|
7751
|
+
viewId: op.viewId,
|
|
7752
|
+
tabId: op.tabId,
|
|
7753
|
+
groupId: op.groupId,
|
|
7754
|
+
fieldId: op.field.id
|
|
7755
|
+
}),
|
|
7756
|
+
describe: (op) => `Ajoute le champ ${op.field.attribute ?? op.field.id}`
|
|
7757
|
+
});
|
|
7758
|
+
var removeFieldSchema = z2.z.object({
|
|
7759
|
+
...viewOperationBase,
|
|
7760
|
+
type: z2.z.literal("remove_field"),
|
|
7761
|
+
tabId: z2.z.string().min(1),
|
|
7762
|
+
fieldId: z2.z.string().min(1)
|
|
7763
|
+
});
|
|
7764
|
+
var removeField = defineOperation({
|
|
7765
|
+
type: "remove_field",
|
|
7766
|
+
schema: removeFieldSchema,
|
|
7767
|
+
apply: (state, op) => mapView(
|
|
7768
|
+
state,
|
|
7769
|
+
op.viewId,
|
|
7770
|
+
(view) => mapFormTab(view, op.tabId, (tab) => {
|
|
7771
|
+
const { group: group2 } = locateField(tab, op.fieldId);
|
|
7772
|
+
return {
|
|
7773
|
+
...tab,
|
|
7774
|
+
groups: tab.groups.map(
|
|
7775
|
+
(g) => g.id === group2.id ? { ...g, fields: g.fields.filter((f) => f.id !== op.fieldId) } : g
|
|
7776
|
+
)
|
|
7777
|
+
};
|
|
7778
|
+
})
|
|
7779
|
+
),
|
|
7780
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
|
|
7781
|
+
describe: (op) => `Retire le champ ${op.fieldId}`
|
|
7782
|
+
});
|
|
7783
|
+
var moveFieldSchema = z2.z.object({
|
|
7784
|
+
...viewOperationBase,
|
|
7785
|
+
type: z2.z.literal("move_field"),
|
|
7786
|
+
tabId: z2.z.string().min(1),
|
|
7787
|
+
fieldId: z2.z.string().min(1),
|
|
7788
|
+
toGroupId: z2.z.string().min(1),
|
|
7789
|
+
toIndex: z2.z.number().int().min(0)
|
|
7790
|
+
});
|
|
7791
|
+
var moveField = defineOperation({
|
|
7792
|
+
type: "move_field",
|
|
7793
|
+
schema: moveFieldSchema,
|
|
7794
|
+
apply: (state, op) => mapView(
|
|
7795
|
+
state,
|
|
7796
|
+
op.viewId,
|
|
7797
|
+
(view) => mapFormTab(view, op.tabId, (tab) => {
|
|
7798
|
+
const { group: source, field } = locateField(tab, op.fieldId);
|
|
7799
|
+
const target = requireGroup(tab, op.toGroupId);
|
|
7800
|
+
if (source.id === target.id) {
|
|
7801
|
+
const from = source.fields.findIndex((f) => f.id === op.fieldId);
|
|
7802
|
+
return {
|
|
7803
|
+
...tab,
|
|
7804
|
+
groups: tab.groups.map(
|
|
7805
|
+
(g) => g.id === source.id ? { ...g, fields: moveWithin(g.fields, from, op.toIndex) } : g
|
|
7806
|
+
)
|
|
7807
|
+
};
|
|
7808
|
+
}
|
|
7809
|
+
return {
|
|
7810
|
+
...tab,
|
|
7811
|
+
groups: tab.groups.map((group2) => {
|
|
7812
|
+
if (group2.id === source.id) {
|
|
7813
|
+
return { ...group2, fields: group2.fields.filter((f) => f.id !== op.fieldId) };
|
|
7814
|
+
}
|
|
7815
|
+
if (group2.id === target.id) {
|
|
7816
|
+
return {
|
|
7817
|
+
...group2,
|
|
7818
|
+
fields: [
|
|
7819
|
+
...group2.fields.slice(0, op.toIndex),
|
|
7820
|
+
field,
|
|
7821
|
+
...group2.fields.slice(op.toIndex)
|
|
7822
|
+
]
|
|
7823
|
+
};
|
|
7824
|
+
}
|
|
7825
|
+
return group2;
|
|
7826
|
+
})
|
|
7827
|
+
};
|
|
7828
|
+
})
|
|
7829
|
+
),
|
|
7830
|
+
focus: (op) => ({
|
|
7831
|
+
viewId: op.viewId,
|
|
7832
|
+
tabId: op.tabId,
|
|
7833
|
+
groupId: op.toGroupId,
|
|
7834
|
+
fieldId: op.fieldId
|
|
7835
|
+
}),
|
|
7836
|
+
describe: (op) => `D\xE9place le champ ${op.fieldId} vers le groupe ${op.toGroupId}`
|
|
7837
|
+
});
|
|
7838
|
+
var updateFieldSchema = z2.z.object({
|
|
7839
|
+
...viewOperationBase,
|
|
7840
|
+
type: z2.z.literal("update_field"),
|
|
7841
|
+
tabId: z2.z.string().min(1),
|
|
7842
|
+
fieldId: z2.z.string().min(1),
|
|
7843
|
+
changes: z2.z.object({
|
|
7844
|
+
label: z2.z.string().optional(),
|
|
7845
|
+
readOnly: z2.z.boolean().optional(),
|
|
7846
|
+
span: z2.z.number().int().min(1).max(12).optional()
|
|
7847
|
+
}).refine((c) => Object.keys(c).length > 0, "update_field needs at least one change")
|
|
7848
|
+
});
|
|
7849
|
+
var updateField = defineOperation({
|
|
7850
|
+
type: "update_field",
|
|
7851
|
+
schema: updateFieldSchema,
|
|
7852
|
+
apply: (state, op) => mapView(
|
|
7853
|
+
state,
|
|
7854
|
+
op.viewId,
|
|
7855
|
+
(view) => mapFormTab(view, op.tabId, (tab) => {
|
|
7856
|
+
locateField(tab, op.fieldId);
|
|
7857
|
+
return {
|
|
7858
|
+
...tab,
|
|
7859
|
+
groups: tab.groups.map((group2) => ({
|
|
7860
|
+
...group2,
|
|
7861
|
+
fields: group2.fields.map(
|
|
7862
|
+
(f) => f.id === op.fieldId ? { ...f, ...op.changes } : f
|
|
7863
|
+
)
|
|
7864
|
+
}))
|
|
7865
|
+
};
|
|
7866
|
+
})
|
|
7867
|
+
),
|
|
7868
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId, fieldId: op.fieldId }),
|
|
7869
|
+
describe: (op) => `Modifie le champ ${op.fieldId}`
|
|
7870
|
+
});
|
|
7871
|
+
var setSidePanelSchema = z2.z.object({
|
|
7872
|
+
...viewOperationBase,
|
|
7873
|
+
type: z2.z.literal("set_side_panel"),
|
|
7874
|
+
sidePanel: z2.z.object({ attributes: z2.z.array(z2.z.string().min(1)), width: z2.z.number().int().min(1).optional() }).nullable()
|
|
7875
|
+
});
|
|
7876
|
+
var setSidePanel = defineOperation({
|
|
7877
|
+
type: "set_side_panel",
|
|
7878
|
+
schema: setSidePanelSchema,
|
|
7879
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => ({
|
|
7880
|
+
...view,
|
|
7881
|
+
config: {
|
|
7882
|
+
...view.config,
|
|
7883
|
+
sidePanel: op.sidePanel ?? void 0
|
|
7884
|
+
}
|
|
7885
|
+
})),
|
|
7886
|
+
focus: (op) => ({ viewId: op.viewId }),
|
|
7887
|
+
describe: (op) => op.sidePanel ? "Active le panneau lat\xE9ral" : "Retire le panneau lat\xE9ral"
|
|
7888
|
+
});
|
|
7889
|
+
var DETAIL_VIEW_OPERATIONS = [
|
|
7890
|
+
addTab,
|
|
7891
|
+
removeTab,
|
|
7892
|
+
updateTab,
|
|
7893
|
+
reorderTabs,
|
|
7894
|
+
addGroup,
|
|
7895
|
+
removeGroup,
|
|
7896
|
+
setGroupLabel,
|
|
7897
|
+
reorderGroups,
|
|
7898
|
+
addField,
|
|
7899
|
+
removeField,
|
|
7900
|
+
moveField,
|
|
7901
|
+
updateField,
|
|
7902
|
+
setSidePanel
|
|
7903
|
+
];
|
|
7904
|
+
var listTabBase = { ...viewOperationBase, tabId: z2.z.string().min(1) };
|
|
7905
|
+
function mapListTab(state, viewId, tabId, fn) {
|
|
7906
|
+
return mapView(state, viewId, (view) => {
|
|
7907
|
+
const tabs = view.config.tabs ?? [];
|
|
7908
|
+
if (!tabs.some((t) => t.id === tabId)) {
|
|
7909
|
+
throw new chunkHWZRSXFB_js.ValidationError(`List tab "${tabId}" is not in view "${viewId}"`, []);
|
|
7910
|
+
}
|
|
7911
|
+
return {
|
|
7912
|
+
...view,
|
|
7913
|
+
config: { ...view.config, tabs: tabs.map((t) => t.id === tabId ? fn(t) : t) }
|
|
7914
|
+
};
|
|
7915
|
+
});
|
|
7916
|
+
}
|
|
7917
|
+
var listTabPayload = z2.z.custom(
|
|
7918
|
+
(value) => typeof value === "object" && value !== null && "id" in value,
|
|
7919
|
+
{ message: "A list tab must be an object carrying an id" }
|
|
7920
|
+
);
|
|
7921
|
+
var filterGroupPayload = z2.z.custom(
|
|
7922
|
+
(value) => value === null || typeof value === "object"
|
|
7923
|
+
);
|
|
7924
|
+
var sortRulesPayload = z2.z.custom((value) => Array.isArray(value));
|
|
7925
|
+
function setOnTab(type, key, valueSchema, describe) {
|
|
7926
|
+
const schema = z2.z.object({ ...listTabBase, type: z2.z.literal(type), value: valueSchema });
|
|
7927
|
+
return defineOperation({
|
|
7928
|
+
type,
|
|
7929
|
+
schema,
|
|
7930
|
+
apply: (state, op) => mapListTab(state, op.viewId, op.tabId, (tab) => {
|
|
7931
|
+
if (op.value === null) {
|
|
7932
|
+
const { [key]: _dropped, ...rest } = tab;
|
|
7933
|
+
return rest;
|
|
7934
|
+
}
|
|
7935
|
+
return { ...tab, [key]: op.value };
|
|
7936
|
+
}),
|
|
7937
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
|
|
7938
|
+
describe: (op) => describe(op.value)
|
|
7939
|
+
});
|
|
7940
|
+
}
|
|
7941
|
+
var addListTabSchema = z2.z.object({
|
|
7942
|
+
...viewOperationBase,
|
|
7943
|
+
type: z2.z.literal("add_list_tab"),
|
|
7944
|
+
tab: listTabPayload
|
|
7945
|
+
});
|
|
7946
|
+
var addListTab = defineOperation({
|
|
7947
|
+
type: "add_list_tab",
|
|
7948
|
+
schema: addListTabSchema,
|
|
7949
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => {
|
|
7950
|
+
const tabs = view.config.tabs ?? [];
|
|
7951
|
+
if (tabs.some((t) => t.id === op.tab.id)) {
|
|
7952
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
7953
|
+
`List tab "${op.tab.id}" already exists in view "${op.viewId}"`,
|
|
7954
|
+
[]
|
|
7955
|
+
);
|
|
7956
|
+
}
|
|
7957
|
+
return { ...view, config: { ...view.config, tabs: [...tabs, op.tab] } };
|
|
7958
|
+
}),
|
|
7959
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tab.id }),
|
|
7960
|
+
describe: (op) => `Ajoute l'onglet \xAB ${op.tab.label} \xBB`
|
|
7961
|
+
});
|
|
7962
|
+
var removeListTabSchema = z2.z.object({
|
|
7963
|
+
...listTabBase,
|
|
7964
|
+
type: z2.z.literal("remove_list_tab")
|
|
7965
|
+
});
|
|
7966
|
+
var removeListTab = defineOperation({
|
|
7967
|
+
type: "remove_list_tab",
|
|
7968
|
+
schema: removeListTabSchema,
|
|
7969
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => {
|
|
7970
|
+
const tabs = view.config.tabs ?? [];
|
|
7971
|
+
if (!tabs.some((t) => t.id === op.tabId)) {
|
|
7972
|
+
throw new chunkHWZRSXFB_js.ValidationError(`List tab "${op.tabId}" is not in view "${op.viewId}"`, []);
|
|
7973
|
+
}
|
|
7974
|
+
return {
|
|
7975
|
+
...view,
|
|
7976
|
+
config: { ...view.config, tabs: tabs.filter((t) => t.id !== op.tabId) }
|
|
7977
|
+
};
|
|
7978
|
+
}),
|
|
7979
|
+
focus: (op) => ({ viewId: op.viewId }),
|
|
7980
|
+
describe: (op) => `Supprime l'onglet ${op.tabId}`
|
|
7981
|
+
});
|
|
7982
|
+
var updateListTabSchema = z2.z.object({
|
|
7983
|
+
...listTabBase,
|
|
7984
|
+
type: z2.z.literal("update_list_tab"),
|
|
7985
|
+
changes: z2.z.object({
|
|
7986
|
+
label: z2.z.string().min(1).optional(),
|
|
7987
|
+
icon: z2.z.custom((v) => typeof v === "string" && v.length > 0).optional(),
|
|
7988
|
+
default: z2.z.boolean().optional(),
|
|
7989
|
+
visibility: z2.z.enum(chunkTU6ECJFZ_js.LIST_VIEW_TAB_VISIBILITIES).optional()
|
|
7990
|
+
}).refine((c) => Object.keys(c).length > 0, "update_list_tab needs at least one change")
|
|
7991
|
+
});
|
|
7992
|
+
var updateListTab = defineOperation({
|
|
7993
|
+
type: "update_list_tab",
|
|
7994
|
+
schema: updateListTabSchema,
|
|
7995
|
+
apply: (state, op) => mapListTab(state, op.viewId, op.tabId, (tab) => ({ ...tab, ...op.changes })),
|
|
7996
|
+
focus: (op) => ({ viewId: op.viewId, tabId: op.tabId }),
|
|
7997
|
+
describe: (op) => op.changes.label ? `Renomme l'onglet en \xAB ${op.changes.label} \xBB` : `Modifie l'onglet ${op.tabId}`
|
|
7998
|
+
});
|
|
7999
|
+
var reorderListTabsSchema = z2.z.object({
|
|
8000
|
+
...viewOperationBase,
|
|
8001
|
+
type: z2.z.literal("reorder_list_tabs"),
|
|
8002
|
+
tabOrder: z2.z.array(z2.z.string().min(1))
|
|
8003
|
+
});
|
|
8004
|
+
var reorderListTabs = defineOperation({
|
|
8005
|
+
type: "reorder_list_tabs",
|
|
8006
|
+
schema: reorderListTabsSchema,
|
|
8007
|
+
apply: (state, op) => mapView(state, op.viewId, (view) => ({
|
|
8008
|
+
...view,
|
|
8009
|
+
config: {
|
|
8010
|
+
...view.config,
|
|
8011
|
+
tabs: reorderById(view.config.tabs ?? [], op.tabOrder, "List tab")
|
|
8012
|
+
}
|
|
8013
|
+
})),
|
|
8014
|
+
focus: (op) => ({ viewId: op.viewId }),
|
|
8015
|
+
describe: () => "R\xE9ordonne les onglets"
|
|
8016
|
+
});
|
|
8017
|
+
var setColumns = setOnTab(
|
|
8018
|
+
"set_columns",
|
|
8019
|
+
"columns",
|
|
8020
|
+
z2.z.array(z2.z.string().min(1)),
|
|
8021
|
+
// Defensive on shape: a summary is rendered in a list beside other summaries,
|
|
8022
|
+
// and one malformed payload must not take the page down with it.
|
|
8023
|
+
(value) => `Affiche ${Array.isArray(value) ? value.length : 0} colonne(s)`
|
|
8024
|
+
);
|
|
8025
|
+
var setColumnSizing = setOnTab(
|
|
8026
|
+
"set_column_sizing",
|
|
8027
|
+
"columnSizing",
|
|
8028
|
+
z2.z.record(z2.z.string(), z2.z.number().int().positive()),
|
|
8029
|
+
() => "Ajuste la largeur des colonnes"
|
|
8030
|
+
);
|
|
8031
|
+
var setLayout = setOnTab(
|
|
8032
|
+
"set_layout",
|
|
8033
|
+
"layout",
|
|
8034
|
+
z2.z.enum(["table", "kanban"]),
|
|
8035
|
+
(value) => `Passe en affichage ${value}`
|
|
8036
|
+
);
|
|
8037
|
+
var setGroupBy = setOnTab(
|
|
8038
|
+
"set_group_by",
|
|
8039
|
+
"groupByAttribute",
|
|
8040
|
+
z2.z.string().min(1).nullable(),
|
|
8041
|
+
(value) => value ? `Regroupe par ${value}` : "Retire le regroupement"
|
|
8042
|
+
);
|
|
8043
|
+
var setFilters = setOnTab(
|
|
8044
|
+
"set_filters",
|
|
8045
|
+
"filters",
|
|
8046
|
+
filterGroupPayload.nullable(),
|
|
8047
|
+
(value) => value ? "Modifie les filtres" : "Retire les filtres"
|
|
8048
|
+
);
|
|
8049
|
+
var setSorts = setOnTab(
|
|
8050
|
+
"set_sorts",
|
|
8051
|
+
"sorts",
|
|
8052
|
+
sortRulesPayload.nullable(),
|
|
8053
|
+
(value) => value ? "Modifie le tri" : "Retire le tri"
|
|
8054
|
+
);
|
|
8055
|
+
var setCreateMode = setOnTab(
|
|
8056
|
+
"set_create_mode",
|
|
8057
|
+
"createMode",
|
|
8058
|
+
z2.z.enum(["redirect", "inline", "peek"]),
|
|
8059
|
+
(value) => `Cr\xE9ation en mode ${value}`
|
|
8060
|
+
);
|
|
8061
|
+
var setReadOnly = setOnTab(
|
|
8062
|
+
"set_read_only",
|
|
8063
|
+
"readOnly",
|
|
8064
|
+
z2.z.boolean(),
|
|
8065
|
+
(value) => value ? "Passe l'onglet en lecture seule" : "Rend l'onglet modifiable"
|
|
8066
|
+
);
|
|
8067
|
+
var setCardUserAttribute = setOnTab(
|
|
8068
|
+
"set_card_user_attribute",
|
|
8069
|
+
"cardUserAttribute",
|
|
8070
|
+
z2.z.string().min(1).nullable(),
|
|
8071
|
+
(value) => value ? `Affiche ${value} sur les cartes` : "Retire l'utilisateur des cartes"
|
|
8072
|
+
);
|
|
8073
|
+
var setCardDateAttribute = setOnTab(
|
|
8074
|
+
"set_card_date_attribute",
|
|
8075
|
+
"cardDateAttribute",
|
|
8076
|
+
z2.z.string().min(1).nullable(),
|
|
8077
|
+
(value) => value ? `Affiche ${value} sur les cartes` : "Retire la date des cartes"
|
|
8078
|
+
);
|
|
8079
|
+
var LIST_VIEW_OPERATIONS = [
|
|
8080
|
+
addListTab,
|
|
8081
|
+
removeListTab,
|
|
8082
|
+
updateListTab,
|
|
8083
|
+
reorderListTabs,
|
|
8084
|
+
setColumns,
|
|
8085
|
+
setColumnSizing,
|
|
8086
|
+
setLayout,
|
|
8087
|
+
setGroupBy,
|
|
8088
|
+
setFilters,
|
|
8089
|
+
setSorts,
|
|
8090
|
+
setCreateMode,
|
|
8091
|
+
setReadOnly,
|
|
8092
|
+
setCardUserAttribute,
|
|
8093
|
+
setCardDateAttribute
|
|
8094
|
+
];
|
|
8095
|
+
function requireObject(state, objectId) {
|
|
8096
|
+
if (!state.objects.some((o) => o.id === objectId)) {
|
|
8097
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Object "${objectId}" is not in the draftable state`, []);
|
|
8098
|
+
}
|
|
8099
|
+
}
|
|
8100
|
+
var objectOperationBase = { ...operationBase, objectId: z2.z.string().min(1) };
|
|
8101
|
+
var addObjectSchema = z2.z.object({
|
|
8102
|
+
...objectOperationBase,
|
|
8103
|
+
type: z2.z.literal("add_object"),
|
|
8104
|
+
name: z2.z.string().min(1),
|
|
8105
|
+
label: z2.z.string().min(1),
|
|
8106
|
+
icon: z2.z.string().min(1).optional()
|
|
8107
|
+
});
|
|
8108
|
+
var addObject = defineOperation({
|
|
8109
|
+
type: "add_object",
|
|
8110
|
+
schema: addObjectSchema,
|
|
8111
|
+
apply: (state, op) => {
|
|
8112
|
+
if (state.objects.some((o) => o.name === op.name)) {
|
|
8113
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Object "${op.name}" already exists`, []);
|
|
8114
|
+
}
|
|
8115
|
+
if (state.objects.some((o) => o.id === op.objectId)) {
|
|
8116
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Object id "${op.objectId}" is already taken`, []);
|
|
8117
|
+
}
|
|
8118
|
+
const created = {
|
|
8119
|
+
id: op.objectId,
|
|
8120
|
+
name: op.name,
|
|
8121
|
+
label: op.label,
|
|
8122
|
+
...op.icon === void 0 ? {} : { icon: op.icon }
|
|
8123
|
+
};
|
|
8124
|
+
return { ...state, objects: [...state.objects, created] };
|
|
8125
|
+
},
|
|
8126
|
+
// The caller generates objectId, so a draft object is addressable by route
|
|
8127
|
+
// before it exists — that is what lets the app navigate to it live.
|
|
8128
|
+
focus: (op) => ({ objectId: op.objectId }),
|
|
8129
|
+
describe: (op) => `Cr\xE9e l'objet \xAB ${op.label} \xBB`
|
|
8130
|
+
});
|
|
8131
|
+
var updateObjectSchema = z2.z.object({
|
|
8132
|
+
...objectOperationBase,
|
|
8133
|
+
type: z2.z.literal("update_object"),
|
|
8134
|
+
changes: z2.z.object({ label: z2.z.string().min(1).optional(), icon: z2.z.string().min(1).optional() }).refine((c) => Object.keys(c).length > 0, "update_object needs at least one change")
|
|
8135
|
+
});
|
|
8136
|
+
var updateObject = defineOperation({
|
|
8137
|
+
type: "update_object",
|
|
8138
|
+
schema: updateObjectSchema,
|
|
8139
|
+
apply: (state, op) => {
|
|
8140
|
+
requireObject(state, op.objectId);
|
|
8141
|
+
return {
|
|
8142
|
+
...state,
|
|
8143
|
+
objects: state.objects.map((o) => o.id === op.objectId ? { ...o, ...op.changes } : o)
|
|
8144
|
+
};
|
|
8145
|
+
},
|
|
8146
|
+
focus: (op) => ({ objectId: op.objectId }),
|
|
8147
|
+
describe: (op) => op.changes.label ? `Renomme l'objet en \xAB ${op.changes.label} \xBB` : "Modifie l'objet"
|
|
8148
|
+
});
|
|
8149
|
+
var removeObjectSchema = z2.z.object({ ...objectOperationBase, type: z2.z.literal("remove_object") });
|
|
8150
|
+
var removeObject = defineOperation({
|
|
8151
|
+
type: "remove_object",
|
|
8152
|
+
schema: removeObjectSchema,
|
|
8153
|
+
apply: (state, op) => {
|
|
8154
|
+
requireObject(state, op.objectId);
|
|
8155
|
+
return {
|
|
8156
|
+
...state,
|
|
8157
|
+
objects: state.objects.filter((o) => o.id !== op.objectId),
|
|
8158
|
+
attributes: state.attributes.filter((a) => a.objectId !== op.objectId),
|
|
8159
|
+
sampleRecords: state.sampleRecords.filter((r) => r.objectId !== op.objectId),
|
|
8160
|
+
views: state.views.filter((v) => v.objectId !== op.objectId)
|
|
8161
|
+
};
|
|
8162
|
+
},
|
|
8163
|
+
focus: () => ({}),
|
|
8164
|
+
describe: (op) => `Supprime l'objet ${op.objectId}`
|
|
8165
|
+
});
|
|
8166
|
+
var addAttributeSchema = z2.z.object({
|
|
8167
|
+
...objectOperationBase,
|
|
8168
|
+
type: z2.z.literal("add_attribute"),
|
|
8169
|
+
attributeId: z2.z.string().min(1),
|
|
8170
|
+
name: z2.z.string().min(1),
|
|
8171
|
+
label: z2.z.string().min(1),
|
|
8172
|
+
attributeType: z2.z.string().min(1)
|
|
8173
|
+
});
|
|
8174
|
+
var addAttribute = defineOperation({
|
|
8175
|
+
type: "add_attribute",
|
|
8176
|
+
schema: addAttributeSchema,
|
|
8177
|
+
apply: (state, op) => {
|
|
8178
|
+
requireObject(state, op.objectId);
|
|
8179
|
+
if (state.attributes.some((a) => a.objectId === op.objectId && a.name === op.name)) {
|
|
8180
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
8181
|
+
`Attribute "${op.name}" already exists on object "${op.objectId}"`,
|
|
8182
|
+
[]
|
|
8183
|
+
);
|
|
8184
|
+
}
|
|
8185
|
+
return {
|
|
8186
|
+
...state,
|
|
8187
|
+
attributes: [
|
|
8188
|
+
...state.attributes,
|
|
8189
|
+
{
|
|
8190
|
+
id: op.attributeId,
|
|
8191
|
+
objectId: op.objectId,
|
|
8192
|
+
name: op.name,
|
|
8193
|
+
label: op.label,
|
|
8194
|
+
attributeType: op.attributeType
|
|
8195
|
+
}
|
|
8196
|
+
]
|
|
8197
|
+
};
|
|
8198
|
+
},
|
|
8199
|
+
focus: (op) => ({ objectId: op.objectId }),
|
|
8200
|
+
describe: (op) => `Ajoute l'attribut \xAB ${op.label} \xBB`
|
|
8201
|
+
});
|
|
8202
|
+
var updateAttributeSchema = z2.z.object({
|
|
8203
|
+
...operationBase,
|
|
8204
|
+
type: z2.z.literal("update_attribute"),
|
|
8205
|
+
attributeId: z2.z.string().min(1),
|
|
8206
|
+
changes: z2.z.object({ label: z2.z.string().min(1).optional() }).refine((c) => Object.keys(c).length > 0, "update_attribute needs at least one change")
|
|
8207
|
+
});
|
|
8208
|
+
var updateAttribute = defineOperation({
|
|
8209
|
+
type: "update_attribute",
|
|
8210
|
+
schema: updateAttributeSchema,
|
|
8211
|
+
apply: (state, op) => {
|
|
8212
|
+
if (!state.attributes.some((a) => a.id === op.attributeId)) {
|
|
8213
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
|
|
8214
|
+
}
|
|
8215
|
+
return {
|
|
8216
|
+
...state,
|
|
8217
|
+
attributes: state.attributes.map(
|
|
8218
|
+
(a) => a.id === op.attributeId ? { ...a, ...op.changes } : a
|
|
8219
|
+
)
|
|
8220
|
+
};
|
|
8221
|
+
},
|
|
8222
|
+
focus: () => ({}),
|
|
8223
|
+
describe: (op) => op.changes.label ? `Renomme l'attribut en \xAB ${op.changes.label} \xBB` : "Modifie l'attribut"
|
|
8224
|
+
});
|
|
8225
|
+
var removeAttributeSchema = z2.z.object({
|
|
8226
|
+
...operationBase,
|
|
8227
|
+
type: z2.z.literal("remove_attribute"),
|
|
8228
|
+
attributeId: z2.z.string().min(1)
|
|
8229
|
+
});
|
|
8230
|
+
var removeAttribute = defineOperation({
|
|
8231
|
+
type: "remove_attribute",
|
|
8232
|
+
schema: removeAttributeSchema,
|
|
8233
|
+
apply: (state, op) => {
|
|
8234
|
+
if (!state.attributes.some((a) => a.id === op.attributeId)) {
|
|
8235
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Attribute "${op.attributeId}" is not in the draftable state`, []);
|
|
8236
|
+
}
|
|
8237
|
+
return { ...state, attributes: state.attributes.filter((a) => a.id !== op.attributeId) };
|
|
8238
|
+
},
|
|
8239
|
+
focus: () => ({}),
|
|
8240
|
+
describe: (op) => `Supprime l'attribut ${op.attributeId}`
|
|
8241
|
+
});
|
|
8242
|
+
var addSampleRecordSchema = z2.z.object({
|
|
8243
|
+
...objectOperationBase,
|
|
8244
|
+
type: z2.z.literal("add_sample_record"),
|
|
8245
|
+
recordId: z2.z.string().min(1),
|
|
8246
|
+
values: z2.z.record(z2.z.string(), z2.z.unknown())
|
|
8247
|
+
});
|
|
8248
|
+
var addSampleRecord = defineOperation({
|
|
8249
|
+
type: "add_sample_record",
|
|
8250
|
+
schema: addSampleRecordSchema,
|
|
8251
|
+
apply: (state, op) => {
|
|
8252
|
+
requireObject(state, op.objectId);
|
|
8253
|
+
if (state.sampleRecords.some((r) => r.id === op.recordId)) {
|
|
8254
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Sample record "${op.recordId}" already exists`, []);
|
|
8255
|
+
}
|
|
8256
|
+
return {
|
|
8257
|
+
...state,
|
|
8258
|
+
sampleRecords: [
|
|
8259
|
+
...state.sampleRecords,
|
|
8260
|
+
{ id: op.recordId, objectId: op.objectId, values: op.values }
|
|
8261
|
+
]
|
|
8262
|
+
};
|
|
8263
|
+
},
|
|
8264
|
+
// A sample is a draft record, not a render-time fiction: publishing
|
|
8265
|
+
// materialises it, discarding the draft discards it.
|
|
8266
|
+
focus: (op) => ({ objectId: op.objectId, recordId: op.recordId }),
|
|
8267
|
+
describe: () => "Ajoute un exemple"
|
|
8268
|
+
});
|
|
8269
|
+
var removeSampleRecordSchema = z2.z.object({
|
|
8270
|
+
...operationBase,
|
|
8271
|
+
type: z2.z.literal("remove_sample_record"),
|
|
8272
|
+
recordId: z2.z.string().min(1)
|
|
8273
|
+
});
|
|
8274
|
+
var removeSampleRecord = defineOperation({
|
|
8275
|
+
type: "remove_sample_record",
|
|
8276
|
+
schema: removeSampleRecordSchema,
|
|
8277
|
+
apply: (state, op) => {
|
|
8278
|
+
if (!state.sampleRecords.some((r) => r.id === op.recordId)) {
|
|
8279
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Sample record "${op.recordId}" is not in the draft`, []);
|
|
8280
|
+
}
|
|
8281
|
+
return { ...state, sampleRecords: state.sampleRecords.filter((r) => r.id !== op.recordId) };
|
|
8282
|
+
},
|
|
8283
|
+
focus: () => ({}),
|
|
8284
|
+
describe: () => "Retire un exemple"
|
|
8285
|
+
});
|
|
8286
|
+
var SCHEMA_OPERATIONS = [
|
|
8287
|
+
addObject,
|
|
8288
|
+
updateObject,
|
|
8289
|
+
removeObject,
|
|
8290
|
+
addAttribute,
|
|
8291
|
+
updateAttribute,
|
|
8292
|
+
removeAttribute,
|
|
8293
|
+
addSampleRecord,
|
|
8294
|
+
removeSampleRecord
|
|
8295
|
+
];
|
|
8296
|
+
|
|
8297
|
+
// src/architect/registry.ts
|
|
8298
|
+
function build() {
|
|
8299
|
+
const map = /* @__PURE__ */ new Map();
|
|
8300
|
+
for (const definition of [
|
|
8301
|
+
...SCHEMA_OPERATIONS,
|
|
8302
|
+
...DETAIL_VIEW_OPERATIONS,
|
|
8303
|
+
...LIST_VIEW_OPERATIONS
|
|
8304
|
+
]) {
|
|
8305
|
+
if (map.has(definition.type)) {
|
|
8306
|
+
throw new chunkHWZRSXFB_js.DuplicateError("architect operation", definition.type);
|
|
8307
|
+
}
|
|
8308
|
+
map.set(definition.type, definition);
|
|
8309
|
+
}
|
|
8310
|
+
return map;
|
|
8311
|
+
}
|
|
8312
|
+
var OPERATION_REGISTRY = build();
|
|
8313
|
+
var ALL_OPERATION_TYPES = [...OPERATION_REGISTRY.keys()];
|
|
8314
|
+
|
|
8315
|
+
// src/architect/apply.ts
|
|
8316
|
+
function defOf(operation) {
|
|
8317
|
+
const definition = OPERATION_REGISTRY.get(operation.type);
|
|
8318
|
+
if (!definition) {
|
|
8319
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
8320
|
+
`Operation "${operation.id}" has unknown type "${operation.type}"`,
|
|
8321
|
+
[]
|
|
8322
|
+
);
|
|
8323
|
+
}
|
|
8324
|
+
return definition;
|
|
8325
|
+
}
|
|
8326
|
+
function applyOperations(state, operations) {
|
|
8327
|
+
return operations.reduce(
|
|
8328
|
+
(acc, operation) => defOf(operation).apply(acc, operation),
|
|
8329
|
+
state
|
|
8330
|
+
);
|
|
8331
|
+
}
|
|
8332
|
+
function focusOf(operation) {
|
|
8333
|
+
return defOf(operation).focus(operation);
|
|
8334
|
+
}
|
|
8335
|
+
function describeOperations(operations, ctx) {
|
|
8336
|
+
return operations.map((operation) => defOf(operation).describe(operation, ctx));
|
|
8337
|
+
}
|
|
8338
|
+
function parseOperation(candidate) {
|
|
8339
|
+
if (typeof candidate !== "object" || candidate === null || !("type" in candidate)) {
|
|
8340
|
+
throw new chunkHWZRSXFB_js.ValidationError("An operation must be an object carrying a type", []);
|
|
8341
|
+
}
|
|
8342
|
+
const type = candidate.type;
|
|
8343
|
+
if (typeof type !== "string") {
|
|
8344
|
+
throw new chunkHWZRSXFB_js.ValidationError("An operation's type must be a string", []);
|
|
8345
|
+
}
|
|
8346
|
+
const definition = OPERATION_REGISTRY.get(type);
|
|
8347
|
+
if (!definition) {
|
|
8348
|
+
throw new chunkHWZRSXFB_js.ValidationError(`Unknown operation type "${type}"`, []);
|
|
8349
|
+
}
|
|
8350
|
+
const parsed = definition.schema.safeParse(candidate);
|
|
8351
|
+
if (!parsed.success) {
|
|
8352
|
+
throw new chunkHWZRSXFB_js.ValidationError(
|
|
8353
|
+
`Operation "${type}" is invalid: ${parsed.error.issues.map((i) => `${i.path.join(".")} ${i.message}`).join("; ")}`,
|
|
8354
|
+
[]
|
|
8355
|
+
);
|
|
8356
|
+
}
|
|
8357
|
+
return parsed.data;
|
|
8358
|
+
}
|
|
8359
|
+
|
|
8360
|
+
// src/architect/field-ids.ts
|
|
8361
|
+
function makeFieldId(groupId, seed, collisionIndex) {
|
|
8362
|
+
const base = `fld_${groupId}_${seed}`;
|
|
8363
|
+
return collisionIndex === 0 ? base : `${base}_${collisionIndex}`;
|
|
8364
|
+
}
|
|
8365
|
+
function seedOf(field, index) {
|
|
8366
|
+
if (field.attributeGroup) return field.attributeGroup.id;
|
|
8367
|
+
if (field.attribute) return field.attribute;
|
|
8368
|
+
return `slot${index}`;
|
|
8369
|
+
}
|
|
8370
|
+
function withIds(group2) {
|
|
8371
|
+
const seen = /* @__PURE__ */ new Map();
|
|
8372
|
+
const fields = group2.fields.map((field, index) => {
|
|
8373
|
+
if (field.id) return field;
|
|
8374
|
+
const seed = seedOf(field, index);
|
|
8375
|
+
const collisionIndex = seen.get(seed) ?? 0;
|
|
8376
|
+
seen.set(seed, collisionIndex + 1);
|
|
8377
|
+
return { ...field, id: makeFieldId(group2.id, seed, collisionIndex) };
|
|
8378
|
+
});
|
|
8379
|
+
return { ...group2, fields };
|
|
8380
|
+
}
|
|
8381
|
+
function ensureFieldIds(tabs) {
|
|
8382
|
+
return tabs.map(
|
|
8383
|
+
(tab) => tab.type === "form" ? { ...tab, groups: tab.groups.map(withIds) } : tab
|
|
8384
|
+
);
|
|
8385
|
+
}
|
|
8386
|
+
|
|
7541
8387
|
Object.defineProperty(exports, "asTenantId", {
|
|
7542
8388
|
enumerable: true,
|
|
7543
|
-
get: function () { return
|
|
8389
|
+
get: function () { return chunkOYHBQMC7_js.asTenantId; }
|
|
7544
8390
|
});
|
|
7545
8391
|
Object.defineProperty(exports, "asUserId", {
|
|
7546
8392
|
enumerable: true,
|
|
7547
|
-
get: function () { return
|
|
8393
|
+
get: function () { return chunkOYHBQMC7_js.asUserId; }
|
|
8394
|
+
});
|
|
8395
|
+
Object.defineProperty(exports, "canonicalStringify", {
|
|
8396
|
+
enumerable: true,
|
|
8397
|
+
get: function () { return chunkOYHBQMC7_js.canonicalStringify; }
|
|
7548
8398
|
});
|
|
7549
8399
|
Object.defineProperty(exports, "deepEqual", {
|
|
7550
8400
|
enumerable: true,
|
|
7551
|
-
get: function () { return
|
|
8401
|
+
get: function () { return chunkOYHBQMC7_js.deepEqual; }
|
|
7552
8402
|
});
|
|
7553
8403
|
Object.defineProperty(exports, "generateId", {
|
|
7554
8404
|
enumerable: true,
|
|
7555
|
-
get: function () { return
|
|
8405
|
+
get: function () { return chunkOYHBQMC7_js.generateId; }
|
|
7556
8406
|
});
|
|
7557
8407
|
Object.defineProperty(exports, "indexBy", {
|
|
7558
8408
|
enumerable: true,
|
|
7559
|
-
get: function () { return
|
|
8409
|
+
get: function () { return chunkOYHBQMC7_js.indexBy; }
|
|
7560
8410
|
});
|
|
7561
8411
|
Object.defineProperty(exports, "ATTRIBUTE_FILTER_OPERATORS", {
|
|
7562
8412
|
enumerable: true,
|
|
7563
|
-
get: function () { return
|
|
8413
|
+
get: function () { return chunkTU6ECJFZ_js.ATTRIBUTE_FILTER_OPERATORS; }
|
|
7564
8414
|
});
|
|
7565
8415
|
Object.defineProperty(exports, "LIST_VIEW_TAB_VISIBILITIES", {
|
|
7566
8416
|
enumerable: true,
|
|
7567
|
-
get: function () { return
|
|
8417
|
+
get: function () { return chunkTU6ECJFZ_js.LIST_VIEW_TAB_VISIBILITIES; }
|
|
7568
8418
|
});
|
|
7569
8419
|
Object.defineProperty(exports, "NO_VALUE_OPERATORS", {
|
|
7570
8420
|
enumerable: true,
|
|
7571
|
-
get: function () { return
|
|
8421
|
+
get: function () { return chunkTU6ECJFZ_js.NO_VALUE_OPERATORS; }
|
|
7572
8422
|
});
|
|
7573
8423
|
Object.defineProperty(exports, "OPERATORS_BY_TYPE", {
|
|
7574
8424
|
enumerable: true,
|
|
7575
|
-
get: function () { return
|
|
8425
|
+
get: function () { return chunkTU6ECJFZ_js.OPERATORS_BY_TYPE; }
|
|
7576
8426
|
});
|
|
7577
8427
|
Object.defineProperty(exports, "REMOVED_OPERATOR_REPLACEMENTS", {
|
|
7578
8428
|
enumerable: true,
|
|
7579
|
-
get: function () { return
|
|
8429
|
+
get: function () { return chunkTU6ECJFZ_js.REMOVED_OPERATOR_REPLACEMENTS; }
|
|
7580
8430
|
});
|
|
7581
8431
|
Object.defineProperty(exports, "RESERVED_ATTRIBUTE_NAMES", {
|
|
7582
8432
|
enumerable: true,
|
|
7583
|
-
get: function () { return
|
|
8433
|
+
get: function () { return chunkTU6ECJFZ_js.RESERVED_ATTRIBUTE_NAMES; }
|
|
7584
8434
|
});
|
|
7585
8435
|
Object.defineProperty(exports, "RESERVED_OBJECT_NAMES", {
|
|
7586
8436
|
enumerable: true,
|
|
7587
|
-
get: function () { return
|
|
8437
|
+
get: function () { return chunkTU6ECJFZ_js.RESERVED_OBJECT_NAMES; }
|
|
7588
8438
|
});
|
|
7589
8439
|
Object.defineProperty(exports, "RESOURCE_VISIBILITIES", {
|
|
7590
8440
|
enumerable: true,
|
|
7591
|
-
get: function () { return
|
|
8441
|
+
get: function () { return chunkTU6ECJFZ_js.RESOURCE_VISIBILITIES; }
|
|
7592
8442
|
});
|
|
7593
8443
|
Object.defineProperty(exports, "SYNONYM_ALIASES", {
|
|
7594
8444
|
enumerable: true,
|
|
7595
|
-
get: function () { return
|
|
8445
|
+
get: function () { return chunkTU6ECJFZ_js.SYNONYM_ALIASES; }
|
|
7596
8446
|
});
|
|
7597
8447
|
Object.defineProperty(exports, "SYSTEM_ATTRIBUTES", {
|
|
7598
8448
|
enumerable: true,
|
|
7599
|
-
get: function () { return
|
|
8449
|
+
get: function () { return chunkTU6ECJFZ_js.SYSTEM_ATTRIBUTES; }
|
|
7600
8450
|
});
|
|
7601
8451
|
Object.defineProperty(exports, "SYSTEM_ATTRIBUTE_I18N_KEYS", {
|
|
7602
8452
|
enumerable: true,
|
|
7603
|
-
get: function () { return
|
|
8453
|
+
get: function () { return chunkTU6ECJFZ_js.SYSTEM_ATTRIBUTE_I18N_KEYS; }
|
|
7604
8454
|
});
|
|
7605
8455
|
Object.defineProperty(exports, "SYSTEM_FIELD_NAMES", {
|
|
7606
8456
|
enumerable: true,
|
|
7607
|
-
get: function () { return
|
|
8457
|
+
get: function () { return chunkTU6ECJFZ_js.SYSTEM_FIELD_NAMES; }
|
|
7608
8458
|
});
|
|
7609
8459
|
Object.defineProperty(exports, "SYSTEM_FILTER_ATTRIBUTE_TYPES", {
|
|
7610
8460
|
enumerable: true,
|
|
7611
|
-
get: function () { return
|
|
8461
|
+
get: function () { return chunkTU6ECJFZ_js.SYSTEM_FILTER_ATTRIBUTE_TYPES; }
|
|
7612
8462
|
});
|
|
7613
8463
|
Object.defineProperty(exports, "canonicalizeFilterValue", {
|
|
7614
8464
|
enumerable: true,
|
|
7615
|
-
get: function () { return
|
|
8465
|
+
get: function () { return chunkTU6ECJFZ_js.canonicalizeFilterValue; }
|
|
7616
8466
|
});
|
|
7617
8467
|
Object.defineProperty(exports, "collectQualifiedRuleIssues", {
|
|
7618
8468
|
enumerable: true,
|
|
7619
|
-
get: function () { return
|
|
8469
|
+
get: function () { return chunkTU6ECJFZ_js.collectQualifiedRuleIssues; }
|
|
7620
8470
|
});
|
|
7621
8471
|
Object.defineProperty(exports, "currentActor", {
|
|
7622
8472
|
enumerable: true,
|
|
7623
|
-
get: function () { return
|
|
8473
|
+
get: function () { return chunkTU6ECJFZ_js.currentActor; }
|
|
7624
8474
|
});
|
|
7625
8475
|
Object.defineProperty(exports, "detailTabSchema", {
|
|
7626
8476
|
enumerable: true,
|
|
7627
|
-
get: function () { return
|
|
8477
|
+
get: function () { return chunkTU6ECJFZ_js.detailTabSchema; }
|
|
7628
8478
|
});
|
|
7629
8479
|
Object.defineProperty(exports, "detailViewConfigSchema", {
|
|
7630
8480
|
enumerable: true,
|
|
7631
|
-
get: function () { return
|
|
8481
|
+
get: function () { return chunkTU6ECJFZ_js.detailViewConfigSchema; }
|
|
7632
8482
|
});
|
|
7633
8483
|
Object.defineProperty(exports, "extractCurrencyFilterValue", {
|
|
7634
8484
|
enumerable: true,
|
|
7635
|
-
get: function () { return
|
|
8485
|
+
get: function () { return chunkTU6ECJFZ_js.extractCurrencyFilterValue; }
|
|
7636
8486
|
});
|
|
7637
8487
|
Object.defineProperty(exports, "extractFilterValue", {
|
|
7638
8488
|
enumerable: true,
|
|
7639
|
-
get: function () { return
|
|
8489
|
+
get: function () { return chunkTU6ECJFZ_js.extractFilterValue; }
|
|
7640
8490
|
});
|
|
7641
8491
|
Object.defineProperty(exports, "getAttributeCapabilities", {
|
|
7642
8492
|
enumerable: true,
|
|
7643
|
-
get: function () { return
|
|
8493
|
+
get: function () { return chunkTU6ECJFZ_js.getAttributeCapabilities; }
|
|
7644
8494
|
});
|
|
7645
8495
|
Object.defineProperty(exports, "getAttributeFilterOperators", {
|
|
7646
8496
|
enumerable: true,
|
|
7647
|
-
get: function () { return
|
|
8497
|
+
get: function () { return chunkTU6ECJFZ_js.getAttributeFilterOperators; }
|
|
7648
8498
|
});
|
|
7649
8499
|
Object.defineProperty(exports, "getOperatorPolarity", {
|
|
7650
8500
|
enumerable: true,
|
|
7651
|
-
get: function () { return
|
|
8501
|
+
get: function () { return chunkTU6ECJFZ_js.getOperatorPolarity; }
|
|
7652
8502
|
});
|
|
7653
8503
|
Object.defineProperty(exports, "getRollupFilterOperators", {
|
|
7654
8504
|
enumerable: true,
|
|
7655
|
-
get: function () { return
|
|
8505
|
+
get: function () { return chunkTU6ECJFZ_js.getRollupFilterOperators; }
|
|
7656
8506
|
});
|
|
7657
8507
|
Object.defineProperty(exports, "getSystemAttributeI18nKey", {
|
|
7658
8508
|
enumerable: true,
|
|
7659
|
-
get: function () { return
|
|
8509
|
+
get: function () { return chunkTU6ECJFZ_js.getSystemAttributeI18nKey; }
|
|
7660
8510
|
});
|
|
7661
8511
|
Object.defineProperty(exports, "getSystemAttributeList", {
|
|
7662
8512
|
enumerable: true,
|
|
7663
|
-
get: function () { return
|
|
8513
|
+
get: function () { return chunkTU6ECJFZ_js.getSystemAttributeList; }
|
|
7664
8514
|
});
|
|
7665
8515
|
Object.defineProperty(exports, "inverseSourceSchema", {
|
|
7666
8516
|
enumerable: true,
|
|
7667
|
-
get: function () { return
|
|
8517
|
+
get: function () { return chunkTU6ECJFZ_js.inverseSourceSchema; }
|
|
7668
8518
|
});
|
|
7669
8519
|
Object.defineProperty(exports, "isAttributeFilterable", {
|
|
7670
8520
|
enumerable: true,
|
|
7671
|
-
get: function () { return
|
|
8521
|
+
get: function () { return chunkTU6ECJFZ_js.isAttributeFilterable; }
|
|
7672
8522
|
});
|
|
7673
8523
|
Object.defineProperty(exports, "isAttributeGroupable", {
|
|
7674
8524
|
enumerable: true,
|
|
7675
|
-
get: function () { return
|
|
8525
|
+
get: function () { return chunkTU6ECJFZ_js.isAttributeGroupable; }
|
|
7676
8526
|
});
|
|
7677
8527
|
Object.defineProperty(exports, "isAttributeKanbanGroupable", {
|
|
7678
8528
|
enumerable: true,
|
|
7679
|
-
get: function () { return
|
|
8529
|
+
get: function () { return chunkTU6ECJFZ_js.isAttributeKanbanGroupable; }
|
|
7680
8530
|
});
|
|
7681
8531
|
Object.defineProperty(exports, "isAttributeSearchable", {
|
|
7682
8532
|
enumerable: true,
|
|
7683
|
-
get: function () { return
|
|
8533
|
+
get: function () { return chunkTU6ECJFZ_js.isAttributeSearchable; }
|
|
7684
8534
|
});
|
|
7685
8535
|
Object.defineProperty(exports, "isDynamicValue", {
|
|
7686
8536
|
enumerable: true,
|
|
7687
|
-
get: function () { return
|
|
8537
|
+
get: function () { return chunkTU6ECJFZ_js.isDynamicValue; }
|
|
7688
8538
|
});
|
|
7689
8539
|
Object.defineProperty(exports, "isManagedSystemAttribute", {
|
|
7690
8540
|
enumerable: true,
|
|
7691
|
-
get: function () { return
|
|
8541
|
+
get: function () { return chunkTU6ECJFZ_js.isManagedSystemAttribute; }
|
|
7692
8542
|
});
|
|
7693
8543
|
Object.defineProperty(exports, "isNoValueOperator", {
|
|
7694
8544
|
enumerable: true,
|
|
7695
|
-
get: function () { return
|
|
8545
|
+
get: function () { return chunkTU6ECJFZ_js.isNoValueOperator; }
|
|
7696
8546
|
});
|
|
7697
8547
|
Object.defineProperty(exports, "isRelativeDateValue", {
|
|
7698
8548
|
enumerable: true,
|
|
7699
|
-
get: function () { return
|
|
8549
|
+
get: function () { return chunkTU6ECJFZ_js.isRelativeDateValue; }
|
|
7700
8550
|
});
|
|
7701
8551
|
Object.defineProperty(exports, "isSetMembershipOperator", {
|
|
7702
8552
|
enumerable: true,
|
|
7703
|
-
get: function () { return
|
|
8553
|
+
get: function () { return chunkTU6ECJFZ_js.isSetMembershipOperator; }
|
|
7704
8554
|
});
|
|
7705
8555
|
Object.defineProperty(exports, "listViewConfigSchema", {
|
|
7706
8556
|
enumerable: true,
|
|
7707
|
-
get: function () { return
|
|
8557
|
+
get: function () { return chunkTU6ECJFZ_js.listViewConfigSchema; }
|
|
7708
8558
|
});
|
|
7709
8559
|
Object.defineProperty(exports, "listViewTabSchema", {
|
|
7710
8560
|
enumerable: true,
|
|
7711
|
-
get: function () { return
|
|
8561
|
+
get: function () { return chunkTU6ECJFZ_js.listViewTabSchema; }
|
|
7712
8562
|
});
|
|
7713
8563
|
Object.defineProperty(exports, "normalizeFilterRule", {
|
|
7714
8564
|
enumerable: true,
|
|
7715
|
-
get: function () { return
|
|
8565
|
+
get: function () { return chunkTU6ECJFZ_js.normalizeFilterRule; }
|
|
7716
8566
|
});
|
|
7717
8567
|
Object.defineProperty(exports, "normalizeForEdgeRpc", {
|
|
7718
8568
|
enumerable: true,
|
|
7719
|
-
get: function () { return
|
|
8569
|
+
get: function () { return chunkTU6ECJFZ_js.normalizeForEdgeRpc; }
|
|
7720
8570
|
});
|
|
7721
8571
|
Object.defineProperty(exports, "normalizeOperator", {
|
|
7722
8572
|
enumerable: true,
|
|
7723
|
-
get: function () { return
|
|
8573
|
+
get: function () { return chunkTU6ECJFZ_js.normalizeOperator; }
|
|
7724
8574
|
});
|
|
7725
8575
|
Object.defineProperty(exports, "now", {
|
|
7726
8576
|
enumerable: true,
|
|
7727
|
-
get: function () { return
|
|
8577
|
+
get: function () { return chunkTU6ECJFZ_js.now; }
|
|
7728
8578
|
});
|
|
7729
8579
|
Object.defineProperty(exports, "parseResourceVisibility", {
|
|
7730
8580
|
enumerable: true,
|
|
7731
|
-
get: function () { return
|
|
8581
|
+
get: function () { return chunkTU6ECJFZ_js.parseResourceVisibility; }
|
|
7732
8582
|
});
|
|
7733
8583
|
Object.defineProperty(exports, "parseViewConfig", {
|
|
7734
8584
|
enumerable: true,
|
|
7735
|
-
get: function () { return
|
|
8585
|
+
get: function () { return chunkTU6ECJFZ_js.parseViewConfig; }
|
|
7736
8586
|
});
|
|
7737
8587
|
Object.defineProperty(exports, "relationSourceSchema", {
|
|
7738
8588
|
enumerable: true,
|
|
7739
|
-
get: function () { return
|
|
8589
|
+
get: function () { return chunkTU6ECJFZ_js.relationSourceSchema; }
|
|
7740
8590
|
});
|
|
7741
8591
|
Object.defineProperty(exports, "resolveEffectiveFilterType", {
|
|
7742
8592
|
enumerable: true,
|
|
7743
|
-
get: function () { return
|
|
8593
|
+
get: function () { return chunkTU6ECJFZ_js.resolveEffectiveFilterType; }
|
|
7744
8594
|
});
|
|
7745
8595
|
Object.defineProperty(exports, "resolveIsWithinBounds", {
|
|
7746
8596
|
enumerable: true,
|
|
7747
|
-
get: function () { return
|
|
8597
|
+
get: function () { return chunkTU6ECJFZ_js.resolveIsWithinBounds; }
|
|
7748
8598
|
});
|
|
7749
8599
|
Object.defineProperty(exports, "resolveUtcDayBounds", {
|
|
7750
8600
|
enumerable: true,
|
|
7751
|
-
get: function () { return
|
|
8601
|
+
get: function () { return chunkTU6ECJFZ_js.resolveUtcDayBounds; }
|
|
7752
8602
|
});
|
|
7753
8603
|
Object.defineProperty(exports, "tableSourceSchema", {
|
|
7754
8604
|
enumerable: true,
|
|
7755
|
-
get: function () { return
|
|
8605
|
+
get: function () { return chunkTU6ECJFZ_js.tableSourceSchema; }
|
|
7756
8606
|
});
|
|
7757
8607
|
Object.defineProperty(exports, "toMultiValueOperator", {
|
|
7758
8608
|
enumerable: true,
|
|
7759
|
-
get: function () { return
|
|
8609
|
+
get: function () { return chunkTU6ECJFZ_js.toMultiValueOperator; }
|
|
7760
8610
|
});
|
|
7761
8611
|
Object.defineProperty(exports, "toUtcDayString", {
|
|
7762
8612
|
enumerable: true,
|
|
7763
|
-
get: function () { return
|
|
8613
|
+
get: function () { return chunkTU6ECJFZ_js.toUtcDayString; }
|
|
7764
8614
|
});
|
|
7765
8615
|
Object.defineProperty(exports, "today", {
|
|
7766
8616
|
enumerable: true,
|
|
7767
|
-
get: function () { return
|
|
8617
|
+
get: function () { return chunkTU6ECJFZ_js.today; }
|
|
7768
8618
|
});
|
|
7769
8619
|
Object.defineProperty(exports, "validateQualifiedRule", {
|
|
7770
8620
|
enumerable: true,
|
|
7771
|
-
get: function () { return
|
|
8621
|
+
get: function () { return chunkTU6ECJFZ_js.validateQualifiedRule; }
|
|
7772
8622
|
});
|
|
7773
8623
|
Object.defineProperty(exports, "viewConfigByTypeSchema", {
|
|
7774
8624
|
enumerable: true,
|
|
7775
|
-
get: function () { return
|
|
8625
|
+
get: function () { return chunkTU6ECJFZ_js.viewConfigByTypeSchema; }
|
|
7776
8626
|
});
|
|
7777
8627
|
Object.defineProperty(exports, "viewTypeSchema", {
|
|
7778
8628
|
enumerable: true,
|
|
7779
|
-
get: function () { return
|
|
8629
|
+
get: function () { return chunkTU6ECJFZ_js.viewTypeSchema; }
|
|
7780
8630
|
});
|
|
7781
8631
|
Object.defineProperty(exports, "ComputedFormulaParseError", {
|
|
7782
8632
|
enumerable: true,
|
|
7783
|
-
get: function () { return
|
|
8633
|
+
get: function () { return chunkLRFLSFIA_js.ComputedFormulaParseError; }
|
|
7784
8634
|
});
|
|
7785
8635
|
Object.defineProperty(exports, "SCHEMA_LIMITS", {
|
|
7786
8636
|
enumerable: true,
|
|
7787
|
-
get: function () { return
|
|
8637
|
+
get: function () { return chunkLRFLSFIA_js.SCHEMA_LIMITS; }
|
|
7788
8638
|
});
|
|
7789
8639
|
Object.defineProperty(exports, "colorIdSchema", {
|
|
7790
8640
|
enumerable: true,
|
|
7791
|
-
get: function () { return
|
|
8641
|
+
get: function () { return chunkLRFLSFIA_js.colorIdSchema; }
|
|
7792
8642
|
});
|
|
7793
8643
|
Object.defineProperty(exports, "iconNameSchema", {
|
|
7794
8644
|
enumerable: true,
|
|
7795
|
-
get: function () { return
|
|
8645
|
+
get: function () { return chunkLRFLSFIA_js.iconNameSchema; }
|
|
7796
8646
|
});
|
|
7797
8647
|
Object.defineProperty(exports, "multiselectOptionWriteSchema", {
|
|
7798
8648
|
enumerable: true,
|
|
7799
|
-
get: function () { return
|
|
8649
|
+
get: function () { return chunkLRFLSFIA_js.multiselectOptionWriteSchema; }
|
|
7800
8650
|
});
|
|
7801
8651
|
Object.defineProperty(exports, "parseAttributeConfig", {
|
|
7802
8652
|
enumerable: true,
|
|
7803
|
-
get: function () { return
|
|
8653
|
+
get: function () { return chunkLRFLSFIA_js.parseAttributeConfig; }
|
|
7804
8654
|
});
|
|
7805
8655
|
Object.defineProperty(exports, "parseAttributeConfigForCreate", {
|
|
7806
8656
|
enumerable: true,
|
|
7807
|
-
get: function () { return
|
|
8657
|
+
get: function () { return chunkLRFLSFIA_js.parseAttributeConfigForCreate; }
|
|
7808
8658
|
});
|
|
7809
8659
|
Object.defineProperty(exports, "parseAttributeConfigForUpdate", {
|
|
7810
8660
|
enumerable: true,
|
|
7811
|
-
get: function () { return
|
|
8661
|
+
get: function () { return chunkLRFLSFIA_js.parseAttributeConfigForUpdate; }
|
|
7812
8662
|
});
|
|
7813
8663
|
Object.defineProperty(exports, "parseComputedFormula", {
|
|
7814
8664
|
enumerable: true,
|
|
7815
|
-
get: function () { return
|
|
8665
|
+
get: function () { return chunkLRFLSFIA_js.parseComputedFormula; }
|
|
7816
8666
|
});
|
|
7817
8667
|
Object.defineProperty(exports, "selectOptionWriteSchema", {
|
|
7818
8668
|
enumerable: true,
|
|
7819
|
-
get: function () { return
|
|
8669
|
+
get: function () { return chunkLRFLSFIA_js.selectOptionWriteSchema; }
|
|
7820
8670
|
});
|
|
7821
8671
|
Object.defineProperty(exports, "statusGroupSchema", {
|
|
7822
8672
|
enumerable: true,
|
|
7823
|
-
get: function () { return
|
|
8673
|
+
get: function () { return chunkLRFLSFIA_js.statusGroupSchema; }
|
|
7824
8674
|
});
|
|
7825
8675
|
Object.defineProperty(exports, "statusOptionWriteSchema", {
|
|
7826
8676
|
enumerable: true,
|
|
7827
|
-
get: function () { return
|
|
8677
|
+
get: function () { return chunkLRFLSFIA_js.statusOptionWriteSchema; }
|
|
7828
8678
|
});
|
|
7829
8679
|
Object.defineProperty(exports, "createFormAttributeValidator", {
|
|
7830
8680
|
enumerable: true,
|
|
7831
|
-
get: function () { return
|
|
8681
|
+
get: function () { return chunkE47WAI5K_js.createFormAttributeValidator; }
|
|
7832
8682
|
});
|
|
7833
8683
|
Object.defineProperty(exports, "isNullishOrEmptyString", {
|
|
7834
8684
|
enumerable: true,
|
|
7835
|
-
get: function () { return
|
|
8685
|
+
get: function () { return chunkE47WAI5K_js.isNullishOrEmptyString; }
|
|
7836
8686
|
});
|
|
7837
8687
|
Object.defineProperty(exports, "isValuePresent", {
|
|
7838
8688
|
enumerable: true,
|
|
7839
|
-
get: function () { return
|
|
8689
|
+
get: function () { return chunkE47WAI5K_js.isValuePresent; }
|
|
7840
8690
|
});
|
|
7841
8691
|
Object.defineProperty(exports, "rejectUnknownAttributesOrThrow", {
|
|
7842
8692
|
enumerable: true,
|
|
7843
|
-
get: function () { return
|
|
8693
|
+
get: function () { return chunkE47WAI5K_js.rejectUnknownAttributesOrThrow; }
|
|
7844
8694
|
});
|
|
7845
8695
|
Object.defineProperty(exports, "validateDraft", {
|
|
7846
8696
|
enumerable: true,
|
|
7847
|
-
get: function () { return
|
|
8697
|
+
get: function () { return chunkE47WAI5K_js.validateDraft; }
|
|
7848
8698
|
});
|
|
7849
8699
|
Object.defineProperty(exports, "validateDraftOrThrow", {
|
|
7850
8700
|
enumerable: true,
|
|
7851
|
-
get: function () { return
|
|
8701
|
+
get: function () { return chunkE47WAI5K_js.validateDraftOrThrow; }
|
|
7852
8702
|
});
|
|
7853
8703
|
Object.defineProperty(exports, "validateObject", {
|
|
7854
8704
|
enumerable: true,
|
|
7855
|
-
get: function () { return
|
|
8705
|
+
get: function () { return chunkE47WAI5K_js.validateObject; }
|
|
7856
8706
|
});
|
|
7857
8707
|
Object.defineProperty(exports, "validateObjectOrThrow", {
|
|
7858
8708
|
enumerable: true,
|
|
7859
|
-
get: function () { return
|
|
8709
|
+
get: function () { return chunkE47WAI5K_js.validateObjectOrThrow; }
|
|
7860
8710
|
});
|
|
7861
8711
|
Object.defineProperty(exports, "createCheckboxValidator", {
|
|
7862
8712
|
enumerable: true,
|
|
@@ -7884,155 +8734,155 @@ Object.defineProperty(exports, "resolveTextPattern", {
|
|
|
7884
8734
|
});
|
|
7885
8735
|
Object.defineProperty(exports, "AccessDeniedError", {
|
|
7886
8736
|
enumerable: true,
|
|
7887
|
-
get: function () { return
|
|
8737
|
+
get: function () { return chunkHWZRSXFB_js.AccessDeniedError; }
|
|
7888
8738
|
});
|
|
7889
8739
|
Object.defineProperty(exports, "AttributeInUseError", {
|
|
7890
8740
|
enumerable: true,
|
|
7891
|
-
get: function () { return
|
|
8741
|
+
get: function () { return chunkHWZRSXFB_js.AttributeInUseError; }
|
|
7892
8742
|
});
|
|
7893
8743
|
Object.defineProperty(exports, "AttributeNotFoundError", {
|
|
7894
8744
|
enumerable: true,
|
|
7895
|
-
get: function () { return
|
|
8745
|
+
get: function () { return chunkHWZRSXFB_js.AttributeNotFoundError; }
|
|
7896
8746
|
});
|
|
7897
8747
|
Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
|
|
7898
8748
|
enumerable: true,
|
|
7899
|
-
get: function () { return
|
|
8749
|
+
get: function () { return chunkHWZRSXFB_js.ChangeTypeNotSupportedError; }
|
|
7900
8750
|
});
|
|
7901
8751
|
Object.defineProperty(exports, "ConcurrentModificationError", {
|
|
7902
8752
|
enumerable: true,
|
|
7903
|
-
get: function () { return
|
|
8753
|
+
get: function () { return chunkHWZRSXFB_js.ConcurrentModificationError; }
|
|
7904
8754
|
});
|
|
7905
8755
|
Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
|
|
7906
8756
|
enumerable: true,
|
|
7907
|
-
get: function () { return
|
|
8757
|
+
get: function () { return chunkHWZRSXFB_js.DestructiveSyncNotAllowedError; }
|
|
7908
8758
|
});
|
|
7909
8759
|
Object.defineProperty(exports, "DuplicateError", {
|
|
7910
8760
|
enumerable: true,
|
|
7911
|
-
get: function () { return
|
|
8761
|
+
get: function () { return chunkHWZRSXFB_js.DuplicateError; }
|
|
7912
8762
|
});
|
|
7913
8763
|
Object.defineProperty(exports, "ForbiddenError", {
|
|
7914
8764
|
enumerable: true,
|
|
7915
|
-
get: function () { return
|
|
8765
|
+
get: function () { return chunkHWZRSXFB_js.ForbiddenError; }
|
|
7916
8766
|
});
|
|
7917
8767
|
Object.defineProperty(exports, "MemoryNotFoundError", {
|
|
7918
8768
|
enumerable: true,
|
|
7919
|
-
get: function () { return
|
|
8769
|
+
get: function () { return chunkHWZRSXFB_js.MemoryNotFoundError; }
|
|
7920
8770
|
});
|
|
7921
8771
|
Object.defineProperty(exports, "MigrationTimeoutError", {
|
|
7922
8772
|
enumerable: true,
|
|
7923
|
-
get: function () { return
|
|
8773
|
+
get: function () { return chunkHWZRSXFB_js.MigrationTimeoutError; }
|
|
7924
8774
|
});
|
|
7925
8775
|
Object.defineProperty(exports, "NotFoundError", {
|
|
7926
8776
|
enumerable: true,
|
|
7927
|
-
get: function () { return
|
|
8777
|
+
get: function () { return chunkHWZRSXFB_js.NotFoundError; }
|
|
7928
8778
|
});
|
|
7929
8779
|
Object.defineProperty(exports, "NotImplementedError", {
|
|
7930
8780
|
enumerable: true,
|
|
7931
|
-
get: function () { return
|
|
8781
|
+
get: function () { return chunkHWZRSXFB_js.NotImplementedError; }
|
|
7932
8782
|
});
|
|
7933
8783
|
Object.defineProperty(exports, "ObjectNotFoundError", {
|
|
7934
8784
|
enumerable: true,
|
|
7935
|
-
get: function () { return
|
|
8785
|
+
get: function () { return chunkHWZRSXFB_js.ObjectNotFoundError; }
|
|
7936
8786
|
});
|
|
7937
8787
|
Object.defineProperty(exports, "ObjectReferencedError", {
|
|
7938
8788
|
enumerable: true,
|
|
7939
|
-
get: function () { return
|
|
8789
|
+
get: function () { return chunkHWZRSXFB_js.ObjectReferencedError; }
|
|
7940
8790
|
});
|
|
7941
8791
|
Object.defineProperty(exports, "OrphanSystemAttributeError", {
|
|
7942
8792
|
enumerable: true,
|
|
7943
|
-
get: function () { return
|
|
8793
|
+
get: function () { return chunkHWZRSXFB_js.OrphanSystemAttributeError; }
|
|
7944
8794
|
});
|
|
7945
8795
|
Object.defineProperty(exports, "ProtectedResourceError", {
|
|
7946
8796
|
enumerable: true,
|
|
7947
|
-
get: function () { return
|
|
8797
|
+
get: function () { return chunkHWZRSXFB_js.ProtectedResourceError; }
|
|
7948
8798
|
});
|
|
7949
8799
|
Object.defineProperty(exports, "ProtectedRoleError", {
|
|
7950
8800
|
enumerable: true,
|
|
7951
|
-
get: function () { return
|
|
8801
|
+
get: function () { return chunkHWZRSXFB_js.ProtectedRoleError; }
|
|
7952
8802
|
});
|
|
7953
8803
|
Object.defineProperty(exports, "RecordNotFoundError", {
|
|
7954
8804
|
enumerable: true,
|
|
7955
|
-
get: function () { return
|
|
8805
|
+
get: function () { return chunkHWZRSXFB_js.RecordNotFoundError; }
|
|
7956
8806
|
});
|
|
7957
8807
|
Object.defineProperty(exports, "RecordReferencedError", {
|
|
7958
8808
|
enumerable: true,
|
|
7959
|
-
get: function () { return
|
|
8809
|
+
get: function () { return chunkHWZRSXFB_js.RecordReferencedError; }
|
|
7960
8810
|
});
|
|
7961
8811
|
Object.defineProperty(exports, "RepositoryError", {
|
|
7962
8812
|
enumerable: true,
|
|
7963
|
-
get: function () { return
|
|
8813
|
+
get: function () { return chunkHWZRSXFB_js.RepositoryError; }
|
|
7964
8814
|
});
|
|
7965
8815
|
Object.defineProperty(exports, "RoleNotFoundError", {
|
|
7966
8816
|
enumerable: true,
|
|
7967
|
-
get: function () { return
|
|
8817
|
+
get: function () { return chunkHWZRSXFB_js.RoleNotFoundError; }
|
|
7968
8818
|
});
|
|
7969
8819
|
Object.defineProperty(exports, "SchemaError", {
|
|
7970
8820
|
enumerable: true,
|
|
7971
|
-
get: function () { return
|
|
8821
|
+
get: function () { return chunkHWZRSXFB_js.SchemaError; }
|
|
7972
8822
|
});
|
|
7973
8823
|
Object.defineProperty(exports, "SchemaErrorCode", {
|
|
7974
8824
|
enumerable: true,
|
|
7975
|
-
get: function () { return
|
|
8825
|
+
get: function () { return chunkHWZRSXFB_js.SchemaErrorCode; }
|
|
7976
8826
|
});
|
|
7977
8827
|
Object.defineProperty(exports, "SchemaPlanNotFoundError", {
|
|
7978
8828
|
enumerable: true,
|
|
7979
|
-
get: function () { return
|
|
8829
|
+
get: function () { return chunkHWZRSXFB_js.SchemaPlanNotFoundError; }
|
|
7980
8830
|
});
|
|
7981
8831
|
Object.defineProperty(exports, "SearchBackendError", {
|
|
7982
8832
|
enumerable: true,
|
|
7983
|
-
get: function () { return
|
|
8833
|
+
get: function () { return chunkHWZRSXFB_js.SearchBackendError; }
|
|
7984
8834
|
});
|
|
7985
8835
|
Object.defineProperty(exports, "StorageError", {
|
|
7986
8836
|
enumerable: true,
|
|
7987
|
-
get: function () { return
|
|
8837
|
+
get: function () { return chunkHWZRSXFB_js.StorageError; }
|
|
7988
8838
|
});
|
|
7989
8839
|
Object.defineProperty(exports, "SyncCascadeError", {
|
|
7990
8840
|
enumerable: true,
|
|
7991
|
-
get: function () { return
|
|
8841
|
+
get: function () { return chunkHWZRSXFB_js.SyncCascadeError; }
|
|
7992
8842
|
});
|
|
7993
8843
|
Object.defineProperty(exports, "SyncConflictError", {
|
|
7994
8844
|
enumerable: true,
|
|
7995
|
-
get: function () { return
|
|
8845
|
+
get: function () { return chunkHWZRSXFB_js.SyncConflictError; }
|
|
7996
8846
|
});
|
|
7997
8847
|
Object.defineProperty(exports, "SyncError", {
|
|
7998
8848
|
enumerable: true,
|
|
7999
|
-
get: function () { return
|
|
8849
|
+
get: function () { return chunkHWZRSXFB_js.SyncError; }
|
|
8000
8850
|
});
|
|
8001
8851
|
Object.defineProperty(exports, "SystemEntityImmutableError", {
|
|
8002
8852
|
enumerable: true,
|
|
8003
|
-
get: function () { return
|
|
8853
|
+
get: function () { return chunkHWZRSXFB_js.SystemEntityImmutableError; }
|
|
8004
8854
|
});
|
|
8005
8855
|
Object.defineProperty(exports, "ValidationError", {
|
|
8006
8856
|
enumerable: true,
|
|
8007
|
-
get: function () { return
|
|
8857
|
+
get: function () { return chunkHWZRSXFB_js.ValidationError; }
|
|
8008
8858
|
});
|
|
8009
8859
|
Object.defineProperty(exports, "isAttributeInUseError", {
|
|
8010
8860
|
enumerable: true,
|
|
8011
|
-
get: function () { return
|
|
8861
|
+
get: function () { return chunkHWZRSXFB_js.isAttributeInUseError; }
|
|
8012
8862
|
});
|
|
8013
8863
|
Object.defineProperty(exports, "isNotFoundError", {
|
|
8014
8864
|
enumerable: true,
|
|
8015
|
-
get: function () { return
|
|
8865
|
+
get: function () { return chunkHWZRSXFB_js.isNotFoundError; }
|
|
8016
8866
|
});
|
|
8017
8867
|
Object.defineProperty(exports, "isObjectReferencedError", {
|
|
8018
8868
|
enumerable: true,
|
|
8019
|
-
get: function () { return
|
|
8869
|
+
get: function () { return chunkHWZRSXFB_js.isObjectReferencedError; }
|
|
8020
8870
|
});
|
|
8021
8871
|
Object.defineProperty(exports, "isProtectedResourceError", {
|
|
8022
8872
|
enumerable: true,
|
|
8023
|
-
get: function () { return
|
|
8873
|
+
get: function () { return chunkHWZRSXFB_js.isProtectedResourceError; }
|
|
8024
8874
|
});
|
|
8025
8875
|
Object.defineProperty(exports, "isRecordReferencedError", {
|
|
8026
8876
|
enumerable: true,
|
|
8027
|
-
get: function () { return
|
|
8877
|
+
get: function () { return chunkHWZRSXFB_js.isRecordReferencedError; }
|
|
8028
8878
|
});
|
|
8029
8879
|
Object.defineProperty(exports, "isSchemaError", {
|
|
8030
8880
|
enumerable: true,
|
|
8031
|
-
get: function () { return
|
|
8881
|
+
get: function () { return chunkHWZRSXFB_js.isSchemaError; }
|
|
8032
8882
|
});
|
|
8033
8883
|
Object.defineProperty(exports, "isValidationError", {
|
|
8034
8884
|
enumerable: true,
|
|
8035
|
-
get: function () { return
|
|
8885
|
+
get: function () { return chunkHWZRSXFB_js.isValidationError; }
|
|
8036
8886
|
});
|
|
8037
8887
|
Object.defineProperty(exports, "DEFAULT_VALIDATION_MESSAGES", {
|
|
8038
8888
|
enumerable: true,
|
|
@@ -8046,6 +8896,7 @@ exports.AGENT_UI_BATCH_MAX_BYTES = AGENT_UI_BATCH_MAX_BYTES;
|
|
|
8046
8896
|
exports.AGENT_UI_BATCH_MAX_ITEMS = AGENT_UI_BATCH_MAX_ITEMS;
|
|
8047
8897
|
exports.ALLOWED_PROPERTY_TYPES = ALLOWED_PROPERTY_TYPES;
|
|
8048
8898
|
exports.ALL_ACTIONS = ALL_ACTIONS;
|
|
8899
|
+
exports.ALL_OPERATION_TYPES = ALL_OPERATION_TYPES;
|
|
8049
8900
|
exports.ALL_SYSTEM_RESOURCES = ALL_SYSTEM_RESOURCES;
|
|
8050
8901
|
exports.AUDIT_ACTIONS = AUDIT_ACTIONS;
|
|
8051
8902
|
exports.AUDIT_RESOURCE_TYPES = AUDIT_RESOURCE_TYPES;
|
|
@@ -8054,6 +8905,7 @@ exports.AgentBuilder = AgentBuilder;
|
|
|
8054
8905
|
exports.BEHAVIOR_PROPERTIES = BEHAVIOR_PROPERTIES;
|
|
8055
8906
|
exports.BROWSER_PREVIEW_STATUSES = BROWSER_PREVIEW_STATUSES;
|
|
8056
8907
|
exports.BYTE_UNIT_LABELS = BYTE_UNIT_LABELS;
|
|
8908
|
+
exports.CLAIMABLE_SESSION_STATUSES = CLAIMABLE_SESSION_STATUSES;
|
|
8057
8909
|
exports.COMPUTED_FUNCTIONS = COMPUTED_FUNCTIONS;
|
|
8058
8910
|
exports.COMPUTED_FUNCTION_METADATA = COMPUTED_FUNCTION_METADATA;
|
|
8059
8911
|
exports.COMPUTED_FUNCTION_NAMES = COMPUTED_FUNCTION_NAMES;
|
|
@@ -8070,6 +8922,10 @@ exports.DEFAULT_ROLE_DESCRIPTIONS = DEFAULT_ROLE_DESCRIPTIONS;
|
|
|
8070
8922
|
exports.DEFAULT_ROLE_LABELS = DEFAULT_ROLE_LABELS;
|
|
8071
8923
|
exports.DEFAULT_ROLE_PERMISSIONS = DEFAULT_ROLE_PERMISSIONS;
|
|
8072
8924
|
exports.DOCUMENT_SYSTEM_ATTRIBUTES = DOCUMENT_SYSTEM_ATTRIBUTES;
|
|
8925
|
+
exports.DRIVE_LIST_VIEW = DRIVE_LIST_VIEW;
|
|
8926
|
+
exports.DRIVE_OBJECT = DRIVE_OBJECT;
|
|
8927
|
+
exports.DRIVE_OBJECT_NAME = DRIVE_OBJECT_NAME;
|
|
8928
|
+
exports.DRIVE_VIEW = DRIVE_VIEW;
|
|
8073
8929
|
exports.DetailViewBuilder = DetailViewBuilder;
|
|
8074
8930
|
exports.DocumentsTabConfig = DocumentsTabConfig;
|
|
8075
8931
|
exports.EMPTY_VALUE_PLACEHOLDER = EMPTY_VALUE_PLACEHOLDER;
|
|
@@ -8111,13 +8967,13 @@ exports.NOTIFICATION_TYPE_AGENT_SESSION_WAITING_HUMAN = NOTIFICATION_TYPE_AGENT_
|
|
|
8111
8967
|
exports.NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED = NOTIFICATION_TYPE_AGENT_TASK_ASSIGNED;
|
|
8112
8968
|
exports.NOTIFICATION_WORK_STATES = NOTIFICATION_WORK_STATES;
|
|
8113
8969
|
exports.NoopGeocodingAdapter = NoopGeocodingAdapter;
|
|
8970
|
+
exports.OPERATION_REGISTRY = OPERATION_REGISTRY;
|
|
8114
8971
|
exports.OPERATOR_SPECS = OPERATOR_SPECS;
|
|
8115
8972
|
exports.ObjectBuilder = ObjectBuilder;
|
|
8116
8973
|
exports.PRESENTATION_PROPERTIES = PRESENTATION_PROPERTIES;
|
|
8117
8974
|
exports.QUALIFIED_SEPARATOR = QUALIFIED_SEPARATOR;
|
|
8118
8975
|
exports.RECORD_CREATOR_ROOT_ACTOR_METADATA_KEY = RECORD_CREATOR_ROOT_ACTOR_METADATA_KEY;
|
|
8119
8976
|
exports.RELATION_TARGET_ANY = RELATION_TARGET_ANY;
|
|
8120
|
-
exports.RelationGroupBuilder = RelationGroupBuilder;
|
|
8121
8977
|
exports.RichtextTabConfig = RichtextTabConfig;
|
|
8122
8978
|
exports.SCHEMA_PLAN_LIMITS = SCHEMA_PLAN_LIMITS;
|
|
8123
8979
|
exports.SESSION_TERMINAL_STATUSES = SESSION_TERMINAL_STATUSES;
|
|
@@ -8138,6 +8994,7 @@ exports.accessLevelToActions = accessLevelToActions;
|
|
|
8138
8994
|
exports.actionsToAccessLevel = actionsToAccessLevel;
|
|
8139
8995
|
exports.agent = agent;
|
|
8140
8996
|
exports.agentDisplayName = agentDisplayName;
|
|
8997
|
+
exports.applyOperations = applyOperations;
|
|
8141
8998
|
exports.applyPipes = applyPipes;
|
|
8142
8999
|
exports.applyRelationProps = applyRelationProps;
|
|
8143
9000
|
exports.assertAcyclicComputedDependencies = assertAcyclicComputedDependencies;
|
|
@@ -8146,7 +9003,6 @@ exports.buildAgentFallbackTitle = buildAgentFallbackTitle;
|
|
|
8146
9003
|
exports.buildPermissionFlags = buildPermissionFlags;
|
|
8147
9004
|
exports.buildPropertySchema = buildPropertySchema;
|
|
8148
9005
|
exports.buildQualifiedAttribute = buildQualifiedAttribute;
|
|
8149
|
-
exports.canonicalStringify = canonicalStringify;
|
|
8150
9006
|
exports.checkbox = checkbox;
|
|
8151
9007
|
exports.compileComputedFormula = compileComputedFormula;
|
|
8152
9008
|
exports.compileRollupAttribute = compileRollupAttribute;
|
|
@@ -8159,10 +9015,13 @@ exports.currency = currency;
|
|
|
8159
9015
|
exports.date = date;
|
|
8160
9016
|
exports.dateInTimezone = dateInTimezone;
|
|
8161
9017
|
exports.dateValueStart = dateValueStart;
|
|
9018
|
+
exports.defineOperation = defineOperation;
|
|
8162
9019
|
exports.deriveInitials = deriveInitials;
|
|
9020
|
+
exports.describeOperations = describeOperations;
|
|
8163
9021
|
exports.destructiveSchema = destructiveSchema;
|
|
8164
9022
|
exports.detailView = detailView;
|
|
8165
9023
|
exports.document = document;
|
|
9024
|
+
exports.ensureFieldIds = ensureFieldIds;
|
|
8166
9025
|
exports.evaluateComputedAst = evaluateComputedAst;
|
|
8167
9026
|
exports.evaluateComputedFormula = evaluateComputedFormula;
|
|
8168
9027
|
exports.evaluateComputedFormulaWithResult = evaluateComputedFormulaWithResult;
|
|
@@ -8171,6 +9030,7 @@ exports.evaluateRecordFilterState = evaluateRecordFilterState;
|
|
|
8171
9030
|
exports.extractAttributeNames = extractAttributeNames;
|
|
8172
9031
|
exports.extractValueRefs = extractValueRefs;
|
|
8173
9032
|
exports.flagRegistry = flagRegistry;
|
|
9033
|
+
exports.focusOf = focusOf;
|
|
8174
9034
|
exports.form = form;
|
|
8175
9035
|
exports.formRegistry = formRegistry;
|
|
8176
9036
|
exports.formatAttributeValue = formatAttributeValue;
|
|
@@ -8196,6 +9056,7 @@ exports.isAgentUIMessageBatch = isAgentUIMessageBatch;
|
|
|
8196
9056
|
exports.isAttributeSortable = isAttributeSortable2;
|
|
8197
9057
|
exports.isBilateralRelation = isBilateralRelation;
|
|
8198
9058
|
exports.isCheckboxEquality = isCheckboxEquality;
|
|
9059
|
+
exports.isClaimableSessionStatus = isClaimableSessionStatus;
|
|
8199
9060
|
exports.isComputedFunctionName = isComputedFunctionName;
|
|
8200
9061
|
exports.isDateRangeValue = isDateRangeValue;
|
|
8201
9062
|
exports.isDefaultRole = isDefaultRole;
|
|
@@ -8218,7 +9079,6 @@ exports.isLiveEventPayloadForType = isLiveEventPayloadForType;
|
|
|
8218
9079
|
exports.isLiveEventType = isLiveEventType;
|
|
8219
9080
|
exports.isNotEmpty = isNotEmpty;
|
|
8220
9081
|
exports.isPlainRecord = isPlainRecord2;
|
|
8221
|
-
exports.isRelationGroup = isRelationGroup;
|
|
8222
9082
|
exports.isStandardSchema = isStandardSchema;
|
|
8223
9083
|
exports.isTerminalSessionStatus = isTerminalSessionStatus;
|
|
8224
9084
|
exports.isTerminalState = isTerminalState;
|
|
@@ -8228,6 +9088,7 @@ exports.legacyStatusToSessionState = legacyStatusToSessionState;
|
|
|
8228
9088
|
exports.listView = listView;
|
|
8229
9089
|
exports.liveChannelKey = liveChannelKey;
|
|
8230
9090
|
exports.location = location;
|
|
9091
|
+
exports.makeFieldId = makeFieldId;
|
|
8231
9092
|
exports.matchesAccepts = matchesAccepts;
|
|
8232
9093
|
exports.multiselect = multiselect;
|
|
8233
9094
|
exports.nativeAgentUIPartIdMetadataKey = nativeAgentUIPartIdMetadataKey;
|
|
@@ -8238,6 +9099,7 @@ exports.object = object;
|
|
|
8238
9099
|
exports.parseCountMode = parseCountMode;
|
|
8239
9100
|
exports.parseLiveChannelKey = parseLiveChannelKey;
|
|
8240
9101
|
exports.parseNativeAgentUIPartIdsMetadata = parseNativeAgentUIPartIdsMetadata;
|
|
9102
|
+
exports.parseOperation = parseOperation;
|
|
8241
9103
|
exports.parseOptionalCountMode = parseOptionalCountMode;
|
|
8242
9104
|
exports.parseQualifiedAttribute = parseQualifiedAttribute;
|
|
8243
9105
|
exports.persistedDefaultViewTargetSchema = persistedDefaultViewTargetSchema;
|
|
@@ -8249,7 +9111,6 @@ exports.plannedObjectSchema = plannedObjectSchema;
|
|
|
8249
9111
|
exports.proposedDefaultViewTargetSchema = proposedDefaultViewTargetSchema;
|
|
8250
9112
|
exports.registry = registry;
|
|
8251
9113
|
exports.relation = relation;
|
|
8252
|
-
exports.relationGroup = relationGroup;
|
|
8253
9114
|
exports.relationPropertyDefs = relationPropertyDefs;
|
|
8254
9115
|
exports.renderLabelExpression = renderLabelExpression;
|
|
8255
9116
|
exports.resetViewToDefault = resetViewToDefault;
|