@antelopejs/interface-dms 0.13.3 → 0.14.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 +196 -2
- package/README.md +9 -9
- package/dist/auth/db/models/sessions.model.d.ts +3 -3
- package/dist/auth/db/models/userExternalIdentities.model.d.ts +3 -3
- package/dist/auth/db/models/users.model.d.ts +3 -3
- package/dist/auth/db/tables/users.table.d.ts +3 -3
- package/dist/base/activity-feed.d.ts +2 -2
- package/dist/base/block-registry/types.d.ts +1 -1
- package/dist/base/chart-schemas.d.ts +70 -70
- package/dist/base/chart.d.ts +1 -1
- package/dist/base/data-types/default/choices.d.ts +1 -1
- package/dist/base/data-types/default/choices.js +3 -6
- package/dist/base/data-types/default/choices.js.map +1 -1
- package/dist/base/data-types/default/inputs.d.ts +1 -1
- package/dist/base/data-types/default/numbers.d.ts +2 -1
- package/dist/base/data-types/default/numbers.js +4 -3
- package/dist/base/data-types/default/numbers.js.map +1 -1
- package/dist/base/data-types/default/relations.d.ts +0 -6
- package/dist/base/data-types/default/relations.js +0 -1
- package/dist/base/data-types/default/relations.js.map +1 -1
- package/dist/base/data-types/default-types.d.ts +0 -1
- package/dist/base/data-types/default-types.js +0 -2
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/data-types/index.js +0 -1
- package/dist/base/data-types/index.js.map +1 -1
- package/dist/base/data-types/internal/relation-endpoints.js +5 -3
- package/dist/base/data-types/internal/relation-endpoints.js.map +1 -1
- package/dist/base/data-types/internal/table-view-meta-slot.d.ts +17 -0
- package/dist/base/data-types/internal/table-view-meta-slot.js +25 -0
- package/dist/base/data-types/internal/table-view-meta-slot.js.map +1 -0
- package/dist/base/empty-state.d.ts +1 -1
- package/dist/base/export-jobs.d.ts +47 -19
- package/dist/base/export-jobs.js +39 -4
- package/dist/base/export-jobs.js.map +1 -1
- package/dist/base/form-schema.d.ts +0 -1
- package/dist/base/form-schema.js +12 -12
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/grid.js +1 -1
- package/dist/base/grid.js.map +1 -1
- package/dist/base/guard.d.ts +4 -4
- package/dist/base/guard.js +1 -1
- package/dist/base/guard.js.map +1 -1
- package/dist/base/helpers/file-refs.js +4 -6
- package/dist/base/helpers/file-refs.js.map +1 -1
- package/dist/base/internal/chart.d.ts +1 -1
- package/dist/base/internal/chart.js +1 -1
- package/dist/base/internal/chart.js.map +1 -1
- package/dist/base/internal/export-jobs.d.ts +11 -0
- package/dist/base/internal/export-jobs.js +11 -0
- package/dist/base/internal/export-jobs.js.map +1 -1
- package/dist/base/internal/form-block-schema.d.ts +1 -1
- package/dist/base/internal/form-block-schema.js +1 -1
- package/dist/base/internal/form-block-schema.js.map +1 -1
- package/dist/base/key-value-list.d.ts +6 -6
- package/dist/base/meter.d.ts +1 -1
- package/dist/base/placeholder.js +1 -1
- package/dist/base/placeholder.js.map +1 -1
- package/dist/base/searchable.d.ts +3 -3
- package/dist/base/searchable.js.map +1 -1
- package/dist/base/stack.js +1 -1
- package/dist/base/stack.js.map +1 -1
- package/dist/base/tab.js +1 -1
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/data-functions.d.ts +10 -11
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory.js +2 -0
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/archive-filter.d.ts +21 -0
- package/dist/base/table-view/internal/archive-filter.js +48 -0
- package/dist/base/table-view/internal/archive-filter.js.map +1 -0
- package/dist/base/table-view/internal/auth.d.ts +2 -2
- package/dist/base/table-view/internal/auth.js +1 -3
- package/dist/base/table-view/internal/auth.js.map +1 -1
- package/dist/base/table-view/internal/column-conditions.js.map +1 -1
- package/dist/base/table-view/internal/data-functions.d.ts +2 -2
- package/dist/base/table-view/internal/factory-lifecycle-created.js +3 -2
- package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -1
- package/dist/base/table-view/internal/footer.js +21 -13
- package/dist/base/table-view/internal/footer.js.map +1 -1
- package/dist/base/table-view/internal/guards.d.ts +1 -1
- package/dist/base/table-view/internal/guards.js +11 -8
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/meta-helpers.js +3 -2
- package/dist/base/table-view/internal/meta-helpers.js.map +1 -1
- package/dist/base/table-view/internal/nav-badges.js +1 -3
- package/dist/base/table-view/internal/nav-badges.js.map +1 -1
- package/dist/base/table-view/internal/option-views.d.ts +7 -4
- package/dist/base/table-view/internal/row-actions-schema.d.ts +6 -6
- package/dist/base/table-view/meta.d.ts +5 -5
- package/dist/base/table-view/meta.js +6 -2
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/routes.d.ts +39 -12
- package/dist/base/table-view/routes.js +0 -1
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +127 -127
- package/dist/base/top-list-card.d.ts +4 -4
- package/dist/component-options/data-type.d.ts +2 -1
- package/dist/component-options/data-type.js +1 -1
- package/dist/component-options/data-type.js.map +1 -1
- package/dist/component-slots.js +1 -1
- package/dist/component-slots.js.map +1 -1
- package/dist/connection-access.d.ts +46 -0
- package/dist/connection-access.js +73 -0
- package/dist/connection-access.js.map +1 -0
- package/dist/data-controllers/members.d.ts +15 -2
- package/dist/data-controllers/roles.d.ts +15 -2
- package/dist/db/internal/exportJobs.model.d.ts +3 -3
- package/dist/db/internal/inviteResolutions.model.d.ts +3 -3
- package/dist/db/internal/tenantLifecycle.model.d.ts +4 -4
- package/dist/db/internal/tenantLifecycle.model.js +2 -3
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
- package/dist/db/models/roles.model.d.ts +3 -3
- package/dist/db/models/tenantMembers.model.d.ts +3 -3
- package/dist/db/models/tenants.model.d.ts +3 -3
- package/dist/db/models/user_invites.model.d.ts +18 -3
- package/dist/db/models/user_invites.model.js +28 -0
- package/dist/db/models/user_invites.model.js.map +1 -1
- package/dist/db/tables/user_invites.table.d.ts +6 -1
- package/dist/db/tables/user_invites.table.js +3 -0
- package/dist/db/tables/user_invites.table.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/component-slots.js +1 -1
- package/dist/internal/component-slots.js.map +1 -1
- package/dist/internal/invite-content.d.ts +8 -0
- package/dist/internal/invite-content.js +36 -0
- package/dist/internal/invite-content.js.map +1 -0
- package/dist/internal/tenant-ownership.d.ts +5 -4
- package/dist/internal/tenant-ownership.js +5 -4
- package/dist/internal/tenant-ownership.js.map +1 -1
- package/dist/invite-extensions/internal/delivery.d.ts +3 -2
- package/dist/invite-extensions/internal/delivery.js +3 -2
- package/dist/invite-extensions/internal/delivery.js.map +1 -1
- package/dist/invite-resolution.d.ts +5 -1
- package/dist/invite-resolution.js +10 -26
- package/dist/invite-resolution.js.map +1 -1
- package/dist/invites.d.ts +5 -0
- package/dist/invites.js +27 -1
- package/dist/invites.js.map +1 -1
- package/dist/notifications/internal.d.ts +0 -1
- package/dist/notifications/internal.js +0 -1
- package/dist/notifications/internal.js.map +1 -1
- package/dist/notifications/sendable.d.ts +1 -2
- package/dist/notifications/sendable.js +1 -12
- package/dist/notifications/sendable.js.map +1 -1
- package/dist/notifications/types.d.ts +1 -4
- package/dist/page/categories.d.ts +6 -0
- package/dist/page/categories.js +10 -3
- package/dist/page/categories.js.map +1 -1
- package/dist/page/controllers.d.ts +6 -9
- package/dist/page/controllers.js +5 -6
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/internal/categories.js +43 -32
- package/dist/page/internal/categories.js.map +1 -1
- package/dist/page/internal/category-resolution.d.ts +31 -0
- package/dist/page/internal/category-resolution.js +63 -0
- package/dist/page/internal/category-resolution.js.map +1 -0
- package/dist/page/internal/metadata-extension-contributions.js +1 -2
- package/dist/page/internal/metadata-extension-contributions.js.map +1 -1
- package/dist/page/internal/metadata-info.js +19 -7
- package/dist/page/internal/metadata-info.js.map +1 -1
- package/dist/page/internal/metadata-layout.d.ts +3 -2
- package/dist/page/internal/metadata-layout.js.map +1 -1
- package/dist/page/internal/metadata-lifecycle.js +1 -4
- package/dist/page/internal/metadata-lifecycle.js.map +1 -1
- package/dist/page/internal/metadata-publish.js +7 -6
- package/dist/page/internal/metadata-publish.js.map +1 -1
- package/dist/page/internal/metadata-registration.js +8 -6
- package/dist/page/internal/metadata-registration.js.map +1 -1
- package/dist/page/internal/page-controller.d.ts +18 -0
- package/dist/page/internal/page-controller.js +36 -0
- package/dist/page/internal/page-controller.js.map +1 -0
- package/dist/page/metadata.d.ts +3 -3
- package/dist/page/metadata.js +4 -2
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/types.d.ts +8 -2
- package/dist/page.d.ts +1 -1
- package/dist/page.js +2 -1
- package/dist/page.js.map +1 -1
- package/dist/permissions.d.ts +2 -1
- package/dist/permissions.js +5 -2
- package/dist/permissions.js.map +1 -1
- package/dist/tenant-provisioning.js +1 -1
- package/dist/tenant-provisioning.js.map +1 -1
- package/dist/types.d.ts +7 -3
- package/docs/1.core/11.modules-and-dynamic-menus.md +3 -3
- package/docs/1.core/2.pages-and-modules.md +2 -1
- package/docs/1.core/4.permissions.md +2 -2
- package/docs/1.core/5.tenancy.md +1 -1
- package/docs/1.core/6.invites.md +3 -1
- package/docs/2.auth/2.authentication.md +1 -1
- package/docs/2.auth/3.tokens-and-sessions.md +1 -1
- package/docs/3.base/1.introduction.md +1 -1
- package/docs/3.base/14.table-events-and-helpers.md +1 -1
- package/docs/3.base/15.table-sources-and-gates.md +14 -2
- package/docs/3.base/3.forms.md +1 -1
- package/docs/3.base/4.tables.md +1 -1
- package/docs/3.base/5.charts-and-widgets.md +3 -3
- package/docs/3.base/8.data-types.md +1 -1
- package/docs/3.base/9.helpers.md +16 -5
- package/docs/4.notifications/3.sending.md +0 -11
- package/docs/index.md +1 -1
- package/package.json +11 -11
|
@@ -9,6 +9,7 @@ const uploads_1 = require("../../uploads");
|
|
|
9
9
|
const archive_mode_helpers_1 = require("../helpers/archive-mode-helpers");
|
|
10
10
|
const meta_1 = require("./meta");
|
|
11
11
|
const options_1 = require("./internal/options");
|
|
12
|
+
const archive_filter_1 = require("./internal/archive-filter");
|
|
12
13
|
const resource_form_1 = require("./internal/resource-form");
|
|
13
14
|
const routes_1 = require("./routes");
|
|
14
15
|
const factory_helpers_1 = require("./internal/factory-helpers");
|
|
@@ -44,6 +45,7 @@ function TableView(controller, options = {}) {
|
|
|
44
45
|
(0, footer_1.warnIfSummaryLacksRoute)(controller, controller.location, options.footer, endpoints);
|
|
45
46
|
(0, resource_form_1.stampAttachmentFields)(meta, controller.location);
|
|
46
47
|
const isExportEnabled = Object.keys(routes_1.TableViewRoutes.ExportRoutes).every((key) => !!endpoints[key]);
|
|
48
|
+
(0, archive_filter_1.assertArchiveFieldFilter)(controller, meta.archiveField);
|
|
47
49
|
if (options.archiveMode) {
|
|
48
50
|
if (!meta.archiveField) {
|
|
49
51
|
throw new Error(`TableView with archiveMode enabled requires @ArchiveField decorator on ${controller.name}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/base/table-view/factory.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/base/table-view/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ControllerClass, RequestContext } from "@antelopejs/interface-api";
|
|
2
|
+
import type { ValueProxy, ValueProxyOrValue } from "@antelopejs/interface-database";
|
|
3
|
+
/**
|
|
4
|
+
* The filter `@ArchiveField` registers. A list request carries its value as
|
|
5
|
+
* text, so this reads `true` or `false` as the boolean the field stores, takes
|
|
6
|
+
* a boolean a server caller passes as it is, then compares with `eq` or `ne`.
|
|
7
|
+
*
|
|
8
|
+
* @throws HTTPResult 400 when the value is not `true` or `false`, or the mode
|
|
9
|
+
* is not `eq` or `ne`
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function filterArchiveField(_context: RequestContext, proxy: ValueProxy<unknown>, _key: string, value: string | boolean, mode: string): ValueProxyOrValue<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Refuses a controller whose archive field another filter serves, such as a
|
|
15
|
+
* `Filter()` declared above `@ArchiveField`. The archive filter is sent as
|
|
16
|
+
* text, so a filter that does not read it would list archived rows as active.
|
|
17
|
+
*
|
|
18
|
+
* @throws Error when the archive field's filter is not {@link filterArchiveField}
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export declare function assertArchiveFieldFilter(controller: ControllerClass, archiveField: string | undefined): void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.filterArchiveField = filterArchiveField;
|
|
4
|
+
exports.assertArchiveFieldFilter = assertArchiveFieldFilter;
|
|
5
|
+
const interface_api_util_1 = require("@antelopejs/interface-api-util");
|
|
6
|
+
const interface_core_1 = require("@antelopejs/interface-core");
|
|
7
|
+
const metadata_1 = require("@antelopejs/interface-data-api/metadata");
|
|
8
|
+
const type_check_1 = require("../../../utils/internal/type-check");
|
|
9
|
+
const HTTP_BAD_REQUEST = 400;
|
|
10
|
+
const ARCHIVED_BY_TEXT = new Map([
|
|
11
|
+
["true", true],
|
|
12
|
+
["false", false],
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* The filter `@ArchiveField` registers. A list request carries its value as
|
|
16
|
+
* text, so this reads `true` or `false` as the boolean the field stores, takes
|
|
17
|
+
* a boolean a server caller passes as it is, then compares with `eq` or `ne`.
|
|
18
|
+
*
|
|
19
|
+
* @throws HTTPResult 400 when the value is not `true` or `false`, or the mode
|
|
20
|
+
* is not `eq` or `ne`
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
function filterArchiveField(_context, proxy, _key, value, mode) {
|
|
24
|
+
const archived = (0, type_check_1.isBoolean)(value) ? value : ARCHIVED_BY_TEXT.get(value);
|
|
25
|
+
(0, interface_api_util_1.assert)(archived !== undefined, HTTP_BAD_REQUEST, `Filter the archive field with true or false, not "${value}".`);
|
|
26
|
+
(0, interface_api_util_1.assert)(mode === "eq" || mode === "ne", HTTP_BAD_REQUEST, `Filter the archive field with eq or ne, not "${mode}".`);
|
|
27
|
+
return mode === "eq" ? proxy.eq(archived) : proxy.ne(archived);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Refuses a controller whose archive field another filter serves, such as a
|
|
31
|
+
* `Filter()` declared above `@ArchiveField`. The archive filter is sent as
|
|
32
|
+
* text, so a filter that does not read it would list archived rows as active.
|
|
33
|
+
*
|
|
34
|
+
* @throws Error when the archive field's filter is not {@link filterArchiveField}
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
function assertArchiveFieldFilter(controller, archiveField) {
|
|
38
|
+
if (archiveField === undefined)
|
|
39
|
+
return;
|
|
40
|
+
const { filters } = (0, interface_core_1.GetMetadata)(controller, metadata_1.DataAPIMeta);
|
|
41
|
+
const filter = Object.hasOwn(filters, archiveField)
|
|
42
|
+
? filters[archiveField]
|
|
43
|
+
: undefined;
|
|
44
|
+
if (filter !== filterArchiveField) {
|
|
45
|
+
throw new Error(`The archive field "${archiveField}" of ${controller.name} declares its own Filter, which replaces the one @ArchiveField registers: remove that Filter.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=archive-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-filter.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/archive-filter.ts"],"names":[],"mappings":";;AA6BA,gDAmBC;AAUD,4DAcC;AApED,uEAAwD;AACxD,+DAAyD;AACzD,sEAAsE;AAKtE,mEAA+D;AAE/D,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,CAAC,MAAM,EAAE,IAAI,CAAC;IACd,CAAC,OAAO,EAAE,KAAK,CAAC;CACjB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAChC,QAAwB,EACxB,KAA0B,EAC1B,IAAY,EACZ,KAAuB,EACvB,IAAY;IAEZ,MAAM,QAAQ,GAAG,IAAA,sBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxE,IAAA,2BAAM,EACJ,QAAQ,KAAK,SAAS,EACtB,gBAAgB,EAChB,qDAAqD,KAAK,IAAI,CAC/D,CAAC;IACF,IAAA,2BAAM,EACJ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAC9B,gBAAgB,EAChB,gDAAgD,IAAI,IAAI,CACzD,CAAC;IACF,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,UAA2B,EAC3B,YAAgC;IAEhC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO;IACvC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,4BAAW,EAAC,UAAU,EAAE,sBAAW,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QACvB,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,sBAAsB,YAAY,QAAQ,UAAU,CAAC,IAAI,+FAA+F,CACzJ,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RequestContext } from "@antelopejs/interface-api";
|
|
2
|
-
import type { DataControllerCallback, DataControllerCallbackWithOptions } from "@antelopejs/interface-data-api";
|
|
2
|
+
import type { DataControllerCallback, DataControllerCallbackWithOptions, DataControllerInstance } from "@antelopejs/interface-data-api";
|
|
3
3
|
import type { User } from "../../../auth/db";
|
|
4
4
|
/**
|
|
5
5
|
* The read actions of a table view, named once so the route that checks one,
|
|
@@ -29,7 +29,7 @@ export declare const VIEW_ARCHIVED_ACTION = "viewArchived";
|
|
|
29
29
|
*/
|
|
30
30
|
export declare const GATE_BYPASSABLE_ACTIONS: string[];
|
|
31
31
|
/** @internal */
|
|
32
|
-
export declare function authorizeAction(thisObj:
|
|
32
|
+
export declare function authorizeAction(thisObj: DataControllerInstance, actionId: string, user: User, tenantId: string): Promise<Set<string> | undefined>;
|
|
33
33
|
/**
|
|
34
34
|
* `baseRoute` behind the permission check of `actionId`: the route takes the
|
|
35
35
|
* user after the arguments of `baseRoute`, and runs `baseRoute` only once the
|
|
@@ -49,9 +49,7 @@ function isGateBypassableAction(actionId, permissionIds) {
|
|
|
49
49
|
return permissionIds.length > 0 && exports.GATE_BYPASSABLE_ACTIONS.includes(actionId);
|
|
50
50
|
}
|
|
51
51
|
/** @internal */
|
|
52
|
-
async function authorizeAction(
|
|
53
|
-
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- The published authorization helper accepts a dispatcher-bound controller receiver without a class validation step.
|
|
54
|
-
thisObj, actionId, user, tenantId) {
|
|
52
|
+
async function authorizeAction(thisObj, actionId, user, tenantId) {
|
|
55
53
|
const meta = (0, meta_1.getTableViewMetaFor)(thisObj);
|
|
56
54
|
const permissionIds = meta.actionPermissionIds(actionId);
|
|
57
55
|
if (!meta.bypassTenantAccessGate ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/auth.ts"],"names":[],"mappings":";;;AA6DA,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-conditions.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/column-conditions.ts"],"names":[],"mappings":";;;AAAA,6DAA4E;AAC5E,uEAA2E;AAC3E,+DAAyD;AAEzD,0EAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"column-conditions.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/column-conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RequestContext } from "@antelopejs/interface-api";
|
|
2
|
-
import type {
|
|
2
|
+
import type { DataControllerInstance } from "@antelopejs/interface-data-api";
|
|
3
3
|
/**
|
|
4
4
|
* The figures of a footer, by summary id.
|
|
5
5
|
*
|
|
@@ -8,7 +8,7 @@ import type { DataControllerCallback, DataControllerCallbackWithOptions } from "
|
|
|
8
8
|
export type FooterSummaryValues = Record<string, number>;
|
|
9
9
|
/** @internal */
|
|
10
10
|
export type RowBulkOperationParams = [
|
|
11
|
-
thisObj:
|
|
11
|
+
thisObj: DataControllerInstance,
|
|
12
12
|
ctx: RequestContext,
|
|
13
13
|
ids: string | string[]
|
|
14
14
|
];
|
|
@@ -5,6 +5,7 @@ const logging_1 = require("@antelopejs/interface-core/logging");
|
|
|
5
5
|
const page_1 = require("../../../page");
|
|
6
6
|
const form_page_routes_1 = require("../../../page/internal/form-page-routes");
|
|
7
7
|
const categories_1 = require("../../../page/internal/categories");
|
|
8
|
+
const page_controller_1 = require("../../../page/internal/page-controller");
|
|
8
9
|
const fire_and_forget_1 = require("../../../utils/fire-and-forget");
|
|
9
10
|
const layouts_1 = require("../../layouts");
|
|
10
11
|
const factory_helpers_1 = require("./factory-helpers");
|
|
@@ -39,7 +40,7 @@ function tableViewCreated(state, parentPage) {
|
|
|
39
40
|
if (!isPageMode) {
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
|
-
const routeKey = (0, factory_helpers_1.formRouteKey)(tableViewPermissionId, (0, page_1.GetPermissionId)(parentPage.target) ?? parentInfo.fullId);
|
|
43
|
+
const routeKey = (0, factory_helpers_1.formRouteKey)(tableViewPermissionId, (0, page_1.GetPermissionId)((0, page_controller_1.pageController)(parentPage.target)) ?? parentInfo.fullId);
|
|
43
44
|
builder.mergeOptions({
|
|
44
45
|
formPages: (0, factory_helpers_1.buildFormPageUrls)(parentInfo.fullSlug, routeKey, customPages),
|
|
45
46
|
});
|
|
@@ -60,7 +61,7 @@ function tableViewCreated(state, parentPage) {
|
|
|
60
61
|
fullSlug,
|
|
61
62
|
});
|
|
62
63
|
const texts = (0, factory_helpers_1.resolveFormPageTexts)(kind, customPages);
|
|
63
|
-
const FormController = class extends parentPage.target {
|
|
64
|
+
const FormController = class extends (0, page_controller_1.pageController)(parentPage.target) {
|
|
64
65
|
};
|
|
65
66
|
const formMeta = new page_1.PageMetadata(FormController);
|
|
66
67
|
formMeta.SetInfo(id, fullSlug, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory-lifecycle-created.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/factory-lifecycle-created.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"factory-lifecycle-created.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/factory-lifecycle-created.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,10 @@ const row_action_operators_1 = require("../../types/row-action-operators");
|
|
|
10
10
|
const row_rule_shape_1 = require("./row-rule-shape");
|
|
11
11
|
const tabs_1 = require("./tabs");
|
|
12
12
|
const LEGEND_TYPE_ID = "select";
|
|
13
|
+
const SUMMARY_OPERATIONS = [
|
|
14
|
+
"sum",
|
|
15
|
+
"count",
|
|
16
|
+
];
|
|
13
17
|
/**
|
|
14
18
|
* The columns a row rule reads, nested rules included.
|
|
15
19
|
*
|
|
@@ -29,23 +33,28 @@ function operandRules(operand) {
|
|
|
29
33
|
return [];
|
|
30
34
|
return Array.isArray(operand) ? operand : [operand];
|
|
31
35
|
}
|
|
32
|
-
function
|
|
33
|
-
const where
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
function checkedSummary(controllerName, meta, summary) {
|
|
37
|
+
const { where, ...figure } = summary;
|
|
38
|
+
const subject = `TableView footer summary "${figure.label}" on ${controllerName}`;
|
|
39
|
+
if (!SUMMARY_OPERATIONS.includes(figure.op)) {
|
|
40
|
+
throw new Error(`${subject} has op ${JSON.stringify(figure.op)}: give it ${SUMMARY_OPERATIONS.map((op) => `"${op}"`).join(" or ")}`);
|
|
36
41
|
}
|
|
37
|
-
if (
|
|
38
|
-
|
|
42
|
+
if (figure.op === "sum" && !figure.field) {
|
|
43
|
+
throw new Error(`${subject} sums no field: give it a field`);
|
|
44
|
+
}
|
|
45
|
+
if (where) {
|
|
46
|
+
(0, row_rule_shape_1.assertRowRule)(where, `${subject} has a malformed rule`, "where");
|
|
39
47
|
}
|
|
40
48
|
const fields = [
|
|
41
|
-
...(
|
|
42
|
-
...(
|
|
49
|
+
...(figure.field ? [figure.field] : []),
|
|
50
|
+
...(where ? ruleFields(where) : []),
|
|
43
51
|
];
|
|
44
52
|
for (const field of fields) {
|
|
45
53
|
if (!meta.columns[field]) {
|
|
46
|
-
throw new Error(`${
|
|
54
|
+
throw new Error(`${subject} references unknown column "${field}"`);
|
|
47
55
|
}
|
|
48
56
|
}
|
|
57
|
+
return where ? { ...figure, where } : figure;
|
|
49
58
|
}
|
|
50
59
|
/**
|
|
51
60
|
* The footer as it reaches the client: its summaries checked, recorded on
|
|
@@ -65,12 +74,11 @@ function serializeFooter(controllerName, meta, footer) {
|
|
|
65
74
|
}
|
|
66
75
|
if (!summary)
|
|
67
76
|
return texts;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const ids = meta.registerFooterSummaries(summary);
|
|
77
|
+
const checked = summary.map((entry) => checkedSummary(controllerName, meta, entry));
|
|
78
|
+
const ids = meta.registerFooterSummaries(checked);
|
|
71
79
|
return {
|
|
72
80
|
...texts,
|
|
73
|
-
summary:
|
|
81
|
+
summary: checked.map(({ where: _where, ...entry }, index) => ({
|
|
74
82
|
...entry,
|
|
75
83
|
id: ids[index],
|
|
76
84
|
})),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/footer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/footer.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ interface GuardedActionParams {
|
|
|
12
12
|
new: Parameters.NewParameters;
|
|
13
13
|
}
|
|
14
14
|
/** @internal */
|
|
15
|
-
export declare const guardedGetRoute: DataControllerCallback<Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").
|
|
15
|
+
export declare const guardedGetRoute: DataControllerCallback<Parameters.GetParameters, import("@antelopejs/interface-data-api/metadata").StoredRow, [RequestContext, Parameters.GetParameters]>;
|
|
16
16
|
/**
|
|
17
17
|
* `baseRoute` behind the `actionName` guard, given the body the confirmation
|
|
18
18
|
* answered: the route takes it after the arguments of `baseRoute`.
|
|
@@ -8,6 +8,7 @@ const interface_data_api_1 = require("@antelopejs/interface-data-api");
|
|
|
8
8
|
const components_1 = require("@antelopejs/interface-data-api/components");
|
|
9
9
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
10
10
|
const zod_1 = require("zod");
|
|
11
|
+
const connection_access_1 = require("../../../connection-access");
|
|
11
12
|
const data_functions_1 = require("../data-functions");
|
|
12
13
|
const meta_1 = require("../meta");
|
|
13
14
|
const options_1 = require("../options");
|
|
@@ -112,10 +113,14 @@ const parseGuardBody = (raw) => {
|
|
|
112
113
|
return {};
|
|
113
114
|
};
|
|
114
115
|
exports.parseGuardBody = parseGuardBody;
|
|
116
|
+
const getIdField = (controller) => {
|
|
117
|
+
const meta = (0, interface_core_1.GetMetadata)(controller.constructor, meta_1.TableViewMeta);
|
|
118
|
+
return meta.options.rowIdKey || options_1.DEFAULT_ROW_ID_FIELD;
|
|
119
|
+
};
|
|
115
120
|
const ACTION_GUARD_CONFIGS = {
|
|
116
121
|
edit: {
|
|
117
|
-
|
|
118
|
-
|
|
122
|
+
invokeGuard: async (controller, ctx, params, body, guard) => {
|
|
123
|
+
const idField = getIdField(controller);
|
|
119
124
|
const id = String(params.id);
|
|
120
125
|
const current = await (0, data_functions_1.fetchRowForGuard)(controller, id, idField);
|
|
121
126
|
(0, interface_api_util_1.assert)(current, 404, "Not Found");
|
|
@@ -166,10 +171,6 @@ exports.guardedGetRoute = interface_data_api_1.DefaultRoutes.WithGetGuard(async
|
|
|
166
171
|
current,
|
|
167
172
|
});
|
|
168
173
|
});
|
|
169
|
-
const getIdField = (controller) => {
|
|
170
|
-
const meta = (0, interface_core_1.GetMetadata)(controller.constructor, meta_1.TableViewMeta);
|
|
171
|
-
return meta.options.rowIdKey || options_1.DEFAULT_ROW_ID_FIELD;
|
|
172
|
-
};
|
|
173
174
|
async function runAfterWrite(afterWrite, actionName) {
|
|
174
175
|
try {
|
|
175
176
|
await afterWrite();
|
|
@@ -188,9 +189,10 @@ const createGuardedConfirmRoute = (baseRoute, actionName) => {
|
|
|
188
189
|
const config = ACTION_GUARD_CONFIGS[actionName];
|
|
189
190
|
return {
|
|
190
191
|
func: async function (ctx, params, confirmBody) {
|
|
192
|
+
await (0, connection_access_1.AssertConnectionWritable)(this.constructor);
|
|
191
193
|
const guard = getGuardForAction(this, actionName);
|
|
192
194
|
const afterWrite = guard
|
|
193
|
-
? await config.invokeGuard(this, ctx, params, confirmBody, guard
|
|
195
|
+
? await config.invokeGuard(this, ctx, params, confirmBody, guard)
|
|
194
196
|
: undefined;
|
|
195
197
|
const result = await baseRoute.func.call(this, ctx, params);
|
|
196
198
|
if (afterWrite)
|
|
@@ -214,11 +216,12 @@ const createGuardedWriteRoute = (baseRoute, actionName) => {
|
|
|
214
216
|
const config = ACTION_GUARD_CONFIGS[actionName];
|
|
215
217
|
return {
|
|
216
218
|
func: async function (ctx, params, body, ...rest) {
|
|
219
|
+
await (0, connection_access_1.AssertConnectionWritable)(this.constructor);
|
|
217
220
|
const guard = getGuardForAction(this, actionName);
|
|
218
221
|
if (!guard)
|
|
219
222
|
return baseRoute.func.call(this, ctx, params, body, ...rest);
|
|
220
223
|
const writtenBody = components_1.Validation.ParseBody(body);
|
|
221
|
-
const afterWrite = await config.invokeGuard(this, ctx, params, writtenBody, guard
|
|
224
|
+
const afterWrite = await config.invokeGuard(this, ctx, params, writtenBody, guard);
|
|
222
225
|
const result = await baseRoute.func.call(this, ctx, params, writtenBody, ...rest);
|
|
223
226
|
if (afterWrite)
|
|
224
227
|
await runAfterWrite(afterWrite, actionName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/guards.ts"],"names":[],"mappings":";;;AAAA,6DAAyE;AACzE,uEAA2E;AAC3E,+DAAyD;AACzD,uEAIwC;AACxC,0EAGmD;AACnD,gEAA6D;AAC7D,6BAAwB;
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,8 +52,9 @@ function decorateColumn(target, key, descriptor, options, meta) {
|
|
|
52
52
|
const columnKey = key;
|
|
53
53
|
meta.setColumn(columnKey, options);
|
|
54
54
|
if (options.validate !== false) {
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
if (!options.type.getValidation) {
|
|
56
|
+
node_assert_1.default.fail("Type has no getValidation method");
|
|
57
|
+
}
|
|
57
58
|
const dataMeta = (0, interface_core_1.GetMetadata)((0, decorated_class_1.decoratedClass)(target), metadata_1.DataAPIMeta);
|
|
58
59
|
const localizedFields = (0, interface_database_decorators_1.getModifiedFields)(dataMeta.tableClass.prototype, interface_database_decorators_1.LocalizationModifier);
|
|
59
60
|
const isLocalized = localizedFields.includes(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-helpers.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/meta-helpers.ts"],"names":[],"mappings":";;;;;AA2BA,4CAgCC;AAGD,
|
|
1
|
+
{"version":3,"file":"meta-helpers.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/meta-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,9 +36,7 @@ async function countRows(controller, ctx, user, filter) {
|
|
|
36
36
|
const permissions = await (0, auth_1.authorizeAction)(instance, auth_1.LIST_ACTION, user, (0, request_tenant_1.getRequestTenantId)(ctx));
|
|
37
37
|
const queryContext = withQuery(ctx, tabFilterQuery(filter));
|
|
38
38
|
const filters = components_1.Parameters.ExtractFilters(queryContext, (0, interface_data_api_1.GetDataControllerMeta)(instance));
|
|
39
|
-
const { total } = await (0, data_functions_1.countWithSearch)(
|
|
40
|
-
// SAFETY: Bug in the published countWithSearch, which types its receiver as DataControllerCallback, a route descriptor, while its implementation reads the controller instance a route runs on. GetControllerInstance returns that instance, so the receiver is right for the implementation and wrong only as the published type.
|
|
41
|
-
instance, queryContext, { filters }, user, permissions);
|
|
39
|
+
const { total } = await (0, data_functions_1.countWithSearch)(instance, queryContext, { filters }, user, permissions);
|
|
42
40
|
return total;
|
|
43
41
|
}
|
|
44
42
|
/** The tab's count in the tone its `navBadge` declares; a bare count without one. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav-badges.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/nav-badges.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"nav-badges.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/nav-badges.ts"],"names":[],"mappings":";;AAsHA,kDAUC;AAhID,6DAImC;AACnC,gEAA6D;AAC7D,uEAAuE;AACvE,0EAAuE;AAOvE,4DAA6D;AAC7D,iCAAsD;AACtD,sDAAoD;AAEpD,mEAAwE;AAExE,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAEtC,qFAAqF;AACrF,SAAS,cAAc,CAAC,MAAsC;IAC5D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO;QACL,CAAC,GAAG,mBAAmB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;KACxF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,GAAmB,EACnB,KAA6B;IAE7B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CACtB,UAA2B,EAC3B,GAAmB,EACnB,IAAU,EACV,MAAsC;IAEtC,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAAqB,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAe,EACvC,QAAQ,EACR,kBAAW,EACX,IAAI,EACJ,IAAA,mCAAkB,EAAC,GAAG,CAAC,CACxB,CAAC;IACF,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,uBAAU,CAAC,cAAc,CACvC,YAAY,EACZ,IAAA,0CAAqB,EAAC,QAAQ,CAAC,CAChC,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,gCAAe,EACrC,QAAQ,EACR,YAAY,EACZ,EAAE,OAAO,EAAE,EACX,IAAI,EACJ,WAAW,CACZ,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,SAAS,WAAW,CAClB,GAAiB;IAEjB,MAAM,IAAI,GAAG,IAAA,qBAAQ,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CACvB,GAAiB,EACjB,UAA2B;IAE3B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACnB,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IAC9B,IAAI,IAAA,qBAAQ,EAAC,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAA,qBAAQ,EAAC,SAAS,CAAC,EAAE,CAAC;QACtD,iBAAO,CAAC,IAAI,CACV,uBAAuB,UAAU,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,6KAA6K,CACrO,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACnB,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,OAA4B,EAC5B,IAAgC,EAChC,UAA2B;IAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,SAAS;QAC5B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -78,9 +78,11 @@ export interface TableViewViewState {
|
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* A named state of the table ("Past due > 7 days", "Mine"). Opening it
|
|
81
|
-
* applies its state; the user may then change filters or sort,
|
|
82
|
-
*
|
|
83
|
-
*
|
|
81
|
+
* applies its state; the user may then change filters or sort, with a way
|
|
82
|
+
* back (Reset) or forward (Save as new view). A change that only narrows the
|
|
83
|
+
* view (an extra filter, another sort) keeps it named, marked as modified; one
|
|
84
|
+
* that removes or changes a filter or search it sets leaves it, and the table
|
|
85
|
+
* reads as custom filters. A view the module declares is never overwritten.
|
|
84
86
|
*/
|
|
85
87
|
export interface TableViewView extends TableViewViewState {
|
|
86
88
|
/** Stable id, used in the URL (`?view=<id>`). */
|
|
@@ -96,7 +98,8 @@ export interface TableViewView extends TableViewViewState {
|
|
|
96
98
|
* Shows the number of rows the view lists, counted by the controller's
|
|
97
99
|
* `countBatch` route like the tab counters: what opening it would list,
|
|
98
100
|
* under the open tab and the page's URL filters. The open view counts the
|
|
99
|
-
* rows listed, its filters and search as the user edited them
|
|
101
|
+
* rows listed, its filters and search as the user edited them, until a
|
|
102
|
+
* change leaves it (see `TableViewView`).
|
|
100
103
|
*/
|
|
101
104
|
count?: boolean;
|
|
102
105
|
/**
|
|
@@ -222,17 +222,17 @@ export declare const rowActionsSchema: z.ZodObject<{
|
|
|
222
222
|
isVisible?: boolean | undefined;
|
|
223
223
|
rule?: RowActionRule | undefined;
|
|
224
224
|
} | undefined;
|
|
225
|
-
|
|
225
|
+
archive?: boolean | {
|
|
226
226
|
isEnabled?: boolean | undefined;
|
|
227
227
|
isVisible?: boolean | undefined;
|
|
228
228
|
rule?: RowActionRule | undefined;
|
|
229
229
|
} | undefined;
|
|
230
|
-
|
|
230
|
+
restore?: boolean | {
|
|
231
231
|
isEnabled?: boolean | undefined;
|
|
232
232
|
isVisible?: boolean | undefined;
|
|
233
233
|
rule?: RowActionRule | undefined;
|
|
234
234
|
} | undefined;
|
|
235
|
-
|
|
235
|
+
details?: boolean | {
|
|
236
236
|
isEnabled?: boolean | undefined;
|
|
237
237
|
isVisible?: boolean | undefined;
|
|
238
238
|
rule?: RowActionRule | undefined;
|
|
@@ -266,17 +266,17 @@ export declare const rowActionsSchema: z.ZodObject<{
|
|
|
266
266
|
isVisible?: boolean | undefined;
|
|
267
267
|
rule?: RowActionRule | undefined;
|
|
268
268
|
} | undefined;
|
|
269
|
-
|
|
269
|
+
archive?: boolean | {
|
|
270
270
|
isEnabled?: boolean | undefined;
|
|
271
271
|
isVisible?: boolean | undefined;
|
|
272
272
|
rule?: RowActionRule | undefined;
|
|
273
273
|
} | undefined;
|
|
274
|
-
|
|
274
|
+
restore?: boolean | {
|
|
275
275
|
isEnabled?: boolean | undefined;
|
|
276
276
|
isVisible?: boolean | undefined;
|
|
277
277
|
rule?: RowActionRule | undefined;
|
|
278
278
|
} | undefined;
|
|
279
|
-
|
|
279
|
+
details?: boolean | {
|
|
280
280
|
isEnabled?: boolean | undefined;
|
|
281
281
|
isVisible?: boolean | undefined;
|
|
282
282
|
rule?: RowActionRule | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Class } from "@antelopejs/interface-core/decorators";
|
|
1
|
+
import { type Class, type DecoratorTarget } from "@antelopejs/interface-core/decorators";
|
|
2
2
|
import { AccessMode } from "@antelopejs/interface-data-api/metadata";
|
|
3
3
|
import type { Component, ComponentBuilder } from "../../component";
|
|
4
4
|
import type { ColumnDisplay } from "./column-display";
|
|
@@ -70,9 +70,9 @@ export interface ColumnOptions {
|
|
|
70
70
|
*/
|
|
71
71
|
export type TableViewAccess = "read" | "write";
|
|
72
72
|
export declare class TableViewMeta {
|
|
73
|
-
readonly target:
|
|
73
|
+
readonly target: DecoratorTarget;
|
|
74
74
|
static key: symbol;
|
|
75
|
-
constructor(target:
|
|
75
|
+
constructor(target: DecoratorTarget);
|
|
76
76
|
options: TableViewOptions<any>;
|
|
77
77
|
readonly columns: Record<string, ColumnOptions>;
|
|
78
78
|
readonly groups: Record<string, ColumnGroupConfig>;
|
|
@@ -171,9 +171,9 @@ export declare class TableViewMeta {
|
|
|
171
171
|
setGroup(id: string, config: ColumnGroupConfig): void;
|
|
172
172
|
private readonly footerSummaries;
|
|
173
173
|
/** Records footer summaries; the ids the `summary` route knows them by. */
|
|
174
|
-
registerFooterSummaries
|
|
174
|
+
registerFooterSummaries(summaries: TableViewFooterSummary[]): string[];
|
|
175
175
|
/** A footer summary by the id `registerFooterSummaries` gave it. */
|
|
176
|
-
footerSummary(id: string): TableViewFooterSummary
|
|
176
|
+
footerSummary(id: string): TableViewFooterSummary | undefined;
|
|
177
177
|
setOptions(options: TableViewOptions<any>): void;
|
|
178
178
|
setArchiveField(field: string): void;
|
|
179
179
|
}
|