@antelopejs/interface-dms 0.9.1 → 0.10.1
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 +126 -0
- package/README.md +1 -1
- package/dist/attachments.js +3 -1
- package/dist/attachments.js.map +1 -1
- package/dist/auth/db/models/sessions.model.js +1 -5
- package/dist/auth/db/models/sessions.model.js.map +1 -1
- package/dist/auth/db/tables/users.table.js.map +1 -1
- package/dist/auth/index.js +4 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/internal/jwt-auth-decorator.js +7 -5
- package/dist/auth/internal/jwt-auth-decorator.js.map +1 -1
- package/dist/auth/internal/request-authenticators.js +4 -1
- package/dist/auth/internal/request-authenticators.js.map +1 -1
- package/dist/auth/internal/request-principal.js +1 -0
- package/dist/auth/internal/request-principal.js.map +1 -1
- package/dist/base/activity-feed.d.ts +26 -26
- package/dist/base/banner.d.ts +14 -14
- package/dist/base/banner.js +1 -0
- package/dist/base/banner.js.map +1 -1
- package/dist/base/block-registry/helpers.js +1 -0
- package/dist/base/block-registry/helpers.js.map +1 -1
- package/dist/base/block-registry/internal/describe.js +107 -85
- package/dist/base/block-registry/internal/describe.js.map +1 -1
- package/dist/base/block-registry/presentation.js +0 -5
- package/dist/base/block-registry/presentation.js.map +1 -1
- package/dist/base/block-registry/registry.js +4 -1
- package/dist/base/block-registry/registry.js.map +1 -1
- package/dist/base/block-types.js +0 -2
- package/dist/base/block-types.js.map +1 -1
- package/dist/base/card.d.ts +8 -8
- package/dist/base/chart-card.d.ts +2 -2
- package/dist/base/chart-card.js +2 -2
- package/dist/base/chart-card.js.map +1 -1
- package/dist/base/chart-schemas.d.ts +66 -66
- package/dist/base/chart-schemas.js +19 -21
- package/dist/base/chart-schemas.js.map +1 -1
- package/dist/base/chart.js +1 -0
- package/dist/base/chart.js.map +1 -1
- package/dist/base/code-block.js +1 -0
- package/dist/base/code-block.js.map +1 -1
- package/dist/base/confirm-dialog.d.ts +2 -6
- package/dist/base/confirm-dialog.js +36 -15
- package/dist/base/confirm-dialog.js.map +1 -1
- package/dist/base/data-sources.js +6 -2
- package/dist/base/data-sources.js.map +1 -1
- package/dist/base/data-types/compare-types.js +82 -68
- package/dist/base/data-types/compare-types.js.map +1 -1
- package/dist/base/data-types/core.d.ts +8 -101
- package/dist/base/data-types/core.js +40 -143
- package/dist/base/data-types/core.js.map +1 -1
- package/dist/base/data-types/default/address.d.ts +126 -0
- package/dist/base/data-types/default/address.js +57 -0
- package/dist/base/data-types/default/address.js.map +1 -0
- package/dist/base/data-types/default/choices.d.ts +54 -0
- package/dist/base/data-types/default/choices.js +135 -0
- package/dist/base/data-types/default/choices.js.map +1 -0
- package/dist/base/data-types/default/files.d.ts +86 -0
- package/dist/base/data-types/default/files.js +214 -0
- package/dist/base/data-types/default/files.js.map +1 -0
- package/dist/base/data-types/default/inputs.d.ts +11 -0
- package/dist/base/data-types/default/inputs.js +26 -0
- package/dist/base/data-types/default/inputs.js.map +1 -0
- package/dist/base/data-types/default/numbers.d.ts +62 -0
- package/dist/base/data-types/default/numbers.js +287 -0
- package/dist/base/data-types/default/numbers.js.map +1 -0
- package/dist/base/data-types/default/options.d.ts +133 -0
- package/dist/base/data-types/default/options.js +3 -0
- package/dist/base/data-types/default/options.js.map +1 -0
- package/dist/base/data-types/default/relations.d.ts +267 -0
- package/dist/base/data-types/default/relations.js +149 -0
- package/dist/base/data-types/default/relations.js.map +1 -0
- package/dist/base/data-types/default/strings.d.ts +35 -0
- package/dist/base/data-types/default/strings.js +154 -0
- package/dist/base/data-types/default/strings.js.map +1 -0
- package/dist/base/data-types/default-types.d.ts +73 -753
- package/dist/base/data-types/default-types.js +39 -991
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/data-types/field-types.js +2 -6
- package/dist/base/data-types/field-types.js.map +1 -1
- package/dist/base/data-types/index.js +1 -20
- package/dist/base/data-types/index.js.map +1 -1
- package/dist/base/data-types/internal/compare-types.js +0 -2
- package/dist/base/data-types/internal/compare-types.js.map +1 -1
- package/dist/base/data-types/internal/relation-add-form.d.ts +7 -0
- package/dist/base/data-types/internal/relation-add-form.js +21 -0
- package/dist/base/data-types/internal/relation-add-form.js.map +1 -0
- package/dist/base/data-types/internal/relation-endpoints.d.ts +8 -0
- package/dist/base/data-types/internal/relation-endpoints.js +36 -0
- package/dist/base/data-types/internal/relation-endpoints.js.map +1 -0
- package/dist/base/data-types/status-type.js +0 -6
- package/dist/base/data-types/status-type.js.map +1 -1
- package/dist/base/display.d.ts +6 -6
- package/dist/base/display.js +15 -10
- package/dist/base/display.js.map +1 -1
- package/dist/base/empty-state.d.ts +8 -8
- package/dist/base/export-jobs.js.map +1 -1
- package/dist/base/form-block-schema.d.ts +36 -36
- package/dist/base/form-block-schema.js +0 -5
- package/dist/base/form-block-schema.js.map +1 -1
- package/dist/base/form-schema.d.ts +5 -1
- package/dist/base/form-schema.js +44 -206
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/form-types.d.ts +4 -84
- package/dist/base/form-types.js.map +1 -1
- package/dist/base/form.js +0 -7
- package/dist/base/form.js.map +1 -1
- package/dist/base/guard.d.ts +14 -14
- package/dist/base/helpers/archive-mode-helpers.js +11 -11
- package/dist/base/helpers/archive-mode-helpers.js.map +1 -1
- package/dist/base/helpers/file-refs.js +20 -7
- package/dist/base/helpers/file-refs.js.map +1 -1
- package/dist/base/index.js +0 -5
- package/dist/base/index.js.map +1 -1
- package/dist/base/internal/button-availability.d.ts +3 -17
- package/dist/base/internal/button-availability.js +36 -31
- package/dist/base/internal/button-availability.js.map +1 -1
- package/dist/base/internal/chart-schemas.js +0 -2
- package/dist/base/internal/chart-schemas.js.map +1 -1
- package/dist/base/internal/composed-text.js +0 -2
- package/dist/base/internal/composed-text.js.map +1 -1
- package/dist/base/internal/confirm-dialog.d.ts +3 -13
- package/dist/base/internal/confirm-dialog.js +37 -21
- package/dist/base/internal/confirm-dialog.js.map +1 -1
- package/dist/base/internal/display.js +3 -1
- package/dist/base/internal/display.js.map +1 -1
- package/dist/base/internal/form-schema-components.d.ts +12 -0
- package/dist/base/internal/form-schema-components.js +61 -0
- package/dist/base/internal/form-schema-components.js.map +1 -0
- package/dist/base/internal/form-schema-validation.d.ts +16 -0
- package/dist/base/internal/form-schema-validation.js +68 -0
- package/dist/base/internal/form-schema-validation.js.map +1 -0
- package/dist/base/internal/form-schema.d.ts +2 -7
- package/dist/base/internal/form-schema.js +36 -28
- package/dist/base/internal/form-schema.js.map +1 -1
- package/dist/base/internal/layouts.d.ts +1 -59
- package/dist/base/internal/searchable.js +3 -1
- package/dist/base/internal/searchable.js.map +1 -1
- package/dist/base/key-value-list.d.ts +12 -12
- package/dist/base/kpi-card.d.ts +2 -2
- package/dist/base/kpi-card.js +2 -0
- package/dist/base/kpi-card.js.map +1 -1
- package/dist/base/layouts.d.ts +6 -80
- package/dist/base/layouts.js +38 -54
- package/dist/base/layouts.js.map +1 -1
- package/dist/base/live-toggle.d.ts +2 -2
- package/dist/base/meter.d.ts +25 -25
- package/dist/base/meter.js +0 -1
- package/dist/base/meter.js.map +1 -1
- package/dist/base/nav-card-grid.d.ts +13 -13
- package/dist/base/page-toolbar.d.ts +2 -2
- package/dist/base/page-toolbar.js +0 -6
- package/dist/base/page-toolbar.js.map +1 -1
- package/dist/base/period-selector.d.ts +2 -2
- package/dist/base/period-selector.js +0 -4
- package/dist/base/period-selector.js.map +1 -1
- package/dist/base/query-response.js +3 -5
- package/dist/base/query-response.js.map +1 -1
- package/dist/base/resource-form-schema.js +0 -4
- package/dist/base/resource-form-schema.js.map +1 -1
- package/dist/base/searchable.d.ts +5 -0
- package/dist/base/searchable.js +11 -2
- package/dist/base/searchable.js.map +1 -1
- package/dist/base/stat-group.d.ts +15 -15
- package/dist/base/tab.d.ts +8 -8
- package/dist/base/tab.js +1 -0
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/column-display.js +0 -1
- package/dist/base/table-view/column-display.js.map +1 -1
- package/dist/base/table-view/data-functions.d.ts +10 -10
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory.js +32 -204
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/auth.js +5 -19
- package/dist/base/table-view/internal/auth.js.map +1 -1
- package/dist/base/table-view/internal/column-conditions.js +0 -5
- package/dist/base/table-view/internal/column-conditions.js.map +1 -1
- package/dist/base/table-view/internal/column-display.js +5 -3
- package/dist/base/table-view/internal/column-display.js.map +1 -1
- package/dist/base/table-view/internal/factory-helpers.js +24 -158
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
- package/dist/base/table-view/internal/factory-lifecycle-created.d.ts +21 -0
- package/dist/base/table-view/internal/factory-lifecycle-created.js +96 -0
- package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -0
- package/dist/base/table-view/internal/factory-lifecycle-filter.d.ts +15 -0
- package/dist/base/table-view/internal/factory-lifecycle-filter.js +37 -0
- package/dist/base/table-view/internal/factory-lifecycle-filter.js.map +1 -0
- package/dist/base/table-view/internal/factory-lifecycle-options.d.ts +41 -0
- package/dist/base/table-view/internal/factory-lifecycle-options.js +99 -0
- package/dist/base/table-view/internal/factory-lifecycle-options.js.map +1 -0
- package/dist/base/table-view/internal/factory-private-actions.d.ts +32 -0
- package/dist/base/table-view/internal/factory-private-actions.js +77 -0
- package/dist/base/table-view/internal/factory-private-actions.js.map +1 -0
- package/dist/base/table-view/internal/factory-private-displays.d.ts +5 -0
- package/dist/base/table-view/internal/factory-private-displays.js +21 -0
- package/dist/base/table-view/internal/factory-private-displays.js.map +1 -0
- package/dist/base/table-view/internal/factory-private-urls.d.ts +15 -0
- package/dist/base/table-view/internal/factory-private-urls.js +43 -0
- package/dist/base/table-view/internal/factory-private-urls.js.map +1 -0
- package/dist/base/table-view/internal/files.js +3 -4
- package/dist/base/table-view/internal/files.js.map +1 -1
- package/dist/base/table-view/internal/footer.js +5 -3
- package/dist/base/table-view/internal/footer.js.map +1 -1
- package/dist/base/table-view/internal/guards.js +7 -10
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/meta-helpers.d.ts +27 -0
- package/dist/base/table-view/internal/meta-helpers.js +75 -0
- package/dist/base/table-view/internal/meta-helpers.js.map +1 -0
- package/dist/base/table-view/internal/meta.js +8 -2
- package/dist/base/table-view/internal/meta.js.map +1 -1
- package/dist/base/table-view/internal/nav-badges.js +5 -3
- package/dist/base/table-view/internal/nav-badges.js.map +1 -1
- package/dist/base/table-view/internal/option-contract.d.ts +403 -0
- package/dist/base/table-view/internal/option-contract.js +3 -0
- package/dist/base/table-view/internal/option-contract.js.map +1 -0
- package/dist/base/table-view/internal/option-displays.d.ts +125 -0
- package/dist/base/table-view/internal/option-displays.js +3 -0
- package/dist/base/table-view/internal/option-displays.js.map +1 -0
- package/dist/base/table-view/internal/option-empty-states.d.ts +43 -0
- package/dist/base/table-view/internal/option-empty-states.js +3 -0
- package/dist/base/table-view/internal/option-empty-states.js.map +1 -0
- package/dist/base/table-view/internal/option-expandable.d.ts +66 -0
- package/dist/base/table-view/internal/option-expandable.js +3 -0
- package/dist/base/table-view/internal/option-expandable.js.map +1 -0
- package/dist/base/table-view/internal/option-filtering.d.ts +85 -0
- package/dist/base/table-view/internal/option-filtering.js +4 -0
- package/dist/base/table-view/internal/option-filtering.js.map +1 -0
- package/dist/base/table-view/internal/option-footer.d.ts +64 -0
- package/dist/base/table-view/internal/option-footer.js +3 -0
- package/dist/base/table-view/internal/option-footer.js.map +1 -0
- package/dist/base/table-view/internal/option-forms.d.ts +62 -0
- package/dist/base/table-view/internal/option-forms.js +3 -0
- package/dist/base/table-view/internal/option-forms.js.map +1 -0
- package/dist/base/table-view/internal/option-row-actions.d.ts +76 -0
- package/dist/base/table-view/internal/option-row-actions.js +3 -0
- package/dist/base/table-view/internal/option-row-actions.js.map +1 -0
- package/dist/base/table-view/internal/option-views.d.ts +199 -0
- package/dist/base/table-view/internal/option-views.js +3 -0
- package/dist/base/table-view/internal/option-views.js.map +1 -0
- package/dist/base/table-view/internal/options.d.ts +2 -6
- package/dist/base/table-view/internal/options.js +35 -6
- package/dist/base/table-view/internal/options.js.map +1 -1
- package/dist/base/table-view/internal/realtime.js +15 -5
- package/dist/base/table-view/internal/realtime.js.map +1 -1
- package/dist/base/table-view/internal/request-filter.js +12 -12
- package/dist/base/table-view/internal/request-filter.js.map +1 -1
- package/dist/base/table-view/internal/resource-form.js +1 -10
- package/dist/base/table-view/internal/resource-form.js.map +1 -1
- package/dist/base/table-view/internal/row-actions-schema.js +0 -6
- package/dist/base/table-view/internal/row-actions-schema.js.map +1 -1
- package/dist/base/table-view/internal/row-rule-shape.d.ts +10 -0
- package/dist/base/table-view/internal/row-rule-shape.js +43 -0
- package/dist/base/table-view/internal/row-rule-shape.js.map +1 -0
- package/dist/base/table-view/internal/row-rules.js +1 -4
- package/dist/base/table-view/internal/row-rules.js.map +1 -1
- package/dist/base/table-view/internal/tabs.d.ts +1 -1
- package/dist/base/table-view/internal/tabs.js +6 -9
- package/dist/base/table-view/internal/tabs.js.map +1 -1
- package/dist/base/table-view/internal/validation.js +2 -16
- package/dist/base/table-view/internal/validation.js.map +1 -1
- package/dist/base/table-view/internal/writer.js +1 -0
- package/dist/base/table-view/internal/writer.js.map +1 -1
- package/dist/base/table-view/meta.js +11 -93
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/options.d.ts +61 -1099
- package/dist/base/table-view/options.js.map +1 -1
- package/dist/base/table-view/resource-form.js +0 -2
- package/dist/base/table-view/resource-form.js.map +1 -1
- package/dist/base/table-view/routes.d.ts +3 -1
- package/dist/base/table-view/routes.js +33 -28
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +93 -93
- package/dist/base/table-view/schema.js +4 -22
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/base/table-view/source.js +0 -5
- package/dist/base/table-view/source.js.map +1 -1
- package/dist/base/table-view/views.js +0 -3
- package/dist/base/table-view/views.js.map +1 -1
- package/dist/base/table-view/writer.js +0 -5
- package/dist/base/table-view/writer.js.map +1 -1
- package/dist/base/top-list-card.d.ts +13 -13
- package/dist/base/top-list-card.js +2 -0
- package/dist/base/top-list-card.js.map +1 -1
- package/dist/base/types/action-target.d.ts +1 -302
- package/dist/base/types/button.d.ts +2 -7
- package/dist/base/types/button.js +35 -8
- package/dist/base/types/button.js.map +1 -1
- package/dist/base/types/confirm-dialog.d.ts +1 -127
- package/dist/base/types/custom-button.d.ts +1 -87
- package/dist/base/types/error.js +2 -1
- package/dist/base/types/error.js.map +1 -1
- package/dist/base/types/export-status.d.ts +2 -8
- package/dist/base/types/export-status.js +35 -9
- package/dist/base/types/export-status.js.map +1 -1
- package/dist/base/types/form-values.d.ts +1 -4
- package/dist/base/types/internal/action-target.d.ts +2 -8
- package/dist/base/types/internal/action-target.js +36 -15
- package/dist/base/types/internal/action-target.js.map +1 -1
- package/dist/base/types/row-action-operators.d.ts +3 -29
- package/dist/base/types/row-action-operators.js +35 -18
- package/dist/base/types/row-action-operators.js.map +1 -1
- package/dist/base/types/row-action.d.ts +3 -36
- package/dist/base/types/size.d.ts +1 -3
- package/dist/base/types/size.js +0 -3
- package/dist/base/types/size.js.map +1 -1
- package/dist/base/types/tone.d.ts +3 -8
- package/dist/base/types/tone.js +35 -15
- package/dist/base/types/tone.js.map +1 -1
- package/dist/base/types/watch.d.ts +5 -19
- package/dist/base/types/watch.js +35 -3
- package/dist/base/types/watch.js.map +1 -1
- package/dist/component-options/action-target.d.ts +304 -0
- package/dist/component-options/action-target.js +3 -0
- package/dist/component-options/action-target.js.map +1 -0
- package/dist/component-options/button.d.ts +93 -0
- package/dist/component-options/button.js +12 -0
- package/dist/component-options/button.js.map +1 -0
- package/dist/component-options/confirm-dialog.d.ts +132 -0
- package/dist/component-options/confirm-dialog.js +18 -0
- package/dist/component-options/confirm-dialog.js.map +1 -0
- package/dist/component-options/data-type.d.ts +101 -0
- package/dist/component-options/data-type.js +146 -0
- package/dist/component-options/data-type.js.map +1 -0
- package/dist/component-options/form-field.d.ts +88 -0
- package/dist/component-options/form-field.js +3 -0
- package/dist/component-options/form-field.js.map +1 -0
- package/dist/component-options/internal/action-target.d.ts +8 -0
- package/dist/component-options/internal/action-target.js +18 -0
- package/dist/component-options/internal/action-target.js.map +1 -0
- package/dist/component-options/internal/button-availability.d.ts +17 -0
- package/dist/component-options/internal/button-availability.js +34 -0
- package/dist/component-options/internal/button-availability.js.map +1 -0
- package/dist/component-options/internal/confirm-dialog.d.ts +13 -0
- package/dist/component-options/internal/confirm-dialog.js +24 -0
- package/dist/component-options/internal/confirm-dialog.js.map +1 -0
- package/dist/component-options/internal/form-field.d.ts +7 -0
- package/dist/component-options/internal/form-field.js +31 -0
- package/dist/component-options/internal/form-field.js.map +1 -0
- package/dist/component-options/internal/page-layout.d.ts +71 -0
- package/dist/component-options/internal/page-layout.js +10 -0
- package/dist/component-options/internal/page-layout.js.map +1 -0
- package/dist/component-options/page-layout.d.ts +80 -0
- package/dist/component-options/page-layout.js +57 -0
- package/dist/component-options/page-layout.js.map +1 -0
- package/dist/component-options/row-action.d.ts +66 -0
- package/dist/component-options/row-action.js +22 -0
- package/dist/component-options/row-action.js.map +1 -0
- package/dist/component-slots.js.map +1 -1
- package/dist/component.d.ts +2 -2
- package/dist/component.js +38 -193
- package/dist/component.js.map +1 -1
- package/dist/data-controllers/members.js +2 -8
- package/dist/data-controllers/members.js.map +1 -1
- package/dist/data-controllers/roles.js +0 -5
- package/dist/data-controllers/roles.js.map +1 -1
- package/dist/db/internal/exportJobs.model.js +10 -6
- package/dist/db/internal/exportJobs.model.js.map +1 -1
- package/dist/db/internal/tenantLifecycle.model.js +0 -2
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
- package/dist/db/tables/exportJobs.table.d.ts +1 -1
- package/dist/db/tables/roles.table.js.map +1 -1
- package/dist/db/tables/user_invites.table.d.ts +1 -1
- package/dist/db/tables/user_invites.table.js.map +1 -1
- package/dist/export-status.d.ts +8 -0
- package/dist/export-status.js +13 -0
- package/dist/export-status.js.map +1 -0
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +2 -4
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +0 -9
- package/dist/index.js.map +1 -1
- package/dist/internal/component-builder.d.ts +17 -0
- package/dist/internal/component-builder.js +58 -0
- package/dist/internal/component-builder.js.map +1 -0
- package/dist/internal/component-permissions.d.ts +13 -0
- package/dist/internal/component-permissions.js +45 -0
- package/dist/internal/component-permissions.js.map +1 -0
- package/dist/internal/component-serialization.d.ts +10 -0
- package/dist/internal/component-serialization.js +42 -0
- package/dist/internal/component-serialization.js.map +1 -0
- package/dist/internal/component-slots.js +7 -4
- package/dist/internal/component-slots.js.map +1 -1
- package/dist/internal/component-watches.d.ts +17 -0
- package/dist/internal/component-watches.js +110 -0
- package/dist/internal/component-watches.js.map +1 -0
- package/dist/internal/invite-membership.js +0 -1
- package/dist/internal/invite-membership.js.map +1 -1
- package/dist/invite-extension-payloads.d.ts +2 -0
- package/dist/invite-extension-payloads.js +3 -0
- package/dist/invite-extension-payloads.js.map +1 -0
- package/dist/invite-extensions/internal/delivery.js +4 -1
- package/dist/invite-extensions/internal/delivery.js.map +1 -1
- package/dist/invite-extensions/internal/edit.js +5 -4
- package/dist/invite-extensions/internal/edit.js.map +1 -1
- package/dist/invite-extensions/internal/form-slot.js +5 -35
- package/dist/invite-extensions/internal/form-slot.js.map +1 -1
- package/dist/invite-extensions/internal/payload-slices.js +10 -3
- package/dist/invite-extensions/internal/payload-slices.js.map +1 -1
- package/dist/invite-extensions/internal/registry.js +3 -5
- package/dist/invite-extensions/internal/registry.js.map +1 -1
- package/dist/invite-extensions/registry.js +3 -8
- package/dist/invite-extensions/registry.js.map +1 -1
- package/dist/invite-extensions/types.d.ts +1 -2
- package/dist/invite-resolution.js +2 -1
- package/dist/invite-resolution.js.map +1 -1
- package/dist/layout-banners.js.map +1 -1
- package/dist/notifications/builder.js +25 -5
- package/dist/notifications/builder.js.map +1 -1
- package/dist/notifications/internal.js +0 -3
- package/dist/notifications/internal.js.map +1 -1
- package/dist/notifications/sendable.js.map +1 -1
- package/dist/page/categories.js +1 -4
- package/dist/page/categories.js.map +1 -1
- package/dist/page/controllers.js +9 -55
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/form-page-routes.js +0 -7
- package/dist/page/form-page-routes.js.map +1 -1
- package/dist/page/internal/categories.d.ts +1 -1
- package/dist/page/internal/categories.js +12 -36
- package/dist/page/internal/categories.js.map +1 -1
- package/dist/page/internal/category-permission.d.ts +10 -0
- package/dist/page/internal/category-permission.js +20 -0
- package/dist/page/internal/category-permission.js.map +1 -0
- package/dist/page/internal/component-target.js +2 -2
- package/dist/page/internal/component-target.js.map +1 -1
- package/dist/page/internal/component-tree.js +0 -2
- package/dist/page/internal/component-tree.js.map +1 -1
- package/dist/page/internal/controller-options.d.ts +6 -0
- package/dist/page/internal/controller-options.js +40 -0
- package/dist/page/internal/controller-options.js.map +1 -0
- package/dist/page/internal/extension-assembly.js +2 -7
- package/dist/page/internal/extension-assembly.js.map +1 -1
- package/dist/page/internal/layout-filter.js +7 -3
- package/dist/page/internal/layout-filter.js.map +1 -1
- package/dist/page/internal/metadata-components.d.ts +47 -0
- package/dist/page/internal/metadata-components.js +136 -0
- package/dist/page/internal/metadata-components.js.map +1 -0
- package/dist/page/internal/metadata-extension-contributions.d.ts +14 -0
- package/dist/page/internal/metadata-extension-contributions.js +56 -0
- package/dist/page/internal/metadata-extension-contributions.js.map +1 -0
- package/dist/page/internal/metadata-extensions.d.ts +8 -0
- package/dist/page/internal/metadata-extensions.js +21 -0
- package/dist/page/internal/metadata-extensions.js.map +1 -0
- package/dist/page/internal/metadata-helpers.js +0 -14
- package/dist/page/internal/metadata-helpers.js.map +1 -1
- package/dist/page/internal/metadata-info.d.ts +5 -0
- package/dist/page/internal/metadata-info.js +39 -0
- package/dist/page/internal/metadata-info.js.map +1 -0
- package/dist/page/internal/metadata-layout-response.d.ts +32 -0
- package/dist/page/internal/metadata-layout-response.js +76 -0
- package/dist/page/internal/metadata-layout-response.js.map +1 -0
- package/dist/page/internal/metadata-layout.d.ts +10 -0
- package/dist/page/internal/metadata-layout.js +44 -0
- package/dist/page/internal/metadata-layout.js.map +1 -0
- package/dist/page/internal/metadata-lifecycle.d.ts +52 -0
- package/dist/page/internal/metadata-lifecycle.js +241 -0
- package/dist/page/internal/metadata-lifecycle.js.map +1 -0
- package/dist/page/internal/metadata-owner.d.ts +53 -0
- package/dist/page/internal/metadata-owner.js +14 -0
- package/dist/page/internal/metadata-owner.js.map +1 -0
- package/dist/page/internal/metadata-publish.d.ts +20 -0
- package/dist/page/internal/metadata-publish.js +55 -0
- package/dist/page/internal/metadata-publish.js.map +1 -0
- package/dist/page/internal/metadata-registration.d.ts +8 -0
- package/dist/page/internal/metadata-registration.js +72 -0
- package/dist/page/internal/metadata-registration.js.map +1 -0
- package/dist/page/internal/metadata-upload-registration.d.ts +16 -0
- package/dist/page/internal/metadata-upload-registration.js +64 -0
- package/dist/page/internal/metadata-upload-registration.js.map +1 -0
- package/dist/page/internal/metadata-uploads.d.ts +18 -0
- package/dist/page/internal/metadata-uploads.js +46 -0
- package/dist/page/internal/metadata-uploads.js.map +1 -0
- package/dist/page/internal/nav-badges.d.ts +1 -1
- package/dist/page/internal/nav-badges.js +3 -1
- package/dist/page/internal/nav-badges.js.map +1 -1
- package/dist/page/internal/page-record.d.ts +2 -9
- package/dist/page/internal/page-record.js +8 -5
- package/dist/page/internal/page-record.js.map +1 -1
- package/dist/page/internal/page-registration.js +0 -4
- package/dist/page/internal/page-registration.js.map +1 -1
- package/dist/page/internal/registry.js +2 -1
- package/dist/page/internal/registry.js.map +1 -1
- package/dist/page/internal/table-view-ids.js +3 -2
- package/dist/page/internal/table-view-ids.js.map +1 -1
- package/dist/page/layout-filter.js +1 -0
- package/dist/page/layout-filter.js.map +1 -1
- package/dist/page/metadata.js +192 -558
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/roots.js +3 -5
- package/dist/page/roots.js.map +1 -1
- package/dist/page/types.d.ts +1 -1
- package/dist/page/types.js.map +1 -1
- package/dist/permissions.js +0 -18
- package/dist/permissions.js.map +1 -1
- package/dist/realtime.js +0 -3
- package/dist/realtime.js.map +1 -1
- package/dist/request-tenant.js +4 -1
- package/dist/request-tenant.js.map +1 -1
- package/dist/tenant-lifecycle.js +2 -2
- package/dist/tenant-lifecycle.js.map +1 -1
- package/dist/tones.d.ts +8 -0
- package/dist/tones.js +19 -0
- package/dist/tones.js.map +1 -0
- package/dist/uploads.js +15 -4
- package/dist/uploads.js.map +1 -1
- package/dist/utils/internal/row-instance.js +2 -3
- package/dist/utils/internal/row-instance.js.map +1 -1
- package/dist/utils/internal/type-check.d.ts +10 -1
- package/dist/utils/internal/type-check.js +12 -3
- package/dist/utils/internal/type-check.js.map +1 -1
- package/dist/utils/internal/value-parser.js +7 -2
- package/dist/utils/internal/value-parser.js.map +1 -1
- package/dist/watch-actions.d.ts +19 -0
- package/dist/watch-actions.js +7 -0
- package/dist/watch-actions.js.map +1 -0
- package/docs/3.base/2.types.md +1 -1
- package/docs/3.base/4.tables.md +1 -1
- package/docs/3.base/8.data-types.md +2 -0
- package/docs/4.notifications/3.sending.md +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RegisterDataCompareMode = exports.RegisterDataType = exports.DataType = void 0;
|
|
7
|
+
exports.CreateDataType = CreateDataType;
|
|
8
|
+
exports.getDataTypeId = getDataTypeId;
|
|
9
|
+
exports.serializeType = serializeType;
|
|
10
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
11
|
+
const decorators_1 = require("@antelopejs/interface-core/decorators");
|
|
12
|
+
const dataCompareModes = {};
|
|
13
|
+
const dataCompareModesMetadata = new Map();
|
|
14
|
+
const dataTypes = {};
|
|
15
|
+
const dataTypesReverse = new WeakMap();
|
|
16
|
+
class DataType {
|
|
17
|
+
compareModes;
|
|
18
|
+
defaultCompareMode;
|
|
19
|
+
options;
|
|
20
|
+
constructor(compareModes = [], defaultCompareMode,
|
|
21
|
+
// oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- Published data-type options are interpreted by application-defined subclasses.
|
|
22
|
+
options) {
|
|
23
|
+
this.compareModes = compareModes;
|
|
24
|
+
this.defaultCompareMode = defaultCompareMode;
|
|
25
|
+
this.options = options;
|
|
26
|
+
}
|
|
27
|
+
// oxlint-disable-next-line eslint/max-params -- Data-type implementations and callers share this positional filter contract.
|
|
28
|
+
filter(context, proxy, key, value, mode,
|
|
29
|
+
// oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- Published comparator rows belong to application schemas, not a fixed interface model.
|
|
30
|
+
row) {
|
|
31
|
+
const compareMode = dataCompareModes[mode];
|
|
32
|
+
if (!compareMode)
|
|
33
|
+
return false;
|
|
34
|
+
return compareMode.filter(context, proxy, key, value, row);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Returns filters components for this data type.
|
|
38
|
+
* This component is used in filters for filtering values of this data type.
|
|
39
|
+
* Must include a 'default' component, and can optionally include
|
|
40
|
+
* mode-specific components for different compare modes.
|
|
41
|
+
* Override this method in subclasses for custom filter components per mode.
|
|
42
|
+
*
|
|
43
|
+
* @returns A record of filter components with at least a 'default' key
|
|
44
|
+
*/
|
|
45
|
+
filterComponents() {
|
|
46
|
+
return {
|
|
47
|
+
default: this.defaultInputComponent(),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Returns the form input component for this data type.
|
|
52
|
+
* This component is used in forms for editing values of this data type.
|
|
53
|
+
*
|
|
54
|
+
* @returns The input component for this data type
|
|
55
|
+
*/
|
|
56
|
+
inputComponent() {
|
|
57
|
+
return this.defaultInputComponent();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The input component a value of this type is described with where
|
|
61
|
+
* nothing is entered through it: a table column's type, whose cells, cards
|
|
62
|
+
* and quick filters read its options, and a read-only form field. Defaults
|
|
63
|
+
* to {@link inputComponent}; a type whose input carries what only an
|
|
64
|
+
* editable control uses (a relation's inline "add" form) leaves it out, so
|
|
65
|
+
* a page does not ship it once per column.
|
|
66
|
+
*
|
|
67
|
+
* @returns The input component, without what only editing uses
|
|
68
|
+
*/
|
|
69
|
+
describedInputComponent() {
|
|
70
|
+
return this.inputComponent();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.DataType = DataType;
|
|
74
|
+
/**
|
|
75
|
+
* Register a new data type
|
|
76
|
+
* @param id - The id of the data type
|
|
77
|
+
* @returns The data type class decorator
|
|
78
|
+
*/
|
|
79
|
+
exports.RegisterDataType = (0, decorators_1.MakeClassDecorator)((target, id) => {
|
|
80
|
+
dataTypes[id] = target;
|
|
81
|
+
dataTypesReverse.set(target, id);
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* Register a new data compare mode
|
|
85
|
+
* @param id - The id of the data compare mode
|
|
86
|
+
* @param noInput - Whether this compare mode requires no input (default: false)
|
|
87
|
+
* @returns The data compare mode class decorator
|
|
88
|
+
*/
|
|
89
|
+
exports.RegisterDataCompareMode = (0, decorators_1.MakeClassDecorator)((target, id, noInput = false) => {
|
|
90
|
+
const instance = new target();
|
|
91
|
+
dataCompareModes[id] = instance;
|
|
92
|
+
dataCompareModesMetadata.set(target, {
|
|
93
|
+
id,
|
|
94
|
+
instance,
|
|
95
|
+
noInput,
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* Create a new data type instance
|
|
100
|
+
* @param id - The id of the data type
|
|
101
|
+
* @param options - The options for the data type
|
|
102
|
+
* @returns The data type instance
|
|
103
|
+
*/
|
|
104
|
+
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Published factory forwards options to the registered application class, which owns their interpretation.
|
|
105
|
+
function CreateDataType(id, options) {
|
|
106
|
+
const cls = dataTypes[id];
|
|
107
|
+
(0, node_assert_1.default)(cls, `Unknown type ${id}`);
|
|
108
|
+
return new cls(options);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get the ID of a DataType instance
|
|
112
|
+
*/
|
|
113
|
+
function getDataTypeId(instance) {
|
|
114
|
+
return dataTypesReverse.get(Object.getPrototypeOf(instance).constructor);
|
|
115
|
+
}
|
|
116
|
+
function serializeType(instance) {
|
|
117
|
+
if (instance) {
|
|
118
|
+
const id = getDataTypeId(instance);
|
|
119
|
+
if (id) {
|
|
120
|
+
const compareModes = instance.compareModes
|
|
121
|
+
.map((modeClass) => dataCompareModesMetadata.get(modeClass)?.id)
|
|
122
|
+
.filter((modeId) => Boolean(modeId));
|
|
123
|
+
const defaultCompareMode = instance.defaultCompareMode
|
|
124
|
+
? dataCompareModesMetadata.get(instance.defaultCompareMode)?.id
|
|
125
|
+
: undefined;
|
|
126
|
+
const inputComponents = instance.filterComponents();
|
|
127
|
+
const filteredInputComponents = {
|
|
128
|
+
...inputComponents,
|
|
129
|
+
};
|
|
130
|
+
instance.compareModes.forEach((modeClass) => {
|
|
131
|
+
const metadata = dataCompareModesMetadata.get(modeClass);
|
|
132
|
+
if (metadata?.noInput) {
|
|
133
|
+
filteredInputComponents[metadata.id] = "noInput";
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
return {
|
|
137
|
+
id,
|
|
138
|
+
compareModes,
|
|
139
|
+
defaultCompareMode,
|
|
140
|
+
filterComponents: filteredInputComponents,
|
|
141
|
+
inputComponent: instance.describedInputComponent(),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=data-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-type.js","sourceRoot":"","sources":["../../src/component-options/data-type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { ComponentInfoSerialized } from "../component";
|
|
2
|
+
import type { Tone } from "../tones";
|
|
3
|
+
import type { DataType } from "./data-type";
|
|
4
|
+
/**
|
|
5
|
+
* Valid default values for form fields and columns
|
|
6
|
+
*/
|
|
7
|
+
export type DefaultValue = string | number | boolean | Date | null | DefaultValue[];
|
|
8
|
+
/** A pill shown beside a read-only field's value. */
|
|
9
|
+
export interface FormFieldBadge {
|
|
10
|
+
/** i18n key or literal. */
|
|
11
|
+
label: string;
|
|
12
|
+
tone: Tone;
|
|
13
|
+
}
|
|
14
|
+
/** A link shown beside a read-only field's value: where it is changed. */
|
|
15
|
+
export interface FormFieldLink {
|
|
16
|
+
/** i18n key or literal. */
|
|
17
|
+
label: string;
|
|
18
|
+
/** Takes the page URL tokens (`{{params.X}}`, `{{query.X}}`). */
|
|
19
|
+
to: string;
|
|
20
|
+
}
|
|
21
|
+
/** A field shown, not edited, with what tells why or where to change it. */
|
|
22
|
+
export interface FormFieldReadonly {
|
|
23
|
+
badge?: FormFieldBadge;
|
|
24
|
+
link?: FormFieldLink;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Holds while another field of the same form holds one of the values `in`
|
|
28
|
+
* lists (a select's or status's value, a boolean; `null` for an empty
|
|
29
|
+
* field), compared as is: `{ field: "stage", in: ["lost"] }`.
|
|
30
|
+
*/
|
|
31
|
+
export interface FieldCondition {
|
|
32
|
+
field: string;
|
|
33
|
+
in: readonly unknown[];
|
|
34
|
+
}
|
|
35
|
+
export interface FormField {
|
|
36
|
+
id: string;
|
|
37
|
+
label?: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
/** A grey help line under the control (i18n key or literal). */
|
|
40
|
+
hint?: string;
|
|
41
|
+
type: DataType;
|
|
42
|
+
inputComponent?: ComponentInfoSerialized;
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The value is shown, not edited: `true`, or with a pill (`badge`) and a
|
|
46
|
+
* link to where it is changed (`link`).
|
|
47
|
+
*/
|
|
48
|
+
readonly?: boolean | FormFieldReadonly;
|
|
49
|
+
/**
|
|
50
|
+
* A form creating a record leaves out a read-only field (`disabled` or
|
|
51
|
+
* `readonly`) that holds nothing yet, a value the server sets once the
|
|
52
|
+
* record exists: `true` shows it empty all the same.
|
|
53
|
+
*/
|
|
54
|
+
showEmptyOnCreate?: boolean;
|
|
55
|
+
required?: boolean;
|
|
56
|
+
/** The value of a new record: the field starts with it. */
|
|
57
|
+
defaultValue?: DefaultValue;
|
|
58
|
+
/**
|
|
59
|
+
* `defaultValue` is the module's default for a setting, not only a new
|
|
60
|
+
* record's starting value: while the field holds something else, it shows
|
|
61
|
+
* "Module default: X" with "Use default", which puts it back. Off unless
|
|
62
|
+
* set, so a record form (a table view's) never presents a column's initial
|
|
63
|
+
* value as a default the user strayed from.
|
|
64
|
+
*/
|
|
65
|
+
offersDefault?: boolean;
|
|
66
|
+
localized?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The language a localized field falls back to (its `@Localized`
|
|
69
|
+
* `fallbackLocale`): a value in any language requires one in this one.
|
|
70
|
+
*/
|
|
71
|
+
fallbackLocale?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Shown only while the condition holds, from the moment the form opens:
|
|
74
|
+
* hidden, the field is neither required nor sent. A table view's data
|
|
75
|
+
* routes hold to it as well (see `ColumnOptions.visibleWhen`).
|
|
76
|
+
*/
|
|
77
|
+
visibleWhen?: FieldCondition;
|
|
78
|
+
/**
|
|
79
|
+
* Shown read-only while the condition holds, from the moment the form
|
|
80
|
+
* opens: its value is not sent. A table view's data routes hold to it as
|
|
81
|
+
* well (see `ColumnOptions.disabledWhen`).
|
|
82
|
+
*/
|
|
83
|
+
disabledWhen?: FieldCondition;
|
|
84
|
+
}
|
|
85
|
+
export interface FormFieldSerialized extends Omit<FormField, "type" | "inputComponent"> {
|
|
86
|
+
component: ComponentInfoSerialized;
|
|
87
|
+
type: string;
|
|
88
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field.js","sourceRoot":"","sources":["../../src/component-options/form-field.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ActionTarget, ActionTargetSerialized } from "../action-target";
|
|
2
|
+
/**
|
|
3
|
+
* An action target as the options carry it: a component target is serialized,
|
|
4
|
+
* every other kind is plain data already.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function serializeActionTarget(target: ActionTarget): ActionTargetSerialized;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeActionTarget = serializeActionTarget;
|
|
4
|
+
/**
|
|
5
|
+
* An action target as the options carry it: a component target is serialized,
|
|
6
|
+
* every other kind is plain data already.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
function serializeActionTarget(target) {
|
|
11
|
+
if (target.type === "drawer" ||
|
|
12
|
+
target.type === "modal" ||
|
|
13
|
+
target.type === "sidePanel") {
|
|
14
|
+
return { ...target, component: target.component.serializeSync() };
|
|
15
|
+
}
|
|
16
|
+
return target;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=action-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-target.js","sourceRoot":"","sources":["../../../src/component-options/internal/action-target.ts"],"names":[],"mappings":";;AAQA,sDAWC;AAjBD;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,MAAoB;IAEpB,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ;QACxB,MAAM,CAAC,IAAI,KAAK,OAAO;QACvB,MAAM,CAAC,IAAI,KAAK,WAAW,EAC3B,CAAC;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComponentFilterContext } from "../../component";
|
|
2
|
+
import type { CustomButtonAvailability, CustomButtonSerialized } from "../button";
|
|
3
|
+
/**
|
|
4
|
+
* What a button served to one request carries of its availability.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export type AvailabilityFields = Pick<CustomButtonSerialized, "id" | "label" | "disabled" | "disabledReason">;
|
|
9
|
+
/**
|
|
10
|
+
* A served button, disabled with its reason when its `availability` refuses
|
|
11
|
+
* the request, `undefined` when it hides the button. A resolver that throws
|
|
12
|
+
* leaves the button enabled: the operation behind it still refuses on its
|
|
13
|
+
* own, and failing the layout would take the page down.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyButtonAvailability<T extends AvailabilityFields>(availability: CustomButtonAvailability | undefined, serialized: T, context: ComponentFilterContext): Promise<T | undefined>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyButtonAvailability = applyButtonAvailability;
|
|
4
|
+
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
5
|
+
const isHidden = (answer) => answer.hidden === true;
|
|
6
|
+
/**
|
|
7
|
+
* A served button, disabled with its reason when its `availability` refuses
|
|
8
|
+
* the request, `undefined` when it hides the button. A resolver that throws
|
|
9
|
+
* leaves the button enabled: the operation behind it still refuses on its
|
|
10
|
+
* own, and failing the layout would take the page down.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
async function applyButtonAvailability(availability, serialized, context) {
|
|
15
|
+
if (!availability)
|
|
16
|
+
return serialized;
|
|
17
|
+
try {
|
|
18
|
+
const unavailability = await availability(context);
|
|
19
|
+
if (!unavailability)
|
|
20
|
+
return serialized;
|
|
21
|
+
if (isHidden(unavailability))
|
|
22
|
+
return undefined;
|
|
23
|
+
return {
|
|
24
|
+
...serialized,
|
|
25
|
+
disabled: true,
|
|
26
|
+
disabledReason: unavailability.reason,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
logging_1.Logging.Error(`[dms] availability of button "${serialized.id ?? serialized.label}" could not be resolved:`, error);
|
|
31
|
+
return serialized;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=button-availability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-availability.js","sourceRoot":"","sources":["../../../src/component-options/internal/button-availability.ts"],"names":[],"mappings":";;AA+BA,0DAsBC;AArDD,gEAA6D;AAmB7D,MAAM,QAAQ,GAAG,CACf,MAAgE,EAClC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;AAE1D;;;;;;;GAOG;AACI,KAAK,UAAU,uBAAuB,CAC3C,YAAkD,EAClD,UAAa,EACb,OAA+B;IAE/B,IAAI,CAAC,YAAY;QAAE,OAAO,UAAU,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc;YAAE,OAAO,UAAU,CAAC;QACvC,IAAI,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,OAAO;YACL,GAAG,UAAU;YACb,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE,cAAc,CAAC,MAAM;SACtC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAO,CAAC,KAAK,CACX,iCAAiC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,0BAA0B,EAC5F,KAAK,CACN,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ActionConfirm, ActionConfirmSerialized, ConfirmDialogFrom } from "../confirm-dialog";
|
|
2
|
+
/**
|
|
3
|
+
* Whether a confirmation is worded by the server (`{ from }`).
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare function isConfirmFrom(confirm: ActionConfirm | ActionConfirmSerialized): confirm is ConfirmDialogFrom;
|
|
8
|
+
/**
|
|
9
|
+
* An action's confirmation as its options carry it.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function serializeActionConfirm(confirm: ActionConfirm | undefined): ActionConfirmSerialized | undefined;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isConfirmFrom = isConfirmFrom;
|
|
4
|
+
exports.serializeActionConfirm = serializeActionConfirm;
|
|
5
|
+
const confirm_dialog_1 = require("../confirm-dialog");
|
|
6
|
+
/**
|
|
7
|
+
* Whether a confirmation is worded by the server (`{ from }`).
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
function isConfirmFrom(confirm) {
|
|
12
|
+
return "from" in confirm;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* An action's confirmation as its options carry it.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
function serializeActionConfirm(confirm) {
|
|
20
|
+
if (!confirm)
|
|
21
|
+
return undefined;
|
|
22
|
+
return isConfirmFrom(confirm) ? confirm : (0, confirm_dialog_1.serializeConfirmDialog)(confirm);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=confirm-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirm-dialog.js","sourceRoot":"","sources":["../../../src/component-options/internal/confirm-dialog.ts"],"names":[],"mappings":";;AAYA,sCAIC;AAOD,wDAKC;AAvBD,sDAA2D;AAE3D;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,OAAgD;IAEhD,OAAO,MAAM,IAAI,OAAO,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,OAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,uCAAsB,EAAC,OAAO,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeFormField = serializeFormField;
|
|
4
|
+
const data_type_1 = require("../data-type");
|
|
5
|
+
/**
|
|
6
|
+
* A form field as the client reads it: its data type reduced to an id.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
function serializeFormField(field) {
|
|
11
|
+
const typeId = (0, data_type_1.getDataTypeId)(field.type) || "unknown";
|
|
12
|
+
return {
|
|
13
|
+
id: field.id,
|
|
14
|
+
label: field.label,
|
|
15
|
+
description: field.description,
|
|
16
|
+
hint: field.hint,
|
|
17
|
+
component: field.inputComponent || field.type.inputComponent(),
|
|
18
|
+
disabled: field.disabled,
|
|
19
|
+
readonly: field.readonly,
|
|
20
|
+
showEmptyOnCreate: field.showEmptyOnCreate,
|
|
21
|
+
type: typeId,
|
|
22
|
+
required: field.required,
|
|
23
|
+
defaultValue: field.defaultValue,
|
|
24
|
+
offersDefault: field.offersDefault,
|
|
25
|
+
localized: field.localized,
|
|
26
|
+
visibleWhen: field.visibleWhen,
|
|
27
|
+
disabledWhen: field.disabledWhen,
|
|
28
|
+
fallbackLocale: field.fallbackLocale,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=form-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field.js","sourceRoot":"","sources":["../../../src/component-options/internal/form-field.ts"],"names":[],"mappings":";;AAQA,gDAqBC;AA7BD,4CAA6C;AAG7C;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAgB;IACjD,MAAM,MAAM,GAAG,IAAA,yBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IAEtD,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;QAC9D,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { ButtonPermission } from "../../component";
|
|
2
|
+
import type { ActionTargetSerialized } from "../action-target";
|
|
3
|
+
import type { CustomButtonAvailability, CustomButtonSerialized } from "../button";
|
|
4
|
+
import type { DefaultLayoutOptions } from "../page-layout";
|
|
5
|
+
/**
|
|
6
|
+
* A button of the page header as the layout serves it, right of the title.
|
|
7
|
+
* One the layout declares (`DefaultLayout({ headerActions })`) carries its
|
|
8
|
+
* `target`; one a component of the page places in the header (a table view's
|
|
9
|
+
* `placement: "header"` button or add) names that component, which runs it.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export interface PageHeaderButtonSerialized extends Omit<CustomButtonSerialized, "id" | "target"> {
|
|
14
|
+
/** Key of the button in the header. */
|
|
15
|
+
id: string;
|
|
16
|
+
target?: ActionTargetSerialized;
|
|
17
|
+
/** The component of the page the button belongs to, which runs it. */
|
|
18
|
+
componentId?: string;
|
|
19
|
+
/** Id of that component's button; absent for its built-in add action. */
|
|
20
|
+
buttonId?: string;
|
|
21
|
+
/** Place among the header's buttons (`PageHeaderButton.order`). */
|
|
22
|
+
order?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A header button as the layout holds it until a request is served: its
|
|
26
|
+
* permission and availability are resolved per request, then dropped.
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export interface PageHeaderButtonDeclared extends PageHeaderButtonSerialized {
|
|
30
|
+
/** Acts on the page's record (`PageHeaderButton.requiresRecord`). */
|
|
31
|
+
requiresRecord?: boolean;
|
|
32
|
+
permission?: ButtonPermission;
|
|
33
|
+
permissionId?: string;
|
|
34
|
+
availability?: CustomButtonAvailability;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The options a page layout serializes, its header buttons held as declared.
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export interface DefaultLayoutSerializedOptions extends Omit<DefaultLayoutOptions, "headerActions"> {
|
|
42
|
+
headerActions?: PageHeaderButtonDeclared[];
|
|
43
|
+
/**
|
|
44
|
+
* The page query the header buttons were served for, set only when one of
|
|
45
|
+
* them declares an `availability` or the layout reads a `record`: the
|
|
46
|
+
* header asks for its buttons again when the page URL's query no longer
|
|
47
|
+
* matches it.
|
|
48
|
+
*/
|
|
49
|
+
headerActionsQuery?: Readonly<Record<string, string>>;
|
|
50
|
+
/** The route parameters (`:id`) of the page URL, likewise. */
|
|
51
|
+
headerActionsParams?: Readonly<Record<string, string>>;
|
|
52
|
+
/**
|
|
53
|
+
* How the layout's `record` was read for the page URL it was served for,
|
|
54
|
+
* set only when the layout reads one: the page leaves for its list once
|
|
55
|
+
* a record it showed is `missing`.
|
|
56
|
+
*/
|
|
57
|
+
recordStatus?: PageRecordStatus;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* How the page's record was read for one request: `found`, `missing` when its
|
|
61
|
+
* loader answered none (not found, not the caller's), `error` when it threw.
|
|
62
|
+
* The frontend takes a record going from `found` to `missing` for one that
|
|
63
|
+
* was deleted.
|
|
64
|
+
*/
|
|
65
|
+
export type PageRecordStatus = "found" | "missing" | "error";
|
|
66
|
+
/**
|
|
67
|
+
* The frontend component `TableView` emits.
|
|
68
|
+
*
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export declare const TABLE_VIEW_COMPONENT_NAME = "dms-table-view";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TABLE_VIEW_COMPONENT_NAME = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The frontend component `TableView` emits.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
exports.TABLE_VIEW_COMPONENT_NAME = "dms-table-view";
|
|
10
|
+
//# sourceMappingURL=page-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-layout.js","sourceRoot":"","sources":["../../../src/component-options/internal/page-layout.ts"],"names":[],"mappings":";;;AA+EA;;;;GAIG;AACU,QAAA,yBAAyB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ComponentFilterContext, ComponentInfo } from "../component";
|
|
2
|
+
import type { MaybePromise } from "../types";
|
|
3
|
+
import type { CustomButton } from "./button";
|
|
4
|
+
/** A button of the page header: a `CustomButton` that may say where it goes. */
|
|
5
|
+
export interface PageHeaderButton extends CustomButton {
|
|
6
|
+
/**
|
|
7
|
+
* Place among the header's buttons, smallest first; defaults to `0`. The
|
|
8
|
+
* header sorts the buttons the layout serves and the actions a Vue
|
|
9
|
+
* component of the page adds (`usePageHeaderActions(render, { order })`)
|
|
10
|
+
* together; at an equal order the served buttons come first, in the order
|
|
11
|
+
* declared. A table view's buttons placed in the header (`placement:
|
|
12
|
+
* "header"`) take `0`.
|
|
13
|
+
*/
|
|
14
|
+
order?: number;
|
|
15
|
+
/**
|
|
16
|
+
* The button acts on the record the page shows (the layout's `record`): it
|
|
17
|
+
* is left out of a page whose record was not found. A target naming
|
|
18
|
+
* `{{record.X}}` implies it.
|
|
19
|
+
*/
|
|
20
|
+
requiresRecord?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Reads the record a page shows, each time its layout is served: the page
|
|
24
|
+
* URL names it (`context.params`, `context.query`), for the caller
|
|
25
|
+
* (`context.user`, `context.tenantId`). Answers `undefined` when there is
|
|
26
|
+
* none to show (not found, not the caller's).
|
|
27
|
+
*
|
|
28
|
+
* @example ({ params }) => GetModel(SiteModel).get(params?.id ?? "")
|
|
29
|
+
*/
|
|
30
|
+
export type PageRecordLoader = (context: ComponentFilterContext) => MaybePromise<Record<string, unknown> | undefined>;
|
|
31
|
+
export interface DefaultLayoutOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Content spans the whole panel. Defaults to `true`: dashboard pages are
|
|
34
|
+
* full-width unless they opt out. Set to `false` for pages that only hold a
|
|
35
|
+
* form, where a constrained column stays readable.
|
|
36
|
+
*/
|
|
37
|
+
fullWidth?: boolean;
|
|
38
|
+
hideHeader?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The page fills the height of the dashboard panel instead of growing with
|
|
41
|
+
* its content, for a page built around one tool that scrolls inside itself:
|
|
42
|
+
* a file explorer, a data grid, a canvas. The page header keeps its height
|
|
43
|
+
* and the last component of the page takes the rest: give its root
|
|
44
|
+
* `flex-1 min-h-0` and let an element inside it scroll. The page stops
|
|
45
|
+
* shrinking at a minimum height, below which the panel scrolls again.
|
|
46
|
+
* Defaults to `false`.
|
|
47
|
+
*/
|
|
48
|
+
fillHeight?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Buttons right of the page title, in order: the same buttons as a table's
|
|
51
|
+
* toolbar — a link (`page` or `external` target), a quick action
|
|
52
|
+
* (`quickAction`), a drawer, a modal, an API call or an export, with their
|
|
53
|
+
* confirmation and availability. A string `permission` names an action of
|
|
54
|
+
* the page, relative to its permission id; `permissionId` is an absolute
|
|
55
|
+
* one. A table view's own buttons join them with `placement: "header"`.
|
|
56
|
+
* An `availability` disables a button for one request, or hides it.
|
|
57
|
+
*/
|
|
58
|
+
headerActions?: PageHeaderButton[];
|
|
59
|
+
/**
|
|
60
|
+
* The record the page shows, read on the server with the layout: the
|
|
61
|
+
* header buttons acting on it (`requiresRecord`, or a `{{record.X}}` in
|
|
62
|
+
* their target) are left out without it, and every `availability` of the
|
|
63
|
+
* page reads it as `context.record`.
|
|
64
|
+
*/
|
|
65
|
+
record?: PageRecordLoader;
|
|
66
|
+
}
|
|
67
|
+
export declare function DefaultLayout(options?: DefaultLayoutOptions): ComponentInfo;
|
|
68
|
+
/**
|
|
69
|
+
* Standard dashboard frame for a page that holds nothing but a form: keeps the
|
|
70
|
+
* constrained, readable content column instead of the full-width default.
|
|
71
|
+
*/
|
|
72
|
+
export declare function FormPageLayout(options?: Omit<DefaultLayoutOptions, "fullWidth">): ComponentInfo;
|
|
73
|
+
/**
|
|
74
|
+
* Dashboard frame of the settings area: the settings navigation next to the
|
|
75
|
+
* page, in the one column width every settings page shares. Declared by
|
|
76
|
+
* `settingsCategory`, so its pages and sub-categories get it without naming
|
|
77
|
+
* it; a settings page declared with a layout of its own opts out.
|
|
78
|
+
*/
|
|
79
|
+
export declare function SettingsLayout(options?: Omit<DefaultLayoutOptions, "fullWidth">): ComponentInfo;
|
|
80
|
+
export declare function EmptyLayout(): ComponentInfo;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultLayout = DefaultLayout;
|
|
4
|
+
exports.FormPageLayout = FormPageLayout;
|
|
5
|
+
exports.SettingsLayout = SettingsLayout;
|
|
6
|
+
exports.EmptyLayout = EmptyLayout;
|
|
7
|
+
const confirm_dialog_1 = require("./internal/confirm-dialog");
|
|
8
|
+
const action_target_1 = require("./internal/action-target");
|
|
9
|
+
const HEADER_BUTTON_ID_PREFIX = "header-";
|
|
10
|
+
function declareHeaderButton(button, index) {
|
|
11
|
+
const { id, target, confirm, placement: _placement, ...rest } = button;
|
|
12
|
+
const declared = {
|
|
13
|
+
...rest,
|
|
14
|
+
id: id ?? `${HEADER_BUTTON_ID_PREFIX}${index}`,
|
|
15
|
+
target: (0, action_target_1.serializeActionTarget)(target),
|
|
16
|
+
};
|
|
17
|
+
if (confirm)
|
|
18
|
+
declared.confirm = (0, confirm_dialog_1.serializeActionConfirm)(confirm);
|
|
19
|
+
return declared;
|
|
20
|
+
}
|
|
21
|
+
function dashboardLayout(componentName, options) {
|
|
22
|
+
const { headerActions, ...rest } = options;
|
|
23
|
+
const layoutOptions = rest;
|
|
24
|
+
if (headerActions) {
|
|
25
|
+
layoutOptions.headerActions = headerActions.map(declareHeaderButton);
|
|
26
|
+
}
|
|
27
|
+
return { componentName, options: layoutOptions };
|
|
28
|
+
}
|
|
29
|
+
function DefaultLayout(options) {
|
|
30
|
+
return dashboardLayout("dms-default-layout", {
|
|
31
|
+
fullWidth: true,
|
|
32
|
+
...options,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Standard dashboard frame for a page that holds nothing but a form: keeps the
|
|
37
|
+
* constrained, readable content column instead of the full-width default.
|
|
38
|
+
*/
|
|
39
|
+
function FormPageLayout(options) {
|
|
40
|
+
return DefaultLayout({ ...options, fullWidth: false });
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Dashboard frame of the settings area: the settings navigation next to the
|
|
44
|
+
* page, in the one column width every settings page shares. Declared by
|
|
45
|
+
* `settingsCategory`, so its pages and sub-categories get it without naming
|
|
46
|
+
* it; a settings page declared with a layout of its own opts out.
|
|
47
|
+
*/
|
|
48
|
+
function SettingsLayout(options) {
|
|
49
|
+
return dashboardLayout("dms-settings-layout", { ...options });
|
|
50
|
+
}
|
|
51
|
+
function EmptyLayout() {
|
|
52
|
+
return {
|
|
53
|
+
componentName: "dms-empty-layout",
|
|
54
|
+
options: {},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=page-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-layout.js","sourceRoot":"","sources":["../../src/component-options/page-layout.ts"],"names":[],"mappings":";;AA2GA,sCAKC;AAMD,wCAIC;AAQD,wCAIC;AAED,kCAKC;AA3ID,8DAAmE;AACnE,4DAAiE;AA4EjE,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAE1C,SAAS,mBAAmB,CAC1B,MAAwB,EACxB,KAAa;IAEb,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACvE,MAAM,QAAQ,GAA6B;QACzC,GAAG,IAAI;QACP,EAAE,EAAE,EAAE,IAAI,GAAG,uBAAuB,GAAG,KAAK,EAAE;QAC9C,MAAM,EAAE,IAAA,qCAAqB,EAAC,MAAM,CAAC;KACtC,CAAC;IACF,IAAI,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,IAAA,uCAAsB,EAAC,OAAO,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,aAAqB,EACrB,OAA6B;IAE7B,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,aAAa,GAAmC,IAAI,CAAC;IAC3D,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACnD,CAAC;AAED,SAAgB,aAAa,CAAC,OAA8B;IAC1D,OAAO,eAAe,CAAC,oBAAoB,EAAE;QAC3C,SAAS,EAAE,IAAI;QACf,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,OAAiD;IAEjD,OAAO,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,OAAiD;IAEjD,OAAO,eAAe,CAAC,qBAAqB,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO;QACL,aAAa,EAAE,kBAAkB;QACjC,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC"}
|