@antelopejs/interface-dms 0.7.4 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +107 -0
- package/dist/auth/index.d.ts +3 -3
- package/dist/auth/index.js +11 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/internal/jwt-auth-decorator.d.ts +20 -0
- package/dist/auth/internal/jwt-auth-decorator.js +51 -0
- package/dist/auth/internal/jwt-auth-decorator.js.map +1 -0
- package/dist/auth/internal/request-authenticators.d.ts +12 -0
- package/dist/auth/internal/request-authenticators.js +22 -0
- package/dist/auth/internal/request-authenticators.js.map +1 -1
- package/dist/base/activity-feed.d.ts +6 -6
- package/dist/base/block-registry/types.d.ts +16 -0
- package/dist/base/block-types.d.ts +1 -0
- package/dist/base/block-types.js +1 -0
- package/dist/base/block-types.js.map +1 -1
- package/dist/base/chart-card.d.ts +15 -0
- package/dist/base/chart-card.js +4 -0
- package/dist/base/chart-card.js.map +1 -1
- package/dist/base/chart-schemas.d.ts +26 -26
- package/dist/base/code-block.d.ts +3 -3
- package/dist/base/data-types/compare-types.js +19 -13
- package/dist/base/data-types/compare-types.js.map +1 -1
- package/dist/base/data-types/core.d.ts +11 -0
- package/dist/base/data-types/core.js +14 -1
- package/dist/base/data-types/core.js.map +1 -1
- package/dist/base/data-types/default-types.d.ts +112 -2
- package/dist/base/data-types/default-types.js +90 -19
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/data-types/field-types.d.ts +10 -4
- package/dist/base/data-types/field-types.js +12 -2
- package/dist/base/data-types/field-types.js.map +1 -1
- package/dist/base/data-types/internal/compare-types.d.ts +3 -0
- package/dist/base/data-types/internal/compare-types.js +7 -0
- package/dist/base/data-types/internal/compare-types.js.map +1 -1
- package/dist/base/empty-state.d.ts +4 -4
- package/dist/base/form-block-schema.d.ts +59 -3
- package/dist/base/form-block-schema.js +12 -2
- package/dist/base/form-block-schema.js.map +1 -1
- package/dist/base/form-schema.d.ts +46 -1
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/form-types.d.ts +56 -13
- package/dist/base/form-types.js +12 -4
- package/dist/base/form-types.js.map +1 -1
- package/dist/base/guard.d.ts +6 -6
- package/dist/base/helpers/archive-mode-helpers.js +6 -2
- package/dist/base/helpers/archive-mode-helpers.js.map +1 -1
- package/dist/base/index.d.ts +1 -0
- package/dist/base/index.js +1 -0
- package/dist/base/index.js.map +1 -1
- package/dist/base/internal/form-schema.js +2 -0
- package/dist/base/internal/form-schema.js.map +1 -1
- package/dist/base/internal/layouts.d.ts +4 -0
- package/dist/base/key-value-list.d.ts +12 -9
- package/dist/base/key-value-list.js +1 -1
- package/dist/base/key-value-list.js.map +1 -1
- package/dist/base/kpi-card.d.ts +39 -5
- package/dist/base/kpi-card.js +18 -6
- package/dist/base/kpi-card.js.map +1 -1
- package/dist/base/layouts.d.ts +24 -0
- package/dist/base/layouts.js.map +1 -1
- package/dist/base/live-toggle.d.ts +11 -0
- package/dist/base/live-toggle.js +8 -1
- package/dist/base/live-toggle.js.map +1 -1
- package/dist/base/page-toolbar.d.ts +158 -0
- package/dist/base/page-toolbar.js +198 -0
- package/dist/base/page-toolbar.js.map +1 -0
- package/dist/base/period-selector.d.ts +9 -2
- package/dist/base/period-selector.js.map +1 -1
- package/dist/base/placeholder.d.ts +2 -2
- package/dist/base/section.d.ts +2 -2
- package/dist/base/stack.d.ts +2 -2
- package/dist/base/stat-group.d.ts +18 -6
- package/dist/base/stat-group.js +9 -0
- package/dist/base/stat-group.js.map +1 -1
- package/dist/base/table-view/column-display.d.ts +9 -5
- package/dist/base/table-view/column-display.js +1 -1
- package/dist/base/table-view/column-display.js.map +1 -1
- package/dist/base/table-view/data-functions.d.ts +26 -7
- package/dist/base/table-view/data-functions.js +10 -6
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory.js +24 -13
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/auth.d.ts +2 -0
- package/dist/base/table-view/internal/auth.js +3 -1
- package/dist/base/table-view/internal/auth.js.map +1 -1
- package/dist/base/table-view/internal/factory-helpers.d.ts +5 -0
- package/dist/base/table-view/internal/factory-helpers.js +55 -11
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
- package/dist/base/table-view/internal/guards.js +19 -2
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/realtime.js +17 -0
- package/dist/base/table-view/internal/realtime.js.map +1 -1
- package/dist/base/table-view/internal/resource-form.js +1 -0
- package/dist/base/table-view/internal/resource-form.js.map +1 -1
- package/dist/base/table-view/internal/row-actions-schema.d.ts +296 -0
- package/dist/base/table-view/internal/row-actions-schema.js +62 -0
- package/dist/base/table-view/internal/row-actions-schema.js.map +1 -0
- package/dist/base/table-view/internal/validation.d.ts +15 -3
- package/dist/base/table-view/internal/validation.js +70 -2
- package/dist/base/table-view/internal/validation.js.map +1 -1
- package/dist/base/table-view/meta.d.ts +8 -0
- package/dist/base/table-view/meta.js +25 -3
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/options.d.ts +90 -16
- package/dist/base/table-view/options.js.map +1 -1
- package/dist/base/table-view/realtime.d.ts +8 -0
- package/dist/base/table-view/realtime.js.map +1 -1
- package/dist/base/table-view/routes.js +5 -2
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +36 -30
- package/dist/base/table-view/schema.js +11 -57
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/base/table-view/source.d.ts +1 -1
- package/dist/base/table-view/source.js +4 -1
- package/dist/base/table-view/source.js.map +1 -1
- package/dist/base/table-view.d.ts +2 -2
- package/dist/base/table-view.js.map +1 -1
- package/dist/base/top-list-card.d.ts +5 -5
- package/dist/base/types/action-target.d.ts +77 -20
- package/dist/base/types/confirm-dialog.d.ts +5 -1
- package/dist/base/types/custom-button.d.ts +5 -3
- package/dist/base/types/field-config.d.ts +4 -4
- package/dist/base/types/guards.d.ts +10 -0
- package/dist/base/types/row-action.d.ts +6 -1
- package/dist/base/types/size.d.ts +3 -1
- package/dist/client-ip.d.ts +6 -2
- package/dist/client-ip.js +4 -2
- package/dist/client-ip.js.map +1 -1
- package/dist/component.d.ts +8 -0
- package/dist/component.js.map +1 -1
- package/dist/data-controllers/members.d.ts +0 -3
- package/dist/data-controllers/members.js +30 -8
- package/dist/data-controllers/members.js.map +1 -1
- package/dist/db/internal/tenantLifecycle.model.js +5 -2
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
- package/dist/guards.js +2 -3
- package/dist/guards.js.map +1 -1
- package/dist/hooks.d.ts +41 -5
- package/dist/hooks.js +5 -1
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/invite-membership.d.ts +9 -0
- package/dist/internal/invite-membership.js +25 -7
- package/dist/internal/invite-membership.js.map +1 -1
- package/dist/internal/member-changes.d.ts +24 -0
- package/dist/internal/member-changes.js +66 -0
- package/dist/internal/member-changes.js.map +1 -0
- package/dist/internal/tenant-ownership.d.ts +4 -1
- package/dist/internal/tenant-ownership.js +4 -10
- package/dist/internal/tenant-ownership.js.map +1 -1
- package/dist/invite-extensions.d.ts +0 -9
- package/dist/invite-extensions.js +1 -36
- package/dist/invite-extensions.js.map +1 -1
- package/dist/invite-resolution.js +6 -2
- package/dist/invite-resolution.js.map +1 -1
- package/dist/invites.js +36 -22
- package/dist/invites.js.map +1 -1
- package/dist/layout-banners.d.ts +40 -4
- package/dist/layout-banners.js +25 -3
- package/dist/layout-banners.js.map +1 -1
- package/dist/notifications/internal.d.ts +2 -2
- package/dist/notifications/internal.js.map +1 -1
- package/dist/notifications/sendable.d.ts +3 -2
- package/dist/notifications/sendable.js +2 -1
- package/dist/notifications/sendable.js.map +1 -1
- package/dist/notifications/types.d.ts +9 -0
- package/dist/page/controllers.d.ts +44 -0
- package/dist/page/controllers.js +14 -1
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/internal/layout-filter.d.ts +2 -1
- package/dist/page/internal/layout-filter.js +3 -1
- package/dist/page/internal/layout-filter.js.map +1 -1
- package/dist/page/internal/metadata-helpers.d.ts +7 -0
- package/dist/page/internal/metadata-helpers.js +13 -2
- package/dist/page/internal/metadata-helpers.js.map +1 -1
- package/dist/page/internal/page-registration.d.ts +2 -0
- package/dist/page/internal/page-registration.js.map +1 -1
- package/dist/page/layout-filter.js +31 -10
- package/dist/page/layout-filter.js.map +1 -1
- package/dist/page/metadata.js +29 -24
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/types.d.ts +39 -4
- package/dist/page/types.js.map +1 -1
- package/dist/page.d.ts +1 -1
- package/dist/page.js +2 -1
- package/dist/page.js.map +1 -1
- package/dist/permissions-resolver.d.ts +26 -3
- package/dist/permissions-resolver.js +2 -1
- package/dist/permissions-resolver.js.map +1 -1
- package/dist/permissions.d.ts +7 -3
- package/dist/permissions.js +8 -6
- package/dist/permissions.js.map +1 -1
- package/dist/realtime.d.ts +24 -1
- package/dist/realtime.js +7 -1
- package/dist/realtime.js.map +1 -1
- package/dist/request-tenant.d.ts +17 -13
- package/dist/request-tenant.js +54 -42
- package/dist/request-tenant.js.map +1 -1
- package/dist/tenant-members.d.ts +26 -0
- package/dist/tenant-members.js +29 -0
- package/dist/tenant-members.js.map +1 -0
- package/dist/tenant-ownership.d.ts +4 -1
- package/dist/tenant-ownership.js +12 -17
- package/dist/tenant-ownership.js.map +1 -1
- package/dist/tenant-scoped-model.d.ts +2 -1
- package/dist/tenant-scoped-model.js +4 -3
- package/dist/tenant-scoped-model.js.map +1 -1
- package/docs/1.core/10.layout-banners.md +57 -2
- package/docs/1.core/2.pages-and-modules.md +20 -11
- package/docs/1.core/4.permissions.md +34 -1
- package/docs/1.core/5.tenancy.md +37 -6
- package/docs/1.core/7.hooks.md +12 -2
- package/docs/1.core/8.realtime.md +24 -3
- package/docs/2.auth/2.authentication.md +3 -3
- package/docs/3.base/1.introduction.md +1 -0
- package/docs/3.base/10.display-blocks.md +20 -2
- package/docs/3.base/2.types.md +7 -5
- package/docs/3.base/3.forms.md +21 -6
- package/docs/3.base/4.tables.md +14 -9
- package/docs/3.base/5.charts-and-widgets.md +8 -4
- package/docs/3.base/6.layout.md +38 -1
- package/docs/3.base/8.data-types.md +14 -7
- package/docs/4.notifications/3.sending.md +4 -3
- package/docs/5.html-render/1.introduction.md +5 -7
- package/package.json +3 -7
|
@@ -7,8 +7,12 @@ exports.withRealtimeMutation = withRealtimeMutation;
|
|
|
7
7
|
exports.withPresenceAcquire = withPresenceAcquire;
|
|
8
8
|
const interface_api_1 = require("@antelopejs/interface-api");
|
|
9
9
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
10
|
+
const metadata_1 = require("@antelopejs/interface-data-api/metadata");
|
|
11
|
+
const interface_core_1 = require("@antelopejs/interface-core");
|
|
10
12
|
const auth_1 = require("../../../auth");
|
|
13
|
+
const constants_1 = require("../../../constants");
|
|
11
14
|
const realtime_1 = require("../../../realtime");
|
|
15
|
+
const request_tenant_1 = require("../../../request-tenant");
|
|
12
16
|
const meta_1 = require("./meta");
|
|
13
17
|
const realtime_listeners_1 = require("./realtime-listeners");
|
|
14
18
|
const realtime_2 = require("../realtime");
|
|
@@ -85,6 +89,13 @@ const extractBulkArgIds = (args) => {
|
|
|
85
89
|
};
|
|
86
90
|
exports.extractBulkArgIds = extractBulkArgIds;
|
|
87
91
|
const isRealtimeEnabled = (target) => (0, meta_1.getTableViewMetaFor)(target).options.realtime !== false;
|
|
92
|
+
/**
|
|
93
|
+
* The tenant a table's realtime events are published for: the request's,
|
|
94
|
+
* unless the table's rows live in the schema every tenant shares.
|
|
95
|
+
*/
|
|
96
|
+
const realtimeTenantOf = (target, ctx) => (0, interface_core_1.GetMetadata)(target.constructor, metadata_1.DataAPIMeta).schemaName === constants_1.CORE_SCHEMA_NAME
|
|
97
|
+
? undefined
|
|
98
|
+
: (0, request_tenant_1.getRequestTenantId)(ctx);
|
|
88
99
|
// The counts the bulk routes answer with: delete sends the number of deleted
|
|
89
100
|
// rows (or `{ deleted }`), archive and restore `{ archivedCount }` and
|
|
90
101
|
// `{ restoredCount }`.
|
|
@@ -110,12 +121,14 @@ function withRealtimeMutation(config, baseRoute) {
|
|
|
110
121
|
method: baseRoute.method,
|
|
111
122
|
args: [
|
|
112
123
|
...baseRoute.args,
|
|
124
|
+
(0, interface_api_1.Context)(),
|
|
113
125
|
(0, interface_api_1.Parameter)(REALTIME_SESSION_HEADER, "header"),
|
|
114
126
|
(0, auth_1.AuthUser)(),
|
|
115
127
|
],
|
|
116
128
|
func: async function (...allArgs) {
|
|
117
129
|
const user = allArgs.pop();
|
|
118
130
|
const sessionId = allArgs.pop();
|
|
131
|
+
const ctx = allArgs.pop();
|
|
119
132
|
const result = await baseRoute.func.apply(this, allArgs);
|
|
120
133
|
if (!isRealtimeEnabled(this))
|
|
121
134
|
return result;
|
|
@@ -134,6 +147,7 @@ function withRealtimeMutation(config, baseRoute) {
|
|
|
134
147
|
ids,
|
|
135
148
|
sessionId,
|
|
136
149
|
actor: { id: user._id, displayName: user.name || user.email },
|
|
150
|
+
tenantId: realtimeTenantOf(this, ctx),
|
|
137
151
|
});
|
|
138
152
|
return result;
|
|
139
153
|
},
|
|
@@ -145,6 +159,7 @@ function withPresenceAcquire(baseRoute) {
|
|
|
145
159
|
method: baseRoute.method,
|
|
146
160
|
args: [
|
|
147
161
|
...baseRoute.args,
|
|
162
|
+
(0, interface_api_1.Context)(),
|
|
148
163
|
(0, interface_api_1.Parameter)(REALTIME_SESSION_HEADER, "header"),
|
|
149
164
|
(0, interface_api_1.Parameter)(exports.REALTIME_PRESENCE_QUERY, "query"),
|
|
150
165
|
(0, auth_1.AuthUser)(),
|
|
@@ -153,6 +168,7 @@ function withPresenceAcquire(baseRoute) {
|
|
|
153
168
|
const user = allArgs.pop();
|
|
154
169
|
const presenceFlag = allArgs.pop();
|
|
155
170
|
const sessionId = allArgs.pop();
|
|
171
|
+
const ctx = allArgs.pop();
|
|
156
172
|
const result = await baseRoute.func.apply(this, allArgs);
|
|
157
173
|
if (presenceFlag !== exports.REALTIME_PRESENCE_ACQUIRE_VALUE ||
|
|
158
174
|
!sessionId ||
|
|
@@ -169,6 +185,7 @@ function withPresenceAcquire(baseRoute) {
|
|
|
169
185
|
sessionId,
|
|
170
186
|
rowId: params.id,
|
|
171
187
|
actor: { id: user._id, displayName: user.name || user.email },
|
|
188
|
+
tenantId: realtimeTenantOf(this, ctx),
|
|
172
189
|
});
|
|
173
190
|
return result;
|
|
174
191
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/realtime.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/realtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-form.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/resource-form.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,+DAA+D;;
|
|
1
|
+
{"version":3,"file":"resource-form.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/resource-form.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,+DAA+D;;AA+D/D,sDAWC;AAaD,oCAwBC;AA5GD,+DAAyD;AACzD,gDAAsD;AACtD,mDAAyC;AAEzC,qEAIoC;AACpC,uCAAyC;AACzC,kCAAwC;AACxC,yCAGoB;AAOpB,SAAS,UAAU,CACjB,QAAgB,EAChB,IAAsB,EACtB,KAAa;IAEb,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK;YACR,OAAO;gBACL,kEAAkE;gBAClE,iDAAiD;gBACjD,QAAQ,EAAE,GAAG,QAAQ,6BAA6B;gBAClD,cAAc,EAAE,kBAAU,CAAC,GAAG;gBAC9B,SAAS,EAAE,GAAG,QAAQ,MAAM;gBAC5B,eAAe,EAAE,kBAAU,CAAC,IAAI;gBAChC,IAAI,EAAE,QAAQ;aACf,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,QAAQ,EAAE,GAAG,QAAQ,WAAW,KAAK,IAAI,kCAAuB,IAAI,0CAA+B,EAAE;gBACrG,cAAc,EAAE,kBAAU,CAAC,GAAG;gBAC9B,SAAS,EAAE,GAAG,QAAQ,YAAY,KAAK,EAAE;gBACzC,eAAe,EAAE,kBAAU,CAAC,GAAG;aAChC,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,QAAQ,EAAE,GAAG,QAAQ,WAAW,KAAK,EAAE;gBACvC,cAAc,EAAE,kBAAU,CAAC,GAAG;aAC/B,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,IAAmB,EACnB,QAAgB;IAEhB,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAkC,CAAC;YACnE,WAAW,CAAC,eAAe,GAAG,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,YAAY,CAC1B,UAAa,EACb,IAAsB,EACtB,UAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,UAAU,EAAE,oBAAa,CAAC,CAAC;IACpD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,KAAK,GAAG,yCAAkB,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAA,kBAAI,EAAC;QAChB,GAAG,WAAW;QACd,MAAM;QACN,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;KACrC,CAAC,CAAC;IACH,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,IAAI,KAAK,MAAM;QAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { CustomRowAction, RowActionRule } from "../../types/row-action";
|
|
3
|
+
/** @internal The builder schema of a table view's `rowActions`. */
|
|
4
|
+
export declare const rowActionsSchema: z.ZodObject<{
|
|
5
|
+
add: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
6
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
isEnabled?: boolean | undefined;
|
|
11
|
+
isVisible?: boolean | undefined;
|
|
12
|
+
rule?: RowActionRule | undefined;
|
|
13
|
+
}, {
|
|
14
|
+
isEnabled?: boolean | undefined;
|
|
15
|
+
isVisible?: boolean | undefined;
|
|
16
|
+
rule?: RowActionRule | undefined;
|
|
17
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
18
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
isEnabled?: boolean | undefined;
|
|
23
|
+
isVisible?: boolean | undefined;
|
|
24
|
+
rule?: RowActionRule | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
isEnabled?: boolean | undefined;
|
|
27
|
+
isVisible?: boolean | undefined;
|
|
28
|
+
rule?: RowActionRule | undefined;
|
|
29
|
+
}>]>>;
|
|
30
|
+
edit: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
31
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
isEnabled?: boolean | undefined;
|
|
36
|
+
isVisible?: boolean | undefined;
|
|
37
|
+
rule?: RowActionRule | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
isEnabled?: boolean | undefined;
|
|
40
|
+
isVisible?: boolean | undefined;
|
|
41
|
+
rule?: RowActionRule | undefined;
|
|
42
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
43
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
45
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
isEnabled?: boolean | undefined;
|
|
48
|
+
isVisible?: boolean | undefined;
|
|
49
|
+
rule?: RowActionRule | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
isEnabled?: boolean | undefined;
|
|
52
|
+
isVisible?: boolean | undefined;
|
|
53
|
+
rule?: RowActionRule | undefined;
|
|
54
|
+
}>]>>;
|
|
55
|
+
delete: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
56
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
57
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
isEnabled?: boolean | undefined;
|
|
61
|
+
isVisible?: boolean | undefined;
|
|
62
|
+
rule?: RowActionRule | undefined;
|
|
63
|
+
}, {
|
|
64
|
+
isEnabled?: boolean | undefined;
|
|
65
|
+
isVisible?: boolean | undefined;
|
|
66
|
+
rule?: RowActionRule | undefined;
|
|
67
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
68
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
69
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
70
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
71
|
+
}, "strip", z.ZodTypeAny, {
|
|
72
|
+
isEnabled?: boolean | undefined;
|
|
73
|
+
isVisible?: boolean | undefined;
|
|
74
|
+
rule?: RowActionRule | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
isEnabled?: boolean | undefined;
|
|
77
|
+
isVisible?: boolean | undefined;
|
|
78
|
+
rule?: RowActionRule | undefined;
|
|
79
|
+
}>]>>;
|
|
80
|
+
details: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
81
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
82
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
84
|
+
}, "strip", z.ZodTypeAny, {
|
|
85
|
+
isEnabled?: boolean | undefined;
|
|
86
|
+
isVisible?: boolean | undefined;
|
|
87
|
+
rule?: RowActionRule | undefined;
|
|
88
|
+
}, {
|
|
89
|
+
isEnabled?: boolean | undefined;
|
|
90
|
+
isVisible?: boolean | undefined;
|
|
91
|
+
rule?: RowActionRule | undefined;
|
|
92
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
93
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
94
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
95
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
96
|
+
}, "strip", z.ZodTypeAny, {
|
|
97
|
+
isEnabled?: boolean | undefined;
|
|
98
|
+
isVisible?: boolean | undefined;
|
|
99
|
+
rule?: RowActionRule | undefined;
|
|
100
|
+
}, {
|
|
101
|
+
isEnabled?: boolean | undefined;
|
|
102
|
+
isVisible?: boolean | undefined;
|
|
103
|
+
rule?: RowActionRule | undefined;
|
|
104
|
+
}>]>>;
|
|
105
|
+
duplicate: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
106
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
107
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
108
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
109
|
+
}, "strip", z.ZodTypeAny, {
|
|
110
|
+
isEnabled?: boolean | undefined;
|
|
111
|
+
isVisible?: boolean | undefined;
|
|
112
|
+
rule?: RowActionRule | undefined;
|
|
113
|
+
}, {
|
|
114
|
+
isEnabled?: boolean | undefined;
|
|
115
|
+
isVisible?: boolean | undefined;
|
|
116
|
+
rule?: RowActionRule | undefined;
|
|
117
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
118
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
119
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
120
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
121
|
+
}, "strip", z.ZodTypeAny, {
|
|
122
|
+
isEnabled?: boolean | undefined;
|
|
123
|
+
isVisible?: boolean | undefined;
|
|
124
|
+
rule?: RowActionRule | undefined;
|
|
125
|
+
}, {
|
|
126
|
+
isEnabled?: boolean | undefined;
|
|
127
|
+
isVisible?: boolean | undefined;
|
|
128
|
+
rule?: RowActionRule | undefined;
|
|
129
|
+
}>]>>;
|
|
130
|
+
archive: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
131
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
132
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
133
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
134
|
+
}, "strip", z.ZodTypeAny, {
|
|
135
|
+
isEnabled?: boolean | undefined;
|
|
136
|
+
isVisible?: boolean | undefined;
|
|
137
|
+
rule?: RowActionRule | undefined;
|
|
138
|
+
}, {
|
|
139
|
+
isEnabled?: boolean | undefined;
|
|
140
|
+
isVisible?: boolean | undefined;
|
|
141
|
+
rule?: RowActionRule | undefined;
|
|
142
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
143
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
144
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
145
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
146
|
+
}, "strip", z.ZodTypeAny, {
|
|
147
|
+
isEnabled?: boolean | undefined;
|
|
148
|
+
isVisible?: boolean | undefined;
|
|
149
|
+
rule?: RowActionRule | undefined;
|
|
150
|
+
}, {
|
|
151
|
+
isEnabled?: boolean | undefined;
|
|
152
|
+
isVisible?: boolean | undefined;
|
|
153
|
+
rule?: RowActionRule | undefined;
|
|
154
|
+
}>]>>;
|
|
155
|
+
restore: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
156
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
157
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
158
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
159
|
+
}, "strip", z.ZodTypeAny, {
|
|
160
|
+
isEnabled?: boolean | undefined;
|
|
161
|
+
isVisible?: boolean | undefined;
|
|
162
|
+
rule?: RowActionRule | undefined;
|
|
163
|
+
}, {
|
|
164
|
+
isEnabled?: boolean | undefined;
|
|
165
|
+
isVisible?: boolean | undefined;
|
|
166
|
+
rule?: RowActionRule | undefined;
|
|
167
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
168
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
169
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
170
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
171
|
+
}, "strip", z.ZodTypeAny, {
|
|
172
|
+
isEnabled?: boolean | undefined;
|
|
173
|
+
isVisible?: boolean | undefined;
|
|
174
|
+
rule?: RowActionRule | undefined;
|
|
175
|
+
}, {
|
|
176
|
+
isEnabled?: boolean | undefined;
|
|
177
|
+
isVisible?: boolean | undefined;
|
|
178
|
+
rule?: RowActionRule | undefined;
|
|
179
|
+
}>]>>;
|
|
180
|
+
copyLink: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
181
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
182
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
183
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
184
|
+
}, "strip", z.ZodTypeAny, {
|
|
185
|
+
isEnabled?: boolean | undefined;
|
|
186
|
+
isVisible?: boolean | undefined;
|
|
187
|
+
rule?: RowActionRule | undefined;
|
|
188
|
+
}, {
|
|
189
|
+
isEnabled?: boolean | undefined;
|
|
190
|
+
isVisible?: boolean | undefined;
|
|
191
|
+
rule?: RowActionRule | undefined;
|
|
192
|
+
}>]>> | z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
193
|
+
isEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
194
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
195
|
+
rule: z.ZodOptional<z.ZodType<RowActionRule, z.ZodTypeDef, RowActionRule>>;
|
|
196
|
+
}, "strip", z.ZodTypeAny, {
|
|
197
|
+
isEnabled?: boolean | undefined;
|
|
198
|
+
isVisible?: boolean | undefined;
|
|
199
|
+
rule?: RowActionRule | undefined;
|
|
200
|
+
}, {
|
|
201
|
+
isEnabled?: boolean | undefined;
|
|
202
|
+
isVisible?: boolean | undefined;
|
|
203
|
+
rule?: RowActionRule | undefined;
|
|
204
|
+
}>]>>;
|
|
205
|
+
hasSelection: z.ZodOptional<z.ZodBoolean>;
|
|
206
|
+
custom: z.ZodOptional<z.ZodType<CustomRowAction<Record<string, unknown>>[], z.ZodTypeDef, CustomRowAction<Record<string, unknown>>[]>>;
|
|
207
|
+
menuLabel: z.ZodOptional<z.ZodString>;
|
|
208
|
+
}, "strip", z.ZodTypeAny, {
|
|
209
|
+
delete?: boolean | {
|
|
210
|
+
isEnabled?: boolean | undefined;
|
|
211
|
+
isVisible?: boolean | undefined;
|
|
212
|
+
rule?: RowActionRule | undefined;
|
|
213
|
+
} | undefined;
|
|
214
|
+
custom?: CustomRowAction<Record<string, unknown>>[] | undefined;
|
|
215
|
+
edit?: boolean | {
|
|
216
|
+
isEnabled?: boolean | undefined;
|
|
217
|
+
isVisible?: boolean | undefined;
|
|
218
|
+
rule?: RowActionRule | undefined;
|
|
219
|
+
} | undefined;
|
|
220
|
+
add?: boolean | {
|
|
221
|
+
isEnabled?: boolean | undefined;
|
|
222
|
+
isVisible?: boolean | undefined;
|
|
223
|
+
rule?: RowActionRule | undefined;
|
|
224
|
+
} | undefined;
|
|
225
|
+
archive?: boolean | {
|
|
226
|
+
isEnabled?: boolean | undefined;
|
|
227
|
+
isVisible?: boolean | undefined;
|
|
228
|
+
rule?: RowActionRule | undefined;
|
|
229
|
+
} | undefined;
|
|
230
|
+
restore?: boolean | {
|
|
231
|
+
isEnabled?: boolean | undefined;
|
|
232
|
+
isVisible?: boolean | undefined;
|
|
233
|
+
rule?: RowActionRule | undefined;
|
|
234
|
+
} | undefined;
|
|
235
|
+
details?: boolean | {
|
|
236
|
+
isEnabled?: boolean | undefined;
|
|
237
|
+
isVisible?: boolean | undefined;
|
|
238
|
+
rule?: RowActionRule | undefined;
|
|
239
|
+
} | undefined;
|
|
240
|
+
duplicate?: boolean | {
|
|
241
|
+
isEnabled?: boolean | undefined;
|
|
242
|
+
isVisible?: boolean | undefined;
|
|
243
|
+
rule?: RowActionRule | undefined;
|
|
244
|
+
} | undefined;
|
|
245
|
+
copyLink?: boolean | {
|
|
246
|
+
isEnabled?: boolean | undefined;
|
|
247
|
+
isVisible?: boolean | undefined;
|
|
248
|
+
rule?: RowActionRule | undefined;
|
|
249
|
+
} | undefined;
|
|
250
|
+
hasSelection?: boolean | undefined;
|
|
251
|
+
menuLabel?: string | undefined;
|
|
252
|
+
}, {
|
|
253
|
+
delete?: boolean | {
|
|
254
|
+
isEnabled?: boolean | undefined;
|
|
255
|
+
isVisible?: boolean | undefined;
|
|
256
|
+
rule?: RowActionRule | undefined;
|
|
257
|
+
} | undefined;
|
|
258
|
+
custom?: CustomRowAction<Record<string, unknown>>[] | undefined;
|
|
259
|
+
edit?: boolean | {
|
|
260
|
+
isEnabled?: boolean | undefined;
|
|
261
|
+
isVisible?: boolean | undefined;
|
|
262
|
+
rule?: RowActionRule | undefined;
|
|
263
|
+
} | undefined;
|
|
264
|
+
add?: boolean | {
|
|
265
|
+
isEnabled?: boolean | undefined;
|
|
266
|
+
isVisible?: boolean | undefined;
|
|
267
|
+
rule?: RowActionRule | undefined;
|
|
268
|
+
} | undefined;
|
|
269
|
+
archive?: boolean | {
|
|
270
|
+
isEnabled?: boolean | undefined;
|
|
271
|
+
isVisible?: boolean | undefined;
|
|
272
|
+
rule?: RowActionRule | undefined;
|
|
273
|
+
} | undefined;
|
|
274
|
+
restore?: boolean | {
|
|
275
|
+
isEnabled?: boolean | undefined;
|
|
276
|
+
isVisible?: boolean | undefined;
|
|
277
|
+
rule?: RowActionRule | undefined;
|
|
278
|
+
} | undefined;
|
|
279
|
+
details?: boolean | {
|
|
280
|
+
isEnabled?: boolean | undefined;
|
|
281
|
+
isVisible?: boolean | undefined;
|
|
282
|
+
rule?: RowActionRule | undefined;
|
|
283
|
+
} | undefined;
|
|
284
|
+
duplicate?: boolean | {
|
|
285
|
+
isEnabled?: boolean | undefined;
|
|
286
|
+
isVisible?: boolean | undefined;
|
|
287
|
+
rule?: RowActionRule | undefined;
|
|
288
|
+
} | undefined;
|
|
289
|
+
copyLink?: boolean | {
|
|
290
|
+
isEnabled?: boolean | undefined;
|
|
291
|
+
isVisible?: boolean | undefined;
|
|
292
|
+
rule?: RowActionRule | undefined;
|
|
293
|
+
} | undefined;
|
|
294
|
+
hasSelection?: boolean | undefined;
|
|
295
|
+
menuLabel?: string | undefined;
|
|
296
|
+
}>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The builder schema of a table view's row actions, each a switch that may
|
|
3
|
+
// carry a rule.
|
|
4
|
+
//
|
|
5
|
+
// Split out of table-view/schema.ts.
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.rowActionsSchema = void 0;
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const block_registry_1 = require("../../block-registry");
|
|
10
|
+
const rowActionConfigSchema = zod_1.z.object({
|
|
11
|
+
isEnabled: zod_1.z.boolean().optional(),
|
|
12
|
+
isVisible: zod_1.z.boolean().optional(),
|
|
13
|
+
rule: (0, block_registry_1.ui)((0, block_registry_1.opaqueOption)().optional(), {
|
|
14
|
+
label: "Rule",
|
|
15
|
+
widget: "json",
|
|
16
|
+
}),
|
|
17
|
+
});
|
|
18
|
+
const rowActionOption = (label, order, { offered = true, note } = {}) => {
|
|
19
|
+
const action = zod_1.z.union([zod_1.z.boolean(), rowActionConfigSchema]);
|
|
20
|
+
const described = note ? action.describe(note) : action;
|
|
21
|
+
return (0, block_registry_1.ui)(offered ? described.default(true) : described.optional(), {
|
|
22
|
+
label,
|
|
23
|
+
order,
|
|
24
|
+
group: "features",
|
|
25
|
+
widget: "switch",
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
/** @internal The builder schema of a table view's `rowActions`. */
|
|
29
|
+
exports.rowActionsSchema = zod_1.z.object({
|
|
30
|
+
add: rowActionOption("Adding data", 1),
|
|
31
|
+
edit: rowActionOption("Editing data", 2),
|
|
32
|
+
delete: rowActionOption("Deleting data", 3),
|
|
33
|
+
// Turned off whenever editing is on without a rule: editing opens the row
|
|
34
|
+
// already, so the factory drops the second way in.
|
|
35
|
+
details: rowActionOption("View details", 6, {
|
|
36
|
+
offered: false,
|
|
37
|
+
note: "Offered while editing is off: editing already opens the row.",
|
|
38
|
+
}),
|
|
39
|
+
duplicate: rowActionOption("Duplicate", 7),
|
|
40
|
+
archive: rowActionOption("Archive", 8, {
|
|
41
|
+
note: "Offered while ghost delete is on.",
|
|
42
|
+
}),
|
|
43
|
+
restore: rowActionOption("Restore", 9, {
|
|
44
|
+
note: "Offered while ghost delete is on.",
|
|
45
|
+
}),
|
|
46
|
+
copyLink: rowActionOption("Copy link", 10),
|
|
47
|
+
hasSelection: (0, block_registry_1.ui)(zod_1.z.boolean().optional(), {
|
|
48
|
+
label: "Row selection",
|
|
49
|
+
order: 11,
|
|
50
|
+
group: "features",
|
|
51
|
+
widget: "switch",
|
|
52
|
+
}),
|
|
53
|
+
custom: (0, block_registry_1.ui)((0, block_registry_1.opaqueOption)().optional(), {
|
|
54
|
+
label: "Custom actions",
|
|
55
|
+
hidden: true,
|
|
56
|
+
}),
|
|
57
|
+
menuLabel: (0, block_registry_1.ui)(zod_1.z
|
|
58
|
+
.string()
|
|
59
|
+
.optional()
|
|
60
|
+
.describe("Accessible name of a row's ⋯ menu, e.g. Actions for {name}."), { label: "Row menu label", order: 12, group: "features", advanced: true }),
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=row-actions-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-actions-schema.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/row-actions-schema.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,gBAAgB;AAChB,EAAE;AACF,qCAAqC;;;AAErC,6BAAwB;AACxB,yDAA8E;AAI9E,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAiB,CAAC,QAAQ,EAAE,EAAE;QACjD,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf,CAAC;CACH,CAAC,CAAC;AAaH,MAAM,eAAe,GAAG,CACtB,KAAa,EACb,KAAa,EACb,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,KAAwB,EAAE,EAChD,EAAE;IACF,MAAM,MAAM,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,IAAA,mBAAE,EAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;QAClE,KAAK;QACL,KAAK;QACL,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,mEAAmE;AACtD,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,GAAG,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3C,0EAA0E;IAC1E,mDAAmD;IACnD,OAAO,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,EAAE;QAC1C,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,8DAA8D;KACrE,CAAC;IACF,SAAS,EAAE,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE;QACrC,IAAI,EAAE,mCAAmC;KAC1C,CAAC;IACF,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE;QACrC,IAAI,EAAE,mCAAmC;KAC1C,CAAC;IACF,QAAQ,EAAE,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;IAC1C,YAAY,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACvC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,MAAM,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAqB,CAAC,QAAQ,EAAE,EAAE;QACvD,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,IAAI;KACb,CAAC;IACF,SAAS,EAAE,IAAA,mBAAE,EACX,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC,EAC1E,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAC1E;CACF,CAAsD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TableViewMeta } from "../meta";
|
|
1
|
+
import { type ColumnOptions, TableViewMeta } from "../meta";
|
|
2
2
|
import { type FormContainerPages, type GroupedOptions, type KanbanOptions, type TableViewDisplayOption, type TableViewOptions, type TableViewQuickFilter, type TableViewTab, type TableViewViewsOptions } from "../options";
|
|
3
3
|
/**
|
|
4
4
|
* `pageSize` is a whole number of rows, from 1 up to {@link MAX_TABLE_PAGE_SIZE}.
|
|
@@ -12,8 +12,18 @@ export declare function validatePageSize(controllerName: string, pageSize: numbe
|
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
14
|
export declare function assertKnownColumns(controllerName: string, meta: Pick<TableViewMeta, "columns">, option: string, keys: string[]): void;
|
|
15
|
+
/**
|
|
16
|
+
* Warns, once per table and field, about a quick filter whose column offers
|
|
17
|
+
* nothing to pick — a free-text string, a number, a date, a select without
|
|
18
|
+
* items: the browser leaves it out of the toolbar. Not thrown, so that an
|
|
19
|
+
* application already declaring one keeps starting.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function warnIfQuickFiltersLackValues(controllerName: string, columns: Record<string, Pick<ColumnOptions, "type"> | undefined>, quickFilters: TableViewQuickFilter[] | undefined): void;
|
|
15
24
|
/**
|
|
16
25
|
* Quick filters must name filterable columns: they filter with `filter_<field>`.
|
|
26
|
+
* One on a column with no values to pick is only warned about.
|
|
17
27
|
*
|
|
18
28
|
* @internal
|
|
19
29
|
*/
|
|
@@ -54,13 +64,15 @@ export declare function offeredDisplays(options: DisplayDeclarations): TableView
|
|
|
54
64
|
*/
|
|
55
65
|
export declare function offeredDisplayIds(options: DisplayDeclarations): Set<string>;
|
|
56
66
|
/**
|
|
57
|
-
* A table view offers at least one display, and its default display
|
|
58
|
-
*
|
|
67
|
+
* A table view offers at least one display, and its default display and its
|
|
68
|
+
* display on phones are among them. Left out, the default is the first
|
|
69
|
+
* display offered.
|
|
59
70
|
*
|
|
60
71
|
* @internal
|
|
61
72
|
*/
|
|
62
73
|
export declare function validateDefaultDisplay(controllerName: string, options: DisplayDeclarations & {
|
|
63
74
|
defaultDisplay?: string;
|
|
75
|
+
mobileDisplay?: string;
|
|
64
76
|
}): void;
|
|
65
77
|
/**
|
|
66
78
|
* The grouped display sorts on its column, which must therefore be a sortable
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.validatePageSize = validatePageSize;
|
|
9
9
|
exports.assertKnownColumns = assertKnownColumns;
|
|
10
|
+
exports.warnIfQuickFiltersLackValues = warnIfQuickFiltersLackValues;
|
|
10
11
|
exports.validateQuickFilters = validateQuickFilters;
|
|
11
12
|
exports.validateKanbanOptions = validateKanbanOptions;
|
|
12
13
|
exports.validateDisplayIds = validateDisplayIds;
|
|
@@ -20,6 +21,7 @@ exports.assertRowScopedFormSlugs = assertRowScopedFormSlugs;
|
|
|
20
21
|
exports.assertTabTargets = assertTabTargets;
|
|
21
22
|
exports.validateTableViewOptions = validateTableViewOptions;
|
|
22
23
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
24
|
+
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
23
25
|
const metadata_1 = require("@antelopejs/interface-data-api/metadata");
|
|
24
26
|
const data_types_1 = require("../../data-types");
|
|
25
27
|
const options_1 = require("../options");
|
|
@@ -49,8 +51,62 @@ function assertKnownColumns(controllerName, meta, option, keys) {
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
}
|
|
54
|
+
// Types whose quick filter values are known whatever their input: the two
|
|
55
|
+
// labels of a boolean or a status, the rows a relation's `select` endpoint
|
|
56
|
+
// lists. Their input is not built here: a relation's reads the metadata of
|
|
57
|
+
// the controller it points to, which may not be declared yet.
|
|
58
|
+
const QUICK_FILTER_VALUED_TYPES = new Set([
|
|
59
|
+
"boolean",
|
|
60
|
+
"status",
|
|
61
|
+
"relation",
|
|
62
|
+
"cascader_relation",
|
|
63
|
+
]);
|
|
64
|
+
/**
|
|
65
|
+
* Whether the toolbar can list values for a quick filter on a column of this
|
|
66
|
+
* type, by the rule the browser applies: a boolean or a status, the `items`
|
|
67
|
+
* or `suggestions` of its input (a select, a tags column), or the endpoint
|
|
68
|
+
* its input searches (a relation).
|
|
69
|
+
* A type whose input cannot be built here is given the benefit of the doubt.
|
|
70
|
+
*/
|
|
71
|
+
function offersQuickFilterValues(type) {
|
|
72
|
+
const typeId = (0, data_types_1.getDataTypeId)(type);
|
|
73
|
+
if (typeId && QUICK_FILTER_VALUED_TYPES.has(typeId))
|
|
74
|
+
return true;
|
|
75
|
+
try {
|
|
76
|
+
const options = (type.inputComponent().options ??
|
|
77
|
+
{});
|
|
78
|
+
return ((options.items?.length ?? 0) > 0 ||
|
|
79
|
+
(options.suggestions?.length ?? 0) > 0 ||
|
|
80
|
+
!!options.searchUrl);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const warnedValuelessQuickFilters = new Set();
|
|
87
|
+
/**
|
|
88
|
+
* Warns, once per table and field, about a quick filter whose column offers
|
|
89
|
+
* nothing to pick — a free-text string, a number, a date, a select without
|
|
90
|
+
* items: the browser leaves it out of the toolbar. Not thrown, so that an
|
|
91
|
+
* application already declaring one keeps starting.
|
|
92
|
+
*
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
function warnIfQuickFiltersLackValues(controllerName, columns, quickFilters) {
|
|
96
|
+
for (const { field } of quickFilters ?? []) {
|
|
97
|
+
const column = columns[field];
|
|
98
|
+
if (!column || offersQuickFilterValues(column.type))
|
|
99
|
+
continue;
|
|
100
|
+
const key = `${controllerName} ${field}`;
|
|
101
|
+
if (warnedValuelessQuickFilters.has(key))
|
|
102
|
+
continue;
|
|
103
|
+
warnedValuelessQuickFilters.add(key);
|
|
104
|
+
logging_1.Logging.Warn(`[DMS] TableView quickFilters on ${controllerName}: column "${field}" (${(0, data_types_1.getDataTypeId)(column.type) ?? "custom type"}) has no values to pick, so the toolbar leaves it out. A quick filter needs a select with items, a boolean, a status or a relation column; filter a free-text column from the filters row or the search instead.`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
52
107
|
/**
|
|
53
108
|
* Quick filters must name filterable columns: they filter with `filter_<field>`.
|
|
109
|
+
* One on a column with no values to pick is only warned about.
|
|
54
110
|
*
|
|
55
111
|
* @internal
|
|
56
112
|
*/
|
|
@@ -64,6 +120,7 @@ function validateQuickFilters(controllerName, meta, quickFilters) {
|
|
|
64
120
|
throw new Error(`TableView quickFilters on ${controllerName}: column "${field}" must be filterable`);
|
|
65
121
|
}
|
|
66
122
|
}
|
|
123
|
+
warnIfQuickFiltersLackValues(controllerName, meta.columns, quickFilters);
|
|
67
124
|
}
|
|
68
125
|
const KANBAN_GROUP_TYPE_ELIGIBILITY = {
|
|
69
126
|
select: (type) => !type.options?.multiple,
|
|
@@ -157,8 +214,9 @@ function offeredDisplayIds(options) {
|
|
|
157
214
|
return new Set(offeredDisplays(options).map((display) => display.id));
|
|
158
215
|
}
|
|
159
216
|
/**
|
|
160
|
-
* A table view offers at least one display, and its default display
|
|
161
|
-
*
|
|
217
|
+
* A table view offers at least one display, and its default display and its
|
|
218
|
+
* display on phones are among them. Left out, the default is the first
|
|
219
|
+
* display offered.
|
|
162
220
|
*
|
|
163
221
|
* @internal
|
|
164
222
|
*/
|
|
@@ -171,6 +229,10 @@ function validateDefaultDisplay(controllerName, options) {
|
|
|
171
229
|
if (defaultDisplay && !offered.has(defaultDisplay)) {
|
|
172
230
|
throw new Error(`TableView on ${controllerName} defaults to display "${defaultDisplay}" which is not declared in displays`);
|
|
173
231
|
}
|
|
232
|
+
const { mobileDisplay } = options;
|
|
233
|
+
if (mobileDisplay && !offered.has(mobileDisplay)) {
|
|
234
|
+
throw new Error(`TableView on ${controllerName} opens phones on display "${mobileDisplay}" which is not declared in displays`);
|
|
235
|
+
}
|
|
174
236
|
}
|
|
175
237
|
function isSortableColumn(meta, key) {
|
|
176
238
|
const fields = (0, interface_core_1.GetMetadata)(meta.target, metadata_1.DataAPIMeta).fields;
|
|
@@ -198,6 +260,12 @@ function validateGroupedOptions(controllerName, meta, grouped) {
|
|
|
198
260
|
if (by && by !== "value" && typeId !== DAY_GROUPING_TYPE_ID) {
|
|
199
261
|
throw new Error(`TableView grouped on ${controllerName} groups "${groupByField}" by ${by}, which needs a DateType column (got "${typeId}")`);
|
|
200
262
|
}
|
|
263
|
+
// A group is counted with `filter_<column>`, which the count route ignores
|
|
264
|
+
// on a column without a filter: every header would read the whole total.
|
|
265
|
+
const filters = (0, interface_core_1.GetMetadata)(meta.target, metadata_1.DataAPIMeta).filters;
|
|
266
|
+
if (grouped.count && !filters[groupByField]) {
|
|
267
|
+
logging_1.Logging.Warn(`[DMS] TableView grouped on ${controllerName} counts its groups, but "${groupByField}" is not filterable: every group would count every row. Declare the column \`filterable: true\`.`);
|
|
268
|
+
}
|
|
201
269
|
}
|
|
202
270
|
const NUMBER_TYPE_ID = "number";
|
|
203
271
|
/**
|