@sdcorejs/angular 19.1.6 → 19.2.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/README.md +10 -0
- package/assets/scss/core/menu.scss +18 -0
- package/assets/scss/core/utilities/_misc.scss +15 -0
- package/assets/scss/sd-core.scss +1 -0
- package/components/anchor/src/components/anchor/anchor.component.d.ts +3 -1
- package/components/api-contract-builder/index.d.ts +8 -0
- package/components/api-contract-builder/src/api-contract-builder.component.d.ts +123 -0
- package/components/api-contract-builder/src/api-contract.configuration.d.ts +41 -0
- package/components/api-contract-builder/src/api-contract.expression.d.ts +43 -0
- package/components/api-contract-builder/src/api-contract.model.d.ts +167 -0
- package/components/api-contract-builder/src/api-contract.samples.d.ts +25 -0
- package/components/api-contract-builder/src/api-contract.schema.d.ts +126 -0
- package/components/api-contract-builder/src/api-contract.serializer.d.ts +17 -0
- package/components/api-contract-builder/src/api-contract.validation.d.ts +12 -0
- package/components/api-contract-builder/src/components/api-contract-diagnostic-list.component.d.ts +18 -0
- package/components/api-contract-builder/src/components/api-contract-node-drawer.component.d.ts +130 -0
- package/components/api-contract-builder/src/components/api-contract-node-editor.component.d.ts +35 -0
- package/components/api-contract-builder/src/components/api-contract-node-summary.component.d.ts +41 -0
- package/components/api-contract-builder/src/components/api-contract-record-editor.component.d.ts +36 -0
- package/components/api-contract-builder/src/components/api-contract-source-editor.component.d.ts +86 -0
- package/components/api-contract-builder/src/components/api-contract-suggestion.model.d.ts +17 -0
- package/components/badge/src/badge.component.d.ts +2 -0
- package/components/ckeditor-styles/src/ckeditor-styles.component.d.ts +1 -1
- package/components/form-generic/src/components/form-builder/components/expression-builder/expression-builder.component.d.ts +2 -1
- package/components/form-generic/src/components/form-builder/form-builder.component.d.ts +3 -1
- package/components/form-generic/src/components/form-render/components/item/components/checkbox/checkbox.component.d.ts +34 -0
- package/components/form-generic/src/components/form-render/components/item/components/index.d.ts +1 -0
- package/components/form-generic/src/components/form-render/components/item/components/table/table.component.d.ts +6 -1
- package/components/form-generic/src/components/sd-feel-expression/sd-feel-expression.component.d.ts +1 -1
- package/components/form-generic/src/configurations/form.configuration.d.ts +1 -1
- package/components/form-generic/src/models/form-generic-component.model.d.ts +8 -8
- package/components/form-generic/src/models/form-generic-definition-selection.model.d.ts +5 -5
- package/components/form-generic/src/models/form-generic-expression.model.d.ts +12 -12
- package/components/form-generic/src/models/index.d.ts +1 -0
- package/components/form-generic/src/services/form-generic.service.d.ts +2 -2
- package/components/import-excel/src/import-excel.component.d.ts +1 -0
- package/components/index.d.ts +7 -1
- package/components/mini-editor/src/mini-editor.model.d.ts +1 -1
- package/components/modal/src/modal.component.d.ts +3 -2
- package/components/modal-resizable/src/modal-resizable.component.d.ts +92 -0
- package/components/modal-resizable/src/modal-resizable.registry.d.ts +22 -0
- package/components/org-chart/src/org-chart.component.d.ts +6 -0
- package/components/preview/src/preview-image/preview-image.component.d.ts +1 -0
- package/components/query-bar/src/components/actions-bar/actions-bar.component.d.ts +6 -2
- package/components/query-bar/src/components/build-chip/build-chip.component.d.ts +4 -1
- package/components/query-bar/src/components/chip-popover/chip-popover.component.d.ts +8 -0
- package/components/query-bar/src/components/field-picker/field-picker.component.d.ts +2 -0
- package/components/query-bar/src/components/inline-chip/inline-chip.component.d.ts +2 -0
- package/components/query-bar/src/components/inline-value-chip/inline-value-chip.component.d.ts +3 -3
- package/components/query-bar/src/components/saved-filters-menu/saved-filters-menu.component.d.ts +9 -4
- package/components/query-bar/src/query-bar.component.d.ts +32 -5
- package/components/query-bar/src/query-bar.model.d.ts +15 -12
- package/components/query-builder/src/query-builder.component.d.ts +76 -39
- package/components/query-builder/src/query-builder.model.d.ts +59 -52
- package/components/query-builder/src/query-builder.serializer.d.ts +15 -6
- package/components/section/src/section.component.d.ts +5 -0
- package/components/side-drawer/src/body-scroll-lock.service.d.ts +10 -0
- package/components/splitter/src/splitter-handle/splitter-handle.component.d.ts +1 -0
- package/components/tab-router/index.d.ts +2 -1
- package/components/tab-router/src/actions/tab-router.action.d.ts +2 -2
- package/components/tab-router/src/components/tab-router-item/tab-router-item.component.d.ts +2 -2
- package/components/tab-router/src/components/tab-router-nav/tab-router-nav.component.d.ts +3 -3
- package/components/tab-router/src/components/tab-router-outlet/tab-router-outlet.component.d.ts +3 -3
- package/components/tab-router/src/decorators/tab.decorator.d.ts +13 -1
- package/components/tab-router/src/events/tab-router.event.d.ts +3 -3
- package/components/tab-router/src/models/tab-router.model.d.ts +2 -2
- package/components/tab-router/src/pipes/tab-info.pipe.d.ts +2 -2
- package/components/tab-router/src/services/tab-router.service.d.ts +9 -9
- package/components/table/index.d.ts +1 -0
- package/components/table/src/components/config/config.component.d.ts +6 -1
- package/components/table/src/components/desktop-cell/view/view.component.d.ts +1 -0
- package/components/table/src/components/filter/external-filter/external-filter.component.d.ts +1 -1
- package/components/table/src/components/filter/mobile-filter/mobile-filter.component.d.ts +1 -1
- package/components/table/src/components/selector-action/action-filter.pipe.d.ts +8 -1
- package/components/table/src/components/selector-action/selector-action.component.d.ts +2 -0
- package/components/table/src/directives/index.d.ts +1 -0
- package/components/table/src/directives/sd-table-command-header-def.directive.d.ts +24 -0
- package/components/table/src/models/table-column.model.d.ts +30 -13
- package/components/table/src/models/table-item.model.d.ts +30 -1
- package/components/table/src/models/table-option-selector.model.d.ts +5 -4
- package/components/table/src/models/table-option.model.d.ts +12 -0
- package/components/table/src/pipes/sd-group.pipe.d.ts +6 -2
- package/components/table/src/services/table-filter/table-filter.model.d.ts +15 -15
- package/components/table/src/services/table-filter/table-filter.service.d.ts +2 -2
- package/components/table/src/services/table-format/table-format.service.d.ts +1 -1
- package/components/table/src/services/table-selection/selection-action.util.d.ts +24 -0
- package/components/table/src/services/table-selection/table-selection.util.d.ts +31 -0
- package/components/table/src/services/tree/tree.util.d.ts +3 -2
- package/components/table/src/table.component.d.ts +51 -5
- package/components/tree/src/tree-item-def.directive.d.ts +1 -1
- package/components/tree/src/tree.component.d.ts +16 -4
- package/components/tree/src/tree.model.d.ts +31 -25
- package/components/upload-file/src/configurations/upload-file.configuration.d.ts +2 -2
- package/components/upload-file/src/upload-file.component.d.ts +4 -1
- package/configurations/src/sd-core.configuration.d.ts +1 -2
- package/fesm2022/sdcorejs-angular-components-anchor.mjs +36 -12
- package/fesm2022/sdcorejs-angular-components-anchor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-api-contract-builder.mjs +3411 -0
- package/fesm2022/sdcorejs-angular-components-api-contract-builder.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-badge.mjs +27 -2
- package/fesm2022/sdcorejs-angular-components-badge.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-button.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-button.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-ckeditor-styles.mjs +1 -1
- package/fesm2022/sdcorejs-angular-components-ckeditor-styles.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-code-editor.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-data-state.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-data-state.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-editor.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-editor.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs +324 -192
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-history.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-history.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs +13 -5
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-inform.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-inform.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs +164 -8
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-modal.mjs +30 -18
- package/fesm2022/sdcorejs-angular-components-modal.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-operator.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-operator.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-org-chart.mjs +60 -13
- package/fesm2022/sdcorejs-angular-components-org-chart.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-preview.mjs +27 -17
- package/fesm2022/sdcorejs-angular-components-preview.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs +192 -30
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs +187 -127
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-section.mjs +33 -2
- package/fesm2022/sdcorejs-angular-components-section.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +83 -24
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-splitter.mjs +57 -21
- package/fesm2022/sdcorejs-angular-components-splitter.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-stepper.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs +68 -20
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tab.mjs +3 -2
- package/fesm2022/sdcorejs-angular-components-tab.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-table.mjs +555 -267
- package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-tree.mjs +80 -17
- package/fesm2022/sdcorejs-angular-components-tree.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs +48 -13
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components.mjs +7 -1
- package/fesm2022/sdcorejs-angular-components.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-configurations.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-directives.mjs +45 -8
- package/fesm2022/sdcorejs-angular-directives.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +40 -29
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs +5 -5
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs +67 -50
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip.mjs +57 -43
- package/fesm2022/sdcorejs-angular-forms-chip.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs +231 -60
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date.mjs +95 -23
- package/fesm2022/sdcorejs-angular-forms-date.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs +130 -26
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs +39 -15
- package/fesm2022/sdcorejs-angular-forms-entity-picker.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs +16 -5
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs +24 -9
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input.mjs +58 -10
- package/fesm2022/sdcorejs-angular-forms-input.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-models.mjs +227 -6
- package/fesm2022/sdcorejs-angular-forms-models.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-radio.mjs +4 -4
- package/fesm2022/sdcorejs-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-select.mjs +135 -37
- package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-switch.mjs +18 -3
- package/fesm2022/sdcorejs-angular-forms-switch.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs +51 -62
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-time-range.mjs +57 -12
- package/fesm2022/sdcorejs-angular-forms-time-range.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-time.mjs +16 -5
- package/fesm2022/sdcorejs-angular-forms-time.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-tree-select.mjs +100 -9
- package/fesm2022/sdcorejs-angular-forms-tree-select.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms.mjs +91 -46
- package/fesm2022/sdcorejs-angular-forms.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-handlers.mjs +18 -3
- package/fesm2022/sdcorejs-angular-handlers.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-i18n.mjs +895 -68
- package/fesm2022/sdcorejs-angular-i18n.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-interceptors.mjs +87 -29
- package/fesm2022/sdcorejs-angular-interceptors.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-auth.mjs +25 -15
- package/fesm2022/sdcorejs-angular-modules-auth.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-icon.mjs +2 -2
- package/fesm2022/sdcorejs-angular-modules-icon.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-keycloak.mjs +32 -3
- package/fesm2022/sdcorejs-angular-modules-keycloak.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-layout.mjs +342 -111
- package/fesm2022/sdcorejs-angular-modules-layout.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-modules-permission.mjs +177 -40
- package/fesm2022/sdcorejs-angular-modules-permission.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-pipes.mjs +62 -28
- package/fesm2022/sdcorejs-angular-pipes.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-api.mjs +123 -13
- package/fesm2022/sdcorejs-angular-services-api.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-cache.mjs +53 -3
- package/fesm2022/sdcorejs-angular-services-cache.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-confirm.mjs +25 -73
- package/fesm2022/sdcorejs-angular-services-confirm.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-excel.mjs +12 -10
- package/fesm2022/sdcorejs-angular-services-excel.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-loading.mjs +75 -84
- package/fesm2022/sdcorejs-angular-services-loading.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-notify.mjs +46 -5
- package/fesm2022/sdcorejs-angular-services-notify.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-storage.mjs +4 -0
- package/fesm2022/sdcorejs-angular-services-storage.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services.mjs +0 -1
- package/fesm2022/sdcorejs-angular-services.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-utilities-extensions.mjs +225 -80
- package/fesm2022/sdcorejs-angular-utilities-extensions.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-utilities-models.mjs +1 -63
- package/fesm2022/sdcorejs-angular-utilities-models.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular.mjs +17 -10
- package/fesm2022/sdcorejs-angular.mjs.map +1 -1
- package/forms/autocomplete/src/autocomplete.component.d.ts +5 -2
- package/forms/chip-calendar/src/chip-calendar.component.d.ts +10 -0
- package/forms/date/src/date.component.d.ts +13 -2
- package/forms/date-range/src/date-range.component.d.ts +13 -2
- package/forms/datetime/src/datetime.component.d.ts +13 -2
- package/forms/entity-picker/src/entity-picker.component.d.ts +9 -3
- package/forms/input/src/input.component.d.ts +3 -0
- package/forms/input-color/src/input-color.component.d.ts +4 -0
- package/forms/input-number/src/input-number.component.d.ts +3 -0
- package/forms/models/index.d.ts +3 -0
- package/forms/models/src/sd-form-control-connector.d.ts +12 -0
- package/forms/models/src/sd-model-facing-control.d.ts +43 -0
- package/forms/models/src/sd-search.model.d.ts +1 -1
- package/forms/models/src/sd-selection-data.model.d.ts +1 -1
- package/forms/models/src/sd-temporal-transform.d.ts +31 -0
- package/forms/models/src/sd-timer-scope.d.ts +29 -0
- package/forms/select/src/select.component.d.ts +27 -4
- package/forms/src/forms.module.d.ts +22 -13
- package/forms/switch/src/switch.component.d.ts +5 -0
- package/forms/textarea/src/textarea.component.d.ts +5 -3
- package/forms/time-range/src/time-range.component.d.ts +22 -1
- package/forms/tree-select/src/tree-select.component.d.ts +36 -5
- package/i18n/src/en.d.ts +170 -10
- package/i18n/src/i18n.messages.d.ts +1 -1
- package/i18n/src/i18n.pipe.d.ts +3 -3
- package/i18n/src/i18n.service.d.ts +2 -1
- package/i18n/src/i18n.types.d.ts +0 -3
- package/interceptors/no-internet/no-internet.interceptor.d.ts +11 -1
- package/modules/auth/services/auth.model.d.ts +1 -1
- package/modules/keycloak/keycloak.service.d.ts +1 -0
- package/modules/layout/components/shared/menu-tree/menu-tree.component.d.ts +2 -0
- package/modules/layout/components/sidebar-mobile-v1/components/sidebar/sidebar.component.d.ts +3 -3
- package/modules/layout/components/sidebar-mobile-v1/main.component.d.ts +3 -3
- package/modules/layout/components/sidebar-mobile-v2/main.component.d.ts +3 -3
- package/modules/layout/components/sidebar-mobile-v3/main.component.d.ts +3 -3
- package/modules/layout/components/sidebar-v1/components/sidebar/sidebar.component.d.ts +16 -3
- package/modules/layout/components/sidebar-v1/main.component.d.ts +3 -3
- package/modules/layout/components/sidebar-v2/main.component.d.ts +3 -3
- package/modules/layout/components/sidebar-v3/main.component.d.ts +3 -3
- package/modules/layout/modules/forbidden/pages/root/root.component.d.ts +5 -0
- package/modules/layout/modules/not-found/pages/root/root.component.d.ts +5 -0
- package/modules/layout/services/layout.service.d.ts +21 -0
- package/modules/layout/services/storage/storage.service.d.ts +52 -7
- package/modules/permission/src/configurations/permission.configuration.d.ts +11 -0
- package/modules/permission/src/directives/permission.directive.d.ts +2 -1
- package/modules/permission/src/services/permission.service.d.ts +52 -1
- package/package.json +40 -29
- package/pipes/src/safe-html.pipe.d.ts +26 -4
- package/pipes/src/time-different.pipe.d.ts +1 -0
- package/public-api.d.ts +11 -10
- package/services/api/src/api-host.d.ts +15 -0
- package/services/api/src/api.model.d.ts +14 -0
- package/services/api/src/api.module.d.ts +6 -0
- package/services/cache/src/cache.model.d.ts +10 -0
- package/services/index.d.ts +0 -1
- package/services/notify/index.d.ts +1 -1
- package/utilities/extensions/index.d.ts +1 -5
- package/utilities/extensions/src/url-safety.d.ts +72 -0
- package/utilities/extensions/src/utility.extension.d.ts +9 -5
- package/utilities/models/index.d.ts +0 -10
- package/components/base/index.d.ts +0 -1
- package/components/base/src/base-secure.component.d.ts +0 -8
- package/components/document-builder/index.d.ts +0 -4
- package/components/document-builder/src/components/header-footer-builder/header-footer-builder.component.d.ts +0 -15
- package/components/document-builder/src/components/header-footer-builder/plugins/page-number.plugin.d.ts +0 -4
- package/components/document-builder/src/components/index.d.ts +0 -1
- package/components/document-builder/src/document-builder.component.d.ts +0 -53
- package/components/document-builder/src/document-builder.config.d.ts +0 -21
- package/components/document-builder/src/document-builder.model.d.ts +0 -41
- package/components/document-builder/src/document-builder.utils.d.ts +0 -10
- package/components/document-builder/src/plugins/block-space/block-space.plugin.d.ts +0 -9
- package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.d.ts +0 -44
- package/components/document-builder/src/plugins/ck-comment/ck-comment.plugin.model.d.ts +0 -57
- package/components/document-builder/src/plugins/heading/heading.plugin.d.ts +0 -5
- package/components/document-builder/src/plugins/highlight-range/highlight-range.plugin.d.ts +0 -4
- package/components/document-builder/src/plugins/image-custom/image-custom.plugin.d.ts +0 -31
- package/components/document-builder/src/plugins/image-upload/image-upload.plugin.d.ts +0 -5
- package/components/document-builder/src/plugins/index.d.ts +0 -11
- package/components/document-builder/src/plugins/page-orientation/page-orientation.plugin.d.ts +0 -24
- package/components/document-builder/src/plugins/paste-handler/filters/bookmark.d.ts +0 -14
- package/components/document-builder/src/plugins/paste-handler/filters/br.d.ts +0 -15
- package/components/document-builder/src/plugins/paste-handler/filters/image.d.ts +0 -25
- package/components/document-builder/src/plugins/paste-handler/filters/list.d.ts +0 -29
- package/components/document-builder/src/plugins/paste-handler/filters/parse.d.ts +0 -35
- package/components/document-builder/src/plugins/paste-handler/filters/removeboldwrapper.d.ts +0 -15
- package/components/document-builder/src/plugins/paste-handler/filters/removegooglesheetstag.d.ts +0 -15
- package/components/document-builder/src/plugins/paste-handler/filters/removeinvalidtablewidth.d.ts +0 -15
- package/components/document-builder/src/plugins/paste-handler/filters/removemsattributes.d.ts +0 -15
- package/components/document-builder/src/plugins/paste-handler/filters/removestyleblock.d.ts +0 -15
- package/components/document-builder/src/plugins/paste-handler/filters/removexmlns.d.ts +0 -15
- package/components/document-builder/src/plugins/paste-handler/filters/replacemsfootnotes.d.ts +0 -54
- package/components/document-builder/src/plugins/paste-handler/filters/space.d.ts +0 -27
- package/components/document-builder/src/plugins/paste-handler/filters/table.d.ts +0 -16
- package/components/document-builder/src/plugins/paste-handler/filters/utils.d.ts +0 -25
- package/components/document-builder/src/plugins/paste-handler/index.d.ts +0 -35
- package/components/document-builder/src/plugins/paste-handler/normalizers/googledocsnormalizer.d.ts +0 -31
- package/components/document-builder/src/plugins/paste-handler/normalizers/googlesheetsnormalizer.d.ts +0 -31
- package/components/document-builder/src/plugins/paste-handler/normalizers/mswordnormalizer.d.ts +0 -29
- package/components/document-builder/src/plugins/paste-handler/types.d.ts +0 -30
- package/components/document-builder/src/plugins/table-custom/index.d.ts +0 -34
- package/components/document-builder/src/plugins/variable/variable.plugin.d.ts +0 -51
- package/components/table/src/pipes/selection-visible-select-all.pipe.d.ts +0 -9
- package/fesm2022/sdcorejs-angular-components-base.mjs +0 -23
- package/fesm2022/sdcorejs-angular-components-base.mjs.map +0 -1
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs +0 -5038
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs.map +0 -1
- package/fesm2022/sdcorejs-angular-models.mjs +0 -6
- package/fesm2022/sdcorejs-angular-models.mjs.map +0 -1
- package/fesm2022/sdcorejs-angular-services-docx.mjs +0 -291
- package/fesm2022/sdcorejs-angular-services-docx.mjs.map +0 -1
- package/fesm2022/sdcorejs-angular-services-license.mjs +0 -97
- package/fesm2022/sdcorejs-angular-services-license.mjs.map +0 -1
- package/models/index.d.ts +0 -1
- package/models/src/language.model.d.ts +0 -2
- package/services/docx/index.d.ts +0 -1
- package/services/docx/src/lib/docx.model.d.ts +0 -9
- package/services/docx/src/lib/docx.service.d.ts +0 -14
- package/services/docx/src/lib/pandoc-core.d.ts +0 -11
- package/services/docx/src/public-api.d.ts +0 -2
- package/services/license/index.d.ts +0 -1
- package/services/license/src/license.service.d.ts +0 -9
- package/utilities/extensions/src/array.extension.d.ts +0 -1
- package/utilities/extensions/src/color.extension.d.ts +0 -5
- package/utilities/extensions/src/date.extension.d.ts +0 -1
- package/utilities/extensions/src/number.extension.d.ts +0 -1
- package/utilities/extensions/src/string.extension.d.ts +0 -50
- package/utilities/models/src/color.model.d.ts +0 -4
- package/utilities/models/src/empty.model.d.ts +0 -4
- package/utilities/models/src/filter.model.d.ts +0 -12
- package/utilities/models/src/maybe-async.model.d.ts +0 -10
- package/utilities/models/src/nested-key-of.model.d.ts +0 -4
- package/utilities/models/src/operator.model.d.ts +0 -13
- package/utilities/models/src/order.model.d.ts +0 -4
- package/utilities/models/src/paging.model.d.ts +0 -8
- package/utilities/models/src/pattern.model.d.ts +0 -21
- package/utilities/models/src/size.model.d.ts +0 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Filter, Operator } from '@sdcorejs/utils/models';
|
|
2
|
-
import {
|
|
2
|
+
import { sdIsQbGroup, SdQbComparisonMode, SdQbDateMode, SdQbGroup, SdQbRule, SdQbToken, SdQbValueSource, sdQbFieldIcon, SdQueryBuilderField, SdQueryBuilderFieldOption, SdQueryBuilderOption } from './query-builder.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* Visual filter / rule builder. Compose nested AND / OR groups of
|
|
@@ -17,7 +17,7 @@ export declare class SdQueryBuilder {
|
|
|
17
17
|
/** `'edit'` (default) = interactive tree · `'view'` = read-only raw-query string. */
|
|
18
18
|
readonly mode: import("@angular/core").InputSignal<"edit" | "view">;
|
|
19
19
|
/** `value-only` = literal operands only · `value-or-field` = each rule may compare against another field. */
|
|
20
|
-
readonly comparisonMode: import("@angular/core").InputSignal<
|
|
20
|
+
readonly comparisonMode: import("@angular/core").InputSignal<SdQbComparisonMode>;
|
|
21
21
|
/** Disable all editing controls. */
|
|
22
22
|
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
23
23
|
/** Prefix for `data-autoid` on inner controls (E2E selectors). */
|
|
@@ -28,42 +28,64 @@ export declare class SdQueryBuilder {
|
|
|
28
28
|
readonly filters: import("@angular/core").ModelSignal<Filter[]>;
|
|
29
29
|
/** Root group's logical connector. `[(rootLogic)]`. */
|
|
30
30
|
readonly rootLogic: import("@angular/core").ModelSignal<"AND" | "OR">;
|
|
31
|
-
readonly tree: import("@angular/core").Signal<
|
|
31
|
+
readonly tree: import("@angular/core").Signal<SdQbGroup>;
|
|
32
32
|
/** `field.key` → field, for fast lookup from a rule. */
|
|
33
33
|
readonly resolvedFields: import("@angular/core").Signal<SdQueryBuilderField[]>;
|
|
34
34
|
readonly resolvedMode: import("@angular/core").Signal<"edit" | "view">;
|
|
35
|
-
readonly resolvedComparisonMode: import("@angular/core").Signal<
|
|
35
|
+
readonly resolvedComparisonMode: import("@angular/core").Signal<SdQbComparisonMode>;
|
|
36
36
|
readonly resolvedDisabled: import("@angular/core").Signal<boolean>;
|
|
37
37
|
readonly resolvedAutoId: import("@angular/core").Signal<string | undefined>;
|
|
38
38
|
readonly fieldByKey: import("@angular/core").Signal<Record<string, SdQueryBuilderField>>;
|
|
39
39
|
/** Stable option list for the date-mode select. */
|
|
40
|
-
readonly dateModes: import("@
|
|
40
|
+
readonly dateModes: import("@angular/core").Signal<{
|
|
41
|
+
display: string;
|
|
42
|
+
value: SdQbDateMode;
|
|
43
|
+
labelKey: string;
|
|
44
|
+
icon: string;
|
|
45
|
+
}[]>;
|
|
41
46
|
/** Stable option list for the literal-vs-field operand select. */
|
|
42
|
-
readonly valueSourceOptions: import("@
|
|
47
|
+
readonly valueSourceOptions: import("@angular/core").Signal<{
|
|
48
|
+
display: string;
|
|
49
|
+
value: SdQbValueSource;
|
|
50
|
+
labelKey: string;
|
|
51
|
+
icon: string;
|
|
52
|
+
}[]>;
|
|
43
53
|
/** Stable combined unit×direction option list for the relative select. */
|
|
44
|
-
readonly relativeUnitOptions: {
|
|
45
|
-
value: string;
|
|
54
|
+
readonly relativeUnitOptions: import("@angular/core").Signal<{
|
|
46
55
|
display: string;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
value: string;
|
|
57
|
+
labelKey: string;
|
|
58
|
+
}[]>;
|
|
59
|
+
readonly selectFieldLabel: import("@angular/core").Signal<string>;
|
|
60
|
+
readonly valueLabel: import("@angular/core").Signal<string>;
|
|
61
|
+
readonly fromLabel: import("@angular/core").Signal<string>;
|
|
62
|
+
readonly toLabel: import("@angular/core").Signal<string>;
|
|
63
|
+
readonly addLabel: import("@angular/core").Signal<string>;
|
|
64
|
+
readonly addNodeLabel: import("@angular/core").Signal<string>;
|
|
65
|
+
readonly conditionLabel: import("@angular/core").Signal<string>;
|
|
66
|
+
readonly groupLabel: import("@angular/core").Signal<string>;
|
|
67
|
+
readonly removeGroupLabel: import("@angular/core").Signal<string>;
|
|
68
|
+
readonly removeConditionLabel: import("@angular/core").Signal<string>;
|
|
69
|
+
readonly emptyLabel: import("@angular/core").Signal<string>;
|
|
70
|
+
/** View-mode token stream — recomputed from the emitted value (and from the active language). */
|
|
71
|
+
readonly tokens: import("@angular/core").Signal<SdQbToken[]>;
|
|
50
72
|
readonly isView: import("@angular/core").Signal<boolean>;
|
|
51
73
|
/** Expose the type-guard to the template. */
|
|
52
|
-
readonly isGroup: typeof
|
|
74
|
+
readonly isGroup: typeof sdIsQbGroup;
|
|
53
75
|
/** Resolve the leading icon for a field (own `icon` → per-type → `'tune'`) — used by the field picker. */
|
|
54
|
-
readonly fieldIcon: typeof
|
|
76
|
+
readonly fieldIcon: typeof sdQbFieldIcon;
|
|
55
77
|
constructor();
|
|
56
78
|
/** Switch a group's AND/OR connector and re-emit. No-op when disabled or unchanged. */
|
|
57
|
-
setGroupLogic(group:
|
|
79
|
+
setGroupLogic(group: SdQbGroup, logic: 'AND' | 'OR'): void;
|
|
58
80
|
/** Open this group's "+" menu (closing any other open one). UI-only — does not emit. */
|
|
59
|
-
toggleDropdown(group:
|
|
81
|
+
toggleDropdown(group: SdQbGroup, event: Event): void;
|
|
60
82
|
closeAllDropdowns(): void;
|
|
61
83
|
/** Append a blank rule to `group`. */
|
|
62
|
-
addRule(group:
|
|
84
|
+
addRule(group: SdQbGroup): void;
|
|
63
85
|
/** Append a nested sub-group (seeded with one blank rule) to `group`. */
|
|
64
|
-
addGroup(group:
|
|
86
|
+
addGroup(group: SdQbGroup): void;
|
|
65
87
|
/** Remove the child at `index` from `parent` (a rule or a whole sub-group). */
|
|
66
|
-
removeNode(parent:
|
|
88
|
+
removeNode(parent: SdQbGroup, index: number): void;
|
|
67
89
|
/**
|
|
68
90
|
* Point `rule` at a new field. Resets operator to the field's default and the value
|
|
69
91
|
* to that operator's empty shape — the old operator/value rarely fit the new type.
|
|
@@ -72,46 +94,61 @@ export declare class SdQueryBuilder {
|
|
|
72
94
|
* @param key - the chosen field key (from the field picker). Swap-only: a null / undefined
|
|
73
95
|
* key is a no-op — the field can be changed but never cleared (issue #2).
|
|
74
96
|
*/
|
|
75
|
-
setField(rule:
|
|
97
|
+
setField(rule: SdQbRule, key: any): void;
|
|
76
98
|
/** Change `rule`'s operator and reshape its value to fit the new operator (array / range / none). */
|
|
77
|
-
setOperator(rule:
|
|
99
|
+
setOperator(rule: SdQbRule, op: Operator | undefined): void;
|
|
78
100
|
/** Set a single-value rule's value (coercing numeric fields to `number`). */
|
|
79
|
-
setScalar(rule:
|
|
101
|
+
setScalar(rule: SdQbRule, raw: any): void;
|
|
80
102
|
/** Set the lower bound of a BETWEEN rule's `{ from, to }` value. */
|
|
81
|
-
setBetweenFrom(rule:
|
|
103
|
+
setBetweenFrom(rule: SdQbRule, raw: any): void;
|
|
82
104
|
/** Set the upper bound of a BETWEEN rule's `{ from, to }` value. */
|
|
83
|
-
setBetweenTo(rule:
|
|
84
|
-
setValueSource(rule:
|
|
85
|
-
setCompareField(rule:
|
|
105
|
+
setBetweenTo(rule: SdQbRule, raw: any): void;
|
|
106
|
+
setValueSource(rule: SdQbRule, source: unknown): void;
|
|
107
|
+
setCompareField(rule: SdQbRule, key: any): void;
|
|
86
108
|
/** The field metadata for a rule's current `field` key (or undefined if unset). */
|
|
87
|
-
fieldOf(rule:
|
|
109
|
+
fieldOf(rule: SdQbRule): SdQueryBuilderField | undefined;
|
|
88
110
|
/** Operators allowed for a rule, derived from its field's type / override. */
|
|
89
|
-
allowedOperators(rule:
|
|
111
|
+
allowedOperators(rule: SdQbRule): Operator[];
|
|
90
112
|
/** Whether to render the operator picker — hidden when only one operator is allowed. */
|
|
91
|
-
showOperatorSelector(rule:
|
|
92
|
-
compareFields(rule:
|
|
93
|
-
canCompareWithField(rule:
|
|
94
|
-
showValueSourceSelector(rule:
|
|
95
|
-
valueSourceOf(rule:
|
|
96
|
-
isFieldSource(rule:
|
|
113
|
+
showOperatorSelector(rule: SdQbRule): boolean;
|
|
114
|
+
compareFields(rule: SdQbRule): SdQueryBuilderField[];
|
|
115
|
+
canCompareWithField(rule: SdQbRule): boolean;
|
|
116
|
+
showValueSourceSelector(rule: SdQbRule): boolean;
|
|
117
|
+
valueSourceOf(rule: SdQbRule): SdQbValueSource;
|
|
118
|
+
isFieldSource(rule: SdQbRule): boolean;
|
|
97
119
|
/** True for NULL / NOT_NULL — the template then renders no value editor. */
|
|
98
120
|
isNoData(op: Operator | undefined): boolean;
|
|
99
121
|
/** True for IN / NOT_IN — the template then renders a multi-select value editor. */
|
|
100
122
|
isMulti(op: Operator | undefined): boolean;
|
|
101
123
|
/** `[true/false]` option list for a boolean field's value select (stable reference). */
|
|
102
124
|
booleanItems(field: SdQueryBuilderField): SdQueryBuilderFieldOption[];
|
|
125
|
+
/**
|
|
126
|
+
* Option list cho field `type:'values'`.
|
|
127
|
+
*
|
|
128
|
+
* why: template cũ bind thẳng `[items]="fieldOf(rule)!.values || []"`. `values` là OPTIONAL trên
|
|
129
|
+
* `SdQueryBuilderField`, nên với field khai thiếu `values`, nhánh `|| []` cấp phát một mảng MỚI
|
|
130
|
+
* mỗi lần change detection chạy — đúng nguyên nhân OOM đã ghi ở `#booleanOptionsByKey`:
|
|
131
|
+
* `sd-select` có `toObservable(items)` → `markForCheck()` → CD mới → mảng mới → lặp vô hạn.
|
|
132
|
+
*
|
|
133
|
+
* why: KHÔNG memo hoá qua `computed<Map>` snapshot. `field.values` vốn ĐÃ là mảng của consumer
|
|
134
|
+
* nên tự nó ổn định; snapshot vào Map chỉ thêm một tầng cache không bao giờ invalidate khi
|
|
135
|
+
* consumer nạp option bất đồng bộ bằng cách gán tại chỗ (`fields[0].values = loaded`) — reference
|
|
136
|
+
* `fields` không đổi nên `computed` giữ nguyên list cũ vĩnh viễn. Chỉ nhánh RỖNG cần hằng số
|
|
137
|
+
* dùng chung để tránh literal mới mỗi CD.
|
|
138
|
+
*/
|
|
139
|
+
valueItems(field: SdQueryBuilderField): SdQueryBuilderFieldOption[];
|
|
103
140
|
/** Current date-value mode of a rule, derived from its value (no separate state). */
|
|
104
|
-
dateMode(rule:
|
|
141
|
+
dateMode(rule: SdQbRule): SdQbDateMode;
|
|
105
142
|
/** Switch a date/datetime rule's value mode, reseeding the value for the new mode. */
|
|
106
|
-
setDateMode(rule:
|
|
143
|
+
setDateMode(rule: SdQbRule, mode: unknown): void;
|
|
107
144
|
/** Read the offset amount of a relative rule (default 1). */
|
|
108
|
-
relativeAmount(rule:
|
|
145
|
+
relativeAmount(rule: SdQbRule): number;
|
|
109
146
|
/** Set the offset amount (clamped to an integer >= 1). */
|
|
110
|
-
setRelativeAmount(rule:
|
|
147
|
+
setRelativeAmount(rule: SdQbRule, raw: any): void;
|
|
111
148
|
/** Read the `'unit:direction'` token of a relative rule (default `'day:previous'`). */
|
|
112
|
-
relativeUnitDirValue(rule:
|
|
149
|
+
relativeUnitDirValue(rule: SdQbRule): string;
|
|
113
150
|
/** Set the offset unit + direction from a `'unit:direction'` token. */
|
|
114
|
-
setRelativeUnitDir(rule:
|
|
151
|
+
setRelativeUnitDir(rule: SdQbRule, token: unknown): void;
|
|
115
152
|
/** Build a `data-autoid` for an inner control under this builder's `autoId` prefix. */
|
|
116
153
|
autoIdFor(suffix: string): string;
|
|
117
154
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdQueryBuilder, never>;
|
|
@@ -19,17 +19,17 @@ export interface SdQueryBuilderField {
|
|
|
19
19
|
label: string;
|
|
20
20
|
/** Field type — picks the default operator set + value editor control. */
|
|
21
21
|
type: SdQueryBuilderFieldType;
|
|
22
|
-
/** Material icon shown before the label in the field picker; falls back to `
|
|
22
|
+
/** Material icon shown before the label in the field picker; falls back to `SD_QB_TYPE_ICON[type]` then `'tune'`. */
|
|
23
23
|
icon?: string;
|
|
24
|
-
/** Override the allowed operator set (otherwise `
|
|
24
|
+
/** Override the allowed operator set (otherwise `SD_QB_OPERATORS_BY_TYPE[type]`). */
|
|
25
25
|
operators?: Operator[];
|
|
26
|
-
/** Override the starting operator (otherwise `
|
|
26
|
+
/** Override the starting operator (otherwise `SD_QB_DEFAULT_OPERATOR_BY_TYPE[type]`). */
|
|
27
27
|
defaultOperator?: Operator;
|
|
28
28
|
/** Options for `type: 'values'` — the select list + display-label lookup. */
|
|
29
29
|
values?: SdQueryBuilderFieldOption[];
|
|
30
|
-
/** Label for the `true` branch of a boolean field (
|
|
30
|
+
/** Label for the `true` branch of a boolean field (defaults to i18n `core.component.query-builder.boolean.true`). */
|
|
31
31
|
trueLabel?: string;
|
|
32
|
-
/** Label for the `false` branch of a boolean field (
|
|
32
|
+
/** Label for the `false` branch of a boolean field (defaults to i18n `core.component.query-builder.boolean.false`). */
|
|
33
33
|
falseLabel?: string;
|
|
34
34
|
/** Lower bound for number / date value editors. */
|
|
35
35
|
min?: number | string;
|
|
@@ -44,7 +44,7 @@ export interface SdQueryBuilderOption {
|
|
|
44
44
|
autoId?: string;
|
|
45
45
|
fields: SdQueryBuilderField[];
|
|
46
46
|
mode?: 'edit' | 'view';
|
|
47
|
-
comparisonMode?:
|
|
47
|
+
comparisonMode?: SdQbComparisonMode;
|
|
48
48
|
disabled?: boolean;
|
|
49
49
|
value?: Filter | null;
|
|
50
50
|
filters?: Filter[];
|
|
@@ -53,22 +53,22 @@ export interface SdQueryBuilderOption {
|
|
|
53
53
|
onFiltersChange?: (filters: Filter[]) => void;
|
|
54
54
|
onRootLogicChange?: (logic: 'AND' | 'OR') => void;
|
|
55
55
|
}
|
|
56
|
-
export type
|
|
56
|
+
export type SdQbNode = SdQbGroup | SdQbRule;
|
|
57
57
|
/** Component-level capability for right-hand operands. */
|
|
58
|
-
export type
|
|
58
|
+
export type SdQbComparisonMode = 'value-only' | 'value-or-field';
|
|
59
59
|
/** Per-rule right-hand operand source. */
|
|
60
|
-
export type
|
|
60
|
+
export type SdQbValueSource = 'literal' | 'field';
|
|
61
61
|
/** A logical group of nodes joined by AND / OR. Maps to `FilterAndOr`. */
|
|
62
|
-
export interface
|
|
62
|
+
export interface SdQbGroup {
|
|
63
63
|
id: string;
|
|
64
64
|
kind: 'group';
|
|
65
65
|
logic: 'AND' | 'OR';
|
|
66
|
-
children:
|
|
66
|
+
children: SdQbNode[];
|
|
67
67
|
/** UI-only: whether this group's "+" dropdown is open. */
|
|
68
68
|
open?: boolean;
|
|
69
69
|
}
|
|
70
70
|
/** A single `field operator value` condition. Maps to a leaf `Filter`. */
|
|
71
|
-
export interface
|
|
71
|
+
export interface SdQbRule {
|
|
72
72
|
id: string;
|
|
73
73
|
kind: 'rule';
|
|
74
74
|
field?: string;
|
|
@@ -76,91 +76,98 @@ export interface QbRule {
|
|
|
76
76
|
/** Single value, `{ from, to }` for BETWEEN, or an array for IN / NOT_IN. */
|
|
77
77
|
value?: any;
|
|
78
78
|
/** Internal UI state: literal input or a same-type field reference. */
|
|
79
|
-
valueSource?:
|
|
79
|
+
valueSource?: SdQbValueSource;
|
|
80
80
|
/** Right-hand field key when `valueSource` is `'field'`. */
|
|
81
81
|
compareField?: string;
|
|
82
82
|
}
|
|
83
|
-
/** Type guard — narrows a `
|
|
84
|
-
export declare function
|
|
85
|
-
export type
|
|
83
|
+
/** Type guard — narrows a `SdQbNode` to a `SdQbGroup`. */
|
|
84
|
+
export declare function sdIsQbGroup(node: SdQbNode): node is SdQbGroup;
|
|
85
|
+
export type SdQbTokenKind = 'field' | 'op' | 'value' | 'logic' | 'paren' | 'plain';
|
|
86
86
|
/** One piece of the rendered raw query string, tagged for highlight styling. */
|
|
87
|
-
export interface
|
|
87
|
+
export interface SdQbToken {
|
|
88
88
|
text: string;
|
|
89
|
-
kind:
|
|
89
|
+
kind: SdQbTokenKind;
|
|
90
90
|
}
|
|
91
91
|
/** Allowed operators per field type — used when `field.operators` is not set. */
|
|
92
|
-
export declare const
|
|
92
|
+
export declare const SD_QB_OPERATORS_BY_TYPE: Record<SdQueryBuilderFieldType, Operator[]>;
|
|
93
93
|
/** Default operator when a rule is first created for a field. */
|
|
94
|
-
export declare const
|
|
94
|
+
export declare const SD_QB_DEFAULT_OPERATOR_BY_TYPE: Record<SdQueryBuilderFieldType, Operator>;
|
|
95
95
|
/** Operators with no value payload — the value editor is hidden for these. */
|
|
96
|
-
export declare const
|
|
96
|
+
export declare const SD_QB_NO_DATA_OPERATORS: Operator[];
|
|
97
97
|
/** Operators whose value is an array — the value editor offers multi-select. */
|
|
98
|
-
export declare const
|
|
98
|
+
export declare const SD_QB_MULTI_OPERATORS: Operator[];
|
|
99
99
|
/** Operators allowed for `field` — explicit override wins, else the per-type set. */
|
|
100
|
-
export declare function
|
|
100
|
+
export declare function sdQbAllowedOperators(field: SdQueryBuilderField | undefined): Operator[];
|
|
101
101
|
/** Starting operator for a new rule on `field` — falls back to the per-type default. */
|
|
102
|
-
export declare function
|
|
102
|
+
export declare function sdQbDefaultOperator(field: SdQueryBuilderField | undefined): Operator | undefined;
|
|
103
103
|
/** True when `op` is NULL / NOT_NULL (no value editor). */
|
|
104
|
-
export declare function
|
|
104
|
+
export declare function sdQbIsNoDataOperator(op: Operator | undefined): boolean;
|
|
105
105
|
/** True when `op` is IN / NOT_IN (array value). */
|
|
106
|
-
export declare function
|
|
106
|
+
export declare function sdQbIsMultiOperator(op: Operator | undefined): boolean;
|
|
107
107
|
/** True when the operator accepts one right-hand operand, including a field reference. */
|
|
108
|
-
export declare function
|
|
108
|
+
export declare function sdQbSupportsFieldCompareOperator(op: Operator | undefined): boolean;
|
|
109
109
|
/**
|
|
110
110
|
* Icon fallback per field type when `SdQueryBuilderField.icon` is not set.
|
|
111
111
|
* Mirrors query-bar's `SD_QUERY_TYPE_ICON` so the two components read consistently,
|
|
112
112
|
* but kept local so query-builder has no dependency on the query-bar package.
|
|
113
113
|
*/
|
|
114
|
-
export declare const
|
|
114
|
+
export declare const SD_QB_TYPE_ICON: Record<SdQueryBuilderFieldType, string>;
|
|
115
115
|
/**
|
|
116
116
|
* Icon shown before a field in the field picker / selected trigger.
|
|
117
|
-
* Priority: `field.icon` → `
|
|
117
|
+
* Priority: `field.icon` → `SD_QB_TYPE_ICON[field.type]` → `'tune'` (default, like query-bar).
|
|
118
118
|
*/
|
|
119
|
-
export declare function
|
|
119
|
+
export declare function sdQbFieldIcon(field: SdQueryBuilderField | undefined): string;
|
|
120
120
|
/** Next stable node id with the given prefix. */
|
|
121
|
-
export declare function
|
|
121
|
+
export declare function sdQbId(prefix?: string): string;
|
|
122
122
|
/** Build a fresh rule node (optionally pre-filled). */
|
|
123
|
-
export declare function
|
|
123
|
+
export declare function sdQbNewRule(field?: string, operator?: Operator, value?: any, valueSource?: SdQbValueSource, compareField?: string): SdQbRule;
|
|
124
124
|
/** Build a fresh group node. */
|
|
125
|
-
export declare function
|
|
125
|
+
export declare function sdQbNewGroup(logic?: 'AND' | 'OR', children?: SdQbNode[]): SdQbGroup;
|
|
126
126
|
/** Offset unit for a relative date — re-exported from the utils `DateRelative` model. */
|
|
127
127
|
export type SdQbRelativeUnit = DateRelative['unit'];
|
|
128
128
|
/** Offset direction for a relative date — re-exported from the utils `DateRelative` model. */
|
|
129
129
|
export type SdQbRelativeDirection = DateRelative['direction'];
|
|
130
130
|
/** Sentinel held as a rule value (and emitted as `data`) for the "today" date mode. */
|
|
131
|
-
export declare const
|
|
131
|
+
export declare const SD_QB_TODAY = "TODAY";
|
|
132
132
|
/** The `'TODAY'` sentinel type (matches the utils `date-today` data literal). */
|
|
133
|
-
export type
|
|
133
|
+
export type SdQbToday = typeof SD_QB_TODAY;
|
|
134
134
|
/** Date value editor mode for a date/datetime rule (derived from the rule value). */
|
|
135
|
-
export type
|
|
135
|
+
export type SdQbDateMode = 'absolute' | 'now' | 'relative';
|
|
136
136
|
/** Type guard — narrows a rule value to a utils `DateRelative` (offset spec). */
|
|
137
|
-
export declare const
|
|
137
|
+
export declare const sdQbIsRelativeDate: (v: any) => v is DateRelative;
|
|
138
138
|
/** Type guard — narrows a rule value to the `'TODAY'` sentinel ("now"/today mode). */
|
|
139
|
-
export declare function
|
|
139
|
+
export declare function sdQbIsToday(v: any): v is SdQbToday;
|
|
140
140
|
/** Starting relative value when a rule first switches to "relative" mode. */
|
|
141
|
-
export declare function
|
|
141
|
+
export declare function sdQbDefaultRelative(): DateRelative;
|
|
142
142
|
/** One date-mode option — carries a Material icon shown in the dropdown + selected trigger. */
|
|
143
|
-
export interface
|
|
144
|
-
value:
|
|
145
|
-
|
|
143
|
+
export interface SdQbDateModeOption {
|
|
144
|
+
value: SdQbDateMode;
|
|
145
|
+
/** i18n key of the label — resolved at read time, NOT at module-eval time. */
|
|
146
|
+
labelKey: string;
|
|
146
147
|
/** Material icon name (outlined set). */
|
|
147
148
|
icon: string;
|
|
148
149
|
}
|
|
149
150
|
/** Stable option list for the date-mode select (module ref — never reallocated). */
|
|
150
|
-
export declare const
|
|
151
|
+
export declare const SD_QB_DATE_MODES: SdQbDateModeOption[];
|
|
151
152
|
/** One value-source option for field-to-field comparison UI. */
|
|
152
|
-
export interface
|
|
153
|
-
value:
|
|
154
|
-
|
|
153
|
+
export interface SdQbValueSourceOption {
|
|
154
|
+
value: SdQbValueSource;
|
|
155
|
+
/** i18n key of the label — resolved at read time, NOT at module-eval time. */
|
|
156
|
+
labelKey: string;
|
|
155
157
|
/** Material icon name (outlined set). */
|
|
156
158
|
icon: string;
|
|
157
159
|
}
|
|
158
160
|
/** Stable option list for choosing between a literal value and another field. */
|
|
159
|
-
export declare const
|
|
160
|
-
/**
|
|
161
|
-
export
|
|
161
|
+
export declare const SD_QB_VALUE_SOURCE_OPTIONS: SdQbValueSourceOption[];
|
|
162
|
+
/** One combined direction×unit option (token `'unit:direction'`). */
|
|
163
|
+
export interface SdQbRelativeUnitOption {
|
|
162
164
|
value: string;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
/** i18n key of the label — resolved at read time, NOT at module-eval time. */
|
|
166
|
+
labelKey: string;
|
|
167
|
+
}
|
|
168
|
+
/** Stable combined direction×unit option list (token `'unit:direction'`). */
|
|
169
|
+
export declare const SD_QB_RELATIVE_UNIT_OPTIONS: SdQbRelativeUnitOption[];
|
|
170
|
+
/** i18n key of the combined `unit`×`direction` phrase for a relative-date offset. */
|
|
171
|
+
export declare function qbRelativeLabelKey(unit: SdQbRelativeUnit, direction: SdQbRelativeDirection): string;
|
|
165
172
|
/** Shared empty option array — stable ref for fallbacks (avoids per-call allocation). */
|
|
166
|
-
export declare const
|
|
173
|
+
export declare const SD_QB_EMPTY_OPTIONS: SdQueryBuilderFieldOption[];
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { Filter } from '@sdcorejs/utils/models';
|
|
2
|
-
import {
|
|
2
|
+
import { SdQbGroup, SdQbToken, SdQueryBuilderField } from './query-builder.model';
|
|
3
|
+
/**
|
|
4
|
+
* Hàm dịch một key i18n, do component truyền xuống.
|
|
5
|
+
* why: `filterToTokens` là hàm thuần cấp module nên không inject `I18nService` được; nhận translator
|
|
6
|
+
* qua tham số vẫn giữ được tính thuần mà bỏ được chuỗi tiếng Việt hardcode trong chuỗi view.
|
|
7
|
+
*/
|
|
8
|
+
export type SdQbTranslate = (key: string, params?: Record<string, string | number>) => string;
|
|
3
9
|
/**
|
|
4
10
|
* Map the internal builder tree to the public `Filter` (the root is always a
|
|
5
11
|
* `FilterAndOr`). Rules missing field / operator / value — and empty nested
|
|
@@ -8,25 +14,28 @@ import { QbGroup, QbToken, SdQueryBuilderField } from './query-builder.model';
|
|
|
8
14
|
* @param group - the editable tree's root group.
|
|
9
15
|
* @returns the canonical nested `Filter`, or `null` when no complete rule survives.
|
|
10
16
|
*/
|
|
11
|
-
export declare function treeToFilter(group:
|
|
17
|
+
export declare function treeToFilter(group: SdQbGroup): Filter | null;
|
|
12
18
|
/**
|
|
13
19
|
* Inverse of {@link treeToFilter} — rebuild the editable tree from a `Filter` so a
|
|
14
20
|
* consumer can seed `[value]`. A non-group (bare) filter is wrapped in an AND root;
|
|
15
21
|
* `null` yields an empty AND root.
|
|
16
22
|
*
|
|
17
23
|
* @param filter - a `Filter` (group or leaf), or `null` / `undefined` for an empty tree.
|
|
18
|
-
* @returns a fresh root `
|
|
24
|
+
* @returns a fresh root `SdQbGroup` mirroring the filter's structure.
|
|
19
25
|
*/
|
|
20
|
-
export declare function filterToTree(filter: Filter | null | undefined):
|
|
26
|
+
export declare function filterToTree(filter: Filter | null | undefined): SdQbGroup;
|
|
21
27
|
/**
|
|
22
28
|
* Render a `Filter` to a SQL-ish token stream for view mode. Field tokens use the
|
|
23
29
|
* matching field's `label`; operators map to SQL syntax (`= != like between is null …`);
|
|
24
30
|
* `and` / `or` are lowercase; nested multi-child groups are wrapped in parentheses.
|
|
25
31
|
* Returns a token stream (not a string) so the template can wrap each piece in a
|
|
26
|
-
* highlight `<span>` keyed by `
|
|
32
|
+
* highlight `<span>` keyed by `SdQbToken.kind`.
|
|
27
33
|
*
|
|
28
34
|
* @param filter - the `Filter` to render, or `null` / `undefined`.
|
|
29
35
|
* @param fields - field metadata, used to resolve each field key to its display label + value formatting.
|
|
36
|
+
* @param translate - i18n lookup for language-dependent value tokens (today / relative offsets /
|
|
37
|
+
* boolean labels). Optional so the serializer stays callable outside an Angular injection context;
|
|
38
|
+
* omitting it renders the raw i18n keys.
|
|
30
39
|
* @returns the ordered tokens, or `[]` when `filter` is empty.
|
|
31
40
|
*/
|
|
32
|
-
export declare function filterToTokens(filter: Filter | null | undefined, fields: SdQueryBuilderField[]):
|
|
41
|
+
export declare function filterToTokens(filter: Filter | null | undefined, fields: SdQueryBuilderField[], translate?: SdQbTranslate): SdQbToken[];
|
|
@@ -9,8 +9,13 @@ export declare class SdSection {
|
|
|
9
9
|
collapsed: import("@angular/core").ModelSignal<boolean>;
|
|
10
10
|
collapsible: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
11
11
|
hideHeader: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
12
|
+
/** Id của vùng body, để header `aria-controls` trỏ tới khi section collapsible. */
|
|
13
|
+
readonly bodyId: string;
|
|
12
14
|
constructor();
|
|
13
15
|
toggleCollapse: () => void;
|
|
16
|
+
protected onHeaderClick: (event: MouseEvent) => void;
|
|
17
|
+
protected onCollapseButtonClick: (event: MouseEvent) => void;
|
|
18
|
+
onHeaderKeydown: (event: KeyboardEvent) => void;
|
|
14
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSection, never>;
|
|
15
20
|
static ɵcmp: i0.ɵɵComponentDeclaration<SdSection, "sd-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subTitle": { "alias": "subTitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "hideHeader": { "alias": "hideHeader"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["[sdHeaderLeft]", "[sdHeaderRight]", "*", "[sdFooterLeft]", "[sdFooterRight]"], true, never>;
|
|
16
21
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class SdBodyScrollLockService {
|
|
3
|
+
#private;
|
|
4
|
+
/** Số lượng khoá đang giữ trên document này — phục vụ chẩn đoán/test. */
|
|
5
|
+
get count(): number;
|
|
6
|
+
lock(): void;
|
|
7
|
+
release(): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdBodyScrollLockService, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SdBodyScrollLockService>;
|
|
10
|
+
}
|
|
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export declare class SdSplitterHandleComponent {
|
|
5
5
|
#private;
|
|
6
6
|
readonly elementRef: ElementRef<HTMLElement>;
|
|
7
|
+
constructor();
|
|
7
8
|
orientation: import("@angular/core").InputSignal<SplitterOrientation>;
|
|
8
9
|
disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
9
10
|
keyboardStep: import("@angular/core").InputSignalWithTransform<number, unknown>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './src/components/tab-router-outlet/tab-router-outlet.component';
|
|
2
2
|
export * from './src/services/tab-router.service';
|
|
3
3
|
export * from './src/models/tab-router.model';
|
|
4
|
-
export
|
|
4
|
+
export { SdTabComponent } from './src/decorators/tab.decorator';
|
|
5
|
+
export type { SdTabComponentArgs, SdTabComponentBuilder } from './src/decorators/tab.decorator';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { SdTabRouterTab, SdTabInfo } from '../../models';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class SdTabRouterItemComponent implements OnInit, OnDestroy {
|
|
5
5
|
#private;
|
|
6
6
|
private cdRef;
|
|
7
7
|
private tabRouterService;
|
|
8
8
|
private router;
|
|
9
|
-
tab:
|
|
9
|
+
tab: SdTabRouterTab;
|
|
10
10
|
tabInfo?: SdTabInfo;
|
|
11
11
|
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
12
12
|
constructor(...args: unknown[]);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
2
2
|
import { ChangeDetectorRef, ElementRef } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { SdTabRouterTab } from '../../models/tab-router.model';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class SdTabRouterNavComponent {
|
|
6
6
|
tabRouterNav: import("@angular/core").Signal<ElementRef<any> | undefined>;
|
|
7
|
-
tabs: import("@angular/core").InputSignal<
|
|
7
|
+
tabs: import("@angular/core").InputSignal<SdTabRouterTab[]>;
|
|
8
8
|
mode: 'default' | 'compact';
|
|
9
9
|
cdRef: ChangeDetectorRef;
|
|
10
10
|
elementRef: ElementRef<any>;
|
|
11
11
|
onResize(): void;
|
|
12
12
|
checkUI: () => void;
|
|
13
|
-
onDrop: (event: CdkDragDrop<
|
|
13
|
+
onDrop: (event: CdkDragDrop<SdTabRouterTab[]>) => void;
|
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdTabRouterNavComponent, never>;
|
|
15
15
|
static ɵcmp: i0.ɵɵComponentDeclaration<SdTabRouterNavComponent, "sd-tab-router-nav", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16
16
|
}
|
package/components/tab-router/src/components/tab-router-outlet/tab-router-outlet.component.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { SdTabRouterTab } from '../../models';
|
|
3
3
|
import { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class SdTabRouterOutletComponent implements OnDestroy {
|
|
6
6
|
#private;
|
|
7
7
|
disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
8
8
|
tabRouterNav: import("@angular/core").Signal<SdTabRouterNavComponent | undefined>;
|
|
9
|
-
tabs: import("@angular/core").WritableSignal<
|
|
9
|
+
tabs: import("@angular/core").WritableSignal<SdTabRouterTab[]>;
|
|
10
10
|
constructor();
|
|
11
11
|
ngOnDestroy(): void;
|
|
12
|
-
tabTrackBy: (index: number, tab:
|
|
12
|
+
tabTrackBy: (index: number, tab: SdTabRouterTab) => string;
|
|
13
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdTabRouterOutletComponent, never>;
|
|
14
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<SdTabRouterOutletComponent, "sd-tab-router-outlet", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15
15
|
}
|
|
@@ -13,4 +13,16 @@ export declare interface SdTabComponentBuilder {
|
|
|
13
13
|
tooltip?: string | ((args: SdTabComponentArgs) => string);
|
|
14
14
|
color?: Color | ((args: SdTabComponentArgs) => Color);
|
|
15
15
|
}
|
|
16
|
-
export declare function SdTabComponent<T>(builder: SdTabComponentBuilder): (
|
|
16
|
+
export declare function SdTabComponent<T>(builder: SdTabComponentBuilder): (_constructor: T) => void;
|
|
17
|
+
/**
|
|
18
|
+
* @internal Outlet gọi khi khởi tạo: replay mọi builder đã đăng ký rồi nhận tiếp các builder mới.
|
|
19
|
+
* Trả về hàm ngắt kết nối để outlet gọi trong teardown.
|
|
20
|
+
*/
|
|
21
|
+
export declare function ɵsdConnectTabComponentBuilders(register: (builder: SdTabComponentBuilder) => void): () => void;
|
|
22
|
+
/**
|
|
23
|
+
* @internal CHỈ dùng cho test — xoá collection tĩnh để các spec không rò rỉ state sang nhau.
|
|
24
|
+
*
|
|
25
|
+
* why: KHÔNG export từ `components/tab-router/index.ts`. Consumer gọi nhầm hàm này sẽ xoá sạch mọi
|
|
26
|
+
* builder mà app đã đăng ký. Spec import bằng đường dẫn tương đối.
|
|
27
|
+
*/
|
|
28
|
+
export declare function ɵsdResetTabComponentBuilders(): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SdTabRouterTab } from '../models/tab-router.model';
|
|
2
2
|
export declare class SdTabBase {
|
|
3
3
|
#private;
|
|
4
|
-
constructor(tab:
|
|
5
|
-
get tab():
|
|
4
|
+
constructor(tab: SdTabRouterTab | undefined);
|
|
5
|
+
get tab(): SdTabRouterTab | undefined;
|
|
6
6
|
}
|
|
7
7
|
export declare class SdTabActivated extends SdTabBase {
|
|
8
8
|
}
|
|
@@ -7,7 +7,7 @@ export interface SdTabInfo {
|
|
|
7
7
|
tooltip?: string;
|
|
8
8
|
color?: Color;
|
|
9
9
|
}
|
|
10
|
-
export interface
|
|
10
|
+
export interface SdTabRouterTab {
|
|
11
11
|
component: Type<any>;
|
|
12
12
|
injector?: any;
|
|
13
13
|
key: string;
|
|
@@ -19,4 +19,4 @@ export interface SdTab {
|
|
|
19
19
|
tabInfoChanges: Subject<SdTabInfo>;
|
|
20
20
|
beforeClose?: () => boolean | Promise<boolean>;
|
|
21
21
|
}
|
|
22
|
-
export declare const SD_TAB: InjectionToken<
|
|
22
|
+
export declare const SD_TAB: InjectionToken<SdTabRouterTab>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { PipeTransform } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { SdTabRouterTab, SdTabInfo } from '../models/tab-router.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class SdTabInfoPipe implements PipeTransform {
|
|
5
5
|
private tabRouterService;
|
|
6
6
|
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
7
7
|
constructor(...args: unknown[]);
|
|
8
|
-
transform(tabInfo: SdTabInfo | undefined | null, tab:
|
|
8
|
+
transform(tabInfo: SdTabInfo | undefined | null, tab: SdTabRouterTab): SdTabInfo;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdTabInfoPipe, never>;
|
|
10
10
|
static ɵpipe: i0.ɵɵPipeDeclaration<SdTabInfoPipe, "sdTabInfo", true>;
|
|
11
11
|
}
|