@sd-angular/core 19.0.0-beta.98 → 19.0.3
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 +720 -716
- package/assets/images/coming-soon.svg +23 -0
- package/assets/images/data-empty.svg +21 -0
- package/assets/images/expired.svg +22 -0
- package/assets/images/file-error.svg +28 -0
- package/assets/images/filter-empty.svg +20 -0
- package/assets/images/filter-required.svg +21 -0
- package/assets/images/forbidden.svg +15 -0
- package/assets/images/image-error.svg +27 -0
- package/assets/images/maintenance.svg +23 -0
- package/assets/images/not-found.svg +20 -0
- package/assets/images/offline.svg +20 -0
- package/assets/images/submitted.svg +18 -0
- package/assets/images/success.svg +18 -0
- package/assets/images/unauthorized.svg +22 -0
- package/assets/images/unknown-error.svg +18 -0
- package/assets/scss/README.md +433 -353
- package/assets/scss/core/_inline-edit.scss +105 -0
- package/assets/scss/core/form.scss +58 -1
- package/assets/scss/core/image.scss +35 -0
- package/assets/scss/core/utilities/_base.scss +6 -6
- package/assets/scss/core/utilities/_grid.scss +4 -3
- package/assets/scss/core/utilities/_index.scss +1 -1
- package/assets/scss/core/utilities/_sizing.scss +2 -2
- package/assets/scss/sd-core.scss +1 -2
- package/components/anchor/src/components/anchor/anchor.component.d.ts +5 -5
- package/components/anchor/src/components/anchor-nav/anchor-nav.component.d.ts +21 -0
- package/components/autoid-inspector/src/autoid-inspector.component.d.ts +18 -0
- package/components/autoid-inspector/src/models/autoid-element.model.d.ts +45 -1
- package/components/autoid-inspector/src/models/autoid-export-format.model.d.ts +19 -0
- package/components/autoid-inspector/src/services/autoid-export.service.d.ts +10 -2
- package/components/autoid-inspector/src/services/autoid-scanner.service.d.ts +26 -3
- package/components/badge/src/badge.component.d.ts +20 -3
- package/components/button/src/button.component.d.ts +2 -1
- package/components/ckeditor-styles/index.d.ts +1 -0
- package/components/ckeditor-styles/src/ckeditor-styles.component.d.ts +25 -0
- package/components/editor/src/editor.component.d.ts +2 -0
- package/components/form-generic/src/components/form-builder/form-builder.component.d.ts +12 -13
- package/components/form-generic/src/models/form-generic-component.model.d.ts +5 -6
- package/components/form-generic/src/models/form-generic-expression.model.d.ts +1 -1
- package/components/history/models/history.model.d.ts +2 -2
- package/components/index.d.ts +2 -0
- package/components/inform/index.d.ts +2 -0
- package/components/inform/src/inform-action.directive.d.ts +9 -0
- package/components/inform/src/inform.component.d.ts +59 -0
- package/components/modal/src/modal.component.d.ts +3 -1
- package/components/modal-resizable/index.d.ts +1 -0
- package/components/modal-resizable/src/modal-resizable.component.d.ts +29 -0
- package/components/operator/index.d.ts +1 -0
- package/components/operator/src/operator.component.d.ts +34 -0
- package/components/query-bar/index.d.ts +2 -0
- package/components/query-bar/src/components/actions-bar/actions-bar.component.d.ts +28 -0
- package/components/query-bar/src/components/build-chip/build-chip.component.d.ts +67 -0
- package/components/query-bar/src/components/chip-popover/chip-popover.component.d.ts +73 -0
- package/components/query-bar/src/components/field-picker/field-picker.component.d.ts +37 -0
- package/components/query-bar/src/components/inline-chip/inline-chip.component.d.ts +76 -0
- package/components/query-bar/src/components/inline-value-chip/inline-value-chip.component.d.ts +67 -0
- package/components/query-bar/src/components/popover-chip/popover-chip.component.d.ts +35 -0
- package/components/query-bar/src/components/saved-filters-menu/saved-filters-menu.component.d.ts +39 -0
- package/components/query-bar/src/query-bar.component.d.ts +137 -0
- package/components/query-bar/src/query-bar.model.d.ts +136 -0
- package/components/section/src/section.component.d.ts +2 -1
- package/components/side-drawer/src/side-drawer.component.d.ts +7 -3
- package/components/stepper/index.d.ts +2 -0
- package/components/stepper/src/step.component.d.ts +17 -0
- package/components/stepper/src/stepper.component.d.ts +33 -0
- package/components/tab/index.d.ts +2 -0
- package/components/tab/src/tab-group.component.d.ts +37 -0
- package/components/tab/src/tab.component.d.ts +13 -0
- package/components/tab-router/src/decorators/tab.decorator.d.ts +2 -2
- package/components/tab-router/src/models/tab-router.model.d.ts +2 -2
- package/components/table/index.d.ts +1 -0
- package/components/table/src/components/column-title/column-title.component.d.ts +1 -1
- package/components/table/src/components/command/desktop-command.component.d.ts +14 -0
- package/components/table/src/components/command/pipes/command.pipe.d.ts +30 -0
- package/components/table/src/components/command/pipes/filter.pipe.d.ts +35 -0
- package/components/table/src/components/config/config.component.d.ts +9 -14
- package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts +4 -4
- package/components/table/src/components/filter/column-filter/column-filter.component.d.ts +32 -0
- package/components/table/src/components/filter/external-filter/external-filter.component.d.ts +27 -0
- package/components/table/src/components/filter/index.d.ts +3 -0
- package/components/table/src/components/filter/mobile-filter/mobile-filter.component.d.ts +42 -0
- package/components/table/src/components/index.d.ts +1 -2
- package/components/table/src/components/selector-action/selector-action.component.d.ts +5 -5
- package/components/table/src/configurations/table.configuration.d.ts +3 -3
- package/components/table/src/directives/index.d.ts +1 -0
- package/components/table/src/directives/sd-table-cell-def.directive.d.ts +13 -5
- package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +13 -5
- package/components/table/src/directives/sd-table-expand-def.directive.d.ts +10 -4
- package/components/table/src/directives/sd-table-filter-def.directive.d.ts +5 -5
- package/components/table/src/directives/sd-table-footer-def.directive.d.ts +13 -5
- package/components/table/src/directives/sd-table-group-def.directive.d.ts +44 -0
- package/components/table/src/directives/sd-table-title-def.directive.d.ts +11 -5
- package/components/table/src/models/index.d.ts +1 -0
- package/components/table/src/models/table-column.model.d.ts +13 -13
- package/components/table/src/models/table-command.model.d.ts +3 -2
- package/components/table/src/models/table-item.model.d.ts +19 -4
- package/components/table/src/models/table-option-export.model.d.ts +3 -3
- package/components/table/src/models/table-option-group.model.d.ts +19 -2
- package/components/table/src/models/table-option-selector.model.d.ts +17 -1
- package/components/table/src/models/table-option-tree.model.d.ts +96 -8
- package/components/table/src/models/table-option.model.d.ts +24 -2
- package/components/table/src/pipes/sd-group.pipe.d.ts +15 -1
- package/components/table/src/services/table-filter/table-filter.model.d.ts +9 -9
- package/components/table/src/services/table-filter/table-filter.service.d.ts +2 -2
- package/components/table/src/services/tree/tree.util.d.ts +43 -2
- package/components/table/src/table.component.d.ts +42 -14
- package/components/upload-file/src/upload-file.component.d.ts +3 -0
- package/components/view/src/view.component.d.ts +35 -1
- package/directives/src/sd-desktop.directive.d.ts +2 -4
- package/directives/src/sd-mobile.directive.d.ts +2 -4
- package/fesm2022/sd-angular-core-components-anchor.mjs +95 -62
- package/fesm2022/sd-angular-core-components-anchor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-autoid-inspector.mjs +254 -29
- package/fesm2022/sd-angular-core-components-autoid-inspector.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-avatar.mjs +2 -2
- package/fesm2022/sd-angular-core-components-avatar.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-badge.mjs +18 -3
- package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-button.mjs +2 -2
- package/fesm2022/sd-angular-core-components-button.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs +38 -0
- package/fesm2022/sd-angular-core-components-ckeditor-styles.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-document-builder.mjs +10 -8
- package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-editor.mjs +6 -2
- package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-form-generic.mjs +151 -237
- package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-history.mjs +3 -2
- package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-inform.mjs +190 -0
- package/fesm2022/sd-angular-core-components-inform.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-mini-editor.mjs +4 -3
- package/fesm2022/sd-angular-core-components-mini-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-modal-resizable.mjs +158 -0
- package/fesm2022/sd-angular-core-components-modal-resizable.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-modal.mjs +5 -4
- package/fesm2022/sd-angular-core-components-modal.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-operator.mjs +77 -0
- package/fesm2022/sd-angular-core-components-operator.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-preview.mjs +4 -4
- package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-query-bar.mjs +1384 -0
- package/fesm2022/sd-angular-core-components-query-bar.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-quick-action.mjs +2 -2
- package/fesm2022/sd-angular-core-components-quick-action.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-side-drawer.mjs +17 -11
- package/fesm2022/sd-angular-core-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-splitter.mjs +5 -2
- package/fesm2022/sd-angular-core-components-splitter.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-stepper.mjs +140 -0
- package/fesm2022/sd-angular-core-components-stepper.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-tab-router.mjs +3 -3
- package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-tab.mjs +145 -0
- package/fesm2022/sd-angular-core-components-tab.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-table.mjs +1138 -725
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-upload-file.mjs +28 -23
- package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-view.mjs +44 -9
- package/fesm2022/sd-angular-core-components-view.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components.mjs +2 -0
- package/fesm2022/sd-angular-core-components.mjs.map +1 -1
- package/fesm2022/sd-angular-core-directives.mjs +19 -21
- package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs +46 -14
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-checkbox.mjs +101 -85
- package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +101 -61
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip.mjs +98 -52
- package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date-range.mjs +73 -10
- package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date.mjs +45 -15
- package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-datetime.mjs +39 -14
- package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-directives.mjs +18 -24
- package/fesm2022/sd-angular-core-forms-directives.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-inline-text.mjs +167 -0
- package/fesm2022/sd-angular-core-forms-inline-text.mjs.map +1 -0
- package/fesm2022/sd-angular-core-forms-input-color.mjs +119 -0
- package/fesm2022/sd-angular-core-forms-input-color.mjs.map +1 -0
- package/fesm2022/sd-angular-core-forms-input-number.mjs +72 -14
- package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input.mjs +96 -29
- package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-models.mjs +107 -2
- package/fesm2022/sd-angular-core-forms-models.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-radio.mjs +134 -174
- package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-select.mjs +74 -23
- package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-switch.mjs +98 -96
- package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-textarea.mjs +39 -12
- package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
- package/fesm2022/sd-angular-core-i18n.mjs +270 -20
- package/fesm2022/sd-angular-core-i18n.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-auth.mjs +4 -4
- package/fesm2022/sd-angular-core-modules-auth.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-authom.mjs +1 -1
- package/fesm2022/sd-angular-core-modules-authom.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-layout.mjs +23 -23
- package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-permission.mjs +3 -3
- package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
- package/fesm2022/sd-angular-core-pipes.mjs +2 -2
- package/fesm2022/sd-angular-core-pipes.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-api.mjs +3 -3
- package/fesm2022/sd-angular-core-services-api.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-cache.mjs +3 -2
- package/fesm2022/sd-angular-core-services-cache.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-confirm.mjs +1 -1
- package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-excel.mjs +6 -5
- package/fesm2022/sd-angular-core-services-excel.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-notify.mjs +18 -5
- package/fesm2022/sd-angular-core-services-notify.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-storage.mjs +2 -2
- package/fesm2022/sd-angular-core-services-storage.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-data-state.mjs +38 -0
- package/fesm2022/sd-angular-core-utilities-data-state.mjs.map +1 -0
- package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities.mjs +1 -0
- package/fesm2022/sd-angular-core-utilities.mjs.map +1 -1
- package/forms/autocomplete/src/autocomplete.component.d.ts +29 -10
- package/forms/checkbox/src/checkbox.component.d.ts +24 -20
- package/forms/chip/src/chip.component.d.ts +29 -20
- package/forms/chip-calendar/src/chip-calendar.component.d.ts +31 -22
- package/forms/date/src/date.component.d.ts +27 -9
- package/forms/date-range/src/date-range.component.d.ts +32 -5
- package/forms/datetime/src/datetime.component.d.ts +25 -8
- package/forms/directives/src/item-def.directive.d.ts +10 -5
- package/forms/directives/src/label-def.directive.d.ts +3 -2
- package/forms/directives/src/suffix-def.directive.d.ts +3 -2
- package/forms/directives/src/view-def.directive.d.ts +9 -9
- package/forms/inline-text/index.d.ts +1 -0
- package/forms/inline-text/src/inline-text.component.d.ts +76 -0
- package/forms/input/src/input.component.d.ts +35 -13
- package/forms/input-color/index.d.ts +1 -0
- package/forms/input-color/src/input-color.component.d.ts +34 -0
- package/forms/input-number/src/input-number.component.d.ts +31 -11
- package/forms/models/index.d.ts +2 -0
- package/forms/models/src/form-control-state.d.ts +23 -0
- package/forms/models/src/sd-custom-validator.model.d.ts +13 -1
- package/forms/models/src/sd-viewed.d.ts +38 -0
- package/forms/radio/src/radio.component.d.ts +37 -35
- package/forms/select/src/select.component.d.ts +41 -14
- package/forms/switch/src/switch.component.d.ts +25 -23
- package/forms/textarea/src/textarea.component.d.ts +22 -8
- package/i18n/src/en.d.ts +50 -3
- package/modules/auth/configurations/auth.configuration.d.ts +4 -4
- package/modules/layout/configurations/layout.configuration.d.ts +3 -3
- package/modules/permission/src/configurations/permission.configuration.d.ts +3 -3
- package/package.json +89 -49
- package/sd-angular-core-19.0.3.tgz +0 -0
- package/services/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.d.ts +3 -3
- package/services/confirm/src/lib/confirm.service.d.ts +9 -9
- package/services/notify/src/components/toast/toast.component.d.ts +4 -0
- package/utilities/data-state/index.d.ts +1 -0
- package/utilities/data-state/src/data-state.d.ts +11 -0
- package/utilities/index.d.ts +1 -0
- package/utilities/models/src/icon.model.d.ts +1 -1
- package/assets/scss/bootstrap-4.6.2/_alert.scss +0 -52
- package/assets/scss/bootstrap-4.6.2/_badge.scss +0 -54
- package/assets/scss/bootstrap-4.6.2/_breadcrumb.scss +0 -42
- package/assets/scss/bootstrap-4.6.2/_button-group.scss +0 -163
- package/assets/scss/bootstrap-4.6.2/_buttons.scss +0 -142
- package/assets/scss/bootstrap-4.6.2/_card.scss +0 -286
- package/assets/scss/bootstrap-4.6.2/_carousel.scss +0 -200
- package/assets/scss/bootstrap-4.6.2/_close.scss +0 -40
- package/assets/scss/bootstrap-4.6.2/_code.scss +0 -48
- package/assets/scss/bootstrap-4.6.2/_custom-forms.scss +0 -526
- package/assets/scss/bootstrap-4.6.2/_dropdown.scss +0 -192
- package/assets/scss/bootstrap-4.6.2/_forms.scss +0 -347
- package/assets/scss/bootstrap-4.6.2/_functions.scss +0 -190
- package/assets/scss/bootstrap-4.6.2/_grid.scss +0 -73
- package/assets/scss/bootstrap-4.6.2/_images.scss +0 -42
- package/assets/scss/bootstrap-4.6.2/_input-group.scss +0 -211
- package/assets/scss/bootstrap-4.6.2/_jumbotron.scss +0 -17
- package/assets/scss/bootstrap-4.6.2/_list-group.scss +0 -154
- package/assets/scss/bootstrap-4.6.2/_media.scss +0 -8
- package/assets/scss/bootstrap-4.6.2/_mixins.scss +0 -47
- package/assets/scss/bootstrap-4.6.2/_modal.scss +0 -240
- package/assets/scss/bootstrap-4.6.2/_nav.scss +0 -125
- package/assets/scss/bootstrap-4.6.2/_navbar.scss +0 -332
- package/assets/scss/bootstrap-4.6.2/_pagination.scss +0 -74
- package/assets/scss/bootstrap-4.6.2/_popover.scss +0 -170
- package/assets/scss/bootstrap-4.6.2/_print.scss +0 -132
- package/assets/scss/bootstrap-4.6.2/_progress.scss +0 -47
- package/assets/scss/bootstrap-4.6.2/_reboot.scss +0 -484
- package/assets/scss/bootstrap-4.6.2/_root.scss +0 -19
- package/assets/scss/bootstrap-4.6.2/_spinners.scss +0 -65
- package/assets/scss/bootstrap-4.6.2/_tables.scss +0 -185
- package/assets/scss/bootstrap-4.6.2/_toasts.scss +0 -46
- package/assets/scss/bootstrap-4.6.2/_tooltip.scss +0 -115
- package/assets/scss/bootstrap-4.6.2/_transitions.scss +0 -26
- package/assets/scss/bootstrap-4.6.2/_type.scss +0 -125
- package/assets/scss/bootstrap-4.6.2/_utilities.scss +0 -18
- package/assets/scss/bootstrap-4.6.2/_variables.scss +0 -1150
- package/assets/scss/bootstrap-4.6.2/bootstrap-grid.scss +0 -30
- package/assets/scss/bootstrap-4.6.2/bootstrap-reboot.scss +0 -12
- package/assets/scss/bootstrap-4.6.2/bootstrap.scss +0 -44
- package/assets/scss/bootstrap-4.6.2/mixins/_alert.scss +0 -13
- package/assets/scss/bootstrap-4.6.2/mixins/_background-variant.scss +0 -23
- package/assets/scss/bootstrap-4.6.2/mixins/_badge.scss +0 -17
- package/assets/scss/bootstrap-4.6.2/mixins/_border-radius.scss +0 -76
- package/assets/scss/bootstrap-4.6.2/mixins/_box-shadow.scss +0 -20
- package/assets/scss/bootstrap-4.6.2/mixins/_breakpoints.scss +0 -123
- package/assets/scss/bootstrap-4.6.2/mixins/_buttons.scss +0 -110
- package/assets/scss/bootstrap-4.6.2/mixins/_caret.scss +0 -62
- package/assets/scss/bootstrap-4.6.2/mixins/_clearfix.scss +0 -7
- package/assets/scss/bootstrap-4.6.2/mixins/_deprecate.scss +0 -10
- package/assets/scss/bootstrap-4.6.2/mixins/_float.scss +0 -14
- package/assets/scss/bootstrap-4.6.2/mixins/_forms.scss +0 -195
- package/assets/scss/bootstrap-4.6.2/mixins/_gradients.scss +0 -45
- package/assets/scss/bootstrap-4.6.2/mixins/_grid-framework.scss +0 -80
- package/assets/scss/bootstrap-4.6.2/mixins/_grid.scss +0 -69
- package/assets/scss/bootstrap-4.6.2/mixins/_hover.scss +0 -37
- package/assets/scss/bootstrap-4.6.2/mixins/_image.scss +0 -36
- package/assets/scss/bootstrap-4.6.2/mixins/_list-group.scss +0 -21
- package/assets/scss/bootstrap-4.6.2/mixins/_lists.scss +0 -7
- package/assets/scss/bootstrap-4.6.2/mixins/_nav-divider.scss +0 -11
- package/assets/scss/bootstrap-4.6.2/mixins/_pagination.scss +0 -22
- package/assets/scss/bootstrap-4.6.2/mixins/_reset-text.scss +0 -17
- package/assets/scss/bootstrap-4.6.2/mixins/_resize.scss +0 -6
- package/assets/scss/bootstrap-4.6.2/mixins/_screen-reader.scss +0 -34
- package/assets/scss/bootstrap-4.6.2/mixins/_size.scss +0 -7
- package/assets/scss/bootstrap-4.6.2/mixins/_table-row.scss +0 -39
- package/assets/scss/bootstrap-4.6.2/mixins/_text-emphasis.scss +0 -17
- package/assets/scss/bootstrap-4.6.2/mixins/_text-hide.scss +0 -11
- package/assets/scss/bootstrap-4.6.2/mixins/_text-truncate.scss +0 -8
- package/assets/scss/bootstrap-4.6.2/mixins/_transition.scss +0 -26
- package/assets/scss/bootstrap-4.6.2/mixins/_visibility.scss +0 -8
- package/assets/scss/bootstrap-4.6.2/utilities/_align.scss +0 -8
- package/assets/scss/bootstrap-4.6.2/utilities/_background.scss +0 -19
- package/assets/scss/bootstrap-4.6.2/utilities/_borders.scss +0 -75
- package/assets/scss/bootstrap-4.6.2/utilities/_clearfix.scss +0 -3
- package/assets/scss/bootstrap-4.6.2/utilities/_display.scss +0 -26
- package/assets/scss/bootstrap-4.6.2/utilities/_embed.scss +0 -39
- package/assets/scss/bootstrap-4.6.2/utilities/_flex.scss +0 -51
- package/assets/scss/bootstrap-4.6.2/utilities/_float.scss +0 -11
- package/assets/scss/bootstrap-4.6.2/utilities/_interactions.scss +0 -5
- package/assets/scss/bootstrap-4.6.2/utilities/_overflow.scss +0 -5
- package/assets/scss/bootstrap-4.6.2/utilities/_position.scss +0 -32
- package/assets/scss/bootstrap-4.6.2/utilities/_screenreaders.scss +0 -11
- package/assets/scss/bootstrap-4.6.2/utilities/_shadows.scss +0 -6
- package/assets/scss/bootstrap-4.6.2/utilities/_sizing.scss +0 -20
- package/assets/scss/bootstrap-4.6.2/utilities/_spacing.scss +0 -73
- package/assets/scss/bootstrap-4.6.2/utilities/_stretched-link.scss +0 -19
- package/assets/scss/bootstrap-4.6.2/utilities/_text.scss +0 -72
- package/assets/scss/bootstrap-4.6.2/utilities/_visibility.scss +0 -13
- package/assets/scss/bootstrap-4.6.2/vendor/_rfs.scss +0 -228
- package/assets/scss/core/bootstrap.scss +0 -13
- package/components/anchor/src/components/anchor-vertical/anchor-vertical-list.component.d.ts +0 -18
- package/components/table/src/components/column-filter/column-filter.component.d.ts +0 -40
- package/components/table/src/components/desktop-command/desktop-command.component.d.ts +0 -15
- package/components/table/src/components/external-filter/external-filter.component.d.ts +0 -36
- package/components/table/src/pipes/command-disable.pipe.d.ts +0 -9
- package/components/table/src/pipes/command-filter.pipe.d.ts +0 -25
- package/components/table/src/pipes/command-title.pipe.d.ts +0 -9
- package/sd-angular-core-19.0.0-beta.98.tgz +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Three display states shared by sd-form-controls:
|
|
4
|
+
* - `false` → full edit chrome (input / dropdown).
|
|
5
|
+
* - `true` → static read-only view (`<sd-view>` text), no editor.
|
|
6
|
+
* - `'inline'` → the editor is STILL rendered (so its panel works), but its chrome is
|
|
7
|
+
* hidden; the `<sd-view>` text is the visible face / trigger. Click the text to open
|
|
8
|
+
* the picker's panel. The text is retained while the panel is open — it only changes
|
|
9
|
+
* when a new value is committed (JIRA-style click-to-edit).
|
|
10
|
+
*/
|
|
11
|
+
export type SdViewed = boolean | 'inline';
|
|
12
|
+
export type SdViewedInput = SdViewed | '' | null | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* `viewed` input transform. Keeps `booleanAttribute` coercion so a bare attribute
|
|
15
|
+
* (`<sd-select viewed>`) still resolves to `true`, but intercepts the literal
|
|
16
|
+
* `'inline'` first — `booleanAttribute('inline')` would otherwise coerce it to `true`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function sdViewedTransform(v: SdViewedInput): SdViewed;
|
|
19
|
+
export interface SdViewedInlineApi {
|
|
20
|
+
/** `viewed() === 'inline'` — editor rendered but chrome hidden; sd-view text is the trigger face. */
|
|
21
|
+
readonly isInline: Signal<boolean>;
|
|
22
|
+
/** `viewed() === true` — static read-only view (no editor rendered). */
|
|
23
|
+
readonly isViewed: Signal<boolean>;
|
|
24
|
+
/** Open the picker from the inline text face. No-op unless `'inline'`. */
|
|
25
|
+
enterInlineEdit(): void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Compose the tri-state `viewed` semantics into a control. `open` opens the control's
|
|
29
|
+
* native picker (mat-select panel / mat-calendar / overlay). In `'inline'` mode the editor
|
|
30
|
+
* is always rendered (chrome hidden via CSS), so `open()` can fire immediately on click —
|
|
31
|
+
* no render-swap, the view text never disappears.
|
|
32
|
+
*
|
|
33
|
+
* @param viewed the control's `viewed` input signal.
|
|
34
|
+
* @param open opens the control's picker; called by `enterInlineEdit`.
|
|
35
|
+
* @param disabled the control's disabled state. why: a disabled `'inline'` field must behave
|
|
36
|
+
* like `viewed=true` (static, NOT click-to-edit) — you can't edit a disabled control.
|
|
37
|
+
*/
|
|
38
|
+
export declare function sdViewedInline(viewed: Signal<SdViewed>, open?: () => void, disabled?: Signal<boolean>): SdViewedInlineApi;
|
|
@@ -1,50 +1,52 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
2
|
-
import { FormGroup
|
|
1
|
+
import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
3
|
import { SdLabelDefDirective, SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
4
|
-
import { SdFormControl } from '@sd-angular/core/forms/models';
|
|
4
|
+
import { SdFormControl, SdViewed, SdViewedInput } from '@sd-angular/core/forms/models';
|
|
5
|
+
import { Color } from '@sdcorejs/utils/models';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
|
|
7
8
|
#private;
|
|
8
|
-
ref: ChangeDetectorRef;
|
|
9
9
|
id: string;
|
|
10
|
-
readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
11
|
-
readonly autoId: import("@angular/core").Signal<string | undefined>;
|
|
12
|
-
set name(val: string | undefined);
|
|
13
10
|
formControl: SdFormControl;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
items: any[]
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
hyperlink
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
sdChange:
|
|
37
|
-
sdSelection:
|
|
11
|
+
readonly autoIdInput: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
12
|
+
readonly name: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
13
|
+
readonly form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
14
|
+
readonly label: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
15
|
+
readonly placeholder: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
16
|
+
readonly display: import("@angular/core").InputSignalWithTransform<"row" | "column", "row" | "column" | null | undefined>;
|
|
17
|
+
readonly items: import("@angular/core").InputSignalWithTransform<any[], any[] | null | undefined>;
|
|
18
|
+
readonly valueField: import("@angular/core").InputSignal<string>;
|
|
19
|
+
readonly displayField: import("@angular/core").InputSignal<string>;
|
|
20
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
21
|
+
readonly inlineError: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
22
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
23
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` interactive (disabled `'inline'` → static). */
|
|
24
|
+
readonly viewed: import("@angular/core").InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
25
|
+
/** `true` when the static read-only view should render. */
|
|
26
|
+
readonly isViewed: import("@angular/core").Signal<boolean>;
|
|
27
|
+
readonly color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
|
|
28
|
+
readonly hyperlink: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
29
|
+
readonly model: import("@angular/core").ModelSignal<string | number | boolean | null | undefined>;
|
|
30
|
+
readonly sdSuffixDef: import("@angular/core").Signal<SdSuffixDefDirective | undefined>;
|
|
31
|
+
readonly sdLabelDef: import("@angular/core").Signal<SdLabelDefDirective | undefined>;
|
|
32
|
+
readonly sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
|
|
33
|
+
readonly sdChange: import("@angular/core").OutputEmitterRef<unknown>;
|
|
34
|
+
readonly sdSelection: import("@angular/core").OutputEmitterRef<{
|
|
38
35
|
value: any | any[];
|
|
39
36
|
item?: any;
|
|
40
37
|
}>;
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
readonly autoId: import("@angular/core").Signal<string | undefined>;
|
|
39
|
+
readonly normalizedItems: import("@angular/core").Signal<any[]>;
|
|
40
|
+
readonly dataDisabled: import("@angular/core").Signal<"true" | "false">;
|
|
41
|
+
readonly dataEmpty: import("@angular/core").Signal<"true" | "false">;
|
|
42
|
+
readonly dataValue: import("@angular/core").Signal<string>;
|
|
43
|
+
readonly dataRequired: import("@angular/core").Signal<"true" | "false">;
|
|
44
|
+
readonly viewedText: import("@angular/core").Signal<any>;
|
|
45
|
+
constructor();
|
|
43
46
|
ngOnInit(): void;
|
|
44
47
|
ngAfterViewInit(): void;
|
|
45
48
|
ngOnDestroy(): void;
|
|
46
|
-
customInlineErrorValidator(): ValidatorFn;
|
|
47
49
|
reValidate: () => void;
|
|
48
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdRadio, never>;
|
|
49
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", 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; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdSuffixDef", "sdLabelDef", "sdViewDef"], never, true, never>;
|
|
50
52
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { OnInit, // THÊM IMPORT NÀY
|
|
2
2
|
Signal, TemplateRef } from '@angular/core';
|
|
3
|
-
import { FormControl, FormGroup
|
|
3
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
4
4
|
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
|
|
5
5
|
import { MatInput } from '@angular/material/input';
|
|
6
6
|
import { MatSelect, MatSelectChange } from '@angular/material/select';
|
|
7
7
|
import { SdItemDefDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
8
|
-
import { SdCustomValidator, SdFormControl, SdSearch, SdSelectionData } from '@sd-angular/core/forms/models';
|
|
9
|
-
import {
|
|
8
|
+
import { SdCustomValidator, SdFormControl, SdSearch, SdSelectionData, SdViewed, SdViewedInput } from '@sd-angular/core/forms/models';
|
|
9
|
+
import { Size } from '@sdcorejs/utils/models';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export declare class SdSelect<T extends object | string | number = Record<string, unknown>> implements OnInit {
|
|
12
12
|
#private;
|
|
@@ -15,19 +15,33 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
15
15
|
selectRef: Signal<MatSelect | undefined>;
|
|
16
16
|
sdLabelTemplate: Signal<TemplateRef<any> | undefined>;
|
|
17
17
|
sdValueTemplate: Signal<TemplateRef<any> | undefined>;
|
|
18
|
-
itemDef: Signal<SdItemDefDefDirective | undefined>;
|
|
19
|
-
sdViewDef: Signal<SdViewDefDirective | undefined>;
|
|
18
|
+
itemDef: Signal<SdItemDefDefDirective<any> | undefined>;
|
|
19
|
+
sdViewDef: Signal<SdViewDefDirective<any, any> | undefined>;
|
|
20
|
+
/**
|
|
21
|
+
* View display template. `sdViewDef` is now just a custom override of the view rendering —
|
|
22
|
+
* it replaces the projected `#sdValue` template when present (fed into `<sd-view>`'s
|
|
23
|
+
* `valueTemplate`), so there is ONE rendering path. No more `.sd-view` class / focus-swap;
|
|
24
|
+
* click-to-edit is governed by `viewed='inline'`.
|
|
25
|
+
*/
|
|
26
|
+
readonly viewTemplate: Signal<TemplateRef<any> | undefined>;
|
|
20
27
|
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
21
28
|
autoId: Signal<string | undefined>;
|
|
29
|
+
readonly dataDisabled: Signal<"true" | "false">;
|
|
30
|
+
readonly dataInvalid: Signal<"true" | "false">;
|
|
31
|
+
readonly dataEmpty: Signal<"true" | "false">;
|
|
32
|
+
readonly dataValue: Signal<string>;
|
|
33
|
+
readonly dataLoading: Signal<"true" | "false">;
|
|
34
|
+
readonly dataRequired: Signal<"true" | "false">;
|
|
35
|
+
readonly dataErrorMessage: Signal<string | null>;
|
|
22
36
|
name: import("@angular/core").InputSignal<string>;
|
|
23
|
-
size: import("@angular/core").InputSignal<
|
|
37
|
+
size: import("@angular/core").InputSignal<Size>;
|
|
24
38
|
form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
25
39
|
label: import("@angular/core").InputSignal<string | undefined>;
|
|
26
40
|
helperText: import("@angular/core").InputSignal<string | undefined>;
|
|
27
41
|
placeholder: import("@angular/core").InputSignal<string | undefined>;
|
|
28
|
-
valueField: import("@angular/core").InputSignal<
|
|
29
|
-
displayField: import("@angular/core").InputSignal<
|
|
30
|
-
disabledField: import("@angular/core").InputSignal<"" |
|
|
42
|
+
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>;
|
|
43
|
+
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>;
|
|
44
|
+
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)>;
|
|
31
45
|
cacheChecksum: import("@angular/core").InputSignal<any>;
|
|
32
46
|
limit: import("@angular/core").InputSignal<number>;
|
|
33
47
|
hyperlink: import("@angular/core").InputSignal<string | null | undefined>;
|
|
@@ -35,15 +49,27 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
35
49
|
hideInlineError: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
36
50
|
required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
37
51
|
disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
38
|
-
|
|
52
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` view + click-to-edit (bare editor). */
|
|
53
|
+
viewed: import("@angular/core").InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
39
54
|
multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the `viewed='inline'` text face shows a hover clear-× to empty the value.
|
|
57
|
+
* Default `true`. Set `false` where the HOST owns removal (e.g. `<sd-query-bar>` chips,
|
|
58
|
+
* whose own `×` removes the whole filter) so the chip isn't cluttered with two ×.
|
|
59
|
+
*/
|
|
60
|
+
clearable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
61
|
+
/** `true` when `viewed === 'inline'` — editor mounted but chrome hidden; sd-view text is the trigger face. */
|
|
62
|
+
readonly isInline: Signal<boolean>;
|
|
63
|
+
/** `true` when `viewed === true` — static read-only view, no editor mounted. */
|
|
64
|
+
readonly isViewed: Signal<boolean>;
|
|
65
|
+
/** Open the picker from the inline text face. No-op unless `viewed='inline'`. */
|
|
66
|
+
enterInlineEdit: () => void;
|
|
40
67
|
validator: import("@angular/core").InputSignal<SdCustomValidator | undefined>;
|
|
41
68
|
inlineError: import("@angular/core").InputSignal<string | undefined>;
|
|
42
69
|
/**
|
|
43
70
|
* Tổng hợp error message để hiển thị trong tooltip khi hideInlineError = true.
|
|
44
|
-
* Dùng getter (không phải computed) vì formControl.errors không phải Angular signal.
|
|
45
71
|
*/
|
|
46
|
-
|
|
72
|
+
readonly errorMessage: Signal<string | undefined>;
|
|
47
73
|
appearanceInput: import("@angular/core").InputSignal<MatFormFieldAppearance | undefined>;
|
|
48
74
|
appearance: Signal<MatFormFieldAppearance>;
|
|
49
75
|
floatLabel: import("@angular/core").InputSignal<FloatLabelType>;
|
|
@@ -72,13 +98,14 @@ export declare class SdSelect<T extends object | string | number = Record<string
|
|
|
72
98
|
updatePanelWidth: () => void;
|
|
73
99
|
constructor();
|
|
74
100
|
ngOnInit(): void;
|
|
75
|
-
customInlineErrorValidator(): ValidatorFn;
|
|
76
101
|
onSelectionChange: (change: MatSelectChange) => void;
|
|
77
102
|
reValidate: () => void;
|
|
78
103
|
clear: ($event?: any) => void;
|
|
79
104
|
onClick: () => void;
|
|
80
105
|
focus: () => void;
|
|
106
|
+
/** Open the select panel programmatically (anchors to the mat-select trigger). */
|
|
107
|
+
open: () => void;
|
|
81
108
|
onOpenedChange: (isOpened: boolean) => void;
|
|
82
109
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSelect<any>, never>;
|
|
83
|
-
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": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "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; }; "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", "itemDef", "sdViewDef"], ["[sdLabel]"], true, never>;
|
|
110
|
+
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": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "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; }; "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", "itemDef", "sdViewDef"], ["[sdLabel]"], true, never>;
|
|
84
111
|
}
|
|
@@ -1,33 +1,35 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
2
|
-
import { FormGroup
|
|
3
|
-
import { SdFormControl } from '@sd-angular/core/forms/models';
|
|
4
|
-
import {
|
|
1
|
+
import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { SdFormControl, SdViewed, SdViewedInput } from '@sd-angular/core/forms/models';
|
|
4
|
+
import { Color } from '@sdcorejs/utils/models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class SdSwitch implements OnInit, AfterViewInit, OnDestroy {
|
|
7
7
|
#private;
|
|
8
|
-
private ref;
|
|
9
8
|
id: string;
|
|
10
|
-
readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
11
|
-
readonly autoId: import("@angular/core").Signal<string | undefined>;
|
|
12
|
-
set _name(val: string | undefined);
|
|
13
|
-
set form(val: NgForm | FormGroup | undefined | null);
|
|
14
|
-
label?: string;
|
|
15
|
-
set _label(val: string | undefined);
|
|
16
|
-
color?: SdColor;
|
|
17
|
-
set _color(val: SdColor | undefined | null);
|
|
18
|
-
set disabled(val: boolean | '' | undefined | null);
|
|
19
|
-
set model(value: boolean | undefined | null);
|
|
20
|
-
modelChange: EventEmitter<any>;
|
|
21
|
-
hideInlineError: boolean;
|
|
22
|
-
set _hideInlineError(val: boolean | '');
|
|
23
|
-
required: boolean;
|
|
24
|
-
set _required(val: boolean | '' | undefined | null);
|
|
25
|
-
sdChange: EventEmitter<any>;
|
|
26
9
|
formControl: SdFormControl;
|
|
27
|
-
|
|
10
|
+
readonly autoIdInput: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
11
|
+
readonly name: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
12
|
+
readonly form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
13
|
+
readonly label: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
14
|
+
readonly color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
|
|
15
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
16
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` interactive (disabled `'inline'` → static). */
|
|
17
|
+
readonly viewed: import("@angular/core").InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
18
|
+
/** `true` when the static read-only view should render. */
|
|
19
|
+
readonly isViewed: import("@angular/core").Signal<boolean>;
|
|
20
|
+
readonly hideInlineError: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
21
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
22
|
+
readonly model: import("@angular/core").ModelSignal<boolean | null | undefined>;
|
|
23
|
+
readonly sdChange: import("@angular/core").OutputEmitterRef<unknown>;
|
|
24
|
+
readonly autoId: import("@angular/core").Signal<string | undefined>;
|
|
25
|
+
readonly dataDisabled: import("@angular/core").Signal<"true" | "false">;
|
|
26
|
+
readonly dataEmpty: import("@angular/core").Signal<"true" | "false">;
|
|
27
|
+
readonly dataValue: import("@angular/core").Signal<string>;
|
|
28
|
+
readonly dataRequired: import("@angular/core").Signal<"true" | "false">;
|
|
29
|
+
constructor();
|
|
28
30
|
ngOnInit(): void;
|
|
29
31
|
ngAfterViewInit(): void;
|
|
30
32
|
ngOnDestroy(): void;
|
|
31
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSwitch, never>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdSwitch, "sd-switch", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdSwitch, "sd-switch", 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; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
|
|
33
35
|
}
|
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
import { AfterViewInit, ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { FormGroup
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
3
|
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
|
|
4
4
|
import { SdLabelDefDirective, SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
|
|
5
|
-
import { SdCustomValidator, SdFormControl } from '@sd-angular/core/forms/models';
|
|
5
|
+
import { SdCustomValidator, SdFormControl, SdViewed, SdViewedInput } from '@sd-angular/core/forms/models';
|
|
6
|
+
import { Size } from '@sdcorejs/utils/models';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
8
9
|
#private;
|
|
9
10
|
id: string;
|
|
10
11
|
textareaRef: import("@angular/core").Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
11
|
-
sdViewDef: import("@angular/core").Signal<SdViewDefDirective | undefined>;
|
|
12
|
+
sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
|
|
12
13
|
sdLabelDef: import("@angular/core").Signal<SdLabelDefDirective | undefined>;
|
|
13
14
|
sdSuffixDef: import("@angular/core").Signal<SdSuffixDefDirective | undefined>;
|
|
14
15
|
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
15
16
|
autoId: import("@angular/core").Signal<string | undefined>;
|
|
17
|
+
readonly dataDisabled: import("@angular/core").Signal<"true" | "false">;
|
|
18
|
+
readonly dataInvalid: import("@angular/core").Signal<"true" | "false">;
|
|
19
|
+
readonly dataEmpty: import("@angular/core").Signal<"true" | "false">;
|
|
20
|
+
readonly dataValue: import("@angular/core").Signal<string>;
|
|
21
|
+
readonly dataRequired: import("@angular/core").Signal<"true" | "false">;
|
|
22
|
+
readonly dataMaxLength: import("@angular/core").Signal<string | null>;
|
|
23
|
+
readonly dataPattern: import("@angular/core").Signal<string | null>;
|
|
24
|
+
readonly dataErrorMessage: import("@angular/core").Signal<string | null>;
|
|
16
25
|
name: import("@angular/core").InputSignal<string>;
|
|
17
|
-
size: import("@angular/core").InputSignal<
|
|
26
|
+
size: import("@angular/core").InputSignal<Size>;
|
|
18
27
|
form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
|
|
19
28
|
label: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
20
29
|
helperText: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
@@ -23,17 +32,23 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
|
23
32
|
hideInlineError: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
24
33
|
required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
25
34
|
disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
26
|
-
|
|
35
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` borderless inline-edit (textarea reads like text). */
|
|
36
|
+
viewed: import("@angular/core").InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
27
37
|
autoHeight: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
38
|
+
/** `true` when `viewed === 'inline'`. */
|
|
39
|
+
readonly isInline: import("@angular/core").Signal<boolean>;
|
|
40
|
+
/** `true` when `viewed === true` (static view, no editor). */
|
|
41
|
+
readonly isViewed: import("@angular/core").Signal<boolean>;
|
|
42
|
+
/** Focus the inline textarea. No-op unless `viewed='inline'`. */
|
|
43
|
+
enterInlineEdit: () => void;
|
|
28
44
|
maxlength: import("@angular/core").InputSignalWithTransform<number | null, unknown>;
|
|
29
45
|
pattern: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
30
46
|
validator: import("@angular/core").InputSignal<SdCustomValidator | undefined>;
|
|
31
47
|
inlineError: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
32
48
|
/**
|
|
33
49
|
* Tổng hợp error message để hiển thị trong tooltip khi hideInlineError = true.
|
|
34
|
-
* Dùng getter (không phải computed) vì formControl.errors không phải Angular signal.
|
|
35
50
|
*/
|
|
36
|
-
|
|
51
|
+
readonly errorMessage: import("@angular/core").Signal<string | undefined>;
|
|
37
52
|
appearanceInput: import("@angular/core").InputSignal<MatFormFieldAppearance | undefined>;
|
|
38
53
|
appearance: import("@angular/core").Signal<MatFormFieldAppearance>;
|
|
39
54
|
floatLabel: import("@angular/core").InputSignal<FloatLabelType>;
|
|
@@ -50,7 +65,6 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
|
50
65
|
onClick: () => void;
|
|
51
66
|
blur: () => void;
|
|
52
67
|
focus: () => void;
|
|
53
|
-
customInlineErrorValidator(): ValidatorFn;
|
|
54
68
|
getCurrentLength: () => number;
|
|
55
69
|
isMaxlengthExceeded: () => boolean;
|
|
56
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdTextarea, never>;
|
package/i18n/src/en.d.ts
CHANGED
|
@@ -8,15 +8,51 @@ export declare const EN_MESSAGES: {
|
|
|
8
8
|
readonly 'core.validator.phone.name': "Phone";
|
|
9
9
|
readonly 'core.validator.phone.error': "Invalid phone number";
|
|
10
10
|
readonly 'core.validator.phone-vn.name': "VN phone";
|
|
11
|
-
readonly 'core.validator.phone-vn.error': "Invalid phone number";
|
|
11
|
+
readonly 'core.validator.phone-vn.error': "Invalid Vietnamese phone number";
|
|
12
12
|
readonly 'core.validator.cccd.name': "National ID";
|
|
13
13
|
readonly 'core.validator.cccd.error': "Invalid national ID (12 digits)";
|
|
14
|
-
readonly 'core.validator.passport.name': "Passport";
|
|
15
|
-
readonly 'core.validator.passport.error': "Invalid passport (1 letter + 7 digits)";
|
|
16
14
|
readonly 'core.validator.id-vn.name': "National ID / Passport";
|
|
17
15
|
readonly 'core.validator.id-vn.error': "Invalid national ID or passport";
|
|
16
|
+
readonly 'core.validator.vn-phone.name': "VN phone";
|
|
17
|
+
readonly 'core.validator.vn-phone.error': "Invalid Vietnamese phone number";
|
|
18
|
+
readonly 'core.validator.vn-id.name': "National ID";
|
|
19
|
+
readonly 'core.validator.vn-id.error': "Invalid national ID (12 digits)";
|
|
20
|
+
readonly 'core.validator.passport.name': "Passport";
|
|
21
|
+
readonly 'core.validator.passport.error': "Invalid passport (1 letter + 7 digits)";
|
|
22
|
+
readonly 'core.validator.vn-id-or-passport.name': "National ID / Passport";
|
|
23
|
+
readonly 'core.validator.vn-id-or-passport.error': "Invalid national ID or passport";
|
|
18
24
|
readonly 'core.validator.time.name': "Time";
|
|
19
25
|
readonly 'core.validator.time.error': "Invalid time (format HH:mm)";
|
|
26
|
+
readonly 'core.validator.url.name': "URL";
|
|
27
|
+
readonly 'core.validator.url.error': "Invalid URL";
|
|
28
|
+
readonly 'core.validator.domain.name': "Domain";
|
|
29
|
+
readonly 'core.validator.domain.error': "Invalid domain";
|
|
30
|
+
readonly 'core.validator.ipv4.name': "IPv4";
|
|
31
|
+
readonly 'core.validator.ipv4.error': "Invalid IPv4 address";
|
|
32
|
+
readonly 'core.validator.ipv6.name': "IPv6";
|
|
33
|
+
readonly 'core.validator.ipv6.error': "Invalid IPv6 address";
|
|
34
|
+
readonly 'core.validator.image-url.name': "Image URL";
|
|
35
|
+
readonly 'core.validator.image-url.error': "Invalid image URL";
|
|
36
|
+
readonly 'core.validator.slug.name': "Slug";
|
|
37
|
+
readonly 'core.validator.slug.error': "Invalid slug";
|
|
38
|
+
readonly 'core.validator.number.name': "Number";
|
|
39
|
+
readonly 'core.validator.number.error': "Invalid number";
|
|
40
|
+
readonly 'core.validator.integer.name': "Integer";
|
|
41
|
+
readonly 'core.validator.integer.error': "Invalid integer";
|
|
42
|
+
readonly 'core.validator.decimal.name': "Decimal";
|
|
43
|
+
readonly 'core.validator.decimal.error': "Invalid decimal number";
|
|
44
|
+
readonly 'core.validator.positive-number.name': "Positive number";
|
|
45
|
+
readonly 'core.validator.positive-number.error': "Must be a positive number";
|
|
46
|
+
readonly 'core.validator.uuid.name': "UUID";
|
|
47
|
+
readonly 'core.validator.uuid.error': "Invalid UUID";
|
|
48
|
+
readonly 'core.validator.code-16.name': "16-char code";
|
|
49
|
+
readonly 'core.validator.code-16.error': "Invalid 16-character code";
|
|
50
|
+
readonly 'core.validator.code-32.name': "32-char code";
|
|
51
|
+
readonly 'core.validator.code-32.error': "Invalid 32-character code";
|
|
52
|
+
readonly 'core.validator.hex-color.name': "Hex color";
|
|
53
|
+
readonly 'core.validator.hex-color.error': "Invalid hex color";
|
|
54
|
+
readonly 'core.validator.base64.name': "Base64";
|
|
55
|
+
readonly 'core.validator.base64.error': "Invalid Base64 string";
|
|
20
56
|
readonly 'core.operator.equal.display': "Equal";
|
|
21
57
|
readonly 'core.operator.not-equal.display': "Not equal";
|
|
22
58
|
readonly 'core.operator.greater-than.display': "Greater than";
|
|
@@ -26,9 +62,12 @@ export declare const EN_MESSAGES: {
|
|
|
26
62
|
readonly 'core.operator.contain.display': "Contains";
|
|
27
63
|
readonly 'core.operator.not-contain.display': "Does not contain";
|
|
28
64
|
readonly 'core.operator.start-with.display': "Starts with";
|
|
65
|
+
readonly 'core.operator.not-start-with.display': "Does not start with";
|
|
29
66
|
readonly 'core.operator.end-with.display': "Ends with";
|
|
67
|
+
readonly 'core.operator.not-end-with.display': "Does not end with";
|
|
30
68
|
readonly 'core.operator.in.display': "In";
|
|
31
69
|
readonly 'core.operator.not-in.display': "Not in";
|
|
70
|
+
readonly 'core.operator.between.display': "Between";
|
|
32
71
|
readonly 'core.operator.null.display': "Is empty";
|
|
33
72
|
readonly 'core.operator.not-null.display': "Is not empty";
|
|
34
73
|
readonly 'core.handler.global-error.update-title': "A NEW SYSTEM UPDATE IS AVAILABLE";
|
|
@@ -94,6 +133,10 @@ export declare const EN_MESSAGES: {
|
|
|
94
133
|
readonly 'core.form.input-number.min': "Value must not be less than {min}";
|
|
95
134
|
readonly 'core.form.input-number.max': "Value must not be greater than {max}";
|
|
96
135
|
readonly 'core.form.radio.required': "Please enter information";
|
|
136
|
+
readonly 'core.form.switch.on': "On";
|
|
137
|
+
readonly 'core.form.switch.off': "Off";
|
|
138
|
+
readonly 'core.form.checkbox.checked': "Yes";
|
|
139
|
+
readonly 'core.form.checkbox.unchecked': "No";
|
|
97
140
|
readonly 'core.form.select.required': "Please enter information";
|
|
98
141
|
readonly 'core.form.textarea.required': "Please enter information";
|
|
99
142
|
readonly 'core.form.textarea.maxlength': "Maximum characters: {max}";
|
|
@@ -204,6 +247,8 @@ export declare const EN_MESSAGES: {
|
|
|
204
247
|
readonly 'core.component.form-builder.default': "Default";
|
|
205
248
|
readonly 'core.component.form-builder.show-more': "Show more";
|
|
206
249
|
readonly 'core.component.form-builder.show-less': "Show less";
|
|
250
|
+
readonly 'core.component.inform.show-more': "Show more";
|
|
251
|
+
readonly 'core.component.inform.show-less': "Show less";
|
|
207
252
|
readonly 'core.component.form-builder.row-overflow': "Cannot move to this row because the total size exceeds 12 columns";
|
|
208
253
|
readonly 'core.component.form-builder.upload-source.all': "All";
|
|
209
254
|
readonly 'core.component.form-builder.upload-source.photo-library': "Pick from library";
|
|
@@ -219,6 +264,8 @@ export declare const EN_MESSAGES: {
|
|
|
219
264
|
readonly 'core.component.form-builder.empty-hint': "Build your form by dragging fields from the left panel, or press";
|
|
220
265
|
readonly 'core.component.form-builder.conditional': "Conditional";
|
|
221
266
|
readonly 'core.component.form-builder.group-drop-here': "Drop a field here to add it to this group";
|
|
267
|
+
readonly 'core.component.form-builder.edit-group': "Edit group";
|
|
268
|
+
readonly 'core.component.form-builder.group-empty-hint': "Click Details to add fields to this group";
|
|
222
269
|
readonly 'core.component.form-builder.hidden': "Hidden";
|
|
223
270
|
readonly 'core.component.form-builder.read-only': "Read only";
|
|
224
271
|
readonly 'core.component.form-builder.untitled': "Untitled";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
import { CanActivate } from '@angular/router';
|
|
3
|
-
import {
|
|
3
|
+
import { MaybeAsync } from '@sdcorejs/utils/models';
|
|
4
4
|
import { SdAuthInfo } from '../services';
|
|
5
5
|
export interface ISdAuthConfiguration {
|
|
6
6
|
action?: IAuthConfigurationAction;
|
|
@@ -8,12 +8,12 @@ export interface ISdAuthConfiguration {
|
|
|
8
8
|
}
|
|
9
9
|
export declare const SD_AUTH_CONFIGURATION: InjectionToken<ISdAuthConfiguration>;
|
|
10
10
|
interface IAuthConfigurationAction {
|
|
11
|
-
signout: () =>
|
|
12
|
-
changePassword?: () =>
|
|
11
|
+
signout: () => MaybeAsync<void>;
|
|
12
|
+
changePassword?: () => MaybeAsync<void>;
|
|
13
13
|
}
|
|
14
14
|
interface IAuthConfigurationGuard {
|
|
15
15
|
auth?: CanActivate['canActivate'];
|
|
16
16
|
portal?: CanActivate['canActivate'];
|
|
17
|
-
authInfo: () =>
|
|
17
|
+
authInfo: () => MaybeAsync<SdAuthInfo>;
|
|
18
18
|
}
|
|
19
19
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { MaybeAsync } from '@sdcorejs/utils/models';
|
|
3
3
|
export interface ISdLayoutConfiguration {
|
|
4
4
|
homeUrl?: string;
|
|
5
|
-
sidebar: ISdSidebarConfiguration | (() =>
|
|
6
|
-
userInfo: SdLayoutUserInfo | (() =>
|
|
5
|
+
sidebar: ISdSidebarConfiguration | (() => MaybeAsync<ISdSidebarConfiguration>);
|
|
6
|
+
userInfo: SdLayoutUserInfo | (() => MaybeAsync<SdLayoutUserInfo>);
|
|
7
7
|
signout: () => void | Promise<void>;
|
|
8
8
|
changePassword?: () => void | Promise<void>;
|
|
9
9
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { MaybeAsync } from '@sdcorejs/utils/models';
|
|
3
3
|
/**
|
|
4
4
|
* Cấu hình trung tâm cho module permission.
|
|
5
5
|
*
|
|
@@ -33,7 +33,7 @@ export interface ISdPermissionConfiguration {
|
|
|
33
33
|
* Ví dụ giá trị trả về:
|
|
34
34
|
* - `['PRODUCT_C_EMPLOYEE_VIEW', 'PRODUCT_C_EMPLOYEE_UPDATE']`
|
|
35
35
|
*/
|
|
36
|
-
loadPermissions: () =>
|
|
36
|
+
loadPermissions: () => MaybeAsync<string[]>;
|
|
37
37
|
/**
|
|
38
38
|
* Callback xử lý khi user không có quyền truy cập URL hiện tại.
|
|
39
39
|
* Thường dùng để điều hướng sang trang forbidden hoặc hiển thị thông báo.
|
|
@@ -45,7 +45,7 @@ export interface ISdPermissionConfiguration {
|
|
|
45
45
|
* Cung cấp access token hiện tại cho các tác vụ liên quan permission.
|
|
46
46
|
* Hỗ trợ trả về đồng bộ, Promise hoặc Observable.
|
|
47
47
|
*/
|
|
48
|
-
getToken?: () =>
|
|
48
|
+
getToken?: () => MaybeAsync<string | undefined | null>;
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* InjectionToken cho cấu hình permission.
|