@stndrds/schema 1.0.0-alpha.291 → 1.0.0-alpha.293
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-FGIrc6mI.d.ts → all-CDJSpI46.d.ts} +105 -6
- package/dist/{all-DaucFjyz.d.mts → all-Cru_CaSY.d.mts} +105 -6
- package/dist/{chunk-5JMQNH2A.js → chunk-5N7OSHVX.js} +4 -4
- package/dist/{chunk-KLDZHAGX.mjs → chunk-APRL56F4.mjs} +1 -1
- package/dist/{chunk-RDYTVHNN.js → chunk-C32UUQ6D.js} +4 -4
- package/dist/{chunk-UW3BOSB6.mjs → chunk-GRUSTQK3.mjs} +1 -1
- package/dist/{chunk-K7XGY34S.js → chunk-OASIPLEB.js} +98 -40
- package/dist/{chunk-ZHB4VBCX.js → chunk-P4VCAPJT.js} +3 -3
- package/dist/{chunk-RMJ75YLQ.mjs → chunk-ULM2BA5A.mjs} +62 -8
- package/dist/{chunk-JSQCTLV5.mjs → chunk-VGGGLTYJ.mjs} +1 -1
- package/dist/{chunk-3YCZ5H3H.js → chunk-Y3UPKP2B.js} +4 -0
- package/dist/{chunk-7WEOBXXA.mjs → chunk-Z5OPSBMQ.mjs} +4 -0
- package/dist/exceptions.d.mts +3 -0
- package/dist/exceptions.d.ts +3 -0
- package/dist/exceptions.js +39 -39
- package/dist/exceptions.mjs +1 -1
- package/dist/{index-Eh1tYq3i.d.mts → index-BdVnHL3F.d.mts} +27 -7
- package/dist/{index-0VG9u1XW.d.ts → index-CFhPHQaI.d.ts} +27 -7
- package/dist/index.d.mts +877 -429
- package/dist/index.d.ts +877 -429
- package/dist/index.js +654 -334
- package/dist/index.mjs +332 -61
- package/dist/utils.js +8 -8
- package/dist/utils.mjs +2 -2
- 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 +12 -12
- 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/exceptions.js
CHANGED
|
@@ -1,158 +1,158 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkY3UPKP2B_js = require('./chunk-Y3UPKP2B.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "AccessDeniedError", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkY3UPKP2B_js.AccessDeniedError; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "AttributeInUseError", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkY3UPKP2B_js.AttributeInUseError; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "AttributeNotFoundError", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkY3UPKP2B_js.AttributeNotFoundError; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "ChangeTypeNotSupportedError", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkY3UPKP2B_js.ChangeTypeNotSupportedError; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "ConcurrentModificationError", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkY3UPKP2B_js.ConcurrentModificationError; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "DestructiveSyncNotAllowedError", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkY3UPKP2B_js.DestructiveSyncNotAllowedError; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "DuplicateError", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkY3UPKP2B_js.DuplicateError; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "ForbiddenError", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkY3UPKP2B_js.ForbiddenError; }
|
|
38
38
|
});
|
|
39
39
|
Object.defineProperty(exports, "MemoryNotFoundError", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkY3UPKP2B_js.MemoryNotFoundError; }
|
|
42
42
|
});
|
|
43
43
|
Object.defineProperty(exports, "MigrationTimeoutError", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkY3UPKP2B_js.MigrationTimeoutError; }
|
|
46
46
|
});
|
|
47
47
|
Object.defineProperty(exports, "NotFoundError", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkY3UPKP2B_js.NotFoundError; }
|
|
50
50
|
});
|
|
51
51
|
Object.defineProperty(exports, "NotImplementedError", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkY3UPKP2B_js.NotImplementedError; }
|
|
54
54
|
});
|
|
55
55
|
Object.defineProperty(exports, "ObjectNotFoundError", {
|
|
56
56
|
enumerable: true,
|
|
57
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkY3UPKP2B_js.ObjectNotFoundError; }
|
|
58
58
|
});
|
|
59
59
|
Object.defineProperty(exports, "ObjectReferencedError", {
|
|
60
60
|
enumerable: true,
|
|
61
|
-
get: function () { return
|
|
61
|
+
get: function () { return chunkY3UPKP2B_js.ObjectReferencedError; }
|
|
62
62
|
});
|
|
63
63
|
Object.defineProperty(exports, "OrphanSystemAttributeError", {
|
|
64
64
|
enumerable: true,
|
|
65
|
-
get: function () { return
|
|
65
|
+
get: function () { return chunkY3UPKP2B_js.OrphanSystemAttributeError; }
|
|
66
66
|
});
|
|
67
67
|
Object.defineProperty(exports, "ProtectedResourceError", {
|
|
68
68
|
enumerable: true,
|
|
69
|
-
get: function () { return
|
|
69
|
+
get: function () { return chunkY3UPKP2B_js.ProtectedResourceError; }
|
|
70
70
|
});
|
|
71
71
|
Object.defineProperty(exports, "ProtectedRoleError", {
|
|
72
72
|
enumerable: true,
|
|
73
|
-
get: function () { return
|
|
73
|
+
get: function () { return chunkY3UPKP2B_js.ProtectedRoleError; }
|
|
74
74
|
});
|
|
75
75
|
Object.defineProperty(exports, "RecordNotFoundError", {
|
|
76
76
|
enumerable: true,
|
|
77
|
-
get: function () { return
|
|
77
|
+
get: function () { return chunkY3UPKP2B_js.RecordNotFoundError; }
|
|
78
78
|
});
|
|
79
79
|
Object.defineProperty(exports, "RecordReferencedError", {
|
|
80
80
|
enumerable: true,
|
|
81
|
-
get: function () { return
|
|
81
|
+
get: function () { return chunkY3UPKP2B_js.RecordReferencedError; }
|
|
82
82
|
});
|
|
83
83
|
Object.defineProperty(exports, "RepositoryError", {
|
|
84
84
|
enumerable: true,
|
|
85
|
-
get: function () { return
|
|
85
|
+
get: function () { return chunkY3UPKP2B_js.RepositoryError; }
|
|
86
86
|
});
|
|
87
87
|
Object.defineProperty(exports, "RoleNotFoundError", {
|
|
88
88
|
enumerable: true,
|
|
89
|
-
get: function () { return
|
|
89
|
+
get: function () { return chunkY3UPKP2B_js.RoleNotFoundError; }
|
|
90
90
|
});
|
|
91
91
|
Object.defineProperty(exports, "SchemaError", {
|
|
92
92
|
enumerable: true,
|
|
93
|
-
get: function () { return
|
|
93
|
+
get: function () { return chunkY3UPKP2B_js.SchemaError; }
|
|
94
94
|
});
|
|
95
95
|
Object.defineProperty(exports, "SchemaErrorCode", {
|
|
96
96
|
enumerable: true,
|
|
97
|
-
get: function () { return
|
|
97
|
+
get: function () { return chunkY3UPKP2B_js.SchemaErrorCode; }
|
|
98
98
|
});
|
|
99
99
|
Object.defineProperty(exports, "SchemaPlanNotFoundError", {
|
|
100
100
|
enumerable: true,
|
|
101
|
-
get: function () { return
|
|
101
|
+
get: function () { return chunkY3UPKP2B_js.SchemaPlanNotFoundError; }
|
|
102
102
|
});
|
|
103
103
|
Object.defineProperty(exports, "SearchBackendError", {
|
|
104
104
|
enumerable: true,
|
|
105
|
-
get: function () { return
|
|
105
|
+
get: function () { return chunkY3UPKP2B_js.SearchBackendError; }
|
|
106
106
|
});
|
|
107
107
|
Object.defineProperty(exports, "StorageError", {
|
|
108
108
|
enumerable: true,
|
|
109
|
-
get: function () { return
|
|
109
|
+
get: function () { return chunkY3UPKP2B_js.StorageError; }
|
|
110
110
|
});
|
|
111
111
|
Object.defineProperty(exports, "SyncCascadeError", {
|
|
112
112
|
enumerable: true,
|
|
113
|
-
get: function () { return
|
|
113
|
+
get: function () { return chunkY3UPKP2B_js.SyncCascadeError; }
|
|
114
114
|
});
|
|
115
115
|
Object.defineProperty(exports, "SyncConflictError", {
|
|
116
116
|
enumerable: true,
|
|
117
|
-
get: function () { return
|
|
117
|
+
get: function () { return chunkY3UPKP2B_js.SyncConflictError; }
|
|
118
118
|
});
|
|
119
119
|
Object.defineProperty(exports, "SyncError", {
|
|
120
120
|
enumerable: true,
|
|
121
|
-
get: function () { return
|
|
121
|
+
get: function () { return chunkY3UPKP2B_js.SyncError; }
|
|
122
122
|
});
|
|
123
123
|
Object.defineProperty(exports, "SystemEntityImmutableError", {
|
|
124
124
|
enumerable: true,
|
|
125
|
-
get: function () { return
|
|
125
|
+
get: function () { return chunkY3UPKP2B_js.SystemEntityImmutableError; }
|
|
126
126
|
});
|
|
127
127
|
Object.defineProperty(exports, "ValidationError", {
|
|
128
128
|
enumerable: true,
|
|
129
|
-
get: function () { return
|
|
129
|
+
get: function () { return chunkY3UPKP2B_js.ValidationError; }
|
|
130
130
|
});
|
|
131
131
|
Object.defineProperty(exports, "isAttributeInUseError", {
|
|
132
132
|
enumerable: true,
|
|
133
|
-
get: function () { return
|
|
133
|
+
get: function () { return chunkY3UPKP2B_js.isAttributeInUseError; }
|
|
134
134
|
});
|
|
135
135
|
Object.defineProperty(exports, "isNotFoundError", {
|
|
136
136
|
enumerable: true,
|
|
137
|
-
get: function () { return
|
|
137
|
+
get: function () { return chunkY3UPKP2B_js.isNotFoundError; }
|
|
138
138
|
});
|
|
139
139
|
Object.defineProperty(exports, "isObjectReferencedError", {
|
|
140
140
|
enumerable: true,
|
|
141
|
-
get: function () { return
|
|
141
|
+
get: function () { return chunkY3UPKP2B_js.isObjectReferencedError; }
|
|
142
142
|
});
|
|
143
143
|
Object.defineProperty(exports, "isProtectedResourceError", {
|
|
144
144
|
enumerable: true,
|
|
145
|
-
get: function () { return
|
|
145
|
+
get: function () { return chunkY3UPKP2B_js.isProtectedResourceError; }
|
|
146
146
|
});
|
|
147
147
|
Object.defineProperty(exports, "isRecordReferencedError", {
|
|
148
148
|
enumerable: true,
|
|
149
|
-
get: function () { return
|
|
149
|
+
get: function () { return chunkY3UPKP2B_js.isRecordReferencedError; }
|
|
150
150
|
});
|
|
151
151
|
Object.defineProperty(exports, "isSchemaError", {
|
|
152
152
|
enumerable: true,
|
|
153
|
-
get: function () { return
|
|
153
|
+
get: function () { return chunkY3UPKP2B_js.isSchemaError; }
|
|
154
154
|
});
|
|
155
155
|
Object.defineProperty(exports, "isValidationError", {
|
|
156
156
|
enumerable: true,
|
|
157
|
-
get: function () { return
|
|
157
|
+
get: function () { return chunkY3UPKP2B_js.isValidationError; }
|
|
158
158
|
});
|
package/dist/exceptions.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SchemaPlanNotFoundError, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError } from './chunk-
|
|
1
|
+
export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SchemaPlanNotFoundError, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError } from './chunk-Z5OPSBMQ.mjs';
|
|
@@ -87,6 +87,9 @@ interface FilterRule {
|
|
|
87
87
|
* If set, this rule filters on a qualified edge property.
|
|
88
88
|
* Requires `attribute` to be a reference attribute (today: `relation` or `document`) that has `.qualifyWith()`.
|
|
89
89
|
* The `operator` must be valid for the property's type, not the root attribute's type.
|
|
90
|
+
* On a `location` attribute it names one of the location's parts instead
|
|
91
|
+
* (`city` | `postalCode` | `country`), compared as text; `quantifier` is
|
|
92
|
+
* invalid there — one location is not a set of edges (#3118).
|
|
90
93
|
*/
|
|
91
94
|
property?: string;
|
|
92
95
|
/**
|
|
@@ -410,9 +413,10 @@ type Tab = FormTab | TableTab | CustomTab | ActivityTab | RichtextTab | Document
|
|
|
410
413
|
/**
|
|
411
414
|
* List view layout mode
|
|
412
415
|
* - `table`: Table/grid layout
|
|
416
|
+
* - `list`: Rows with a description and ordered attributes
|
|
413
417
|
* - `kanban`: Kanban board layout (grouped by attribute)
|
|
414
418
|
*/
|
|
415
|
-
type ListViewLayout = "table" | "kanban";
|
|
419
|
+
type ListViewLayout = "table" | "list" | "kanban";
|
|
416
420
|
/**
|
|
417
421
|
* Tab within a list view — each tab carries its own full display configuration.
|
|
418
422
|
*
|
|
@@ -446,19 +450,23 @@ interface ListViewTab {
|
|
|
446
450
|
columns: string[];
|
|
447
451
|
/** Column widths in pixels */
|
|
448
452
|
columnSizing?: Record<string, number>;
|
|
453
|
+
/** Text/richtext attribute below the record label in List and Kanban. */
|
|
454
|
+
descriptionAttribute?: string;
|
|
455
|
+
/** Ordered attributes below List rows and Kanban cards. An explicit [] hides all. */
|
|
456
|
+
displayAttributes?: string[];
|
|
449
457
|
/** Filters applied to this tab */
|
|
450
458
|
filters?: FilterGroup;
|
|
451
459
|
/** Sort rules for this tab */
|
|
452
460
|
sorts?: SortRule[];
|
|
453
|
-
/**
|
|
461
|
+
/** Required for Kanban; an inert code grouping hint on customized native List/Table tabs. */
|
|
454
462
|
groupByAttribute?: string;
|
|
455
463
|
/** When true, the tab is read-only: no cell editing, no create, no delete */
|
|
456
464
|
readOnly?: boolean;
|
|
457
465
|
/** Creation behavior when clicking "+". Default: "redirect" */
|
|
458
466
|
createMode?: CreateMode;
|
|
459
|
-
/**
|
|
467
|
+
/** @deprecated Use displayAttributes. Legacy user attribute on Kanban cards. */
|
|
460
468
|
cardUserAttribute?: string;
|
|
461
|
-
/**
|
|
469
|
+
/** @deprecated Use displayAttributes. Legacy date attribute on Kanban cards. */
|
|
462
470
|
cardDateAttribute?: string;
|
|
463
471
|
/** Order of kanban columns (by option value) - for kanban layout only */
|
|
464
472
|
kanbanColumnOrder?: string[];
|
|
@@ -528,6 +536,8 @@ interface DetailViewConfig {
|
|
|
528
536
|
* The view only holds shared base filters applied to ALL tabs.
|
|
529
537
|
*/
|
|
530
538
|
interface ListViewConfig {
|
|
539
|
+
/** Allow Architect presentation-only overrides on this system list view. */
|
|
540
|
+
allowPresentationCustomization?: boolean;
|
|
531
541
|
/** Base filters applied to ALL tabs (scoping, tenant, etc.) */
|
|
532
542
|
defaultFilters?: FilterGroup;
|
|
533
543
|
/** Tabs — at least one required. Each carries its own full config. */
|
|
@@ -559,8 +569,8 @@ interface BaseViewDefinition {
|
|
|
559
569
|
metadata?: Record<string, unknown>;
|
|
560
570
|
/**
|
|
561
571
|
* Framework-native view: locked at runtime, force-seeded on every boot,
|
|
562
|
-
*
|
|
563
|
-
* deliberately no public builder API for it.
|
|
572
|
+
* composed only with explicitly opted-in presentation overrides. Set only by
|
|
573
|
+
* the native registry — there is deliberately no public builder API for it.
|
|
564
574
|
*/
|
|
565
575
|
system?: boolean;
|
|
566
576
|
}
|
|
@@ -582,11 +592,21 @@ interface ListViewDefinition extends BaseViewDefinition {
|
|
|
582
592
|
* Unified view definition - discriminated union by type
|
|
583
593
|
*/
|
|
584
594
|
type ViewDefinition = DetailViewDefinition | ListViewDefinition;
|
|
595
|
+
/** Workspace presentation patch for an existing code-owned list tab. */
|
|
596
|
+
type ListViewPresentationTabOverrides = Partial<Pick<ListViewTab, "layout" | "columns" | "columnSizing" | "displayAttributes" | "kanbanColumnOrder" | "kanbanColumnVisibility" | "kanbanPinnedColumns">> & {
|
|
597
|
+
descriptionAttribute?: string | null;
|
|
598
|
+
};
|
|
599
|
+
interface ListViewPresentationOverrides {
|
|
600
|
+
/** Patches keyed by stable tab ID. Null description explicitly clears the code default. */
|
|
601
|
+
tabs: Record<string, ListViewPresentationTabOverrides>;
|
|
602
|
+
}
|
|
585
603
|
/**
|
|
586
604
|
* Configuration overrides for user customizations
|
|
587
605
|
* Only stores the delta from the source view
|
|
588
606
|
*/
|
|
589
607
|
interface ConfigOverrides {
|
|
608
|
+
/** Allowlisted workspace presentation overrides for opted-in system list views. */
|
|
609
|
+
presentation?: ListViewPresentationOverrides;
|
|
590
610
|
tabs?: ListViewTab[];
|
|
591
611
|
hiddenTabIds?: string[];
|
|
592
612
|
detailTabs?: Tab[];
|
|
@@ -830,4 +850,4 @@ declare function parseAttributeConfigForCreate(type: AttributeType, input: unkno
|
|
|
830
850
|
*/
|
|
831
851
|
declare function parseAttributeConfigForUpdate(stored: Attribute, patch: Partial<AddAttributeInput>): Record<string, unknown>;
|
|
832
852
|
|
|
833
|
-
export { type
|
|
853
|
+
export { type RelationSource as $, type AttributeGroupField as A, type FilterCombinator as B, type ConfigOverrides as C, type DetailViewConfig as D, type EmailsTab as E, type FilterState as F, type Group as G, type FilterGroup as H, type FormDensity as I, type FormTab as J, type FormsTab as K, type ListViewTab as L, type MeetingsTab as M, type InverseSource as N, type ListViewPresentationOverrides as O, type ListViewPresentationTabOverrides as P, NO_VALUE_OPERATORS as Q, type RelativeDateValue as R, type SortRule as S, type TableTab as T, type NoValueOperator as U, type ViewType as V, OPERATORS_BY_TYPE as W, type PhoneFilterValue as X, type QueryState as Y, type RelationOption as Z, type RelationOptionsResponse as _, type ViewConfig as a, type RichtextTab as a0, type SidePanelPane as a1, type SortDirection as a2, type TabType as a3, type TableSource as a4, type UpdateObjectInput as a5, type UpdateViewInput as a6, type ViewOverlay as a7, getRollupFilterOperators as a8, isDetailView as a9, isFieldGroup as aa, isListView as ab, isNoValueOperator as ac, multiselectOptionWriteSchema as ad, parseAttributeConfig as ae, parseAttributeConfigForCreate as af, parseAttributeConfigForUpdate as ag, selectOptionWriteSchema as ah, statusGroupSchema as ai, statusOptionWriteSchema as aj, attributeConfigSchemas as ak, getAttributeConfigSchema as al, getAttributeConfigWriteSchema as am, type FilterOperator as b, type DetailViewDefinition as c, type SidePanelConfig as d, type Field as e, type FieldGroup as f, type CreateMode as g, type Tab as h, type ListViewConfig as i, type ListViewDefinition as j, type ListViewLayout as k, type ViewDefinition as l, type FilterValue as m, type FilterRule as n, type DynamicValue as o, type ActivityTab as p, type AddAttributeInput as q, type AdvancedFilterState as r, type CreateCustomObjectInput as s, type CreateViewInput as t, type CurrencyFilterValue as u, type CustomTab as v, type DayMonthValue as w, type DocumentsTab as x, type EdgeQuantifier as y, type ExtendedFilterRule as z };
|
|
@@ -87,6 +87,9 @@ interface FilterRule {
|
|
|
87
87
|
* If set, this rule filters on a qualified edge property.
|
|
88
88
|
* Requires `attribute` to be a reference attribute (today: `relation` or `document`) that has `.qualifyWith()`.
|
|
89
89
|
* The `operator` must be valid for the property's type, not the root attribute's type.
|
|
90
|
+
* On a `location` attribute it names one of the location's parts instead
|
|
91
|
+
* (`city` | `postalCode` | `country`), compared as text; `quantifier` is
|
|
92
|
+
* invalid there — one location is not a set of edges (#3118).
|
|
90
93
|
*/
|
|
91
94
|
property?: string;
|
|
92
95
|
/**
|
|
@@ -410,9 +413,10 @@ type Tab = FormTab | TableTab | CustomTab | ActivityTab | RichtextTab | Document
|
|
|
410
413
|
/**
|
|
411
414
|
* List view layout mode
|
|
412
415
|
* - `table`: Table/grid layout
|
|
416
|
+
* - `list`: Rows with a description and ordered attributes
|
|
413
417
|
* - `kanban`: Kanban board layout (grouped by attribute)
|
|
414
418
|
*/
|
|
415
|
-
type ListViewLayout = "table" | "kanban";
|
|
419
|
+
type ListViewLayout = "table" | "list" | "kanban";
|
|
416
420
|
/**
|
|
417
421
|
* Tab within a list view — each tab carries its own full display configuration.
|
|
418
422
|
*
|
|
@@ -446,19 +450,23 @@ interface ListViewTab {
|
|
|
446
450
|
columns: string[];
|
|
447
451
|
/** Column widths in pixels */
|
|
448
452
|
columnSizing?: Record<string, number>;
|
|
453
|
+
/** Text/richtext attribute below the record label in List and Kanban. */
|
|
454
|
+
descriptionAttribute?: string;
|
|
455
|
+
/** Ordered attributes below List rows and Kanban cards. An explicit [] hides all. */
|
|
456
|
+
displayAttributes?: string[];
|
|
449
457
|
/** Filters applied to this tab */
|
|
450
458
|
filters?: FilterGroup;
|
|
451
459
|
/** Sort rules for this tab */
|
|
452
460
|
sorts?: SortRule[];
|
|
453
|
-
/**
|
|
461
|
+
/** Required for Kanban; an inert code grouping hint on customized native List/Table tabs. */
|
|
454
462
|
groupByAttribute?: string;
|
|
455
463
|
/** When true, the tab is read-only: no cell editing, no create, no delete */
|
|
456
464
|
readOnly?: boolean;
|
|
457
465
|
/** Creation behavior when clicking "+". Default: "redirect" */
|
|
458
466
|
createMode?: CreateMode;
|
|
459
|
-
/**
|
|
467
|
+
/** @deprecated Use displayAttributes. Legacy user attribute on Kanban cards. */
|
|
460
468
|
cardUserAttribute?: string;
|
|
461
|
-
/**
|
|
469
|
+
/** @deprecated Use displayAttributes. Legacy date attribute on Kanban cards. */
|
|
462
470
|
cardDateAttribute?: string;
|
|
463
471
|
/** Order of kanban columns (by option value) - for kanban layout only */
|
|
464
472
|
kanbanColumnOrder?: string[];
|
|
@@ -528,6 +536,8 @@ interface DetailViewConfig {
|
|
|
528
536
|
* The view only holds shared base filters applied to ALL tabs.
|
|
529
537
|
*/
|
|
530
538
|
interface ListViewConfig {
|
|
539
|
+
/** Allow Architect presentation-only overrides on this system list view. */
|
|
540
|
+
allowPresentationCustomization?: boolean;
|
|
531
541
|
/** Base filters applied to ALL tabs (scoping, tenant, etc.) */
|
|
532
542
|
defaultFilters?: FilterGroup;
|
|
533
543
|
/** Tabs — at least one required. Each carries its own full config. */
|
|
@@ -559,8 +569,8 @@ interface BaseViewDefinition {
|
|
|
559
569
|
metadata?: Record<string, unknown>;
|
|
560
570
|
/**
|
|
561
571
|
* Framework-native view: locked at runtime, force-seeded on every boot,
|
|
562
|
-
*
|
|
563
|
-
* deliberately no public builder API for it.
|
|
572
|
+
* composed only with explicitly opted-in presentation overrides. Set only by
|
|
573
|
+
* the native registry — there is deliberately no public builder API for it.
|
|
564
574
|
*/
|
|
565
575
|
system?: boolean;
|
|
566
576
|
}
|
|
@@ -582,11 +592,21 @@ interface ListViewDefinition extends BaseViewDefinition {
|
|
|
582
592
|
* Unified view definition - discriminated union by type
|
|
583
593
|
*/
|
|
584
594
|
type ViewDefinition = DetailViewDefinition | ListViewDefinition;
|
|
595
|
+
/** Workspace presentation patch for an existing code-owned list tab. */
|
|
596
|
+
type ListViewPresentationTabOverrides = Partial<Pick<ListViewTab, "layout" | "columns" | "columnSizing" | "displayAttributes" | "kanbanColumnOrder" | "kanbanColumnVisibility" | "kanbanPinnedColumns">> & {
|
|
597
|
+
descriptionAttribute?: string | null;
|
|
598
|
+
};
|
|
599
|
+
interface ListViewPresentationOverrides {
|
|
600
|
+
/** Patches keyed by stable tab ID. Null description explicitly clears the code default. */
|
|
601
|
+
tabs: Record<string, ListViewPresentationTabOverrides>;
|
|
602
|
+
}
|
|
585
603
|
/**
|
|
586
604
|
* Configuration overrides for user customizations
|
|
587
605
|
* Only stores the delta from the source view
|
|
588
606
|
*/
|
|
589
607
|
interface ConfigOverrides {
|
|
608
|
+
/** Allowlisted workspace presentation overrides for opted-in system list views. */
|
|
609
|
+
presentation?: ListViewPresentationOverrides;
|
|
590
610
|
tabs?: ListViewTab[];
|
|
591
611
|
hiddenTabIds?: string[];
|
|
592
612
|
detailTabs?: Tab[];
|
|
@@ -830,4 +850,4 @@ declare function parseAttributeConfigForCreate(type: AttributeType, input: unkno
|
|
|
830
850
|
*/
|
|
831
851
|
declare function parseAttributeConfigForUpdate(stored: Attribute, patch: Partial<AddAttributeInput>): Record<string, unknown>;
|
|
832
852
|
|
|
833
|
-
export { type
|
|
853
|
+
export { type RelationSource as $, type AttributeGroupField as A, type FilterCombinator as B, type ConfigOverrides as C, type DetailViewConfig as D, type EmailsTab as E, type FilterState as F, type Group as G, type FilterGroup as H, type FormDensity as I, type FormTab as J, type FormsTab as K, type ListViewTab as L, type MeetingsTab as M, type InverseSource as N, type ListViewPresentationOverrides as O, type ListViewPresentationTabOverrides as P, NO_VALUE_OPERATORS as Q, type RelativeDateValue as R, type SortRule as S, type TableTab as T, type NoValueOperator as U, type ViewType as V, OPERATORS_BY_TYPE as W, type PhoneFilterValue as X, type QueryState as Y, type RelationOption as Z, type RelationOptionsResponse as _, type ViewConfig as a, type RichtextTab as a0, type SidePanelPane as a1, type SortDirection as a2, type TabType as a3, type TableSource as a4, type UpdateObjectInput as a5, type UpdateViewInput as a6, type ViewOverlay as a7, getRollupFilterOperators as a8, isDetailView as a9, isFieldGroup as aa, isListView as ab, isNoValueOperator as ac, multiselectOptionWriteSchema as ad, parseAttributeConfig as ae, parseAttributeConfigForCreate as af, parseAttributeConfigForUpdate as ag, selectOptionWriteSchema as ah, statusGroupSchema as ai, statusOptionWriteSchema as aj, attributeConfigSchemas as ak, getAttributeConfigSchema as al, getAttributeConfigWriteSchema as am, type FilterOperator as b, type DetailViewDefinition as c, type SidePanelConfig as d, type Field as e, type FieldGroup as f, type CreateMode as g, type Tab as h, type ListViewConfig as i, type ListViewDefinition as j, type ListViewLayout as k, type ViewDefinition as l, type FilterValue as m, type FilterRule as n, type DynamicValue as o, type ActivityTab as p, type AddAttributeInput as q, type AdvancedFilterState as r, type CreateCustomObjectInput as s, type CreateViewInput as t, type CurrencyFilterValue as u, type CustomTab as v, type DayMonthValue as w, type DocumentsTab as x, type EdgeQuantifier as y, type ExtendedFilterRule as z };
|