@sdcorejs/angular 19.1.6 → 19.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/badge/src/badge.component.d.ts +1 -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 +6 -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 +3 -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-autoid-inspector.mjs +2 -2
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-badge.mjs +15 -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-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 +16 -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 +541 -254
- 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 +6 -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 +490 -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 +332 -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 +90 -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 +8 -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 -33
- 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
|
@@ -12,6 +12,9 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
export declare class SdSelect<T extends object | string | number = Record<string, unknown>> implements OnInit {
|
|
13
13
|
#private;
|
|
14
14
|
id: string;
|
|
15
|
+
/** why: id ổn định của <mat-error> để control trỏ `aria-describedby` sang — thông báo lỗi
|
|
16
|
+
* phải đọc được từ chính control, không chỉ hiện ra màn hình. */
|
|
17
|
+
readonly errorId: string;
|
|
15
18
|
matInputRef: Signal<MatInput | undefined>;
|
|
16
19
|
selectRef: Signal<MatSelect | undefined>;
|
|
17
20
|
sdLabelTemplate: Signal<TemplateRef<any> | undefined>;
|
|
@@ -49,8 +52,8 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
49
52
|
label: import("@angular/core").InputSignal<string | undefined>;
|
|
50
53
|
helperText: import("@angular/core").InputSignal<string | undefined>;
|
|
51
54
|
placeholder: import("@angular/core").InputSignal<string | undefined>;
|
|
52
|
-
valueField: import("@angular/core").InputSignal<T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string>;
|
|
53
|
-
displayField: import("@angular/core").InputSignal<T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string>;
|
|
55
|
+
valueField: import("@angular/core").InputSignal<"" | (T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string)>;
|
|
56
|
+
displayField: import("@angular/core").InputSignal<"" | (T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string)>;
|
|
54
57
|
disabledField: import("@angular/core").InputSignal<"" | (T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string)>;
|
|
55
58
|
cacheChecksum: import("@angular/core").InputSignal<any>;
|
|
56
59
|
limit: import("@angular/core").InputSignal<number>;
|
|
@@ -62,6 +65,11 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
62
65
|
/** Display mode: `false` edit · `true` static view · `'inline'` view + click-to-edit (bare editor). */
|
|
63
66
|
viewed: import("@angular/core").InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
64
67
|
multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
68
|
+
/**
|
|
69
|
+
* Hiện option "Tất cả" đầu panel (chỉ multiple + items là mảng tĩnh/Signal — ẩn với
|
|
70
|
+
* SdSearch lazy vì dataset không xác định). Opt-in, default `false`.
|
|
71
|
+
*/
|
|
72
|
+
showSelectAll: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
65
73
|
/**
|
|
66
74
|
* Whether the `viewed='inline'` text face shows a hover clear-× to empty the value.
|
|
67
75
|
* Default `true`. Set `false` where the HOST owns removal (e.g. `<sd-query-bar>` chips,
|
|
@@ -86,7 +94,7 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
86
94
|
items: import("@angular/core").InputSignal<SdSearch | T[] | Signal<T[]> | null | undefined>;
|
|
87
95
|
valueModel: import("@angular/core").ModelSignal<string | number | boolean | (string | number)[] | null | undefined>;
|
|
88
96
|
sdChange: import("@angular/core").OutputEmitterRef<any>;
|
|
89
|
-
sdSelection: import("@angular/core").OutputEmitterRef<SdSelectionData<
|
|
97
|
+
sdSelection: import("@angular/core").OutputEmitterRef<SdSelectionData<unknown>>;
|
|
90
98
|
formControl: SdFormControl;
|
|
91
99
|
inputControl: FormControl<string | null>;
|
|
92
100
|
loading: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -107,6 +115,15 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
107
115
|
normalizedValue: Signal<string | number | boolean | (string | number | boolean)[] | null | undefined>;
|
|
108
116
|
filtered: Signal<boolean>;
|
|
109
117
|
delayTime: Signal<0 | 500>;
|
|
118
|
+
/**
|
|
119
|
+
* Scope của "Tất cả": item enabled khớp search text hiện tại, tính trên MẢNG NGUỒN
|
|
120
|
+
* `actualItems()`.
|
|
121
|
+
*/
|
|
122
|
+
readonly selectAllScope: Signal<T[]>;
|
|
123
|
+
/** Row "Tất cả" chỉ render khi opt-in + multiple + items tĩnh + scope có item để thao tác. */
|
|
124
|
+
readonly selectAllVisible: Signal<boolean>;
|
|
125
|
+
/** Trạng thái checkbox "Tất cả", tính trên items ENABLED trong scope (item disabled bỏ qua). */
|
|
126
|
+
readonly selectAllState: Signal<"checked" | "indeterminate" | "unchecked">;
|
|
110
127
|
itemValue: (item: T) => unknown;
|
|
111
128
|
itemDisplay: (item: T) => string;
|
|
112
129
|
itemDisabled: (item: T) => boolean;
|
|
@@ -117,6 +134,12 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
117
134
|
constructor();
|
|
118
135
|
ngOnInit(): void;
|
|
119
136
|
onSelectionChange: (change: MatSelectChange) => void;
|
|
137
|
+
/**
|
|
138
|
+
* Toggle "Tất cả" theo scope hiện tại (items enabled khớp search):
|
|
139
|
+
* - Đang `checked` → BỎ chọn các value trong scope (giữ value ngoài scope, kể cả item disabled đã chọn).
|
|
140
|
+
* - Ngược lại → CHỌN THÊM toàn bộ scope, union với selection hiện có (additive khi đang search).
|
|
141
|
+
*/
|
|
142
|
+
toggleSelectAll: () => void;
|
|
120
143
|
reValidate: () => void;
|
|
121
144
|
clear: ($event?: any) => void;
|
|
122
145
|
onClick: () => void;
|
|
@@ -127,5 +150,5 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
127
150
|
open: () => void;
|
|
128
151
|
onOpenedChange: (isOpened: boolean) => void;
|
|
129
152
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSelect<any>, never>;
|
|
130
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdSelect<any>, "sd-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required":
|
|
153
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdSelect<any>, "sd-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "minWidthPanel": { "alias": "minWidthPanel"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdLabelTemplate", "sdValueTemplate", "sdSelectedTemplate", "itemDef", "sdViewDef", "footerActions"], ["[sdLabel]"], true, never>;
|
|
131
154
|
}
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "@sdcorejs/angular/forms/
|
|
3
|
-
import * as i2 from "@sdcorejs/angular/forms/input
|
|
4
|
-
import * as i3 from "@sdcorejs/angular/forms/
|
|
5
|
-
import * as i4 from "@sdcorejs/angular/forms/
|
|
6
|
-
import * as i5 from "@sdcorejs/angular/forms/
|
|
7
|
-
import * as i6 from "@sdcorejs/angular/forms/
|
|
8
|
-
import * as i7 from "@sdcorejs/angular/forms/
|
|
9
|
-
import * as i8 from "@sdcorejs/angular/forms/
|
|
10
|
-
import * as i9 from "@sdcorejs/angular/forms/
|
|
11
|
-
import * as i10 from "@sdcorejs/angular/forms/
|
|
12
|
-
import * as i11 from "@sdcorejs/angular/forms/
|
|
13
|
-
import * as i12 from "@sdcorejs/angular/forms/
|
|
2
|
+
import * as i1 from "@sdcorejs/angular/forms/label";
|
|
3
|
+
import * as i2 from "@sdcorejs/angular/forms/input";
|
|
4
|
+
import * as i3 from "@sdcorejs/angular/forms/input-color";
|
|
5
|
+
import * as i4 from "@sdcorejs/angular/forms/inline-text";
|
|
6
|
+
import * as i5 from "@sdcorejs/angular/forms/input-number";
|
|
7
|
+
import * as i6 from "@sdcorejs/angular/forms/date";
|
|
8
|
+
import * as i7 from "@sdcorejs/angular/forms/datetime";
|
|
9
|
+
import * as i8 from "@sdcorejs/angular/forms/date-range";
|
|
10
|
+
import * as i9 from "@sdcorejs/angular/forms/time";
|
|
11
|
+
import * as i10 from "@sdcorejs/angular/forms/time-range";
|
|
12
|
+
import * as i11 from "@sdcorejs/angular/forms/entity-picker";
|
|
13
|
+
import * as i12 from "@sdcorejs/angular/forms/tree-select";
|
|
14
|
+
import * as i13 from "@sdcorejs/angular/forms/select";
|
|
15
|
+
import * as i14 from "@sdcorejs/angular/forms/autocomplete";
|
|
16
|
+
import * as i15 from "@sdcorejs/angular/forms/switch";
|
|
17
|
+
import * as i16 from "@sdcorejs/angular/forms/radio";
|
|
18
|
+
import * as i17 from "@sdcorejs/angular/forms/textarea";
|
|
19
|
+
import * as i18 from "@sdcorejs/angular/forms/chip";
|
|
20
|
+
import * as i19 from "@sdcorejs/angular/forms/chip-calendar";
|
|
21
|
+
import * as i20 from "@sdcorejs/angular/forms/checkbox";
|
|
22
|
+
import * as i21 from "@sdcorejs/angular/forms/directives";
|
|
14
23
|
export declare class SdFormsModule {
|
|
15
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdFormsModule, never>;
|
|
16
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SdFormsModule, never, [typeof i1.
|
|
25
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SdFormsModule, never, [typeof i1.SdLabel, typeof i2.SdInput, typeof i3.SdInputColor, typeof i4.SdInlineText, typeof i5.SdInputNumber, typeof i6.SdDate, typeof i7.SdDatetime, typeof i8.SdDateRange, typeof i9.SdTime, typeof i10.SdTimeRange, typeof i11.SdEntityPicker, typeof i12.SdTreeSelect, typeof i13.SdSelect, typeof i14.SdAutocomplete, typeof i15.SdSwitch, typeof i16.SdRadio, typeof i17.SdTextarea, typeof i18.SdChip, typeof i19.SdChipCalendar, typeof i20.SdCheckbox, typeof i21.SdSuffixDefDirective, typeof i21.SdLabelDefDirective, typeof i21.SdViewDefDirective, typeof i21.SdItemDefDefDirective, typeof i13.SdSelectFooterActionDirective, typeof i11.SdEntityPickerSelectedTemplateDirective, typeof i11.SdEntityPickerRowTemplateDirective, typeof i11.SdEntityPickerDetailTemplateDirective, typeof i12.SdTreeSelectNodeTemplateDirective], [typeof i1.SdLabel, typeof i2.SdInput, typeof i3.SdInputColor, typeof i4.SdInlineText, typeof i5.SdInputNumber, typeof i6.SdDate, typeof i7.SdDatetime, typeof i8.SdDateRange, typeof i9.SdTime, typeof i10.SdTimeRange, typeof i11.SdEntityPicker, typeof i12.SdTreeSelect, typeof i13.SdSelect, typeof i14.SdAutocomplete, typeof i15.SdSwitch, typeof i16.SdRadio, typeof i17.SdTextarea, typeof i18.SdChip, typeof i19.SdChipCalendar, typeof i20.SdCheckbox, typeof i21.SdSuffixDefDirective, typeof i21.SdLabelDefDirective, typeof i21.SdViewDefDirective, typeof i21.SdItemDefDefDirective, typeof i13.SdSelectFooterActionDirective, typeof i11.SdEntityPickerSelectedTemplateDirective, typeof i11.SdEntityPickerRowTemplateDirective, typeof i11.SdEntityPickerDetailTemplateDirective, typeof i12.SdTreeSelectNodeTemplateDirective]>;
|
|
17
26
|
static ɵinj: i0.ɵɵInjectorDeclaration<SdFormsModule>;
|
|
18
27
|
}
|
|
@@ -25,6 +25,11 @@ export declare class SdSwitch implements OnInit, OnDestroy {
|
|
|
25
25
|
readonly dataEmpty: import("@angular/core").Signal<"true" | "false">;
|
|
26
26
|
readonly dataValue: import("@angular/core").Signal<string>;
|
|
27
27
|
readonly dataRequired: import("@angular/core").Signal<"true" | "false">;
|
|
28
|
+
readonly errorMessage: import("@angular/core").Signal<string | undefined>;
|
|
29
|
+
/** Shared reactive form policy — `validationError` is already interaction-gated (touched/dirty). */
|
|
30
|
+
readonly connectorState: import("@angular/core").Signal<import("@sdcorejs/angular/forms/models").ɵSdFormControlConnectorState<boolean | null | undefined>>;
|
|
31
|
+
/** Message to render inline; `undefined` while untouched, or when `hideInlineError` is set. */
|
|
32
|
+
readonly visibleErrorMessage: import("@angular/core").Signal<string | undefined>;
|
|
28
33
|
ngOnInit(): void;
|
|
29
34
|
ngOnDestroy(): void;
|
|
30
35
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSwitch, never>;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { FormGroup } from '@angular/forms';
|
|
3
3
|
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
|
|
4
4
|
import { SdLabelDefDirective, SdSuffixDefDirective, SdViewDefDirective } from '@sdcorejs/angular/forms/directives';
|
|
5
5
|
import { SdCustomValidator, SdFormControl, SdViewed, SdViewedInput } from '@sdcorejs/angular/forms/models';
|
|
6
6
|
import { Size } from '@sdcorejs/utils/models';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class SdTextarea implements OnInit,
|
|
8
|
+
export declare class SdTextarea implements OnInit, OnDestroy {
|
|
9
9
|
#private;
|
|
10
10
|
id: string;
|
|
11
|
+
/** why: id ổn định của <mat-error> để control trỏ `aria-describedby` sang — thông báo lỗi
|
|
12
|
+
* phải đọc được từ chính control, không chỉ hiện ra màn hình. */
|
|
13
|
+
readonly errorId: string;
|
|
11
14
|
textareaRef: import("@angular/core").Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
12
15
|
sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
|
|
13
16
|
sdLabelDef: import("@angular/core").Signal<SdLabelDefDirective | undefined>;
|
|
@@ -58,7 +61,6 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
|
58
61
|
isFocused: boolean;
|
|
59
62
|
constructor();
|
|
60
63
|
ngOnInit(): void;
|
|
61
|
-
ngAfterViewInit(): void;
|
|
62
64
|
ngOnDestroy(): void;
|
|
63
65
|
onFocus: () => void;
|
|
64
66
|
onBlur: () => void;
|
|
@@ -60,8 +60,29 @@ export declare class SdTimeRange {
|
|
|
60
60
|
readonly isReadonly: import("@angular/core").Signal<boolean>;
|
|
61
61
|
readonly viewTemplate: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
62
62
|
readonly displayValue: import("@angular/core").Signal<string>;
|
|
63
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Endpoint invalid ĐÃ gate theo tương tác — CHỈ dùng cho hiển thị (message, `data-invalid`).
|
|
65
|
+
* `connectorState().invalid` của `sd-time` là `invalid && (touched || dirty)`.
|
|
66
|
+
*/
|
|
64
67
|
readonly endpointInvalid: import("@angular/core").Signal<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Endpoint invalid THÔ — không gate theo tương tác. Dùng cho VALIDATOR của control tổng.
|
|
70
|
+
* why: endpoint không còn được đăng ký vào FormGroup của consumer, nên validity của chúng chỉ
|
|
71
|
+
* tới được form cha qua control tổng. Nếu đường đó cũng gate theo `touched || dirty` thì một
|
|
72
|
+
* endpoint invalid do ghi programmatic (chưa ai chạm vào) sẽ để form cha VALID — sai contract
|
|
73
|
+
* đã ghi trong `sd-time-range.md`.
|
|
74
|
+
* `formControl.invalid` là property thường nên tự nó không phát tín hiệu; đọc `connectorState()`
|
|
75
|
+
* một nhịp để computed có dependency reactive theo `events` của endpoint control.
|
|
76
|
+
*/
|
|
77
|
+
readonly endpointInvalidRaw: import("@angular/core").Signal<boolean>;
|
|
78
|
+
/**
|
|
79
|
+
* Message đã gate theo tương tác — thứ template được phép hiển thị.
|
|
80
|
+
* why: `errorMessage()` thô bung lỗi ngay lần paint đầu với `[required]`, khi người dùng chưa
|
|
81
|
+
* chạm vào ô nào. `connectorState().validationError` gate theo control tổng; range còn có 2
|
|
82
|
+
* endpoint có thể invalid trong khi control tổng chưa dirty (text sai không tới được model tổng),
|
|
83
|
+
* nên phải cộng thêm nhánh endpoint — `endpointInvalid` tự nó đã gate theo touched/dirty.
|
|
84
|
+
*/
|
|
85
|
+
readonly visibleError: import("@angular/core").Signal<string | undefined>;
|
|
65
86
|
readonly dataDisabled: import("@angular/core").Signal<"true" | "false">;
|
|
66
87
|
readonly dataInvalid: import("@angular/core").Signal<"true" | "false">;
|
|
67
88
|
readonly dataEmpty: import("@angular/core").Signal<"true" | "false">;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { ElementRef, TemplateRef } from '@angular/core';
|
|
2
|
-
import { FormGroup } from '@angular/forms';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { ErrorStateMatcher } from '@angular/material/core';
|
|
4
|
+
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
3
5
|
import { SdModal } from '@sdcorejs/angular/components/modal';
|
|
4
6
|
import { SdTree, SdTreeComponentOption, SdTreeDataSource, SdTreeItem, SdTreeItemContext, SdTreeLoadErrorEvent, SdTreeOption, SdTreeSelectionEvent } from '@sdcorejs/angular/components/tree';
|
|
5
7
|
import { SdFormControl, SdViewed, SdViewedInput, ɵSdFormControlParent } from '@sdcorejs/angular/forms/models';
|
|
8
|
+
import { Size } from '@sdcorejs/utils/models';
|
|
6
9
|
import * as i0 from "@angular/core";
|
|
7
10
|
export type SdTreeSelectModel<TKey> = TKey | TKey[] | null | undefined;
|
|
8
11
|
export type SdTreeSelectTemplateContext<T> = SdTreeItemContext<T>;
|
|
@@ -14,18 +17,24 @@ export declare class SdTreeSelectNodeTemplateDirective<T> {
|
|
|
14
17
|
}
|
|
15
18
|
export declare class SdTreeSelect<T = unknown, TKey = string | number> {
|
|
16
19
|
#private;
|
|
17
|
-
readonly trigger: import("@angular/core").Signal<ElementRef<
|
|
20
|
+
readonly trigger: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
18
21
|
readonly modal: import("@angular/core").Signal<SdModal | undefined>;
|
|
19
22
|
readonly treeComponent: import("@angular/core").Signal<SdTree<T> | undefined>;
|
|
20
23
|
readonly nodeTemplate: import("@angular/core").Signal<SdTreeSelectNodeTemplateDirective<any> | undefined>;
|
|
24
|
+
readonly errorId: string;
|
|
21
25
|
readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
22
26
|
readonly autoId: import("@angular/core").Signal<string | undefined>;
|
|
23
27
|
readonly name: import("@angular/core").InputSignal<string>;
|
|
24
28
|
readonly form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, ɵSdFormControlParent>;
|
|
25
29
|
readonly label: import("@angular/core").InputSignal<string | undefined>;
|
|
30
|
+
readonly helperText: import("@angular/core").InputSignal<string | undefined>;
|
|
26
31
|
readonly placeholder: import("@angular/core").InputSignal<string | null | undefined>;
|
|
27
32
|
readonly modalTitle: import("@angular/core").InputSignal<string | null | undefined>;
|
|
28
33
|
readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
34
|
+
readonly size: import("@angular/core").InputSignal<Size>;
|
|
35
|
+
readonly appearanceInput: import("@angular/core").InputSignal<MatFormFieldAppearance | undefined>;
|
|
36
|
+
readonly appearance: import("@angular/core").Signal<MatFormFieldAppearance>;
|
|
37
|
+
readonly hideInlineError: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
29
38
|
readonly items: import("@angular/core").InputSignal<SdTreeDataSource<SdTreeItem<T>>>;
|
|
30
39
|
readonly tree: import("@angular/core").InputSignal<SdTreeOption<T>>;
|
|
31
40
|
readonly valueField: import("@angular/core").InputSignal<(T extends object ? { [Key in keyof T & string]: T[Key] extends string | number | boolean | Function | Date | null | undefined ? Key : T[Key] extends any[] ? Key : T[Key] extends object ? Key | `${Key}.${T[Key] extends infer T_1 ? T_1 extends T[Key] ? T_1 extends object ? { [Key_1 in keyof T_1 & string]: T_1[Key_1] extends string | number | boolean | Function | Date | null | undefined ? Key_1 : T_1[Key_1] extends any[] ? Key_1 : T_1[Key_1] extends object ? Key_1 | `${Key_1}.${T_1[Key_1] extends infer T_2 ? T_2 extends T_1[Key_1] ? T_2 extends object ? { [Key_2 in keyof T_2 & string]: T_2[Key_2] extends string | number | boolean | Function | Date | null | undefined ? Key_2 : T_2[Key_2] extends any[] ? Key_2 : T_2[Key_2] extends object ? Key_2 | `${Key_2}.${T_2[Key_2] extends infer T_3 ? T_3 extends T_2[Key_2] ? T_3 extends object ? { [Key_3 in keyof T_3 & string]: T_3[Key_3] extends string | number | boolean | Function | Date | null | undefined ? Key_3 : T_3[Key_3] extends any[] ? Key_3 : T_3[Key_3] extends object ? Key_3 : Key_3; }[keyof T_3 & string] : string : never : never}` : Key_2; }[keyof T_2 & string] : string : never : never}` : Key_1; }[keyof T_1 & string] : string : never : never}` : Key; }[keyof T & string] : string) | undefined>;
|
|
@@ -37,15 +46,36 @@ export declare class SdTreeSelect<T = unknown, TKey = string | number> {
|
|
|
37
46
|
readonly multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
38
47
|
readonly cascade: import("@angular/core").InputSignal<"independent" | "descendants">;
|
|
39
48
|
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
49
|
+
/** Component-local error text. Set it to force the control invalid and render the message. */
|
|
50
|
+
readonly inlineError: import("@angular/core").InputSignal<string | undefined>;
|
|
40
51
|
readonly clearable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
41
52
|
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
42
53
|
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
43
54
|
readonly viewed: import("@angular/core").InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
44
55
|
readonly model: import("@angular/core").ModelSignal<SdTreeSelectModel<TKey>>;
|
|
45
56
|
readonly sdChange: import("@angular/core").OutputEmitterRef<SdTreeSelectModel<TKey>>;
|
|
46
|
-
readonly
|
|
57
|
+
readonly loadError: import("@angular/core").OutputEmitterRef<SdTreeLoadErrorEvent<T>>;
|
|
47
58
|
readonly formControl: SdFormControl;
|
|
59
|
+
readonly errorMessage: import("@angular/core").Signal<string | undefined>;
|
|
48
60
|
readonly connectorState: import("@angular/core").Signal<import("@sdcorejs/angular/forms/models").ɵSdFormControlConnectorState<SdTreeSelectModel<TKey>>>;
|
|
61
|
+
/** Interaction-gated validation message; `undefined` until the control is touched/dirty. */
|
|
62
|
+
readonly visibleErrorMessage: import("@angular/core").Signal<string | undefined>;
|
|
63
|
+
/**
|
|
64
|
+
* Text-only control backing the readonly trigger; `formControl` above holds the real keys.
|
|
65
|
+
*
|
|
66
|
+
* why: phải là một `FormControl` THẬT chứ không phải `[value]`. `MatInput.ngDoCheck` chỉ gọi
|
|
67
|
+
* `updateErrorState()` khi có `NgControl` — không có nó thì `errorState` đứng yên ở `false`, mà
|
|
68
|
+
* `<mat-error>`, viền đỏ và `aria-invalid` đều bám vào cờ đó, nên field bắt buộc bỏ trống lại im
|
|
69
|
+
* lặng y như bug cũ. Trạng thái disabled cũng chảy qua control này (MatInput tự đồng bộ
|
|
70
|
+
* `disabled` từ `ngControl` mỗi vòng CD, nên bind `[disabled]` trên template sẽ bị ghi đè).
|
|
71
|
+
*/
|
|
72
|
+
readonly displayControl: FormControl<string>;
|
|
73
|
+
/**
|
|
74
|
+
* why: MatInput đã có `NgControl`, nhưng control đó là ô TEXT — nó không biết gì về `required`
|
|
75
|
+
* hay validator của tree-select. Matcher nối thẳng `errorState` của Material vào message đã gate
|
|
76
|
+
* theo tương tác của connector.
|
|
77
|
+
*/
|
|
78
|
+
readonly errorStateMatcher: ErrorStateMatcher;
|
|
49
79
|
readonly draftKeys: import("@angular/core").WritableSignal<TKey[]>;
|
|
50
80
|
readonly modelKeys: import("@angular/core").Signal<TKey[]>;
|
|
51
81
|
readonly effectivePlaceholder: import("@angular/core").Signal<string>;
|
|
@@ -55,7 +85,8 @@ export declare class SdTreeSelect<T = unknown, TKey = string | number> {
|
|
|
55
85
|
readonly draftEntities: import("@angular/core").Signal<T[]>;
|
|
56
86
|
readonly displayText: import("@angular/core").Signal<string>;
|
|
57
87
|
readonly treeOption: import("@angular/core").Signal<SdTreeComponentOption<T>>;
|
|
58
|
-
|
|
88
|
+
constructor();
|
|
89
|
+
open(event?: Event): void;
|
|
59
90
|
applySelection(): void;
|
|
60
91
|
cancel(): void;
|
|
61
92
|
clear(event?: Event): void;
|
|
@@ -66,6 +97,6 @@ export declare class SdTreeSelect<T = unknown, TKey = string | number> {
|
|
|
66
97
|
keyOf(item: T): TKey;
|
|
67
98
|
displayEntity(item: T): string;
|
|
68
99
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdTreeSelect<any, any>, never>;
|
|
69
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdTreeSelect<any, any>, "sd-tree-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "modalTitle": { "alias": "modalTitle"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "tree": { "alias": "tree"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "keySelector": { "alias": "keySelector"; "required": false; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledNode": { "alias": "disabledNode"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "cascade": { "alias": "cascade"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "sdChange": "sdChange"; "
|
|
100
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdTreeSelect<any, any>, "sd-tree-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "modalTitle": { "alias": "modalTitle"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "tree": { "alias": "tree"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "keySelector": { "alias": "keySelector"; "required": false; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "disabledNode": { "alias": "disabledNode"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "cascade": { "alias": "cascade"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "sdChange": "sdChange"; "loadError": "loadError"; }, ["nodeTemplate"], ["[sdLabel]"], true, never>;
|
|
70
101
|
}
|
|
71
102
|
export declare function normalizeTreeSelectKeys<TKey>(value: SdTreeSelectModel<TKey>, multiple: boolean): TKey[];
|
package/i18n/src/en.d.ts
CHANGED
|
@@ -78,9 +78,6 @@ export declare const EN_MESSAGES: {
|
|
|
78
78
|
readonly 'core.interceptor.no-internet.restored': "Connection restored.";
|
|
79
79
|
readonly 'core.excel.cannot-read-file': "Could not read file content";
|
|
80
80
|
readonly 'core.excel.no-sheet': "Excel file has no data sheet";
|
|
81
|
-
readonly 'core.docx.invalid-format': "Invalid format. Please select a template in DOC or DOCX format";
|
|
82
|
-
readonly 'core.docx.size-exceeded': "Template file size exceeds the supported limit. Please try again";
|
|
83
|
-
readonly 'core.docx.convert-error': "An error occurred while converting the DOCX file";
|
|
84
81
|
readonly 'core.notify.type.success': "Success";
|
|
85
82
|
readonly 'core.notify.type.info': "Information";
|
|
86
83
|
readonly 'core.notify.type.warning': "Warning";
|
|
@@ -177,7 +174,6 @@ export declare const EN_MESSAGES: {
|
|
|
177
174
|
readonly 'core.form.time-range.step': "Times must align to a {step}-minute interval";
|
|
178
175
|
readonly 'core.form.time-range.from': "From";
|
|
179
176
|
readonly 'core.form.time-range.to': "To";
|
|
180
|
-
readonly 'core.form.time-range.clear': "Clear time range";
|
|
181
177
|
readonly 'core.form.time-spinner.hour': "Hour";
|
|
182
178
|
readonly 'core.form.time-spinner.minute': "Minute";
|
|
183
179
|
readonly 'core.form.time-spinner.second': "Second";
|
|
@@ -196,6 +192,7 @@ export declare const EN_MESSAGES: {
|
|
|
196
192
|
readonly 'core.form.checkbox.checked': "Yes";
|
|
197
193
|
readonly 'core.form.checkbox.unchecked': "No";
|
|
198
194
|
readonly 'core.form.select.required': "Please enter information";
|
|
195
|
+
readonly 'core.form.select.selectAll': "All";
|
|
199
196
|
readonly 'core.form.textarea.required': "Please enter information";
|
|
200
197
|
readonly 'core.form.textarea.maxlength': "Maximum characters: {max}";
|
|
201
198
|
readonly 'core.form.textarea.invalid-pattern': "Invalid format";
|
|
@@ -209,12 +206,6 @@ export declare const EN_MESSAGES: {
|
|
|
209
206
|
readonly 'core.component.editor.image.max-width': "Image width {width}px exceeds the limit of {max}px";
|
|
210
207
|
readonly 'core.component.editor.image.max-height': "Image height {height}px exceeds the limit of {max}px";
|
|
211
208
|
readonly 'core.component.editor.image.max-per-selection': "You can select at most {max} images per selection";
|
|
212
|
-
readonly 'core.component.document-builder.page-number.current': "Current page number";
|
|
213
|
-
readonly 'core.component.document-builder.page-number.total': "Total pages";
|
|
214
|
-
readonly 'core.component.document-builder.ck-comment.label': "Comment";
|
|
215
|
-
readonly 'core.component.document-builder.ck-comment.text-too-long': "Text too long ({length} characters). Maximum {max} characters.";
|
|
216
|
-
readonly 'core.component.document-builder.variable.not-allowed': "Adding variable to the text is not allowed";
|
|
217
|
-
readonly 'core.component.document-builder.variable.invalid-data': "Invalid variable data";
|
|
218
209
|
readonly 'core.component.form-builder.field-key': "Field key";
|
|
219
210
|
readonly 'core.component.form-builder.display': "Display";
|
|
220
211
|
readonly 'core.component.form-builder.general': "General";
|
|
@@ -228,6 +219,7 @@ export declare const EN_MESSAGES: {
|
|
|
228
219
|
readonly 'core.component.form-builder.required-when': "Required when";
|
|
229
220
|
readonly 'core.component.form-builder.confirm': "Confirm";
|
|
230
221
|
readonly 'core.component.form-builder.delete': "Delete";
|
|
222
|
+
readonly 'core.component.form-builder.select-item': "Select to edit";
|
|
231
223
|
readonly 'core.component.form-builder.save': "Save";
|
|
232
224
|
readonly 'core.component.form-builder.hint': "Hint";
|
|
233
225
|
readonly 'core.component.form-builder.parameter': "Parameters";
|
|
@@ -299,9 +291,13 @@ export declare const EN_MESSAGES: {
|
|
|
299
291
|
readonly 'core.component.form-builder.display-label': "Display label";
|
|
300
292
|
readonly 'core.component.form-builder.attribute': "Attribute";
|
|
301
293
|
readonly 'core.component.form-builder.add-variable': "Add variable";
|
|
294
|
+
readonly 'core.component.form-builder.no-variable': "No variables yet. Add one to use it in condition expressions.";
|
|
295
|
+
readonly 'core.component.form-builder.no-validation': "No validations yet. Add one to show a warning or an error on a condition.";
|
|
302
296
|
readonly 'core.component.form-builder.add-new': "Add new";
|
|
303
297
|
readonly 'core.component.form-builder.detail': "Details";
|
|
304
298
|
readonly 'core.component.form-builder.create-update': "Create/update";
|
|
299
|
+
readonly 'core.component.form-builder.update-row': "Update row";
|
|
300
|
+
readonly 'core.component.form-builder.add-row': "Add row";
|
|
305
301
|
readonly 'core.component.form-builder.default': "Default";
|
|
306
302
|
readonly 'core.component.form-builder.show-more': "Show more";
|
|
307
303
|
readonly 'core.component.form-builder.show-less': "Show less";
|
|
@@ -470,6 +466,8 @@ export declare const EN_MESSAGES: {
|
|
|
470
466
|
readonly 'core.component.table.error-occurred': "An error occurred";
|
|
471
467
|
readonly 'core.component.table.not-an-array': "Data is not an array";
|
|
472
468
|
readonly 'core.component.table.config.confirm-reset': "Confirm reset all settings to defaults";
|
|
469
|
+
readonly 'core.component.table.config.drag-hint': "Drag the ⠿ handle to reorder columns";
|
|
470
|
+
readonly 'core.component.table.config.drag-handle': "Drag to reorder column";
|
|
473
471
|
readonly 'core.component.table.popup-export.select-columns': "Please select columns to export";
|
|
474
472
|
readonly 'core.component.table.selector-action.default-msg': "items selected";
|
|
475
473
|
readonly 'core.component.tab-router.too-many-tabs': "You have opened too many tabs.";
|
|
@@ -498,6 +496,13 @@ export declare const EN_MESSAGES: {
|
|
|
498
496
|
readonly 'core.module.layout.user.notification': "Notifications";
|
|
499
497
|
readonly 'core.module.layout.sidebar.search': "Search";
|
|
500
498
|
readonly 'core.module.layout.sidebar.toggle': "Toggle sidebar";
|
|
499
|
+
readonly 'core.module.layout.sidebar.menu-groups': "Menu groups";
|
|
500
|
+
readonly 'core.module.layout.sidebar.close-menu': "Close menu";
|
|
501
|
+
readonly 'core.module.layout.sidebar.search-in-group': "Search this group";
|
|
502
|
+
readonly 'core.module.layout.sidebar.primary-nav': "Primary navigation";
|
|
503
|
+
readonly 'core.module.layout.sidebar.more-menu': "More menus";
|
|
504
|
+
readonly 'core.module.layout.sidebar.more': "More";
|
|
505
|
+
readonly 'core.module.layout.sidebar.search-in-menu': "Search menus";
|
|
501
506
|
readonly 'core.module.layout.greeting.hello': "Hello, {name}";
|
|
502
507
|
readonly 'core.module.layout.weekday.0': "Sunday";
|
|
503
508
|
readonly 'core.module.layout.weekday.1': "Monday";
|
|
@@ -524,4 +529,79 @@ export declare const EN_MESSAGES: {
|
|
|
524
529
|
readonly 'core.module.layout.home.feature.integration': "Integration";
|
|
525
530
|
readonly 'core.module.layout.mock.user.full-name': "Demo User";
|
|
526
531
|
readonly 'core.module.generic.generic-select.detail-link': "details";
|
|
532
|
+
readonly 'core.component.query-bar.search-placeholder': "Search...";
|
|
533
|
+
readonly 'core.component.query-bar.no-fields': "No fields configured";
|
|
534
|
+
readonly 'core.component.query-bar.add-filter': "Add filter";
|
|
535
|
+
readonly 'core.component.query-bar.clear-all': "Clear all ({count})";
|
|
536
|
+
readonly 'core.component.query-bar.search': "Search";
|
|
537
|
+
readonly 'core.component.query-bar.logic-operator': "Logic operator";
|
|
538
|
+
readonly 'core.component.query-bar.boolean.true': "Yes";
|
|
539
|
+
readonly 'core.component.query-bar.boolean.false': "No";
|
|
540
|
+
readonly 'core.component.query-bar.placeholder.value': "value";
|
|
541
|
+
readonly 'core.component.query-bar.placeholder.text': "type…";
|
|
542
|
+
readonly 'core.component.query-bar.placeholder.from-number': "From";
|
|
543
|
+
readonly 'core.component.query-bar.placeholder.to-number': "To";
|
|
544
|
+
readonly 'core.component.query-bar.placeholder.from-text': "from…";
|
|
545
|
+
readonly 'core.component.query-bar.placeholder.to-text': "to…";
|
|
546
|
+
readonly 'core.component.query-bar.swap-field': "Swap field";
|
|
547
|
+
readonly 'core.component.query-bar.placeholder.select-value': "Select value";
|
|
548
|
+
readonly 'core.component.query-bar.placeholder.enter-value': "Enter value";
|
|
549
|
+
readonly 'core.component.query-bar.loading-values': "Loading...";
|
|
550
|
+
readonly 'core.component.query-bar.field-empty': "No fields configured yet.";
|
|
551
|
+
readonly 'core.component.query-bar.saved-filters.tooltip': "Saved filters";
|
|
552
|
+
readonly 'core.component.query-bar.saved-filters.tooltip-disabled': "Requires [savedFiltersKey] to enable";
|
|
553
|
+
readonly 'core.component.query-bar.saved-filters.delete': "Delete filter";
|
|
554
|
+
readonly 'core.component.query-bar.saved-filters.empty': "No saved filters yet.";
|
|
555
|
+
readonly 'core.component.query-bar.saved-filters.save': "Save current filter";
|
|
556
|
+
readonly 'core.component.query-bar.saved-filters.name-label': "Filter name";
|
|
557
|
+
readonly 'core.component.query-builder.date-mode.absolute': "Specific date";
|
|
558
|
+
readonly 'core.component.query-builder.date-mode.now': "Today";
|
|
559
|
+
readonly 'core.component.query-builder.date-mode.relative': "Relative";
|
|
560
|
+
readonly 'core.component.query-builder.value-source.literal': "Enter a value";
|
|
561
|
+
readonly 'core.component.query-builder.value-source.field': "Compare with field";
|
|
562
|
+
readonly 'core.component.query-builder.relative.hour-previous': "hours ago";
|
|
563
|
+
readonly 'core.component.query-builder.relative.hour-next': "hours from now";
|
|
564
|
+
readonly 'core.component.query-builder.relative.day-previous': "days ago";
|
|
565
|
+
readonly 'core.component.query-builder.relative.day-next': "days from now";
|
|
566
|
+
readonly 'core.component.query-builder.relative.week-previous': "weeks ago";
|
|
567
|
+
readonly 'core.component.query-builder.relative.week-next': "weeks from now";
|
|
568
|
+
readonly 'core.component.query-builder.relative.month-previous': "months ago";
|
|
569
|
+
readonly 'core.component.query-builder.relative.month-next': "months from now";
|
|
570
|
+
readonly 'core.component.query-builder.relative.format': "{amount} {phrase}";
|
|
571
|
+
readonly 'core.component.query-builder.add': "Add";
|
|
572
|
+
readonly 'core.component.query-builder.add-node': "Add a condition or group";
|
|
573
|
+
readonly 'core.component.query-builder.condition': "Condition";
|
|
574
|
+
readonly 'core.component.query-builder.group': "Group";
|
|
575
|
+
readonly 'core.component.query-builder.remove-group': "Remove group";
|
|
576
|
+
readonly 'core.component.query-builder.remove-condition': "Remove condition";
|
|
577
|
+
readonly 'core.component.query-builder.empty': "No conditions yet";
|
|
578
|
+
readonly 'core.component.query-builder.select-field': "Select field";
|
|
579
|
+
readonly 'core.component.query-builder.value': "Value";
|
|
580
|
+
readonly 'core.component.query-builder.from': "From";
|
|
581
|
+
readonly 'core.component.query-builder.to': "To";
|
|
582
|
+
readonly 'core.component.query-builder.boolean.true': "Yes";
|
|
583
|
+
readonly 'core.component.query-builder.boolean.false': "No";
|
|
584
|
+
readonly 'core.component.tree.selected-count': "{count} item(s) selected";
|
|
585
|
+
readonly 'core.component.tree.expand': "Expand tree item";
|
|
586
|
+
readonly 'core.component.tree.collapse': "Collapse tree item";
|
|
587
|
+
readonly 'core.component.tree.retry-item': "Retry loading tree item";
|
|
588
|
+
readonly 'core.component.tree.load-error': "Unable to load tree data";
|
|
589
|
+
readonly 'core.directive.hover-copy.copied': "Copied";
|
|
590
|
+
readonly 'core.module.layout.sidebar.pinned': "Pinned";
|
|
591
|
+
readonly 'core.module.layout.sidebar.recent': "Recent";
|
|
592
|
+
readonly 'core.module.layout.sidebar.all-menu': "All menus";
|
|
593
|
+
readonly 'core.module.layout.menu.pin': "Pin {title}";
|
|
594
|
+
readonly 'core.module.layout.menu.unpin': "Unpin {title}";
|
|
595
|
+
readonly 'core.form.date.open-picker': "Open calendar";
|
|
596
|
+
readonly 'core.form.datetime.open-picker': "Open calendar";
|
|
597
|
+
readonly 'core.form.date-range.open-picker': "Open calendar";
|
|
598
|
+
readonly 'core.form.date-range.clear': "Clear date range";
|
|
599
|
+
readonly 'core.form.select.search': "Search";
|
|
600
|
+
readonly 'core.component.table.loading': "Loading table data";
|
|
601
|
+
readonly 'core.component.upload-file.loading': "Uploading file";
|
|
602
|
+
readonly 'core.component.import-excel.loading': "Loading data";
|
|
603
|
+
readonly 'core.component.upload-file.remove': "Remove file";
|
|
604
|
+
readonly 'core.component.upload-file.zoom': "Zoom image";
|
|
605
|
+
readonly 'core.component.upload-file.view-all': "View all images";
|
|
606
|
+
readonly 'core.component.form-builder.canvas': "Form design canvas";
|
|
527
607
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Language } from '
|
|
1
|
+
import type { Language } from '@sdcorejs/utils/models';
|
|
2
2
|
export declare const I18N_MESSAGES: Record<Language, Readonly<Record<string, string>>>;
|
package/i18n/src/i18n.pipe.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PipeTransform } from '@angular/core';
|
|
2
2
|
import { I18nParams } from './i18n.types';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class SdTranslatePipe implements PipeTransform {
|
|
5
5
|
#private;
|
|
6
6
|
transform(key: string, params?: I18nParams): string;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
8
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdTranslatePipe, never>;
|
|
8
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SdTranslatePipe, "sdTranslate", true>;
|
|
9
9
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Signal } from '@angular/core';
|
|
2
|
-
import { I18nParams
|
|
2
|
+
import { I18nParams } from './i18n.types';
|
|
3
|
+
import { Language } from '@sdcorejs/utils/models';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class I18nService {
|
|
5
6
|
#private;
|
package/i18n/src/i18n.types.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import type { EN_MESSAGES } from './en';
|
|
2
|
-
import { SUPPORTED_LANGUAGES, type Language } from '@sdcorejs/angular/models';
|
|
3
|
-
export { SUPPORTED_LANGUAGES };
|
|
4
|
-
export type { Language };
|
|
5
2
|
export type I18nKey = keyof typeof EN_MESSAGES;
|
|
6
3
|
export type I18nParams = Record<string, string | number>;
|
|
7
4
|
/**
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
2
3
|
import { Observable } from 'rxjs';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* URL dùng để dò kết nối khi một request trả về status 0.
|
|
7
|
+
*
|
|
8
|
+
* why: bản cũ hard-code `https://jsonplaceholder.typicode.com/todos/1`, không override được. Mọi
|
|
9
|
+
* app tiêu dùng thư viện đều ping một bên thứ ba lạ mỗi 3 giây khi mất mạng, và vì probe đi qua
|
|
10
|
+
* NGUYÊN chuỗi interceptor của app nên bất kỳ interceptor nào gắn header auth vô điều kiện đều
|
|
11
|
+
* rò token ra ngoài origin. Mặc định giờ là một đường dẫn same-origin; app đổi bằng cách provide
|
|
12
|
+
* lại token này (nên trỏ tới endpoint tĩnh, rẻ, không cần auth).
|
|
13
|
+
*/
|
|
14
|
+
export declare const SD_NO_INTERNET_PROBE_URL: InjectionToken<string>;
|
|
4
15
|
export declare class SdNoInternetInterceptor implements HttpInterceptor {
|
|
5
16
|
#private;
|
|
6
17
|
private snackBar;
|
|
7
|
-
private injector;
|
|
8
18
|
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
9
19
|
constructor(...args: unknown[]);
|
|
10
20
|
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
@@ -2,6 +2,7 @@ import Keycloak from 'keycloak-js';
|
|
|
2
2
|
import { SdKeycloakTenantConfig } from './keycloak.configuration';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class SdKeycloakService {
|
|
5
|
+
#private;
|
|
5
6
|
keycloak: Keycloak;
|
|
6
7
|
config: SdKeycloakTenantConfig;
|
|
7
8
|
init(config: SdKeycloakTenantConfig): Promise<boolean>;
|
|
@@ -10,6 +10,8 @@ interface SdLayoutMenuTreeNode {
|
|
|
10
10
|
isActive: boolean;
|
|
11
11
|
isPinned: boolean;
|
|
12
12
|
isPinVisible: boolean;
|
|
13
|
+
/** Accessible name of the pin toggle — already i18n-resolved with the menu title interpolated. */
|
|
14
|
+
pinLabel: string;
|
|
13
15
|
}
|
|
14
16
|
export declare class SdLayoutMenuTreeComponent {
|
|
15
17
|
#private;
|
package/modules/layout/components/sidebar-mobile-v1/components/sidebar/sidebar.component.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Params } from '@angular/router';
|
|
|
2
2
|
import { SdLayoutUserInfo, SidebarConfigurationV1 } from '../../../../configurations';
|
|
3
3
|
import { SdLayoutMenu } from '../../../../services';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class SdSidebarMobileOverlay {
|
|
6
6
|
#private;
|
|
7
7
|
isShowSidebar: import("@angular/core").InputSignal<boolean>;
|
|
8
8
|
menus: import("@angular/core").InputSignal<SdLayoutMenu[]>;
|
|
@@ -30,6 +30,6 @@ export declare class SidebarMobileOverlayComponent {
|
|
|
30
30
|
getQueryParams(menu: SdLayoutMenu): Params;
|
|
31
31
|
onUserMenuOpened: () => void;
|
|
32
32
|
onUserMenuClosed: () => void;
|
|
33
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
34
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
33
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdSidebarMobileOverlay, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdSidebarMobileOverlay, "sd-sidebar-mobile-overlay", never, { "isShowSidebar": { "alias": "isShowSidebar"; "required": false; "isSignal": true; }; "menus": { "alias": "menus"; "required": true; "isSignal": true; }; "userInfo": { "alias": "userInfo"; "required": true; "isSignal": true; }; "sidebar": { "alias": "sidebar"; "required": true; "isSignal": true; }; }, { "showSideBar": "showSideBar"; "expandSideBar": "expandSideBar"; "popupUserMenuOpened": "popupUserMenuOpened"; "popupUserMenuClosed": "popupUserMenuClosed"; "titleMenuGroupChanged": "titleMenuGroupChanged"; }, never, never, true, never>;
|
|
35
35
|
}
|