@sd-angular/core 19.0.0-beta.99 → 19.0.4
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 +9 -11
- 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/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 +3 -3
- package/components/ckeditor-styles/index.d.ts +1 -0
- package/components/ckeditor-styles/src/ckeditor-styles.component.d.ts +25 -0
- package/components/form-generic/src/components/form-builder/form-builder.component.d.ts +13 -15
- package/components/form-generic/src/components/form-render/form-render.component.d.ts +1 -2
- package/components/form-generic/src/components/sd-feel-expression/sd-feel-expression.component.d.ts +1 -2
- 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 +2 -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/query-builder/index.d.ts +2 -0
- package/components/query-builder/src/query-builder.component.d.ts +98 -22
- package/components/query-builder/src/query-builder.model.d.ts +118 -0
- package/components/query-builder/src/query-builder.serializer.d.ts +32 -0
- package/components/section/src/section.component.d.ts +3 -3
- package/components/side-drawer/src/side-drawer.component.d.ts +1 -2
- 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 +32 -0
- package/components/tab/index.d.ts +2 -0
- package/components/tab/src/tab-group.component.d.ts +36 -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/config/config.component.d.ts +3 -1
- package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts +3 -3
- package/components/table/src/components/filter/column-filter/column-filter.component.d.ts +3 -7
- package/components/table/src/components/selector-action/selector-action.component.d.ts +3 -1
- 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 +12 -4
- package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +12 -4
- 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 +3 -3
- package/components/table/src/directives/sd-table-footer-def.directive.d.ts +12 -4
- 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 +10 -4
- 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 +11 -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 +37 -13
- package/components/upload-file/src/upload-file.component.d.ts +2 -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 +75 -49
- 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 +3 -5
- 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 +3 -2
- package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-form-generic.mjs +153 -243
- 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 +2 -2
- 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-query-builder.mjs +669 -57
- package/fesm2022/sd-angular-core-components-query-builder.mjs.map +1 -1
- 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 +2 -4
- package/fesm2022/sd-angular-core-components-section.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-side-drawer.mjs +3 -5
- 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 +138 -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 +143 -0
- package/fesm2022/sd-angular-core-components-tab.mjs.map +1 -0
- package/fesm2022/sd-angular-core-components-table.mjs +577 -225
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-upload-file.mjs +36 -25
- 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 +45 -16
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-checkbox.mjs +97 -87
- package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +92 -61
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip.mjs +89 -52
- package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date-range.mjs +63 -10
- package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date.mjs +39 -15
- package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-datetime.mjs +33 -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 +73 -15
- package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input.mjs +86 -29
- package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-models.mjs +44 -2
- package/fesm2022/sd-angular-core-forms-models.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-radio.mjs +130 -175
- package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-select.mjs +66 -23
- package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-switch.mjs +95 -98
- package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-textarea.mjs +33 -12
- package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
- package/fesm2022/sd-angular-core-i18n.mjs +65 -0
- 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 +43 -12
- 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-models.mjs.map +1 -1
- package/forms/autocomplete/src/autocomplete.component.d.ts +24 -10
- package/forms/checkbox/src/checkbox.component.d.ts +21 -20
- package/forms/chip/src/chip.component.d.ts +25 -20
- package/forms/chip-calendar/src/chip-calendar.component.d.ts +27 -22
- package/forms/date/src/date.component.d.ts +23 -9
- package/forms/date-range/src/date-range.component.d.ts +28 -5
- package/forms/datetime/src/datetime.component.d.ts +21 -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 +31 -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 +25 -9
- package/forms/models/index.d.ts +1 -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 -38
- package/forms/select/src/select.component.d.ts +36 -14
- package/forms/switch/src/switch.component.d.ts +22 -23
- package/forms/textarea/src/textarea.component.d.ts +18 -8
- package/i18n/src/en.d.ts +11 -0
- 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 +77 -41
- package/sd-angular-core-19.0.4.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 +16 -1
- package/services/notify/src/notify.model.d.ts +17 -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/table/index.d.ts.map +0 -1
- package/components/table/sd-angular-core-components-table.d.ts.map +0 -1
- package/components/table/src/components/column-title/column-title.component.d.ts.map +0 -1
- package/components/table/src/components/command/desktop-command.component.d.ts.map +0 -1
- package/components/table/src/components/command/pipes/command.pipe.d.ts.map +0 -1
- package/components/table/src/components/command/pipes/filter.pipe.d.ts.map +0 -1
- package/components/table/src/components/config/config.component.d.ts.map +0 -1
- package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts.map +0 -1
- package/components/table/src/components/desktop-cell/view/view.component.d.ts.map +0 -1
- package/components/table/src/components/filter/column-filter/column-filter.component.d.ts.map +0 -1
- package/components/table/src/components/filter/external-filter/external-filter.component.d.ts.map +0 -1
- package/components/table/src/components/filter/index.d.ts.map +0 -1
- package/components/table/src/components/filter/mobile-filter/mobile-filter.component.d.ts.map +0 -1
- package/components/table/src/components/index.d.ts.map +0 -1
- package/components/table/src/components/popup-export/popup-export.component.d.ts.map +0 -1
- package/components/table/src/components/selector-action/action-filter.pipe.d.ts.map +0 -1
- package/components/table/src/components/selector-action/selector-action.component.d.ts.map +0 -1
- package/components/table/src/configurations/index.d.ts.map +0 -1
- package/components/table/src/configurations/table.configuration.d.ts.map +0 -1
- package/components/table/src/directives/index.d.ts.map +0 -1
- package/components/table/src/directives/sd-column-resize.directive.d.ts.map +0 -1
- package/components/table/src/directives/sd-table-cell-def.directive.d.ts.map +0 -1
- package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts.map +0 -1
- package/components/table/src/directives/sd-table-expand-def.directive.d.ts.map +0 -1
- package/components/table/src/directives/sd-table-filter-def.directive.d.ts.map +0 -1
- package/components/table/src/directives/sd-table-footer-def.directive.d.ts.map +0 -1
- package/components/table/src/directives/sd-table-title-def.directive.d.ts.map +0 -1
- package/components/table/src/directives/sticky-shadow.directive.d.ts.map +0 -1
- package/components/table/src/models/index.d.ts.map +0 -1
- package/components/table/src/models/table-column.model.d.ts.map +0 -1
- package/components/table/src/models/table-command.model.d.ts.map +0 -1
- package/components/table/src/models/table-item.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-config.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-expand.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-export.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-group.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-paginate.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-reload.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-selector.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-sort.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-style.model.d.ts.map +0 -1
- package/components/table/src/models/table-option-tree.model.d.ts.map +0 -1
- package/components/table/src/models/table-option.model.d.ts.map +0 -1
- package/components/table/src/pipes/filter-values.pipe.d.ts.map +0 -1
- package/components/table/src/pipes/index.d.ts.map +0 -1
- package/components/table/src/pipes/sd-group.pipe.d.ts.map +0 -1
- package/components/table/src/pipes/sd-tree.pipe.d.ts.map +0 -1
- package/components/table/src/pipes/selection-disabled.pipe.d.ts.map +0 -1
- package/components/table/src/pipes/selection-visible-select-all.pipe.d.ts.map +0 -1
- package/components/table/src/pipes/selection-visible.pipe.d.ts.map +0 -1
- package/components/table/src/services/column-width.util.d.ts.map +0 -1
- package/components/table/src/services/config.service.d.ts.map +0 -1
- package/components/table/src/services/index.d.ts.map +0 -1
- package/components/table/src/services/table-export/table-export.service.d.ts.map +0 -1
- package/components/table/src/services/table-filter/table-filter.model.d.ts.map +0 -1
- package/components/table/src/services/table-filter/table-filter.service.d.ts.map +0 -1
- package/components/table/src/services/table-format/table-format.service.d.ts.map +0 -1
- package/components/table/src/services/tree/tree.util.d.ts.map +0 -1
- package/components/table/src/table.component.d.ts.map +0 -1
- package/sd-angular-core-19.0.0-beta.99.tgz +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Shared `viewed='inline'` styles for sd-form-controls.
|
|
2
|
+
// why: 1 nguồn cho text-face + editor ẩn (panel control) và input borderless, tránh lặp ~40 dòng/control.
|
|
3
|
+
// Bare-flatten (mat-* internals) KHÔNG nằm ở đây — khác nhau theo control, giữ trong scss riêng.
|
|
4
|
+
|
|
5
|
+
// Clear-× — hover-gated, đặt cuối "mặt". Include BÊN TRONG rule của phần tử hover (face/input).
|
|
6
|
+
@mixin _inline-clear {
|
|
7
|
+
.sd-inline-clear {
|
|
8
|
+
display: none;
|
|
9
|
+
align-items: center;
|
|
10
|
+
margin-left: 4px;
|
|
11
|
+
padding: 0;
|
|
12
|
+
border: 0;
|
|
13
|
+
background: transparent;
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
line-height: 0;
|
|
16
|
+
color: var(--sd-text-secondary, #6b7280);
|
|
17
|
+
transition: color 0.15s ease;
|
|
18
|
+
|
|
19
|
+
mat-icon {
|
|
20
|
+
font-size: 16px;
|
|
21
|
+
width: 16px;
|
|
22
|
+
height: 16px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&:hover {
|
|
26
|
+
color: var(--sd-error, #b32626);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&:hover .sd-inline-clear {
|
|
31
|
+
display: inline-flex;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Panel-based controls (select / date / datetime / date-range / autocomplete):
|
|
36
|
+
// `<sd-view>` text là "mặt" + trigger; editor render ẩn (overlay) chỉ để neo + mở panel.
|
|
37
|
+
@mixin sd-inline-panel {
|
|
38
|
+
// Neo cho .sd-inline-editor (absolute). Bare flatten + display nằm ở :host(.sd-bare) riêng của control.
|
|
39
|
+
:host(.sd-bare) {
|
|
40
|
+
position: relative;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.sd-inline-view {
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
display: inline-flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
width: 100%;
|
|
48
|
+
// why: nền nhẹ + đậm hơn khi hover → tín hiệu "viewed có thể bấm để sửa".
|
|
49
|
+
padding: 1px 6px;
|
|
50
|
+
border-radius: 4px;
|
|
51
|
+
background-color: rgba(0, 0, 0, 0.04);
|
|
52
|
+
transition: background-color 0.15s ease;
|
|
53
|
+
|
|
54
|
+
&:hover {
|
|
55
|
+
background-color: rgba(0, 0, 0, 0.08);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@include _inline-clear;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// why: editor vô hình phủ lên face. Tắt pointer-events CẢ cây con (mat-* tự bật lại ở trigger)
|
|
62
|
+
// để hover/click rơi xuống .sd-inline-view ở mọi chỗ. Panel mở qua enterInlineEdit() → open().
|
|
63
|
+
.sd-inline-editor {
|
|
64
|
+
position: absolute;
|
|
65
|
+
inset: 0;
|
|
66
|
+
opacity: 0;
|
|
67
|
+
pointer-events: none;
|
|
68
|
+
|
|
69
|
+
::ng-deep * {
|
|
70
|
+
pointer-events: none !important;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// NOTE: the former `sd-inline-input` mixin (mat-form-field flatten for the input/input-number
|
|
76
|
+
// inline variant) was removed when those controls moved to the <sd-inline-text> primitive
|
|
77
|
+
// (forms/inline-text), which owns its own borderless styling. The panel mixin above stays.
|
|
78
|
+
|
|
79
|
+
// Multiline input (textarea): no panel, no single-line `<sd-inline-text>` — flatten the
|
|
80
|
+
// mat-form-field so the `<textarea>` reads like text, transparent with a hover/focus affordance.
|
|
81
|
+
@mixin sd-inline-textarea {
|
|
82
|
+
.sd-inline-textarea {
|
|
83
|
+
cursor: text;
|
|
84
|
+
border-radius: 4px;
|
|
85
|
+
background-color: rgba(0, 0, 0, 0.04);
|
|
86
|
+
transition: background-color 0.15s ease;
|
|
87
|
+
|
|
88
|
+
&:hover {
|
|
89
|
+
background-color: rgba(0, 0, 0, 0.08);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&:focus-within {
|
|
93
|
+
background-color: rgba(0, 0, 0, 0.06);
|
|
94
|
+
box-shadow: inset 0 0 0 1px var(--sd-primary, #1f6feb);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
::ng-deep {
|
|
98
|
+
.mat-mdc-text-field-wrapper { padding: 0 6px; background: transparent; }
|
|
99
|
+
.mat-mdc-form-field-flex { padding: 0; }
|
|
100
|
+
.mdc-notched-outline { display: none; }
|
|
101
|
+
.mat-mdc-form-field-subscript-wrapper { display: none; }
|
|
102
|
+
.mat-mdc-form-field-infix { padding: 4px 0; min-height: 0; border: 0; }
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -33,6 +33,48 @@
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
// why: nút clear "thanh mảnh" dùng chung cho sd-select/sd-date/sd-datetime —
|
|
37
|
+
// hình tròn nền trong suốt, hover mới hiện nền xám + chuyển đỏ. Icon `close`
|
|
38
|
+
// (nét mảnh) thay cho `cancel` (tròn đặc, trông "mập"). Đồng bộ với sd-input-color.
|
|
39
|
+
.sd-clear-btn {
|
|
40
|
+
display: inline-flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
width: 20px;
|
|
44
|
+
height: 20px;
|
|
45
|
+
border-radius: 50%;
|
|
46
|
+
border: 0;
|
|
47
|
+
padding: 0;
|
|
48
|
+
background: transparent;
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
color: #757575;
|
|
51
|
+
transition: background-color 80ms ease, color 80ms ease;
|
|
52
|
+
|
|
53
|
+
&:hover {
|
|
54
|
+
background: rgba(0, 0, 0, 0.06);
|
|
55
|
+
color: map.get(color.$color_map, 'error');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
mat-icon {
|
|
59
|
+
font-size: 16px;
|
|
60
|
+
width: 16px;
|
|
61
|
+
height: 16px;
|
|
62
|
+
line-height: 16px;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// why: biến thể hover-gate — nút clear ẩn cho tới khi hover (hoặc field đang
|
|
67
|
+
// focus, để người dùng bàn phím vẫn thấy). Dùng cho sd-input/sd-input-number/
|
|
68
|
+
// sd-input-color/sd-date/sd-datetime. KHÔNG dùng cho sd-select/sd-autocomplete
|
|
69
|
+
// vì ở đó clear thay thế icon dropdown/search nên phải luôn hiển thị.
|
|
70
|
+
.sd-clear-btn.sd-hover {
|
|
71
|
+
visibility: hidden;
|
|
72
|
+
}
|
|
73
|
+
.mat-mdc-form-field-flex:hover .sd-clear-btn.sd-hover,
|
|
74
|
+
.mat-mdc-form-field-flex:focus-within .sd-clear-btn.sd-hover {
|
|
75
|
+
visibility: visible;
|
|
76
|
+
}
|
|
77
|
+
|
|
36
78
|
// sdSuffixIcon
|
|
37
79
|
// Directive sdSuffixIcon (truyền icon từ component sử dụng vào Core)
|
|
38
80
|
.sd-suffix-icon.sd-hover {
|
|
@@ -247,13 +289,28 @@
|
|
|
247
289
|
}
|
|
248
290
|
}
|
|
249
291
|
|
|
250
|
-
//
|
|
292
|
+
// Override reboot rule `label { margin-bottom: 0.5rem }` cho mat-checkbox layout
|
|
251
293
|
mat-checkbox {
|
|
252
294
|
label.mat-mdc-checkbox-layout {
|
|
253
295
|
margin-bottom: 0;
|
|
254
296
|
}
|
|
255
297
|
}
|
|
256
298
|
|
|
299
|
+
// why: selector radio của <sd-table> (.c-selection, single mode) hiện một dấu chấm tối thừa
|
|
300
|
+
// nằm cạnh vòng radio. Nguồn gốc THẬT là state-layer padding của Material trên `.mdc-radio`
|
|
301
|
+
// (`padding: calc((var(--mdc-radio-state-layer-size) - 20px) / 2)`): trong cột selector, .c-selection
|
|
302
|
+
// bị scale(0.85) (xem table.component.scss) còn `.mdc-radio` có `will-change: transform` nên lên
|
|
303
|
+
// compositing layer riêng → phần `.mdc-radio__inner-circle` (transform: scale(0), border 10px màu
|
|
304
|
+
// tối) bị render rớt lại ~1px artifact trong dải padding đó, đọc thành "dấu chấm". Bỏ state-layer
|
|
305
|
+
// padding cho radio selector compact là khử sạch (vòng 20px + scale 0.85 vẫn căn giữa). Scope theo
|
|
306
|
+
// `.c-selection` nên KHÔNG ảnh hưởng radio ở nơi khác (giữ nguyên vùng hover/state-layer của chúng).
|
|
307
|
+
//
|
|
308
|
+
// LƯU Ý: cách trước (`label.mdc-label:empty { display:none }`) KHÔNG khử được dot — nó chỉ TÁCH dot
|
|
309
|
+
// thành 2 dấu chấm (label rỗng vốn đang phủ chồng lên artifact). Đã thay bằng fix dưới đây.
|
|
310
|
+
.c-selection.mat-mdc-radio-button .mdc-radio {
|
|
311
|
+
padding: 0;
|
|
312
|
+
}
|
|
313
|
+
|
|
257
314
|
// Placeholder mặc định 1rem (16px), mong muốn nên là 14px
|
|
258
315
|
.mat-mdc-floating-label {
|
|
259
316
|
font-size: 14px !important;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Centralized state-image classes.
|
|
2
|
+
// why: previously each component referenced its own assets/*.svg via `content: url(...)`,
|
|
3
|
+
// duplicating files across modules. Single source of truth here so a designer can swap
|
|
4
|
+
// an asset in `assets/images/` without grepping the codebase.
|
|
5
|
+
//
|
|
6
|
+
// Usage:
|
|
7
|
+
// <img class="sd-image-not-found" alt="not-found" />
|
|
8
|
+
// or inside ::before / ::after via @extend:
|
|
9
|
+
// &::before { @extend .sd-image-data-empty; }
|
|
10
|
+
|
|
11
|
+
$sd-image-path: '../../images' !default;
|
|
12
|
+
|
|
13
|
+
$sd-images: (
|
|
14
|
+
'coming-soon',
|
|
15
|
+
'data-empty',
|
|
16
|
+
'expired',
|
|
17
|
+
'file-error',
|
|
18
|
+
'filter-empty',
|
|
19
|
+
'filter-required',
|
|
20
|
+
'forbidden',
|
|
21
|
+
'image-error',
|
|
22
|
+
'maintenance',
|
|
23
|
+
'not-found',
|
|
24
|
+
'offline',
|
|
25
|
+
'submitted',
|
|
26
|
+
'success',
|
|
27
|
+
'unauthorized',
|
|
28
|
+
'unknown-error'
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
@each $name in $sd-images {
|
|
32
|
+
.sd-image-#{$name} {
|
|
33
|
+
content: url('#{$sd-image-path}/#{$name}.svg');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// --------------------------------------------------------------------------
|
|
2
|
-
// Base / Reboot —
|
|
3
|
-
//
|
|
4
|
-
// ứng dụng. Không phụ thuộc Bootstrap variables hay mixins.
|
|
2
|
+
// Base / Reboot — chuẩn hóa rendering giữa các browser, thiết lập baseline
|
|
3
|
+
// cho toàn bộ ứng dụng. Thuần CSS, không phụ thuộc 3rd-party reset.
|
|
5
4
|
//
|
|
6
|
-
// Nguồn
|
|
5
|
+
// Nguồn gốc rule: kế thừa từ Bootstrap 4 reboot + modern-normalize (đã được
|
|
6
|
+
// inline trực tiếp ở đây để dứt điểm phụ thuộc Bootstrap).
|
|
7
7
|
// --------------------------------------------------------------------------
|
|
8
8
|
|
|
9
9
|
// --------------------------------------------------------------------------
|
|
@@ -202,8 +202,8 @@ th {
|
|
|
202
202
|
// 11. Forms
|
|
203
203
|
// --------------------------------------------------------------------------
|
|
204
204
|
|
|
205
|
-
// label là inline-block để có thể set margin
|
|
206
|
-
//
|
|
205
|
+
// label là inline-block để có thể set margin; margin-bottom mặc định 0.5rem
|
|
206
|
+
// có thể override per-component (xem core/form.scss cho mat-checkbox).
|
|
207
207
|
label {
|
|
208
208
|
display: inline-block;
|
|
209
209
|
margin-bottom: 0.5rem;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// --------------------------------------------------------------------------
|
|
2
|
-
// Grid —
|
|
3
|
-
//
|
|
2
|
+
// Grid — row/col 12-column flexbox + native CSS Grid container
|
|
3
|
+
// Thuần CSS Flexbox / CSS Grid, không phụ thuộc framework ngoài.
|
|
4
|
+
// Breakpoint convention (sm/md/lg/xl) trùng Bootstrap để host app dễ migrate.
|
|
4
5
|
// --------------------------------------------------------------------------
|
|
5
6
|
|
|
6
7
|
// --------------------------------------------------------------------------
|
|
@@ -63,7 +64,7 @@ $grid-gutter: 16px;
|
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
// --------------------------------------------------------------------------
|
|
66
|
-
// 1b. Responsive columns
|
|
67
|
+
// 1b. Responsive columns
|
|
67
68
|
// col-sm-{1-12} : ≥ 576px
|
|
68
69
|
// col-md-{1-12} : ≥ 768px
|
|
69
70
|
// col-lg-{1-12} : ≥ 992px
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
|
-
SD-ANGULAR UTILITY CLASSES — không phụ thuộc
|
|
2
|
+
SD-ANGULAR UTILITY CLASSES — thuần SCSS, không phụ thuộc 3rd-party.
|
|
3
3
|
Mỗi partial độc lập, có thể import riêng lẻ nếu cần.
|
|
4
4
|
========================================================================== */
|
|
5
5
|
|
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
|
|
10
10
|
// Percentage / keyword shorthands
|
|
11
11
|
.w-full { width: 100% !important; }
|
|
12
|
-
.w-100 { width: 100% !important; } //
|
|
12
|
+
.w-100 { width: 100% !important; } // alias of w-full
|
|
13
13
|
.w-auto { width: auto !important; }
|
|
14
14
|
.w-screen { width: 100vw !important; }
|
|
15
15
|
.w-fit { width: fit-content !important; }
|
|
16
16
|
|
|
17
17
|
.h-full { height: 100% !important; }
|
|
18
|
-
.h-100 { height: 100% !important; } //
|
|
18
|
+
.h-100 { height: 100% !important; } // alias of h-full
|
|
19
19
|
.h-auto { height: auto !important; }
|
|
20
20
|
.h-screen { height: 100vh !important; }
|
|
21
21
|
.h-fit { height: fit-content !important; }
|
package/assets/scss/sd-core.scss
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
@use '../fonts/fonts.scss';
|
|
2
|
-
// Tạm thời giữ bootstrap.scss để so sánh — xóa sau khi confirm _base.scss OK
|
|
3
|
-
// @use './core/bootstrap.scss';
|
|
4
2
|
@use './core/utilities/base'; // Reset / Reboot — phải load trước tất cả
|
|
5
3
|
@use './core/utilities';
|
|
6
4
|
@use './core/color.scss';
|
|
7
5
|
@use './core/form.scss';
|
|
6
|
+
@use './core/image.scss';
|
|
8
7
|
@use './core/scrollbar.scss';
|
|
9
8
|
@use './themes/default.scss';
|
|
10
9
|
@use './themes/material-theme.scss';
|
|
@@ -16,6 +16,24 @@ export declare class SdAutoidInspector implements OnDestroy {
|
|
|
16
16
|
highlightOn: import("@angular/core").WritableSignal<boolean>;
|
|
17
17
|
dismissed: import("@angular/core").WritableSignal<boolean>;
|
|
18
18
|
filteredElements: import("@angular/core").Signal<SdAutoidElement[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Elements not inside any sd-table — rendered in the main "Top-level" section.
|
|
21
|
+
*/
|
|
22
|
+
readonly topLevelElements: import("@angular/core").Signal<SdAutoidElement[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Map of `sd-table` autoid → its inner autoid elements. Tables themselves
|
|
25
|
+
* stay in `topLevelElements` (the table's own autoid is top-level).
|
|
26
|
+
*/
|
|
27
|
+
readonly tableGroups: import("@angular/core").Signal<{
|
|
28
|
+
scope: string;
|
|
29
|
+
items: SdAutoidElement[];
|
|
30
|
+
}[]>;
|
|
31
|
+
readonly dataOpened: import("@angular/core").Signal<"true" | "false">;
|
|
32
|
+
readonly dataHighlightOn: import("@angular/core").Signal<"true" | "false">;
|
|
33
|
+
readonly dataSegment: import("@angular/core").Signal<Segment>;
|
|
34
|
+
readonly dataElementCount: import("@angular/core").Signal<string>;
|
|
35
|
+
readonly dataMissingCount: import("@angular/core").Signal<string>;
|
|
36
|
+
readonly dataDuplicateCount: import("@angular/core").Signal<string>;
|
|
19
37
|
ngOnDestroy(): void;
|
|
20
38
|
togglePanel: () => void;
|
|
21
39
|
openPanel: () => void;
|
|
@@ -1,11 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime state attributes the component renders on the same anchor as `data-autoid`.
|
|
3
|
+
* Every field is OPTIONAL — only present when the component actually renders that attribute.
|
|
4
|
+
* All values are the raw DOM string (already "true"/"false" or stringified number/value).
|
|
5
|
+
*/
|
|
6
|
+
export interface SdAutoidElementState {
|
|
7
|
+
disabled?: string;
|
|
8
|
+
loading?: string;
|
|
9
|
+
empty?: string;
|
|
10
|
+
invalid?: string;
|
|
11
|
+
opened?: string;
|
|
12
|
+
count?: string;
|
|
13
|
+
/** Serialized DOM `data-value` (NOT `input.value`). Distinct from `SdAutoidElement.text` field. */
|
|
14
|
+
dataValue?: string;
|
|
15
|
+
required?: string;
|
|
16
|
+
maxlength?: string;
|
|
17
|
+
minlength?: string;
|
|
18
|
+
pattern?: string;
|
|
19
|
+
errorMessage?: string;
|
|
20
|
+
type?: string;
|
|
21
|
+
title?: string;
|
|
22
|
+
message?: string;
|
|
23
|
+
}
|
|
1
24
|
export interface SdAutoidElement {
|
|
2
25
|
stt: number;
|
|
3
26
|
name: string;
|
|
4
27
|
autoid: string;
|
|
5
28
|
tag: string;
|
|
6
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Display text resolved from the DOM: `input.value` for form controls, otherwise
|
|
31
|
+
* `textContent.trim().slice(0, 80)`. Use `state.dataValue` for the serialized
|
|
32
|
+
* runtime value rendered by `@sd-angular/core` components.
|
|
33
|
+
*/
|
|
34
|
+
text: string;
|
|
7
35
|
xpath: string;
|
|
8
36
|
duplicate: boolean;
|
|
37
|
+
/** Runtime state attributes read from the DOM. Always an object — may be empty `{}`. */
|
|
38
|
+
state: SdAutoidElementState;
|
|
39
|
+
/**
|
|
40
|
+
* `data-autoid` of the closest ancestor `<sd-table>` that contains this element,
|
|
41
|
+
* or `undefined` if this element is top-level (not inside any `sd-table`).
|
|
42
|
+
* Used by the UI to group table-scoped elements into a separate section.
|
|
43
|
+
*/
|
|
44
|
+
tableScope?: string;
|
|
45
|
+
/**
|
|
46
|
+
* `true` when the element matched a required selector (sd-button, sd-input, …) but
|
|
47
|
+
* had NO `data-autoid` — the scanner still emits it with `autoid: ''` and a positional
|
|
48
|
+
* `xpath` fallback so the export stays usable. The dev should backfill an autoid.
|
|
49
|
+
*/
|
|
50
|
+
missingAutoid?: boolean;
|
|
51
|
+
/** Human-readable warning attached to a fallback element (only set when `missingAutoid`). */
|
|
52
|
+
warning?: string;
|
|
9
53
|
}
|
|
10
54
|
export interface SdAutoidMissing {
|
|
11
55
|
tag: string;
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
export type SdAutoidExportFormat = 'csv' | 'json' | 'md-pom' | 'md-table';
|
|
2
2
|
export interface SdAutoidExportMeta {
|
|
3
|
+
/** `location.pathname + location.search` — kept for back-compat with MD exports. */
|
|
3
4
|
pageUrl: string;
|
|
4
5
|
pageTitle: string;
|
|
5
6
|
timestamp: string;
|
|
7
|
+
/** Full `location.href`. */
|
|
8
|
+
url: string;
|
|
9
|
+
/** `location.pathname` only. */
|
|
10
|
+
pathname: string;
|
|
11
|
+
/** Raw `location.search` (incl. leading `?`), or `''`. */
|
|
12
|
+
search: string;
|
|
13
|
+
/** Parsed query string → key/value map (last value wins on repeats). */
|
|
14
|
+
queryParams: Record<string, string>;
|
|
15
|
+
/**
|
|
16
|
+
* Angular route path params (`:id`, …) merged across the activated-route tree.
|
|
17
|
+
* Only present when an Angular `Router` is available at scan time; omitted otherwise.
|
|
18
|
+
*/
|
|
19
|
+
params?: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
/** JSON export envelope: page meta + the scanned elements. */
|
|
22
|
+
export interface SdAutoidExportJson {
|
|
23
|
+
meta: SdAutoidExportMeta;
|
|
24
|
+
elements: import('./autoid-element.model').SdAutoidElement[];
|
|
6
25
|
}
|
|
@@ -2,14 +2,22 @@ import { SdAutoidElement } from '../models/autoid-element.model';
|
|
|
2
2
|
import { SdAutoidExportMeta } from '../models/autoid-export-format.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class SdAutoidExportService {
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Có `meta` → bọc `{ meta, elements }` (kèm url/queryParams) để consumer biết trang/route.
|
|
7
|
+
* Không `meta` → giữ mảng thuần (back-compat cho caller cũ chỉ cần elements).
|
|
8
|
+
*/
|
|
9
|
+
toJson(elements: SdAutoidElement[], meta?: SdAutoidExportMeta): string;
|
|
10
|
+
/** Parse a `location.search` string into a flat key/value map (last value wins). */
|
|
11
|
+
parseQueryParams(search: string): Record<string, string>;
|
|
6
12
|
toCsv(elements: SdAutoidElement[]): string;
|
|
7
13
|
/** POM TypeScript skeleton — copy ngay vào file Playwright/Cypress. */
|
|
8
14
|
toMarkdownPom(elements: SdAutoidElement[], meta: SdAutoidExportMeta): string;
|
|
9
|
-
/** Markdown reference table, group
|
|
15
|
+
/** Markdown reference table, group FIRST by tableScope (top-level first, then per table), then by tag. */
|
|
10
16
|
toMarkdownTable(elements: SdAutoidElement[], meta: SdAutoidExportMeta): string;
|
|
11
17
|
download(content: string, filename: string, mime: string): void;
|
|
12
18
|
copyToClipboard(content: string): Promise<void>;
|
|
19
|
+
/** Build a compact state summary string from defined state keys, e.g. "disabled=false; empty=true". */
|
|
20
|
+
private buildStateSummary;
|
|
13
21
|
private q;
|
|
14
22
|
private mdCell;
|
|
15
23
|
private toCamel;
|
|
@@ -1,13 +1,36 @@
|
|
|
1
1
|
import { SdAutoidElement } from '../models/autoid-element.model';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class SdAutoidScannerService {
|
|
4
|
-
/**
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Quét element có [data-autoid] trong root, gắn name/tag/value/xpath.
|
|
6
|
+
* Khi truyền `requireSelectors` (vd các sd-* form/button), những node khớp selector
|
|
7
|
+
* mà KHÔNG có data-autoid (self lẫn con) sẽ được thêm vào dưới dạng phần tử fallback
|
|
8
|
+
* (`autoid: ''`, xpath theo vị trí thẻ + cờ `missingAutoid` + warning) — để JSON xuất ra
|
|
9
|
+
* vẫn dùng được và dev biết chỗ cần bổ sung autoid.
|
|
10
|
+
*/
|
|
11
|
+
scan(root?: HTMLElement, requireSelectors?: ReadonlyArray<string>): SdAutoidElement[];
|
|
12
|
+
/**
|
|
13
|
+
* Tìm các node khớp `requireSelectors` nhưng thiếu data-autoid (self + mọi descendant),
|
|
14
|
+
* thêm vào `result` dưới dạng phần tử fallback. Trả về `stt` kế tiếp.
|
|
15
|
+
*/
|
|
16
|
+
private appendMissing;
|
|
17
|
+
/** XPath theo vị trí thẻ trong document, vd `(//sd-button)[2]`, khi không có autoid. */
|
|
18
|
+
private fallbackXpath;
|
|
6
19
|
/** Group element theo autoid để consumer lấy duplicate map. */
|
|
7
20
|
groupByAutoid(elements: SdAutoidElement[]): Record<string, SdAutoidElement[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Read the optional `data-*` E2E state attributes off the same node.
|
|
23
|
+
* Only includes fields actually present on the DOM (skipped fields stay undefined).
|
|
24
|
+
*/
|
|
25
|
+
private readState;
|
|
26
|
+
/**
|
|
27
|
+
* If the node is inside an `<sd-table>` element, return that table's `data-autoid`.
|
|
28
|
+
* Walks up via closest('sd-table') — skips the node itself if it IS the table.
|
|
29
|
+
*/
|
|
30
|
+
private resolveTableScope;
|
|
8
31
|
private resolveName;
|
|
9
32
|
private resolveSdTag;
|
|
10
|
-
private
|
|
33
|
+
private resolveText;
|
|
11
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdAutoidScannerService, never>;
|
|
12
35
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdAutoidScannerService>;
|
|
13
36
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { Color, Size } from '@sdcorejs/utils/models';
|
|
2
3
|
import { MaterialIconFontSet } from '@sd-angular/core/utilities/models';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export type SdBadgeType = 'tag' | 'round' | 'icon';
|
|
5
6
|
export declare class SdBadge {
|
|
6
7
|
defaultIcon: string;
|
|
7
8
|
type: import("@angular/core").InputSignalWithTransform<SdBadgeType, SdBadgeType | null | undefined>;
|
|
8
|
-
color: import("@angular/core").InputSignalWithTransform<
|
|
9
|
+
color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
|
|
9
10
|
primary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
10
11
|
secondary: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
11
12
|
success: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
@@ -17,10 +18,10 @@ export declare class SdBadge {
|
|
|
17
18
|
description: import("@angular/core").InputSignal<string | null | undefined>;
|
|
18
19
|
tooltip: import("@angular/core").InputSignal<string | null | undefined>;
|
|
19
20
|
icon: import("@angular/core").InputSignal<string | null | undefined>;
|
|
20
|
-
size: import("@angular/core").InputSignalWithTransform<
|
|
21
|
+
size: import("@angular/core").InputSignalWithTransform<Size, Size | null | undefined>;
|
|
21
22
|
click: EventEmitter<Event>;
|
|
22
23
|
onClick: (event: Event) => void;
|
|
23
|
-
effectiveColor: import("@angular/core").Signal<
|
|
24
|
+
effectiveColor: import("@angular/core").Signal<Color>;
|
|
24
25
|
baseColorClasses: import("@angular/core").Signal<{
|
|
25
26
|
'c-primary': boolean;
|
|
26
27
|
'c-secondary': boolean;
|
|
@@ -46,6 +47,11 @@ export declare class SdBadge {
|
|
|
46
47
|
'material-icons-round': boolean;
|
|
47
48
|
'material-icons-sharp': boolean;
|
|
48
49
|
}>;
|
|
50
|
+
containerSizeClasses: import("@angular/core").Signal<{
|
|
51
|
+
'c-badge--sm': boolean;
|
|
52
|
+
'c-badge--md': boolean;
|
|
53
|
+
'c-badge--lg': boolean;
|
|
54
|
+
}>;
|
|
49
55
|
tagIconCombinedClasses: import("@angular/core").Signal<{
|
|
50
56
|
'c-primary': boolean;
|
|
51
57
|
'c-secondary': boolean;
|
|
@@ -61,6 +67,17 @@ export declare class SdBadge {
|
|
|
61
67
|
'material-icons-round': boolean;
|
|
62
68
|
'material-icons-sharp': boolean;
|
|
63
69
|
}>;
|
|
70
|
+
containerCombinedClasses: import("@angular/core").Signal<{
|
|
71
|
+
'c-badge--sm': boolean;
|
|
72
|
+
'c-badge--md': boolean;
|
|
73
|
+
'c-badge--lg': boolean;
|
|
74
|
+
'c-primary': boolean;
|
|
75
|
+
'c-secondary': boolean;
|
|
76
|
+
'c-info': boolean;
|
|
77
|
+
'c-success': boolean;
|
|
78
|
+
'c-warning': boolean;
|
|
79
|
+
'c-error': boolean;
|
|
80
|
+
}>;
|
|
64
81
|
iconCombinedClasses: import("@angular/core").Signal<{
|
|
65
82
|
'c-primary': boolean;
|
|
66
83
|
'c-black400': boolean;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Color } from '@sdcorejs/utils/models';
|
|
3
3
|
import { MaterialIconFontSet } from '@sd-angular/core/utilities/models';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export type SdButtonType = 'fill' | 'light' | 'outline' | 'link';
|
|
6
6
|
export type SdButtonSize = 'sm' | 'md' | 'lg';
|
|
7
7
|
export type SdButtonHtmlType = 'button' | 'submit' | 'reset';
|
|
8
|
-
export declare class SdButton
|
|
8
|
+
export declare class SdButton implements OnInit, OnDestroy {
|
|
9
9
|
#private;
|
|
10
10
|
private el;
|
|
11
11
|
autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
|
|
12
12
|
type: import("@angular/core").InputSignalWithTransform<SdButtonType, SdButtonType | null | undefined>;
|
|
13
|
-
color: import("@angular/core").InputSignalWithTransform<
|
|
13
|
+
color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
|
|
14
14
|
size: import("@angular/core").InputSignalWithTransform<SdButtonSize, SdButtonSize | null | undefined>;
|
|
15
15
|
fontSet: import("@angular/core").InputSignalWithTransform<MaterialIconFontSet, MaterialIconFontSet | null | undefined>;
|
|
16
16
|
title: import("@angular/core").InputSignal<string | null | undefined>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src/ckeditor-styles.component';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Styles-only component that loads the global CKEditor 5 stylesheet on demand.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists:
|
|
6
|
+
* - CKEditor's CSS must be global (applies to body-rendered overlays, dialogs, balloons),
|
|
7
|
+
* which means whichever Angular component declares it must use ViewEncapsulation.None.
|
|
8
|
+
* - Switching encapsulation on the main editor components (`<sd-editor>`, `<sd-mini-editor>`,
|
|
9
|
+
* `<sd-document-builder>`) would un-scope all their local styles too.
|
|
10
|
+
* - Instead, this tiny no-render component owns the global CSS. The editor components embed
|
|
11
|
+
* `<sd-ckeditor-styles>` at the top of their template; the CSS is injected once into <head>
|
|
12
|
+
* the first time any editor instance mounts. Editor components themselves keep
|
|
13
|
+
* ViewEncapsulation.Emulated.
|
|
14
|
+
*
|
|
15
|
+
* Behavior:
|
|
16
|
+
* - Renders nothing in the DOM (empty template).
|
|
17
|
+
* - Angular dedupes styles per component class — multiple instances inject the <style> tag
|
|
18
|
+
* only once.
|
|
19
|
+
* - When the host editor component is lazy-loaded, this component's chunk and its CSS travel
|
|
20
|
+
* with it.
|
|
21
|
+
*/
|
|
22
|
+
export declare class SdCKEditorStyles {
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdCKEditorStyles, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdCKEditorStyles, "sd-ckeditor-styles", never, {}, {}, never, never, true, never>;
|
|
25
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { CdkDragDrop, CdkDragMove } from '@angular/cdk/drag-drop';
|
|
2
2
|
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { SdBaseSecureComponent } from '@sd-angular/core/components/base';
|
|
4
3
|
import { SdModal } from '@sd-angular/core/components/modal';
|
|
5
4
|
import { FormBuilderComponent, FormBuilderComponentGroup, SdFormGenericComponent, SdFormGenericGroup, SdFormGenericVariable } from '../../models';
|
|
6
5
|
import { SdFormGenericValidation } from '../../models/form-generic-validation.model';
|
|
@@ -12,7 +11,7 @@ interface DragDropRowItem {
|
|
|
12
11
|
items: (SdFormGenericComponent | SdFormGenericGroup)[];
|
|
13
12
|
rowIndex?: number;
|
|
14
13
|
}
|
|
15
|
-
export declare class SdFormBuilder
|
|
14
|
+
export declare class SdFormBuilder {
|
|
16
15
|
#private;
|
|
17
16
|
readonly popupViewJSON: import("@angular/core").Signal<SdModal | undefined>;
|
|
18
17
|
readonly popupConfigureVariables: import("@angular/core").Signal<SdModal | undefined>;
|
|
@@ -39,6 +38,9 @@ export declare class SdFormBuilder extends SdBaseSecureComponent {
|
|
|
39
38
|
clonedVariables: SdFormGenericVariable[];
|
|
40
39
|
readonly selectedComponent: import("@angular/core").WritableSignal<SdFormGenericComponent | SdFormGenericGroup | undefined>;
|
|
41
40
|
readonly isPreview: import("@angular/core").WritableSignal<boolean>;
|
|
41
|
+
readonly editingGroupId: import("@angular/core").WritableSignal<string | undefined>;
|
|
42
|
+
/** Group đang được Detail (tìm ở TOP-LEVEL theo id), undefined = đang ở canvas chính. */
|
|
43
|
+
readonly editingGroup: import("@angular/core").Signal<SdFormGenericGroup | undefined>;
|
|
42
44
|
/** Signal toàn cục: TRUE khi BẤT KỲ cdkDrag nào đang active (palette, canvas, group, resize).
|
|
43
45
|
* Trigger class `.fb-shell--dragging` để ẩn hover/actions/resize toàn diện, không phụ thuộc :has(). */
|
|
44
46
|
readonly isAnyDragging: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -70,15 +72,17 @@ export declare class SdFormBuilder extends SdBaseSecureComponent {
|
|
|
70
72
|
};
|
|
71
73
|
/** Segmented Design/Preview toggle (replaces play_circle/stop_circle). */
|
|
72
74
|
setMode: (preview: boolean) => void;
|
|
73
|
-
/**
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
/** Mở canvas thiết kế riêng cho 1 group (chỉ children của nó). Snapshot để Cancel revert. */
|
|
76
|
+
enterGroupEdit: (group: SdFormGenericGroup) => void;
|
|
77
|
+
/** OK: giữ thay đổi children, quay về canvas chính. */
|
|
78
|
+
confirmGroupEdit: () => void;
|
|
79
|
+
/** Cancel: revert children về snapshot lúc vào Detail, rồi quay về canvas chính. */
|
|
80
|
+
cancelGroupEdit: () => void;
|
|
81
|
+
/** Quick-add break sau row chỉ định (theo scope hiện tại — top-level hoặc group).
|
|
82
|
+
* Tính component index cuối cùng của row đó trong scope, splice break vào sau.
|
|
78
83
|
*/
|
|
79
84
|
insertBreakAfter: (row: DragDropRowItem) => void;
|
|
80
|
-
/**
|
|
81
|
-
removeFromGroup: (group: SdFormGenericGroup, id: string) => void;
|
|
85
|
+
/** Xoá component theo scope hiện tại (top-level hoặc children của group đang Detail). */
|
|
82
86
|
removeComponent: (id: string) => void;
|
|
83
87
|
selectComponent: (item?: SdFormGenericComponent | SdFormGenericGroup) => void;
|
|
84
88
|
onClickedOutside: (e: any) => void;
|
|
@@ -92,12 +96,6 @@ export declare class SdFormBuilder extends SdBaseSecureComponent {
|
|
|
92
96
|
noReturnPredicate: () => boolean;
|
|
93
97
|
changeSizeControl: (event: CdkDragMove<SdFormGenericComponent | SdFormGenericGroup>, item: SdFormGenericComponent | SdFormGenericGroup, items: (SdFormGenericComponent | SdFormGenericGroup)[], currentIndex: number) => Promise<void>;
|
|
94
98
|
dragEndChangeSizeControl: (event: any) => void;
|
|
95
|
-
/** Resize a child item INSIDE a group.
|
|
96
|
-
* Math: lấy bounding của chính item, tính (mouse.x - item.left) / colWidth = newCols.
|
|
97
|
-
* Cách này đúng cho cả flex-wrap (item ở wrap row 2+) vì dùng item-relative,
|
|
98
|
-
* không phải sum-of-all-preceding-cols (sai khi item wrap xuống row mới).
|
|
99
|
-
*/
|
|
100
|
-
changeSizeChildInGroup: (event: CdkDragMove<SdFormGenericComponent>, child: SdFormGenericComponent, group: SdFormGenericGroup) => void;
|
|
101
99
|
onChangeViewed: (component: SdFormGenericComponent) => void;
|
|
102
100
|
onChangeHidden: (component: SdFormGenericComponent | SdFormGenericGroup) => void;
|
|
103
101
|
onDuplicate: (component: SdFormGenericComponent | SdFormGenericGroup) => void;
|