@simplysm/angular 14.0.25 → 14.0.27
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/dist/core/directives/{sd-events.directive.d.ts → sd-events.d.ts} +6 -6
- package/dist/core/directives/sd-events.d.ts.map +1 -0
- package/dist/core/directives/{sd-events.directive.js → sd-events.js} +4 -4
- package/dist/core/directives/sd-invalid.d.ts +8 -0
- package/dist/core/directives/sd-invalid.d.ts.map +1 -0
- package/dist/core/directives/{sd-invalid.directive.js → sd-invalid.js} +7 -7
- package/dist/core/directives/sd-item-of-template.d.ts +14 -0
- package/dist/core/directives/sd-item-of-template.d.ts.map +1 -0
- package/dist/core/directives/{sd-item-of-template.directive.js → sd-item-of-template.js} +4 -4
- package/dist/core/directives/sd-ripple.d.ts +8 -0
- package/dist/core/directives/sd-ripple.d.ts.map +1 -0
- package/dist/core/directives/{sd-ripple.directive.js → sd-ripple.js} +7 -7
- package/dist/core/directives/{sd-router-link.directive.d.ts → sd-router-link.d.ts} +4 -4
- package/dist/core/directives/sd-router-link.d.ts.map +1 -0
- package/dist/core/directives/{sd-router-link.directive.js → sd-router-link.js} +9 -9
- package/dist/core/directives/sd-show-effect.d.ts +9 -0
- package/dist/core/directives/sd-show-effect.d.ts.map +1 -0
- package/dist/core/directives/{sd-show-effect.directive.js → sd-show-effect.js} +7 -7
- package/dist/core/directives/sd-typed-template.d.ts +8 -0
- package/dist/core/directives/sd-typed-template.d.ts.map +1 -0
- package/dist/core/directives/{sd-typed-template.directive.js → sd-typed-template.js} +4 -4
- package/dist/core/plugins/events/sd-intersection-event.plugin.d.ts +2 -2
- package/dist/core/plugins/events/sd-intersection-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/events/sd-resize-event.plugin.d.ts +2 -2
- package/dist/core/plugins/events/sd-resize-event.plugin.d.ts.map +1 -1
- package/dist/core/providers/sd-activated-modal.provider.d.ts +2 -2
- package/dist/core/providers/sd-activated-modal.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.provider.d.ts +11 -7
- package/dist/core/providers/sd-app-structure.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.provider.js +18 -7
- package/dist/core/providers/sd-app-structure.types.d.ts +6 -37
- package/dist/core/providers/sd-app-structure.types.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.utils.d.ts +8 -10
- package/dist/core/providers/sd-app-structure.utils.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.utils.js +5 -86
- package/dist/core/providers/sd-busy.provider.d.ts +4 -4
- package/dist/core/providers/sd-busy.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-busy.provider.js +2 -2
- package/dist/core/providers/sd-print.provider.d.ts +7 -7
- package/dist/core/providers/sd-print.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-shared-data.provider.d.ts +5 -5
- package/dist/core/providers/sd-shared-data.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-toast.provider.d.ts +9 -9
- package/dist/core/providers/sd-toast.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-toast.provider.js +5 -5
- package/dist/core/types/select-modal-output-result.d.ts +1 -1
- package/dist/core/types/select-modal-output-result.d.ts.map +1 -1
- package/dist/core/utils/{TDirectiveInputSignals.d.ts → directive-input-signals.d.ts} +5 -5
- package/dist/core/utils/directive-input-signals.d.ts.map +1 -0
- package/dist/core/utils/injectCurrentPageCodeSignal.d.ts +3 -0
- package/dist/core/utils/injectCurrentPageCodeSignal.d.ts.map +1 -0
- package/dist/core/utils/{useCurrentPageCodeSignal.js → injectCurrentPageCodeSignal.js} +1 -1
- package/dist/core/utils/injectFullPageCodeSignal.d.ts +3 -0
- package/dist/core/utils/injectFullPageCodeSignal.d.ts.map +1 -0
- package/dist/core/utils/{useFullPageCodeSignal.js → injectFullPageCodeSignal.js} +1 -1
- package/dist/core/utils/{useSdSystemConfigResource.d.ts → injectSdSystemConfigResource.d.ts} +2 -2
- package/dist/core/utils/injectSdSystemConfigResource.d.ts.map +1 -0
- package/dist/core/utils/{useSdSystemConfigResource.js → injectSdSystemConfigResource.js} +1 -1
- package/dist/core/utils/injectViewTitleSignal.d.ts +3 -0
- package/dist/core/utils/injectViewTitleSignal.d.ts.map +1 -0
- package/dist/core/utils/{useViewTitleSignal.js → injectViewTitleSignal.js} +11 -6
- package/dist/core/utils/injectViewTypeSignal.d.ts +4 -0
- package/dist/core/utils/injectViewTypeSignal.d.ts.map +1 -0
- package/dist/core/utils/{useViewTypeSignal.js → injectViewTypeSignal.js} +5 -5
- package/dist/core/utils/useExpandingManager.d.ts +3 -3
- package/dist/core/utils/useExpandingManager.d.ts.map +1 -1
- package/dist/core/utils/useSortingManager.d.ts +2 -2
- package/dist/core/utils/useSortingManager.d.ts.map +1 -1
- package/dist/features/address/sd-address-search.modal.d.ts +4 -4
- package/dist/features/address/sd-address-search.modal.d.ts.map +1 -1
- package/dist/features/address/sd-address-search.modal.js +3 -3
- package/dist/features/base/{sd-base-container.control.d.ts → sd-base-container.d.ts} +7 -7
- package/dist/features/base/sd-base-container.d.ts.map +1 -0
- package/dist/features/base/{sd-base-container.control.js → sd-base-container.js} +50 -43
- package/dist/features/data-view/{useDataSheetExcelManager.d.ts → injectDataSheetExcelManager.d.ts} +4 -4
- package/dist/features/data-view/injectDataSheetExcelManager.d.ts.map +1 -0
- package/dist/features/data-view/{useDataSheetExcelManager.js → injectDataSheetExcelManager.js} +1 -1
- package/dist/features/data-view/{useDataSheetInlineEditManager.d.ts → injectDataSheetInlineEditManager.d.ts} +4 -4
- package/dist/features/data-view/injectDataSheetInlineEditManager.d.ts.map +1 -0
- package/dist/features/data-view/{useDataSheetInlineEditManager.js → injectDataSheetInlineEditManager.js} +1 -1
- package/dist/features/data-view/{useDataSheetModalEditManager.d.ts → injectDataSheetModalEditManager.d.ts} +4 -4
- package/dist/features/data-view/injectDataSheetModalEditManager.d.ts.map +1 -0
- package/dist/features/data-view/{useDataSheetModalEditManager.js → injectDataSheetModalEditManager.js} +1 -1
- package/dist/features/data-view/{useDataSheetRefreshManager.d.ts → injectDataSheetRefreshManager.d.ts} +4 -4
- package/dist/features/data-view/injectDataSheetRefreshManager.d.ts.map +1 -0
- package/dist/features/data-view/{useDataSheetRefreshManager.js → injectDataSheetRefreshManager.js} +1 -1
- package/dist/features/data-view/sd-data-detail.base.d.ts +49 -0
- package/dist/features/data-view/sd-data-detail.base.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-detail.base.js +122 -0
- package/dist/features/data-view/sd-data-detail.d.ts +29 -0
- package/dist/features/data-view/sd-data-detail.d.ts.map +1 -0
- package/dist/features/data-view/{sd-data-detail.control.js → sd-data-detail.js} +80 -202
- package/dist/features/data-view/sd-data-select-button.base.d.ts +24 -0
- package/dist/features/data-view/sd-data-select-button.base.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-select-button.base.js +68 -0
- package/dist/features/data-view/sd-data-select-button.d.ts +15 -0
- package/dist/features/data-view/sd-data-select-button.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-select-button.js +152 -0
- package/dist/features/data-view/sd-data-sheet-column.d.ts +8 -0
- package/dist/features/data-view/sd-data-sheet-column.d.ts.map +1 -0
- package/dist/features/data-view/{sd-data-sheet-column.directive.js → sd-data-sheet-column.js} +5 -5
- package/dist/features/data-view/sd-data-sheet.base.d.ts +76 -0
- package/dist/features/data-view/sd-data-sheet.base.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-sheet.base.js +196 -0
- package/dist/features/data-view/sd-data-sheet.d.ts +48 -0
- package/dist/features/data-view/sd-data-sheet.d.ts.map +1 -0
- package/dist/features/data-view/{sd-data-sheet.control.js → sd-data-sheet.js} +135 -330
- package/dist/features/data-view/sd-data-sheet.types.d.ts +3 -3
- package/dist/features/data-view/sd-data-sheet.types.d.ts.map +1 -1
- package/dist/features/data-view/setupCloserWhenSingleSelectionChange.d.ts +2 -2
- package/dist/features/data-view/setupCloserWhenSingleSelectionChange.d.ts.map +1 -1
- package/dist/features/permission-table/sd-permission-table.d.ts +32 -0
- package/dist/features/permission-table/sd-permission-table.d.ts.map +1 -0
- package/dist/features/permission-table/{sd-permission-table.control.js → sd-permission-table.js} +45 -45
- package/dist/features/shared-data/sd-shared-data-select-button.d.ts +16 -0
- package/dist/features/shared-data/sd-shared-data-select-button.d.ts.map +1 -0
- package/dist/features/shared-data/{sd-shared-data-select-button.control.js → sd-shared-data-select-button.js} +18 -17
- package/dist/features/shared-data/{sd-shared-data-select-list.control.d.ts → sd-shared-data-select-list.d.ts} +8 -8
- package/dist/features/shared-data/sd-shared-data-select-list.d.ts.map +1 -0
- package/dist/features/shared-data/{sd-shared-data-select-list.control.js → sd-shared-data-select-list.js} +58 -58
- package/dist/features/shared-data/{sd-shared-data-select.control.d.ts → sd-shared-data-select.d.ts} +13 -13
- package/dist/features/shared-data/sd-shared-data-select.d.ts.map +1 -0
- package/dist/features/shared-data/{sd-shared-data-select.control.js → sd-shared-data-select.js} +51 -51
- package/dist/index.d.ts +101 -98
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -83
- package/dist/ui/data/list/sd-list-item.d.ts +20 -0
- package/dist/ui/data/list/sd-list-item.d.ts.map +1 -0
- package/dist/ui/data/list/{sd-list-item.control.js → sd-list-item.js} +26 -26
- package/dist/ui/data/list/sd-list.d.ts +7 -0
- package/dist/ui/data/list/sd-list.d.ts.map +1 -0
- package/dist/ui/data/list/{sd-list.control.js → sd-list.js} +6 -6
- package/dist/ui/data/sheet/injectSheetColumnResizing.d.ts +17 -0
- package/dist/ui/data/sheet/injectSheetColumnResizing.d.ts.map +1 -0
- package/dist/ui/data/sheet/{useSheetColumnResizing.js → injectSheetColumnResizing.js} +1 -1
- package/dist/ui/data/sheet/{useSheetDomAccessor.d.ts → injectSheetDomAccessor.d.ts} +2 -2
- package/dist/ui/data/sheet/injectSheetDomAccessor.d.ts.map +1 -0
- package/dist/ui/data/sheet/{useSheetDomAccessor.js → injectSheetDomAccessor.js} +1 -1
- package/dist/ui/data/sheet/{sd-sheet-column.directive.d.ts → sd-sheet-column.d.ts} +4 -4
- package/dist/ui/data/sheet/sd-sheet-column.d.ts.map +1 -0
- package/dist/ui/data/sheet/{sd-sheet-column.directive.js → sd-sheet-column.js} +4 -4
- package/dist/ui/data/sheet/sd-sheet-config.modal.d.ts +9 -9
- package/dist/ui/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
- package/dist/ui/data/sheet/sd-sheet-config.modal.js +4 -4
- package/dist/ui/data/sheet/{sd-sheet.control.d.ts → sd-sheet.d.ts} +26 -26
- package/dist/ui/data/sheet/sd-sheet.d.ts.map +1 -0
- package/dist/ui/data/sheet/{sd-sheet.control.js → sd-sheet.js} +82 -82
- package/dist/ui/data/sheet/types.d.ts +6 -6
- package/dist/ui/data/sheet/types.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetCellAgent.d.ts +2 -2
- package/dist/ui/data/sheet/useSheetCellAgent.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetCellStyling.d.ts +9 -9
- package/dist/ui/data/sheet/useSheetCellStyling.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetColumnFixing.d.ts +2 -2
- package/dist/ui/data/sheet/useSheetColumnFixing.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetDisplayPipeline.d.ts +1 -1
- package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts +6 -6
- package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts.map +1 -1
- package/dist/ui/form/button/sd-additional-button.d.ts +8 -0
- package/dist/ui/form/button/sd-additional-button.d.ts.map +1 -0
- package/dist/ui/form/button/{sd-additional-button.control.js → sd-additional-button.js} +6 -6
- package/dist/ui/form/button/sd-anchor.d.ts +8 -0
- package/dist/ui/form/button/sd-anchor.d.ts.map +1 -0
- package/dist/ui/form/button/{sd-anchor.control.js → sd-anchor.js} +6 -6
- package/dist/ui/form/button/{sd-button.control.d.ts → sd-button.d.ts} +4 -4
- package/dist/ui/form/button/sd-button.d.ts.map +1 -0
- package/dist/ui/form/button/{sd-button.control.js → sd-button.js} +11 -11
- package/dist/ui/form/button/sd-modal-select-button.d.ts +38 -0
- package/dist/ui/form/button/sd-modal-select-button.d.ts.map +1 -0
- package/dist/ui/form/button/{sd-modal-select-button.control.js → sd-modal-select-button.js} +16 -16
- package/dist/ui/form/checkbox/{sd-checkbox-group-item.control.d.ts → sd-checkbox-group-item.d.ts} +4 -4
- package/dist/ui/form/checkbox/sd-checkbox-group-item.d.ts.map +1 -0
- package/dist/ui/form/checkbox/{sd-checkbox-group-item.control.js → sd-checkbox-group-item.js} +11 -11
- package/dist/ui/form/checkbox/sd-checkbox-group.d.ts +8 -0
- package/dist/ui/form/checkbox/sd-checkbox-group.d.ts.map +1 -0
- package/dist/ui/form/checkbox/{sd-checkbox-group.control.js → sd-checkbox-group.js} +5 -5
- package/dist/ui/form/checkbox/sd-checkbox.d.ts +19 -0
- package/dist/ui/form/checkbox/sd-checkbox.d.ts.map +1 -0
- package/dist/ui/form/checkbox/{sd-checkbox.control.js → sd-checkbox.js} +10 -10
- package/dist/ui/form/checkbox/sd-switch.d.ts +14 -0
- package/dist/ui/form/checkbox/sd-switch.d.ts.map +1 -0
- package/dist/ui/form/checkbox/{sd-switch.control.js → sd-switch.js} +7 -7
- package/dist/ui/form/choice/{sd-state-preset.control.d.ts → sd-state-preset.d.ts} +9 -9
- package/dist/ui/form/choice/sd-state-preset.d.ts.map +1 -0
- package/dist/ui/form/choice/{sd-state-preset.control.js → sd-state-preset.js} +21 -21
- package/dist/ui/form/editor/{sd-tiptap-editor.control.d.ts → sd-tiptap-editor.d.ts} +4 -4
- package/dist/ui/form/editor/sd-tiptap-editor.d.ts.map +1 -0
- package/dist/ui/form/editor/{sd-tiptap-editor.control.js → sd-tiptap-editor.js} +33 -33
- package/dist/ui/form/input/sd-date-range.picker.js +6 -6
- package/dist/ui/form/input/{sd-numpad.control.d.ts → sd-numpad.d.ts} +4 -4
- package/dist/ui/form/input/sd-numpad.d.ts.map +1 -0
- package/dist/ui/form/input/{sd-numpad.control.js → sd-numpad.js} +25 -25
- package/dist/ui/form/input/sd-range.d.ts +13 -0
- package/dist/ui/form/input/sd-range.d.ts.map +1 -0
- package/dist/ui/form/input/{sd-range.control.js → sd-range.js} +10 -10
- package/dist/ui/form/input/sd-textarea.d.ts +23 -0
- package/dist/ui/form/input/sd-textarea.d.ts.map +1 -0
- package/dist/ui/form/input/{sd-textarea.control.js → sd-textarea.js} +13 -13
- package/dist/ui/form/input/sd-textfield-type-handlers.d.ts +12 -12
- package/dist/ui/form/input/sd-textfield-type-handlers.d.ts.map +1 -1
- package/dist/ui/form/input/sd-textfield.d.ts +39 -0
- package/dist/ui/form/input/sd-textfield.d.ts.map +1 -0
- package/dist/ui/form/input/{sd-textfield.control.js → sd-textfield.js} +16 -16
- package/dist/ui/form/{sd-form.control.d.ts → sd-form.d.ts} +4 -4
- package/dist/ui/form/sd-form.d.ts.map +1 -0
- package/dist/ui/form/{sd-form.control.js → sd-form.js} +7 -7
- package/dist/ui/form/select/sd-select-button.d.ts +7 -0
- package/dist/ui/form/select/sd-select-button.d.ts.map +1 -0
- package/dist/ui/form/select/{sd-select-button.control.js → sd-select-button.js} +6 -6
- package/dist/ui/form/select/sd-select-item.d.ts +18 -0
- package/dist/ui/form/select/sd-select-item.d.ts.map +1 -0
- package/dist/ui/form/select/{sd-select-item.control.js → sd-select-item.js} +15 -15
- package/dist/ui/form/select/{sd-select.control.d.ts → sd-select.d.ts} +8 -8
- package/dist/ui/form/select/sd-select.d.ts.map +1 -0
- package/dist/ui/form/select/{sd-select.control.js → sd-select.js} +62 -62
- package/dist/ui/layout/dock/sd-dock-container.d.ts +12 -0
- package/dist/ui/layout/dock/sd-dock-container.d.ts.map +1 -0
- package/dist/ui/layout/dock/{sd-dock-container.control.js → sd-dock-container.js} +11 -11
- package/dist/ui/layout/dock/sd-dock.d.ts +19 -0
- package/dist/ui/layout/dock/sd-dock.d.ts.map +1 -0
- package/dist/ui/layout/dock/{sd-dock.control.js → sd-dock.js} +12 -12
- package/dist/ui/layout/kanban/sd-kanban-board.d.ts +24 -0
- package/dist/ui/layout/kanban/sd-kanban-board.d.ts.map +1 -0
- package/dist/ui/layout/kanban/{sd-kanban-board.control.js → sd-kanban-board.js} +7 -7
- package/dist/ui/layout/kanban/{sd-kanban-lane.control.d.ts → sd-kanban-lane.d.ts} +8 -8
- package/dist/ui/layout/kanban/sd-kanban-lane.d.ts.map +1 -0
- package/dist/ui/layout/kanban/{sd-kanban-lane.control.js → sd-kanban-lane.js} +37 -37
- package/dist/ui/layout/kanban/{sd-kanban.control.d.ts → sd-kanban.d.ts} +8 -8
- package/dist/ui/layout/kanban/sd-kanban.d.ts.map +1 -0
- package/dist/ui/layout/kanban/{sd-kanban.control.js → sd-kanban.js} +17 -17
- package/dist/ui/layout/sd-card.d.ts +6 -0
- package/dist/ui/layout/sd-card.d.ts.map +1 -0
- package/dist/ui/layout/{sd-card.directive.js → sd-card.js} +5 -5
- package/dist/ui/layout/sd-gap.d.ts +12 -0
- package/dist/ui/layout/sd-gap.d.ts.map +1 -0
- package/dist/ui/layout/{sd-gap.control.js → sd-gap.js} +6 -6
- package/dist/ui/layout/sd-pane.d.ts +6 -0
- package/dist/ui/layout/sd-pane.d.ts.map +1 -0
- package/dist/ui/layout/{sd-pane.directive.js → sd-pane.js} +5 -5
- package/dist/ui/layout/view/sd-view-item.d.ts +9 -0
- package/dist/ui/layout/view/sd-view-item.d.ts.map +1 -0
- package/dist/ui/layout/view/{sd-view-item.control.js → sd-view-item.js} +8 -8
- package/dist/ui/layout/view/sd-view.d.ts +8 -0
- package/dist/ui/layout/view/sd-view.d.ts.map +1 -0
- package/dist/ui/layout/view/{sd-view.control.js → sd-view.js} +6 -6
- package/dist/ui/navigation/collapse/sd-collapse-icon.d.ts +13 -0
- package/dist/ui/navigation/collapse/sd-collapse-icon.d.ts.map +1 -0
- package/dist/ui/navigation/collapse/{sd-collapse-icon.control.js → sd-collapse-icon.js} +6 -6
- package/dist/ui/navigation/collapse/sd-collapse.d.ts +14 -0
- package/dist/ui/navigation/collapse/sd-collapse.d.ts.map +1 -0
- package/dist/ui/navigation/collapse/{sd-collapse.control.js → sd-collapse.js} +7 -7
- package/dist/ui/navigation/menu-utils.d.ts +4 -4
- package/dist/ui/navigation/menu-utils.d.ts.map +1 -1
- package/dist/ui/navigation/pagination/{sd-pagination.control.d.ts → sd-pagination.d.ts} +4 -4
- package/dist/ui/navigation/pagination/sd-pagination.d.ts.map +1 -0
- package/dist/ui/navigation/pagination/{sd-pagination.control.js → sd-pagination.js} +15 -15
- package/dist/ui/navigation/sidebar/{sd-sidebar-container.control.d.ts → sd-sidebar-container.d.ts} +4 -4
- package/dist/ui/navigation/sidebar/sd-sidebar-container.d.ts.map +1 -0
- package/dist/ui/navigation/sidebar/{sd-sidebar-container.control.js → sd-sidebar-container.js} +7 -7
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.d.ts +22 -0
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.d.ts.map +1 -0
- package/dist/ui/navigation/sidebar/{sd-sidebar-menu.control.js → sd-sidebar-menu.js} +35 -35
- package/dist/ui/navigation/sidebar/sd-sidebar-user.d.ts +16 -0
- package/dist/ui/navigation/sidebar/sd-sidebar-user.d.ts.map +1 -0
- package/dist/ui/navigation/sidebar/{sd-sidebar-user.control.js → sd-sidebar-user.js} +30 -30
- package/dist/ui/navigation/sidebar/sd-sidebar.d.ts +8 -0
- package/dist/ui/navigation/sidebar/sd-sidebar.d.ts.map +1 -0
- package/dist/ui/navigation/sidebar/{sd-sidebar.control.js → sd-sidebar.js} +8 -8
- package/dist/ui/navigation/tab/sd-tab-item.d.ts +10 -0
- package/dist/ui/navigation/tab/sd-tab-item.d.ts.map +1 -0
- package/dist/ui/navigation/tab/{sd-tab-item.control.js → sd-tab-item.js} +9 -9
- package/dist/ui/navigation/tab/sd-tab.d.ts +7 -0
- package/dist/ui/navigation/tab/sd-tab.d.ts.map +1 -0
- package/dist/ui/navigation/tab/{sd-tab.control.js → sd-tab.js} +5 -5
- package/dist/ui/navigation/tab/sd-tabview-item.d.ts +10 -0
- package/dist/ui/navigation/tab/sd-tabview-item.d.ts.map +1 -0
- package/dist/ui/navigation/tab/{sd-tabview-item.control.js → sd-tabview-item.js} +8 -8
- package/dist/ui/navigation/tab/sd-tabview.d.ts +9 -0
- package/dist/ui/navigation/tab/sd-tabview.d.ts.map +1 -0
- package/dist/ui/navigation/tab/{sd-tabview.control.js → sd-tabview.js} +17 -17
- package/dist/ui/navigation/topbar/sd-topbar-container.d.ts +6 -0
- package/dist/ui/navigation/topbar/sd-topbar-container.d.ts.map +1 -0
- package/dist/ui/navigation/topbar/{sd-topbar-container.control.js → sd-topbar-container.js} +5 -5
- package/dist/ui/navigation/topbar/sd-topbar-menu.d.ts +23 -0
- package/dist/ui/navigation/topbar/sd-topbar-menu.d.ts.map +1 -0
- package/dist/ui/navigation/topbar/{sd-topbar-menu.control.js → sd-topbar-menu.js} +56 -56
- package/dist/ui/navigation/topbar/sd-topbar-user.d.ts +13 -0
- package/dist/ui/navigation/topbar/sd-topbar-user.d.ts.map +1 -0
- package/dist/ui/navigation/topbar/{sd-topbar-user.control.js → sd-topbar-user.js} +27 -27
- package/dist/ui/navigation/topbar/{sd-topbar.control.d.ts → sd-topbar.d.ts} +6 -6
- package/dist/ui/navigation/topbar/sd-topbar.d.ts.map +1 -0
- package/dist/ui/navigation/topbar/{sd-topbar.control.js → sd-topbar.js} +13 -13
- package/dist/ui/overlay/busy/sd-busy-container.d.ts +14 -0
- package/dist/ui/overlay/busy/sd-busy-container.d.ts.map +1 -0
- package/dist/ui/overlay/busy/{sd-busy-container.control.js → sd-busy-container.js} +16 -16
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.d.ts +8 -0
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.d.ts.map +1 -0
- package/dist/ui/overlay/dropdown/{sd-dropdown-popup.control.js → sd-dropdown-popup.js} +9 -9
- package/dist/ui/overlay/dropdown/{sd-dropdown.control.d.ts → sd-dropdown.d.ts} +4 -4
- package/dist/ui/overlay/dropdown/sd-dropdown.d.ts.map +1 -0
- package/dist/ui/overlay/dropdown/{sd-dropdown.control.js → sd-dropdown.js} +12 -12
- package/dist/ui/overlay/modal/sd-confirm-modal.d.ts +17 -0
- package/dist/ui/overlay/modal/sd-confirm-modal.d.ts.map +1 -0
- package/dist/ui/overlay/modal/{sd-confirm-modal.control.js → sd-confirm-modal.js} +11 -11
- package/dist/ui/overlay/modal/{sd-modal.control.d.ts → sd-modal.d.ts} +4 -4
- package/dist/ui/overlay/modal/sd-modal.d.ts.map +1 -0
- package/dist/ui/overlay/modal/{sd-modal.control.js → sd-modal.js} +28 -28
- package/dist/ui/overlay/modal/sd-modal.provider.d.ts +8 -8
- package/dist/ui/overlay/modal/sd-modal.provider.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-modal.provider.js +4 -4
- package/dist/ui/overlay/modal/sd-prompt-modal.d.ts +19 -0
- package/dist/ui/overlay/modal/sd-prompt-modal.d.ts.map +1 -0
- package/dist/ui/overlay/modal/{sd-prompt-modal.control.js → sd-prompt-modal.js} +13 -13
- package/dist/ui/overlay/toast/sd-toast-container.d.ts +7 -0
- package/dist/ui/overlay/toast/sd-toast-container.d.ts.map +1 -0
- package/dist/ui/overlay/toast/{sd-toast-container.control.js → sd-toast-container.js} +6 -6
- package/dist/ui/overlay/toast/sd-toast.d.ts +14 -0
- package/dist/ui/overlay/toast/sd-toast.d.ts.map +1 -0
- package/dist/ui/overlay/toast/{sd-toast.control.js → sd-toast.js} +10 -10
- package/dist/ui/visual/sd-barcode.d.ts +11 -0
- package/dist/ui/visual/sd-barcode.d.ts.map +1 -0
- package/dist/ui/visual/{sd-barcode.control.js → sd-barcode.js} +5 -5
- package/dist/ui/visual/{sd-calendar.control.d.ts → sd-calendar.d.ts} +5 -5
- package/dist/ui/visual/sd-calendar.d.ts.map +1 -0
- package/dist/ui/visual/{sd-calendar.control.js → sd-calendar.js} +18 -18
- package/dist/ui/visual/sd-echarts.d.ts +13 -0
- package/dist/ui/visual/sd-echarts.d.ts.map +1 -0
- package/dist/ui/visual/{sd-echarts.control.js → sd-echarts.js} +7 -7
- package/dist/ui/visual/sd-label.d.ts +9 -0
- package/dist/ui/visual/sd-label.d.ts.map +1 -0
- package/dist/ui/visual/{sd-label.control.js → sd-label.js} +6 -6
- package/dist/ui/visual/sd-note.d.ts +9 -0
- package/dist/ui/visual/sd-note.d.ts.map +1 -0
- package/dist/ui/visual/{sd-note.control.js → sd-note.js} +6 -6
- package/dist/ui/visual/sd-progress.d.ts +11 -0
- package/dist/ui/visual/sd-progress.d.ts.map +1 -0
- package/dist/ui/visual/{sd-progress.control.js → sd-progress.js} +6 -6
- package/package.json +5 -5
- package/src/core/directives/{sd-events.directive.ts → sd-events.ts} +3 -3
- package/src/core/directives/{sd-invalid.directive.ts → sd-invalid.ts} +3 -3
- package/src/core/directives/{sd-item-of-template.directive.ts → sd-item-of-template.ts} +2 -2
- package/src/core/directives/{sd-ripple.directive.ts → sd-ripple.ts} +3 -3
- package/src/core/directives/{sd-router-link.directive.ts → sd-router-link.ts} +3 -3
- package/src/core/directives/{sd-show-effect.directive.ts → sd-show-effect.ts} +3 -3
- package/src/core/directives/{sd-typed-template.directive.ts → sd-typed-template.ts} +2 -2
- package/src/core/plugins/events/sd-intersection-event.plugin.ts +2 -2
- package/src/core/plugins/events/sd-resize-event.plugin.ts +2 -2
- package/src/core/providers/sd-activated-modal.provider.ts +2 -2
- package/src/core/providers/sd-app-structure.provider.ts +28 -11
- package/src/core/providers/sd-app-structure.types.ts +12 -43
- package/src/core/providers/sd-app-structure.utils.ts +29 -140
- package/src/core/providers/sd-busy.provider.ts +6 -6
- package/src/core/providers/sd-print.provider.ts +11 -11
- package/src/core/providers/sd-shared-data.provider.ts +10 -10
- package/src/core/providers/sd-toast.provider.ts +22 -22
- package/src/core/types/select-modal-output-result.ts +1 -1
- package/src/core/utils/{TDirectiveInputSignals.ts → directive-input-signals.ts} +4 -4
- package/src/core/utils/{useCurrentPageCodeSignal.ts → injectCurrentPageCodeSignal.ts} +1 -1
- package/src/core/utils/{useFullPageCodeSignal.ts → injectFullPageCodeSignal.ts} +1 -1
- package/src/core/utils/{useSdSystemConfigResource.ts → injectSdSystemConfigResource.ts} +1 -1
- package/src/core/utils/{useViewTitleSignal.ts → injectViewTitleSignal.ts} +10 -6
- package/src/core/utils/{useViewTypeSignal.ts → injectViewTypeSignal.ts} +7 -7
- package/src/core/utils/useExpandingManager.ts +8 -8
- package/src/core/utils/useSortingManager.ts +2 -2
- package/src/features/address/sd-address-search.modal.ts +9 -9
- package/src/features/base/{sd-base-container.control.ts → sd-base-container.ts} +27 -22
- package/src/features/data-view/{useDataSheetExcelManager.ts → injectDataSheetExcelManager.ts} +3 -3
- package/src/features/data-view/{useDataSheetInlineEditManager.ts → injectDataSheetInlineEditManager.ts} +3 -3
- package/src/features/data-view/{useDataSheetModalEditManager.ts → injectDataSheetModalEditManager.ts} +3 -3
- package/src/features/data-view/{useDataSheetRefreshManager.ts → injectDataSheetRefreshManager.ts} +3 -3
- package/src/features/data-view/sd-data-detail.base.ts +183 -0
- package/src/features/data-view/{sd-data-detail.control.ts → sd-data-detail.ts} +14 -198
- package/src/features/data-view/sd-data-select-button.base.ts +104 -0
- package/src/features/data-view/sd-data-select-button.ts +105 -0
- package/src/features/data-view/{sd-data-sheet-column.directive.ts → sd-data-sheet-column.ts} +2 -2
- package/src/features/data-view/sd-data-sheet.base.ts +305 -0
- package/src/features/data-view/{sd-data-sheet.control.ts → sd-data-sheet.ts} +19 -323
- package/src/features/data-view/sd-data-sheet.types.ts +3 -3
- package/src/features/data-view/setupCloserWhenSingleSelectionChange.ts +2 -2
- package/src/features/permission-table/{sd-permission-table.control.ts → sd-permission-table.ts} +26 -26
- package/src/features/shared-data/{sd-shared-data-select-button.control.ts → sd-shared-data-select-button.ts} +17 -19
- package/src/features/shared-data/{sd-shared-data-select-list.control.ts → sd-shared-data-select-list.ts} +21 -21
- package/src/features/shared-data/{sd-shared-data-select.control.ts → sd-shared-data-select.ts} +27 -27
- package/src/index.ts +139 -141
- package/src/ui/data/list/{sd-list-item.control.ts → sd-list-item.ts} +6 -6
- package/src/ui/data/list/{sd-list.control.ts → sd-list.ts} +1 -1
- package/src/ui/data/sheet/{useSheetColumnResizing.ts → injectSheetColumnResizing.ts} +9 -9
- package/src/ui/data/sheet/{useSheetDomAccessor.ts → injectSheetDomAccessor.ts} +1 -1
- package/src/ui/data/sheet/{sd-sheet-column.directive.ts → sd-sheet-column.ts} +1 -1
- package/src/ui/data/sheet/sd-sheet-config.modal.ts +15 -15
- package/src/ui/data/sheet/{sd-sheet.control.ts → sd-sheet.ts} +27 -27
- package/src/ui/data/sheet/types.ts +6 -6
- package/src/ui/data/sheet/useSheetCellAgent.ts +2 -2
- package/src/ui/data/sheet/useSheetCellStyling.ts +10 -10
- package/src/ui/data/sheet/useSheetColumnFixing.ts +2 -2
- package/src/ui/data/sheet/useSheetLayoutEngine.ts +8 -8
- package/src/ui/form/button/{sd-additional-button.control.ts → sd-additional-button.ts} +1 -1
- package/src/ui/form/button/{sd-anchor.control.ts → sd-anchor.ts} +1 -1
- package/src/ui/form/button/{sd-button.control.ts → sd-button.ts} +4 -4
- package/src/ui/form/button/{sd-modal-select-button.control.ts → sd-modal-select-button.ts} +16 -16
- package/src/ui/form/checkbox/{sd-checkbox-group-item.control.ts → sd-checkbox-group-item.ts} +6 -6
- package/src/ui/form/checkbox/{sd-checkbox-group.control.ts → sd-checkbox-group.ts} +1 -1
- package/src/ui/form/checkbox/{sd-checkbox.control.ts → sd-checkbox.ts} +1 -1
- package/src/ui/form/checkbox/{sd-switch.control.ts → sd-switch.ts} +1 -1
- package/src/ui/form/choice/{sd-state-preset.control.ts → sd-state-preset.ts} +14 -14
- package/src/ui/form/editor/{sd-tiptap-editor.control.ts → sd-tiptap-editor.ts} +1 -1
- package/src/ui/form/input/sd-date-range.picker.ts +5 -5
- package/src/ui/form/input/{sd-numpad.control.ts → sd-numpad.ts} +4 -4
- package/src/ui/form/input/{sd-range.control.ts → sd-range.ts} +6 -6
- package/src/ui/form/input/{sd-textarea.control.ts → sd-textarea.ts} +1 -1
- package/src/ui/form/input/sd-textfield-type-handlers.ts +18 -18
- package/src/ui/form/input/{sd-textfield.control.ts → sd-textfield.ts} +8 -8
- package/src/ui/form/{sd-form.control.ts → sd-form.ts} +1 -1
- package/src/ui/form/select/{sd-select-button.control.ts → sd-select-button.ts} +1 -1
- package/src/ui/form/select/{sd-select-item.control.ts → sd-select-item.ts} +7 -7
- package/src/ui/form/select/{sd-select.control.ts → sd-select.ts} +21 -21
- package/src/ui/layout/dock/{sd-dock-container.control.ts → sd-dock-container.ts} +3 -3
- package/src/ui/layout/dock/{sd-dock.control.ts → sd-dock.ts} +5 -5
- package/src/ui/layout/kanban/{sd-kanban-board.control.ts → sd-kanban-board.ts} +7 -7
- package/src/ui/layout/kanban/{sd-kanban-lane.control.ts → sd-kanban-lane.ts} +12 -12
- package/src/ui/layout/kanban/{sd-kanban.control.ts → sd-kanban.ts} +15 -15
- package/src/ui/layout/{sd-card.directive.ts → sd-card.ts} +2 -2
- package/src/ui/layout/{sd-gap.control.ts → sd-gap.ts} +1 -1
- package/src/ui/layout/{sd-pane.directive.ts → sd-pane.ts} +2 -2
- package/src/ui/layout/view/{sd-view-item.control.ts → sd-view-item.ts} +3 -3
- package/src/ui/layout/view/{sd-view.control.ts → sd-view.ts} +1 -1
- package/src/ui/navigation/collapse/{sd-collapse-icon.control.ts → sd-collapse-icon.ts} +1 -1
- package/src/ui/navigation/collapse/{sd-collapse.control.ts → sd-collapse.ts} +3 -3
- package/src/ui/navigation/menu-utils.ts +5 -5
- package/src/ui/navigation/pagination/{sd-pagination.control.ts → sd-pagination.ts} +3 -3
- package/src/ui/navigation/sidebar/{sd-sidebar-container.control.ts → sd-sidebar-container.ts} +1 -1
- package/src/ui/navigation/sidebar/{sd-sidebar-menu.control.ts → sd-sidebar-menu.ts} +19 -19
- package/src/ui/navigation/sidebar/{sd-sidebar-user.control.ts → sd-sidebar-user.ts} +14 -14
- package/src/ui/navigation/sidebar/{sd-sidebar.control.ts → sd-sidebar.ts} +4 -4
- package/src/ui/navigation/tab/{sd-tab-item.control.ts → sd-tab-item.ts} +3 -3
- package/src/ui/navigation/tab/{sd-tab.control.ts → sd-tab.ts} +1 -1
- package/src/ui/navigation/tab/{sd-tabview-item.control.ts → sd-tabview-item.ts} +4 -4
- package/src/ui/navigation/tab/{sd-tabview.control.ts → sd-tabview.ts} +6 -6
- package/src/ui/navigation/topbar/{sd-topbar-container.control.ts → sd-topbar-container.ts} +1 -1
- package/src/ui/navigation/topbar/{sd-topbar-menu.control.ts → sd-topbar-menu.ts} +26 -26
- package/src/ui/navigation/topbar/{sd-topbar-user.control.ts → sd-topbar-user.ts} +15 -15
- package/src/ui/navigation/topbar/{sd-topbar.control.ts → sd-topbar.ts} +6 -6
- package/src/ui/overlay/busy/{sd-busy-container.control.ts → sd-busy-container.ts} +3 -3
- package/src/ui/overlay/dropdown/{sd-dropdown-popup.control.ts → sd-dropdown-popup.ts} +4 -4
- package/src/ui/overlay/dropdown/{sd-dropdown.control.ts → sd-dropdown.ts} +4 -4
- package/src/ui/overlay/modal/{sd-confirm-modal.control.ts → sd-confirm-modal.ts} +5 -5
- package/src/ui/overlay/modal/sd-modal.provider.ts +18 -18
- package/src/ui/overlay/modal/{sd-modal.control.ts → sd-modal.ts} +1 -1
- package/src/ui/overlay/modal/{sd-prompt-modal.control.ts → sd-prompt-modal.ts} +6 -6
- package/src/ui/overlay/toast/{sd-toast-container.control.ts → sd-toast-container.ts} +1 -1
- package/src/ui/overlay/toast/{sd-toast.control.ts → sd-toast.ts} +3 -3
- package/src/ui/visual/{sd-barcode.control.ts → sd-barcode.ts} +3 -3
- package/src/ui/visual/{sd-calendar.control.ts → sd-calendar.ts} +4 -4
- package/src/ui/visual/{sd-echarts.control.ts → sd-echarts.ts} +1 -1
- package/src/ui/visual/{sd-label.control.ts → sd-label.ts} +1 -1
- package/src/ui/visual/{sd-note.control.ts → sd-note.ts} +1 -1
- package/src/ui/visual/{sd-progress.control.ts → sd-progress.ts} +1 -1
- package/dist/core/directives/sd-events.directive.d.ts.map +0 -1
- package/dist/core/directives/sd-invalid.directive.d.ts +0 -8
- package/dist/core/directives/sd-invalid.directive.d.ts.map +0 -1
- package/dist/core/directives/sd-item-of-template.directive.d.ts +0 -14
- package/dist/core/directives/sd-item-of-template.directive.d.ts.map +0 -1
- package/dist/core/directives/sd-ripple.directive.d.ts +0 -8
- package/dist/core/directives/sd-ripple.directive.d.ts.map +0 -1
- package/dist/core/directives/sd-router-link.directive.d.ts.map +0 -1
- package/dist/core/directives/sd-show-effect.directive.d.ts +0 -9
- package/dist/core/directives/sd-show-effect.directive.d.ts.map +0 -1
- package/dist/core/directives/sd-typed-template.directive.d.ts +0 -8
- package/dist/core/directives/sd-typed-template.directive.d.ts.map +0 -1
- package/dist/core/utils/TDirectiveInputSignals.d.ts.map +0 -1
- package/dist/core/utils/useCurrentPageCodeSignal.d.ts +0 -3
- package/dist/core/utils/useCurrentPageCodeSignal.d.ts.map +0 -1
- package/dist/core/utils/useFullPageCodeSignal.d.ts +0 -3
- package/dist/core/utils/useFullPageCodeSignal.d.ts.map +0 -1
- package/dist/core/utils/useSdSystemConfigResource.d.ts.map +0 -1
- package/dist/core/utils/useViewTitleSignal.d.ts +0 -3
- package/dist/core/utils/useViewTitleSignal.d.ts.map +0 -1
- package/dist/core/utils/useViewTypeSignal.d.ts +0 -4
- package/dist/core/utils/useViewTypeSignal.d.ts.map +0 -1
- package/dist/features/base/sd-base-container.control.d.ts.map +0 -1
- package/dist/features/data-view/sd-data-detail.control.d.ts +0 -73
- package/dist/features/data-view/sd-data-detail.control.d.ts.map +0 -1
- package/dist/features/data-view/sd-data-select-button.control.d.ts +0 -35
- package/dist/features/data-view/sd-data-select-button.control.d.ts.map +0 -1
- package/dist/features/data-view/sd-data-select-button.control.js +0 -219
- package/dist/features/data-view/sd-data-sheet-column.directive.d.ts +0 -8
- package/dist/features/data-view/sd-data-sheet-column.directive.d.ts.map +0 -1
- package/dist/features/data-view/sd-data-sheet.control.d.ts +0 -120
- package/dist/features/data-view/sd-data-sheet.control.d.ts.map +0 -1
- package/dist/features/data-view/useDataSheetExcelManager.d.ts.map +0 -1
- package/dist/features/data-view/useDataSheetInlineEditManager.d.ts.map +0 -1
- package/dist/features/data-view/useDataSheetModalEditManager.d.ts.map +0 -1
- package/dist/features/data-view/useDataSheetRefreshManager.d.ts.map +0 -1
- package/dist/features/permission-table/sd-permission-table.control.d.ts +0 -32
- package/dist/features/permission-table/sd-permission-table.control.d.ts.map +0 -1
- package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts +0 -16
- package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts.map +0 -1
- package/dist/features/shared-data/sd-shared-data-select-list.control.d.ts.map +0 -1
- package/dist/features/shared-data/sd-shared-data-select.control.d.ts.map +0 -1
- package/dist/ui/data/list/sd-list-item.control.d.ts +0 -20
- package/dist/ui/data/list/sd-list-item.control.d.ts.map +0 -1
- package/dist/ui/data/list/sd-list.control.d.ts +0 -7
- package/dist/ui/data/list/sd-list.control.d.ts.map +0 -1
- package/dist/ui/data/sheet/sd-sheet-column.directive.d.ts.map +0 -1
- package/dist/ui/data/sheet/sd-sheet.control.d.ts.map +0 -1
- package/dist/ui/data/sheet/useSheetColumnResizing.d.ts +0 -17
- package/dist/ui/data/sheet/useSheetColumnResizing.d.ts.map +0 -1
- package/dist/ui/data/sheet/useSheetDomAccessor.d.ts.map +0 -1
- package/dist/ui/form/button/sd-additional-button.control.d.ts +0 -8
- package/dist/ui/form/button/sd-additional-button.control.d.ts.map +0 -1
- package/dist/ui/form/button/sd-anchor.control.d.ts +0 -8
- package/dist/ui/form/button/sd-anchor.control.d.ts.map +0 -1
- package/dist/ui/form/button/sd-button.control.d.ts.map +0 -1
- package/dist/ui/form/button/sd-modal-select-button.control.d.ts +0 -38
- package/dist/ui/form/button/sd-modal-select-button.control.d.ts.map +0 -1
- package/dist/ui/form/checkbox/sd-checkbox-group-item.control.d.ts.map +0 -1
- package/dist/ui/form/checkbox/sd-checkbox-group.control.d.ts +0 -8
- package/dist/ui/form/checkbox/sd-checkbox-group.control.d.ts.map +0 -1
- package/dist/ui/form/checkbox/sd-checkbox.control.d.ts +0 -19
- package/dist/ui/form/checkbox/sd-checkbox.control.d.ts.map +0 -1
- package/dist/ui/form/checkbox/sd-switch.control.d.ts +0 -14
- package/dist/ui/form/checkbox/sd-switch.control.d.ts.map +0 -1
- package/dist/ui/form/choice/sd-state-preset.control.d.ts.map +0 -1
- package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts.map +0 -1
- package/dist/ui/form/input/sd-numpad.control.d.ts.map +0 -1
- package/dist/ui/form/input/sd-range.control.d.ts +0 -13
- package/dist/ui/form/input/sd-range.control.d.ts.map +0 -1
- package/dist/ui/form/input/sd-textarea.control.d.ts +0 -23
- package/dist/ui/form/input/sd-textarea.control.d.ts.map +0 -1
- package/dist/ui/form/input/sd-textfield.control.d.ts +0 -39
- package/dist/ui/form/input/sd-textfield.control.d.ts.map +0 -1
- package/dist/ui/form/sd-form.control.d.ts.map +0 -1
- package/dist/ui/form/select/sd-select-button.control.d.ts +0 -7
- package/dist/ui/form/select/sd-select-button.control.d.ts.map +0 -1
- package/dist/ui/form/select/sd-select-item.control.d.ts +0 -18
- package/dist/ui/form/select/sd-select-item.control.d.ts.map +0 -1
- package/dist/ui/form/select/sd-select.control.d.ts.map +0 -1
- package/dist/ui/layout/dock/sd-dock-container.control.d.ts +0 -12
- package/dist/ui/layout/dock/sd-dock-container.control.d.ts.map +0 -1
- package/dist/ui/layout/dock/sd-dock.control.d.ts +0 -19
- package/dist/ui/layout/dock/sd-dock.control.d.ts.map +0 -1
- package/dist/ui/layout/kanban/sd-kanban-board.control.d.ts +0 -24
- package/dist/ui/layout/kanban/sd-kanban-board.control.d.ts.map +0 -1
- package/dist/ui/layout/kanban/sd-kanban-lane.control.d.ts.map +0 -1
- package/dist/ui/layout/kanban/sd-kanban.control.d.ts.map +0 -1
- package/dist/ui/layout/sd-card.directive.d.ts +0 -6
- package/dist/ui/layout/sd-card.directive.d.ts.map +0 -1
- package/dist/ui/layout/sd-gap.control.d.ts +0 -12
- package/dist/ui/layout/sd-gap.control.d.ts.map +0 -1
- package/dist/ui/layout/sd-pane.directive.d.ts +0 -6
- package/dist/ui/layout/sd-pane.directive.d.ts.map +0 -1
- package/dist/ui/layout/view/sd-view-item.control.d.ts +0 -9
- package/dist/ui/layout/view/sd-view-item.control.d.ts.map +0 -1
- package/dist/ui/layout/view/sd-view.control.d.ts +0 -8
- package/dist/ui/layout/view/sd-view.control.d.ts.map +0 -1
- package/dist/ui/navigation/collapse/sd-collapse-icon.control.d.ts +0 -13
- package/dist/ui/navigation/collapse/sd-collapse-icon.control.d.ts.map +0 -1
- package/dist/ui/navigation/collapse/sd-collapse.control.d.ts +0 -14
- package/dist/ui/navigation/collapse/sd-collapse.control.d.ts.map +0 -1
- package/dist/ui/navigation/pagination/sd-pagination.control.d.ts.map +0 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-container.control.d.ts.map +0 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts +0 -22
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts.map +0 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-user.control.d.ts +0 -16
- package/dist/ui/navigation/sidebar/sd-sidebar-user.control.d.ts.map +0 -1
- package/dist/ui/navigation/sidebar/sd-sidebar.control.d.ts +0 -8
- package/dist/ui/navigation/sidebar/sd-sidebar.control.d.ts.map +0 -1
- package/dist/ui/navigation/tab/sd-tab-item.control.d.ts +0 -10
- package/dist/ui/navigation/tab/sd-tab-item.control.d.ts.map +0 -1
- package/dist/ui/navigation/tab/sd-tab.control.d.ts +0 -7
- package/dist/ui/navigation/tab/sd-tab.control.d.ts.map +0 -1
- package/dist/ui/navigation/tab/sd-tabview-item.control.d.ts +0 -10
- package/dist/ui/navigation/tab/sd-tabview-item.control.d.ts.map +0 -1
- package/dist/ui/navigation/tab/sd-tabview.control.d.ts +0 -9
- package/dist/ui/navigation/tab/sd-tabview.control.d.ts.map +0 -1
- package/dist/ui/navigation/topbar/sd-topbar-container.control.d.ts +0 -6
- package/dist/ui/navigation/topbar/sd-topbar-container.control.d.ts.map +0 -1
- package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts +0 -23
- package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts.map +0 -1
- package/dist/ui/navigation/topbar/sd-topbar-user.control.d.ts +0 -13
- package/dist/ui/navigation/topbar/sd-topbar-user.control.d.ts.map +0 -1
- package/dist/ui/navigation/topbar/sd-topbar.control.d.ts.map +0 -1
- package/dist/ui/overlay/busy/sd-busy-container.control.d.ts +0 -14
- package/dist/ui/overlay/busy/sd-busy-container.control.d.ts.map +0 -1
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts +0 -8
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts.map +0 -1
- package/dist/ui/overlay/dropdown/sd-dropdown.control.d.ts.map +0 -1
- package/dist/ui/overlay/modal/sd-confirm-modal.control.d.ts +0 -17
- package/dist/ui/overlay/modal/sd-confirm-modal.control.d.ts.map +0 -1
- package/dist/ui/overlay/modal/sd-modal.control.d.ts.map +0 -1
- package/dist/ui/overlay/modal/sd-prompt-modal.control.d.ts +0 -19
- package/dist/ui/overlay/modal/sd-prompt-modal.control.d.ts.map +0 -1
- package/dist/ui/overlay/toast/sd-toast-container.control.d.ts +0 -7
- package/dist/ui/overlay/toast/sd-toast-container.control.d.ts.map +0 -1
- package/dist/ui/overlay/toast/sd-toast.control.d.ts +0 -14
- package/dist/ui/overlay/toast/sd-toast.control.d.ts.map +0 -1
- package/dist/ui/visual/sd-barcode.control.d.ts +0 -11
- package/dist/ui/visual/sd-barcode.control.d.ts.map +0 -1
- package/dist/ui/visual/sd-calendar.control.d.ts.map +0 -1
- package/dist/ui/visual/sd-echarts.control.d.ts +0 -13
- package/dist/ui/visual/sd-echarts.control.d.ts.map +0 -1
- package/dist/ui/visual/sd-label.control.d.ts +0 -9
- package/dist/ui/visual/sd-label.control.d.ts.map +0 -1
- package/dist/ui/visual/sd-note.control.d.ts +0 -9
- package/dist/ui/visual/sd-note.control.d.ts.map +0 -1
- package/dist/ui/visual/sd-progress.control.d.ts +0 -11
- package/dist/ui/visual/sd-progress.control.d.ts.map +0 -1
- package/src/features/data-view/sd-data-select-button.control.ts +0 -210
- /package/dist/core/utils/{TDirectiveInputSignals.js → directive-input-signals.js} +0 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { computed, inject, Injectable } from "@angular/core";
|
|
1
|
+
import { computed, inject, Injectable, signal } from "@angular/core";
|
|
2
2
|
import type { Signal } from "@angular/core";
|
|
3
|
-
import type {
|
|
3
|
+
import type { AppStructureService } from "@simplysm/service-common";
|
|
4
|
+
import type { AppStructureItem, SdFlatMenu } from "./sd-app-structure.types";
|
|
4
5
|
import { SdAppStructureUtils } from "./sd-app-structure.utils";
|
|
6
|
+
import { SdServiceClientFactoryProvider } from "./sd-service-client-factory.provider";
|
|
7
|
+
import { SdAngularConfigProvider } from "./sd-angular-config.provider";
|
|
5
8
|
|
|
6
|
-
export function
|
|
9
|
+
export function injectPermsSignal<K extends string>(viewCodes: string[], keys: K[]): Signal<K[]> {
|
|
7
10
|
const sdAppStructure = inject(SdAppStructureProvider);
|
|
8
11
|
return computed(() => sdAppStructure.getPermsByFullCode(viewCodes, keys));
|
|
9
12
|
}
|
|
@@ -12,32 +15,46 @@ export function usePermsSignal<K extends string>(viewCodes: string[], keys: K[])
|
|
|
12
15
|
// 메뉴는 모듈/권한 모두 체크함
|
|
13
16
|
@Injectable({ providedIn: "root" })
|
|
14
17
|
export abstract class SdAppStructureProvider<TModule = unknown> {
|
|
15
|
-
|
|
18
|
+
private readonly _clientFactory = inject(SdServiceClientFactoryProvider);
|
|
19
|
+
private readonly _config = inject(SdAngularConfigProvider);
|
|
20
|
+
|
|
21
|
+
abstract serviceKey: string;
|
|
16
22
|
abstract usableModules: Signal<TModule[] | undefined>;
|
|
17
23
|
abstract permRecord: Signal<Record<string, boolean> | undefined>;
|
|
18
24
|
|
|
25
|
+
readonly items = signal<AppStructureItem<TModule>[]>([]);
|
|
26
|
+
|
|
27
|
+
async fetchItems(): Promise<void> {
|
|
28
|
+
const client = this._clientFactory.get(this.serviceKey);
|
|
29
|
+
const svc = client.getService<AppStructureService>("AppStructure");
|
|
30
|
+
const itemsMap = await svc.getItems();
|
|
31
|
+
this.items.set(
|
|
32
|
+
(itemsMap[this._config.clientName] ?? []) as AppStructureItem<TModule>[],
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
19
36
|
usableMenus = computed(() =>
|
|
20
|
-
SdAppStructureUtils.getMenus(this.items, [], this.usableModules(), this.permRecord()),
|
|
37
|
+
SdAppStructureUtils.getMenus(this.items(), [], this.usableModules(), this.permRecord()),
|
|
21
38
|
);
|
|
22
|
-
usableFlatMenus = computed<
|
|
23
|
-
SdAppStructureUtils.getFlatMenus(this.items, this.usableModules(), this.permRecord()),
|
|
39
|
+
usableFlatMenus = computed<SdFlatMenu<TModule>[]>(() =>
|
|
40
|
+
SdAppStructureUtils.getFlatMenus(this.items(), this.usableModules(), this.permRecord()),
|
|
24
41
|
);
|
|
25
42
|
|
|
26
|
-
getPermissionsByStructure(items:
|
|
43
|
+
getPermissionsByStructure(items: AppStructureItem<TModule>[], codeChain: string[] = []) {
|
|
27
44
|
return SdAppStructureUtils.getPermissions(items, codeChain, this.usableModules());
|
|
28
45
|
}
|
|
29
46
|
|
|
30
47
|
getTitleByFullCode(fullCode: string) {
|
|
31
|
-
return SdAppStructureUtils.getTitleByFullCode(this.items, fullCode);
|
|
48
|
+
return SdAppStructureUtils.getTitleByFullCode(this.items(), fullCode);
|
|
32
49
|
}
|
|
33
50
|
|
|
34
51
|
getItemChainByFullCode(fullCode: string) {
|
|
35
|
-
return SdAppStructureUtils.getItemChainByFullCode(this.items, fullCode);
|
|
52
|
+
return SdAppStructureUtils.getItemChainByFullCode(this.items(), fullCode);
|
|
36
53
|
}
|
|
37
54
|
|
|
38
55
|
getPermsByFullCode<K extends string>(fullCodes: string[], permKeys: K[]): K[] {
|
|
39
56
|
return SdAppStructureUtils.getPermsByFullCode(
|
|
40
|
-
this.items,
|
|
57
|
+
this.items(),
|
|
41
58
|
fullCodes,
|
|
42
59
|
permKeys,
|
|
43
60
|
this.permRecord(),
|
|
@@ -1,60 +1,29 @@
|
|
|
1
|
-
export type
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export type {
|
|
2
|
+
AppStructureItem,
|
|
3
|
+
AppStructureGroupItem,
|
|
4
|
+
AppStructureLeafItem,
|
|
5
|
+
AppStructureSubPermission,
|
|
6
|
+
FlatPermission,
|
|
7
|
+
} from "@simplysm/service-common";
|
|
4
8
|
|
|
5
|
-
export interface
|
|
6
|
-
code: string;
|
|
7
|
-
title: string;
|
|
8
|
-
modules?: TModule[];
|
|
9
|
-
requiredModules?: TModule[];
|
|
10
|
-
icon?: string;
|
|
11
|
-
children: TSdAppStructureItem<TModule>[];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface ISdAppStructureLeafItem<TModule> {
|
|
15
|
-
code: string;
|
|
16
|
-
title: string;
|
|
17
|
-
modules?: TModule[];
|
|
18
|
-
requiredModules?: TModule[];
|
|
19
|
-
perms?: ("use" | "edit")[];
|
|
20
|
-
subPerms?: ISdAppStructureSubPermission<TModule>[];
|
|
21
|
-
icon?: string;
|
|
22
|
-
url?: string;
|
|
23
|
-
isNotMenu?: boolean;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface ISdAppStructureSubPermission<TModule> {
|
|
27
|
-
code: string;
|
|
28
|
-
title: string;
|
|
29
|
-
modules?: TModule[];
|
|
30
|
-
requiredModules?: TModule[];
|
|
31
|
-
perms: ("use" | "edit")[];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface ISdMenu {
|
|
9
|
+
export interface SdMenu {
|
|
35
10
|
title: string;
|
|
36
11
|
codeChain: string[];
|
|
37
12
|
url?: string;
|
|
38
13
|
icon?: string;
|
|
39
|
-
children?:
|
|
14
|
+
children?: SdMenu[];
|
|
40
15
|
}
|
|
41
16
|
|
|
42
|
-
export interface
|
|
17
|
+
export interface SdFlatMenu<TModule = unknown> {
|
|
43
18
|
titleChain: string[];
|
|
44
19
|
codeChain: string[];
|
|
45
20
|
modulesChain: TModule[][];
|
|
46
21
|
}
|
|
47
22
|
|
|
48
|
-
export interface
|
|
23
|
+
export interface SdPermission<TModule = unknown> {
|
|
49
24
|
title: string;
|
|
50
25
|
codeChain: string[];
|
|
51
26
|
modules: TModule[] | undefined;
|
|
52
27
|
perms: ("use" | "edit")[] | undefined;
|
|
53
|
-
children:
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export interface ISdFlatPermission<TModule = unknown> {
|
|
57
|
-
titleChain: string[];
|
|
58
|
-
codeChain: string[];
|
|
59
|
-
modulesChain: TModule[][];
|
|
28
|
+
children: SdPermission<TModule>[] | undefined;
|
|
60
29
|
}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getFlatPermissions,
|
|
3
|
+
isUsableModules,
|
|
4
|
+
isUsableModulesChain,
|
|
5
|
+
} from "@simplysm/service-common";
|
|
1
6
|
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
ISdFlatPermission,
|
|
7
|
+
AppStructureItem,
|
|
8
|
+
SdMenu,
|
|
9
|
+
SdFlatMenu,
|
|
10
|
+
SdPermission,
|
|
7
11
|
} from "./sd-app-structure.types";
|
|
8
12
|
|
|
9
13
|
export abstract class SdAppStructureUtils {
|
|
10
14
|
//---------- Info
|
|
11
15
|
|
|
12
|
-
static getTitleByFullCode<TModule>(items:
|
|
16
|
+
static getTitleByFullCode<TModule>(items: AppStructureItem<TModule>[], fullCode: string) {
|
|
13
17
|
const itemChain = this.getItemChainByFullCode(items, fullCode);
|
|
14
18
|
if (itemChain.length === 0) {
|
|
15
19
|
throw new Error(`Item not found for fullCode: ${fullCode}`);
|
|
@@ -23,7 +27,7 @@ export abstract class SdAppStructureUtils {
|
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
static getPermsByFullCode<TModule, K extends string>(
|
|
26
|
-
items:
|
|
30
|
+
items: AppStructureItem<TModule>[],
|
|
27
31
|
fullCodes: string[],
|
|
28
32
|
permKeys: K[],
|
|
29
33
|
permRecord: Record<string, boolean> | undefined,
|
|
@@ -51,12 +55,12 @@ export abstract class SdAppStructureUtils {
|
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
static getItemChainByFullCode<TModule>(
|
|
54
|
-
items:
|
|
58
|
+
items: AppStructureItem<TModule>[],
|
|
55
59
|
fullCode: string,
|
|
56
|
-
):
|
|
60
|
+
): AppStructureItem<TModule>[] {
|
|
57
61
|
const codeChain = fullCode.split(".");
|
|
58
62
|
|
|
59
|
-
const result:
|
|
63
|
+
const result: AppStructureItem<TModule>[] = [];
|
|
60
64
|
|
|
61
65
|
let cursorChildren = items;
|
|
62
66
|
for (const currCode of codeChain) {
|
|
@@ -72,12 +76,12 @@ export abstract class SdAppStructureUtils {
|
|
|
72
76
|
//---------- Menus
|
|
73
77
|
|
|
74
78
|
static getMenus<TModule>(
|
|
75
|
-
items:
|
|
79
|
+
items: AppStructureItem<TModule>[],
|
|
76
80
|
codeChain: string[],
|
|
77
81
|
usableModules: TModule[] | undefined,
|
|
78
82
|
permRecord: Record<string, boolean> | undefined,
|
|
79
|
-
):
|
|
80
|
-
const resultMenus:
|
|
83
|
+
): SdMenu[] {
|
|
84
|
+
const resultMenus: SdMenu[] = [];
|
|
81
85
|
|
|
82
86
|
for (const item of items) {
|
|
83
87
|
if ("isNotMenu" in item && item.isNotMenu) continue;
|
|
@@ -85,7 +89,7 @@ export abstract class SdAppStructureUtils {
|
|
|
85
89
|
const currCodeChain = [...codeChain, item.code];
|
|
86
90
|
|
|
87
91
|
// 모듈 활성화 여부 확인
|
|
88
|
-
if (!
|
|
92
|
+
if (!isUsableModules(item.modules, item.requiredModules, usableModules)) continue;
|
|
89
93
|
|
|
90
94
|
// 그룹 메뉴
|
|
91
95
|
if ("children" in item) {
|
|
@@ -120,14 +124,14 @@ export abstract class SdAppStructureUtils {
|
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
static getFlatMenus<TModule>(
|
|
123
|
-
items:
|
|
127
|
+
items: AppStructureItem<TModule>[],
|
|
124
128
|
usableModules: TModule[] | undefined,
|
|
125
129
|
permRecord: Record<string, boolean> | undefined,
|
|
126
|
-
):
|
|
127
|
-
const resultFlatMenus:
|
|
130
|
+
): SdFlatMenu<TModule>[] {
|
|
131
|
+
const resultFlatMenus: SdFlatMenu<TModule>[] = [];
|
|
128
132
|
|
|
129
133
|
type QueueItem = {
|
|
130
|
-
item:
|
|
134
|
+
item: AppStructureItem<TModule>;
|
|
131
135
|
titleChain: string[];
|
|
132
136
|
codeChain: string[];
|
|
133
137
|
modulesChain: TModule[][];
|
|
@@ -154,7 +158,7 @@ export abstract class SdAppStructureUtils {
|
|
|
154
158
|
? [...requiredModulesChain, item.requiredModules]
|
|
155
159
|
: requiredModulesChain;
|
|
156
160
|
|
|
157
|
-
if (!
|
|
161
|
+
if (!isUsableModulesChain(currModulesChain, currRequiredModulesChain, usableModules))
|
|
158
162
|
continue;
|
|
159
163
|
|
|
160
164
|
if ("children" in item) {
|
|
@@ -182,16 +186,16 @@ export abstract class SdAppStructureUtils {
|
|
|
182
186
|
//---------- Perms
|
|
183
187
|
|
|
184
188
|
static getPermissions<TModule>(
|
|
185
|
-
items:
|
|
189
|
+
items: AppStructureItem<TModule>[],
|
|
186
190
|
codeChain: string[],
|
|
187
191
|
usableModules: TModule[] | undefined,
|
|
188
|
-
):
|
|
189
|
-
const results:
|
|
192
|
+
): SdPermission<TModule>[] {
|
|
193
|
+
const results: SdPermission<TModule>[] = [];
|
|
190
194
|
for (const item of items) {
|
|
191
195
|
const currCodeChain = [...codeChain, item.code];
|
|
192
196
|
|
|
193
197
|
// 모듈 활성화 여부 확인
|
|
194
|
-
if (!
|
|
198
|
+
if (!isUsableModules(item.modules, item.requiredModules, usableModules)) continue;
|
|
195
199
|
|
|
196
200
|
// 그룹
|
|
197
201
|
if ("children" in item) {
|
|
@@ -227,124 +231,9 @@ export abstract class SdAppStructureUtils {
|
|
|
227
231
|
}
|
|
228
232
|
|
|
229
233
|
static getFlatPermissions<TModule>(
|
|
230
|
-
items:
|
|
234
|
+
items: AppStructureItem<TModule>[],
|
|
231
235
|
usableModules: TModule[] | undefined,
|
|
232
236
|
) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
type QueueItem = {
|
|
236
|
-
item: TSdAppStructureItem<TModule>;
|
|
237
|
-
titleChain: string[];
|
|
238
|
-
codeChain: string[];
|
|
239
|
-
modulesChain: TModule[][];
|
|
240
|
-
requiredModulesChain: TModule[][];
|
|
241
|
-
};
|
|
242
|
-
|
|
243
|
-
const queue: QueueItem[] = items.map((item) => ({
|
|
244
|
-
item,
|
|
245
|
-
titleChain: [],
|
|
246
|
-
codeChain: [],
|
|
247
|
-
modulesChain: [],
|
|
248
|
-
requiredModulesChain: [],
|
|
249
|
-
}));
|
|
250
|
-
|
|
251
|
-
while (queue.length > 0) {
|
|
252
|
-
const { item, titleChain, codeChain, modulesChain, requiredModulesChain } = queue.shift()!;
|
|
253
|
-
|
|
254
|
-
const currTitleChain = [...titleChain, item.title];
|
|
255
|
-
const currCodeChain = [...codeChain, item.code];
|
|
256
|
-
const currModulesChain = item.modules ? [...modulesChain, item.modules] : modulesChain;
|
|
257
|
-
const currRequiredModulesChain = item.requiredModules
|
|
258
|
-
? [...requiredModulesChain, item.requiredModules]
|
|
259
|
-
: requiredModulesChain;
|
|
260
|
-
|
|
261
|
-
if (!this._isUsableModulesChain(currModulesChain, currRequiredModulesChain, usableModules))
|
|
262
|
-
continue;
|
|
263
|
-
|
|
264
|
-
// 1. 자식 enqueue
|
|
265
|
-
if ("children" in item) {
|
|
266
|
-
for (const child of item.children) {
|
|
267
|
-
queue.push({
|
|
268
|
-
item: child,
|
|
269
|
-
titleChain: currTitleChain,
|
|
270
|
-
codeChain: currCodeChain,
|
|
271
|
-
modulesChain: currModulesChain,
|
|
272
|
-
requiredModulesChain: currRequiredModulesChain,
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// 1. 직접 perms 처리
|
|
278
|
-
if ("perms" in item) {
|
|
279
|
-
for (const perm of item.perms ?? []) {
|
|
280
|
-
results.push({
|
|
281
|
-
titleChain: currTitleChain,
|
|
282
|
-
codeChain: [...currCodeChain, perm],
|
|
283
|
-
modulesChain: currModulesChain,
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
// 2. subPerms 처리
|
|
289
|
-
if ("subPerms" in item) {
|
|
290
|
-
for (const subPerm of item.subPerms ?? []) {
|
|
291
|
-
// subPerm도 모듈 체크
|
|
292
|
-
if (!this._isUsableModules(subPerm.modules, subPerm.requiredModules, usableModules))
|
|
293
|
-
continue;
|
|
294
|
-
|
|
295
|
-
for (const perm of subPerm.perms) {
|
|
296
|
-
results.push({
|
|
297
|
-
titleChain: currTitleChain,
|
|
298
|
-
codeChain: [...currCodeChain, subPerm.code, perm],
|
|
299
|
-
modulesChain: [...currModulesChain, subPerm.modules ?? []],
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
return results;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
//-- Modules (private)
|
|
310
|
-
|
|
311
|
-
private static _isUsableModulesChain<TModule>(
|
|
312
|
-
modulesChain: TModule[][],
|
|
313
|
-
requiredModulesChain: TModule[][],
|
|
314
|
-
usableModules: TModule[] | undefined,
|
|
315
|
-
) {
|
|
316
|
-
// 각 레벨의 modules (OR) 체크
|
|
317
|
-
for (const modules of modulesChain) {
|
|
318
|
-
if (!this._isUsableModules(modules, undefined, usableModules)) {
|
|
319
|
-
return false;
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
// 각 레벨의 requiredModules (AND) 체크
|
|
324
|
-
for (const requiredModules of requiredModulesChain) {
|
|
325
|
-
if (!this._isUsableModules(undefined, requiredModules, usableModules)) {
|
|
326
|
-
return false;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
return true;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
private static _isUsableModules<TModule>(
|
|
334
|
-
modules: TModule[] | undefined,
|
|
335
|
-
requiredModules: TModule[] | undefined,
|
|
336
|
-
usableModules: TModule[] | undefined,
|
|
337
|
-
): boolean {
|
|
338
|
-
// 1. requiredModules: 모두 있어야 함 (AND)
|
|
339
|
-
if (requiredModules && requiredModules.length > 0) {
|
|
340
|
-
if (!requiredModules.every((m) => usableModules?.includes(m))) {
|
|
341
|
-
return false;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
// 2. modules: 하나라도 있으면 됨 (OR)
|
|
346
|
-
return (
|
|
347
|
-
modules == null || modules.length === 0 || modules.some((m) => usableModules?.includes(m))
|
|
348
|
-
);
|
|
237
|
+
return getFlatPermissions(items, usableModules);
|
|
349
238
|
}
|
|
350
239
|
}
|
|
@@ -8,23 +8,23 @@ import {
|
|
|
8
8
|
signal,
|
|
9
9
|
type ComponentRef,
|
|
10
10
|
} from "@angular/core";
|
|
11
|
-
import {
|
|
11
|
+
import { SdBusyContainer } from "../../ui/overlay/busy/sd-busy-container";
|
|
12
12
|
|
|
13
|
-
export type
|
|
13
|
+
export type SdBusyType = "spinner" | "bar" | "cube";
|
|
14
14
|
|
|
15
15
|
@Injectable({ providedIn: "root" })
|
|
16
16
|
export class SdBusyProvider {
|
|
17
17
|
private readonly _appRef = inject(ApplicationRef);
|
|
18
18
|
private readonly _envInjector = inject(EnvironmentInjector);
|
|
19
19
|
|
|
20
|
-
type = signal<
|
|
20
|
+
type = signal<SdBusyType>("bar");
|
|
21
21
|
globalBusyCount = signal(0);
|
|
22
22
|
|
|
23
|
-
private _containerRef: ComponentRef<
|
|
23
|
+
private _containerRef: ComponentRef<SdBusyContainer> | undefined;
|
|
24
24
|
|
|
25
|
-
get containerRef(): ComponentRef<
|
|
25
|
+
get containerRef(): ComponentRef<SdBusyContainer> {
|
|
26
26
|
if (this._containerRef === undefined) {
|
|
27
|
-
this._containerRef = createComponent(
|
|
27
|
+
this._containerRef = createComponent(SdBusyContainer, {
|
|
28
28
|
environmentInjector: this._envInjector,
|
|
29
29
|
});
|
|
30
30
|
this._appRef.attachView(this._containerRef.hostView);
|
|
@@ -7,26 +7,26 @@ import {
|
|
|
7
7
|
type Signal,
|
|
8
8
|
type Type,
|
|
9
9
|
} from "@angular/core";
|
|
10
|
-
import type {
|
|
10
|
+
import type { DirectiveInputSignals, WithOptional } from "../utils/directive-input-signals";
|
|
11
11
|
import { SdBusyProvider } from "./sd-busy.provider";
|
|
12
12
|
import { wait } from "@simplysm/core-common";
|
|
13
13
|
import { jsPDF } from "jspdf";
|
|
14
14
|
import * as htmlToImage from "html-to-image";
|
|
15
15
|
|
|
16
|
-
export interface
|
|
16
|
+
export interface SdPrint {
|
|
17
17
|
initialized: Signal<boolean>;
|
|
18
18
|
readonly _optionalPrintInputs?: string;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
type
|
|
21
|
+
type SdPrintOptionalKeys<T> = T extends { _optionalPrintInputs?: infer K extends string }
|
|
22
22
|
? K
|
|
23
23
|
: never;
|
|
24
24
|
|
|
25
|
-
export interface
|
|
25
|
+
export interface SdPrintInput<T, X extends keyof any = ""> {
|
|
26
26
|
type: Type<T>;
|
|
27
|
-
inputs:
|
|
28
|
-
Omit<
|
|
29
|
-
|
|
27
|
+
inputs: WithOptional<
|
|
28
|
+
Omit<DirectiveInputSignals<T>, "_optionalPrintInputs" | X>,
|
|
29
|
+
SdPrintOptionalKeys<T> & keyof Omit<DirectiveInputSignals<T>, "_optionalPrintInputs" | X>
|
|
30
30
|
>;
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -35,8 +35,8 @@ export class SdPrintProvider {
|
|
|
35
35
|
private readonly _appRef = inject(ApplicationRef);
|
|
36
36
|
private readonly _sdBusy = inject(SdBusyProvider);
|
|
37
37
|
|
|
38
|
-
async printAsync<T extends
|
|
39
|
-
template:
|
|
38
|
+
async printAsync<T extends SdPrint>(
|
|
39
|
+
template: SdPrintInput<T>,
|
|
40
40
|
options?: {
|
|
41
41
|
size?: string;
|
|
42
42
|
margin?: string;
|
|
@@ -90,8 +90,8 @@ export class SdPrintProvider {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
async getPdfBufferAsync<T extends
|
|
94
|
-
template:
|
|
93
|
+
async getPdfBufferAsync<T extends SdPrint>(
|
|
94
|
+
template: SdPrintInput<T>,
|
|
95
95
|
options?: {
|
|
96
96
|
orientation?: "portrait" | "landscape";
|
|
97
97
|
pageSize?: string;
|
|
@@ -4,21 +4,21 @@ import { obj, wait as waitUtil } from "@simplysm/core-common";
|
|
|
4
4
|
import { SdServiceClientFactoryProvider } from "./sd-service-client-factory.provider";
|
|
5
5
|
import "@simplysm/core-common";
|
|
6
6
|
|
|
7
|
-
export interface
|
|
7
|
+
export interface SharedDataBase<TKey extends string | number> {
|
|
8
8
|
__valueKey: TKey;
|
|
9
9
|
__searchText: string;
|
|
10
10
|
__isHidden: boolean;
|
|
11
11
|
__parentKey?: TKey;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export interface
|
|
14
|
+
export interface SharedDataInfo<T extends SharedDataBase<string | number>> {
|
|
15
15
|
serviceKey: string;
|
|
16
16
|
getter: (changeKeys?: (string | number)[]) => Promise<T[]>;
|
|
17
17
|
filter?: unknown;
|
|
18
18
|
orderBy?: (a: T, b: T) => number;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export interface SharedDataHandle<T extends
|
|
21
|
+
export interface SharedDataHandle<T extends SharedDataBase<string | number>> {
|
|
22
22
|
items: Signal<T[]>;
|
|
23
23
|
get(key: T["__valueKey"] | undefined): T | undefined;
|
|
24
24
|
}
|
|
@@ -28,8 +28,8 @@ export const SdSharedDataChangeEvent = defineEvent<
|
|
|
28
28
|
(string | number)[] | undefined
|
|
29
29
|
>("SdSharedDataChange");
|
|
30
30
|
|
|
31
|
-
interface
|
|
32
|
-
info:
|
|
31
|
+
interface SharedDataEntry<T extends SharedDataBase<string | number>> {
|
|
32
|
+
info: SharedDataInfo<T>;
|
|
33
33
|
itemsSignal: WritableSignal<T[]>;
|
|
34
34
|
handle: SharedDataHandle<T>;
|
|
35
35
|
listenerKey?: string;
|
|
@@ -38,17 +38,17 @@ interface ISharedDataEntry<T extends ISharedDataBase<string | number>> {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
@Injectable()
|
|
41
|
-
export abstract class SdSharedDataProvider<T extends Record<string,
|
|
41
|
+
export abstract class SdSharedDataProvider<T extends Record<string, SharedDataBase<string | number>>> {
|
|
42
42
|
private readonly _clientFactory = inject(SdServiceClientFactoryProvider);
|
|
43
43
|
private readonly _errorHandler = inject(ErrorHandler);
|
|
44
44
|
|
|
45
45
|
readonly loadingCount: WritableSignal<number> = signal(0);
|
|
46
46
|
|
|
47
|
-
private readonly _entries = new Map<string,
|
|
47
|
+
private readonly _entries = new Map<string, SharedDataEntry<any>>();
|
|
48
48
|
|
|
49
49
|
abstract initialize(): void;
|
|
50
50
|
|
|
51
|
-
register<K extends string & keyof T>(name: K, info:
|
|
51
|
+
register<K extends string & keyof T>(name: K, info: SharedDataInfo<T[K]>): void {
|
|
52
52
|
const existing = this._entries.get(name as string);
|
|
53
53
|
if (existing != null) {
|
|
54
54
|
// 기존 리스너 키 초기화
|
|
@@ -118,7 +118,7 @@ export abstract class SdSharedDataProvider<T extends Record<string, ISharedDataB
|
|
|
118
118
|
await waitUtil.until(() => this.loadingCount() <= 0);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
private _loadAndListen(name: string, entry:
|
|
121
|
+
private _loadAndListen(name: string, entry: SharedDataEntry<any>): void {
|
|
122
122
|
entry.isLoading = true;
|
|
123
123
|
this.loadingCount.update((v) => v + 1);
|
|
124
124
|
|
|
@@ -155,7 +155,7 @@ export abstract class SdSharedDataProvider<T extends Record<string, ISharedDataB
|
|
|
155
155
|
|
|
156
156
|
private async _onEvent(
|
|
157
157
|
name: string,
|
|
158
|
-
entry:
|
|
158
|
+
entry: SharedDataEntry<any>,
|
|
159
159
|
changeKeys: (string | number)[] | undefined,
|
|
160
160
|
): Promise<void> {
|
|
161
161
|
this.loadingCount.update((v) => v + 1);
|
|
@@ -13,22 +13,22 @@ import {
|
|
|
13
13
|
type WritableSignal,
|
|
14
14
|
} from "@angular/core";
|
|
15
15
|
import { outputToObservable } from "@angular/core/rxjs-interop";
|
|
16
|
-
import type {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import type { DirectiveInputSignals } from "../utils/directive-input-signals";
|
|
17
|
+
import { SdToast } from "../../ui/overlay/toast/sd-toast";
|
|
18
|
+
import { SdToastContainer } from "../../ui/overlay/toast/sd-toast-container";
|
|
19
19
|
import { SdSystemLogProvider } from "./sd-system-log.provider";
|
|
20
20
|
import "@simplysm/core-browser";
|
|
21
21
|
|
|
22
|
-
export type
|
|
23
|
-
export type
|
|
22
|
+
export type SdToastSeverity = "info" | "success" | "warning" | "danger";
|
|
23
|
+
export type SdToastTheme = "primary" | "secondary" | SdToastSeverity | "gray" | "blue-gray";
|
|
24
24
|
|
|
25
|
-
export interface
|
|
25
|
+
export interface SdToastContentDef<O> {
|
|
26
26
|
close: OutputEmitterRef<O | undefined>;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export interface
|
|
29
|
+
export interface SdToastInput<T extends SdToastContentDef<any>> {
|
|
30
30
|
type: Type<T>;
|
|
31
|
-
inputs: Omit<
|
|
31
|
+
inputs: Omit<DirectiveInputSignals<T>, "close">;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
@Injectable({ providedIn: "root" })
|
|
@@ -38,13 +38,13 @@ export class SdToastProvider {
|
|
|
38
38
|
private readonly _injector = inject(Injector);
|
|
39
39
|
private readonly _systemLog = inject(SdSystemLogProvider);
|
|
40
40
|
|
|
41
|
-
alertThemes = signal<
|
|
41
|
+
alertThemes = signal<SdToastSeverity[]>([]);
|
|
42
42
|
overlap = signal(false);
|
|
43
|
-
beforeShowFn?: (theme:
|
|
43
|
+
beforeShowFn?: (theme: SdToastSeverity) => void;
|
|
44
44
|
|
|
45
|
-
private _containerRef: ComponentRef<
|
|
46
|
-
private readonly _toastRefs: ComponentRef<
|
|
47
|
-
private readonly _contentRefs = new Map<ComponentRef<
|
|
45
|
+
private _containerRef: ComponentRef<SdToastContainer> | undefined;
|
|
46
|
+
private readonly _toastRefs: ComponentRef<SdToast>[] = [];
|
|
47
|
+
private readonly _contentRefs = new Map<ComponentRef<SdToast>, ComponentRef<any>>();
|
|
48
48
|
|
|
49
49
|
constructor() {
|
|
50
50
|
effect(() => {
|
|
@@ -54,9 +54,9 @@ export class SdToastProvider {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
private get containerRef(): ComponentRef<
|
|
57
|
+
private get containerRef(): ComponentRef<SdToastContainer> {
|
|
58
58
|
if (this._containerRef === undefined) {
|
|
59
|
-
this._containerRef = createComponent(
|
|
59
|
+
this._containerRef = createComponent(SdToastContainer, {
|
|
60
60
|
environmentInjector: this._envInjector,
|
|
61
61
|
});
|
|
62
62
|
this._appRef.attachView(this._containerRef.hostView);
|
|
@@ -90,7 +90,7 @@ export class SdToastProvider {
|
|
|
90
90
|
return this._show("danger", message, useProgress);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
notify<T extends
|
|
93
|
+
notify<T extends SdToastContentDef<any>>(input: SdToastInput<T>): Promise<Parameters<T["close"]["emit"]>[0] | undefined> {
|
|
94
94
|
return new Promise((resolve) => {
|
|
95
95
|
// overlap 모드: 기존 토스트 모두 제거
|
|
96
96
|
if (this.overlap()) {
|
|
@@ -100,7 +100,7 @@ export class SdToastProvider {
|
|
|
100
100
|
const containerEl = this.containerRef.location.nativeElement as HTMLElement;
|
|
101
101
|
|
|
102
102
|
// 토스트 래퍼 생성
|
|
103
|
-
const toastRef = createComponent(
|
|
103
|
+
const toastRef = createComponent(SdToast, {
|
|
104
104
|
environmentInjector: this._envInjector,
|
|
105
105
|
});
|
|
106
106
|
this._appRef.attachView(toastRef.hostView);
|
|
@@ -166,7 +166,7 @@ export class SdToastProvider {
|
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
private _show(
|
|
169
|
-
theme:
|
|
169
|
+
theme: SdToastSeverity,
|
|
170
170
|
message: string,
|
|
171
171
|
useProgress: boolean,
|
|
172
172
|
): WritableSignal<number> | void {
|
|
@@ -188,7 +188,7 @@ export class SdToastProvider {
|
|
|
188
188
|
|
|
189
189
|
// 토스트 컴포넌트 생성
|
|
190
190
|
const containerEl = this.containerRef.location.nativeElement as HTMLElement;
|
|
191
|
-
const toastRef = createComponent(
|
|
191
|
+
const toastRef = createComponent(SdToast, {
|
|
192
192
|
environmentInjector: this._envInjector,
|
|
193
193
|
});
|
|
194
194
|
this._appRef.attachView(toastRef.hostView);
|
|
@@ -229,7 +229,7 @@ export class SdToastProvider {
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
private _setupAutoDismiss(
|
|
232
|
-
toastRef: ComponentRef<
|
|
232
|
+
toastRef: ComponentRef<SdToast>,
|
|
233
233
|
delayMs: number,
|
|
234
234
|
onDismiss?: () => void,
|
|
235
235
|
): void {
|
|
@@ -270,7 +270,7 @@ export class SdToastProvider {
|
|
|
270
270
|
dismissAfterDelay(delayMs);
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
private _dismissToast(toastRef: ComponentRef<
|
|
273
|
+
private _dismissToast(toastRef: ComponentRef<SdToast>): void {
|
|
274
274
|
toastRef.instance.open.set(false);
|
|
275
275
|
|
|
276
276
|
const el = toastRef.location.nativeElement as HTMLElement;
|
|
@@ -291,7 +291,7 @@ export class SdToastProvider {
|
|
|
291
291
|
}, 300);
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
private _destroyToast(toastRef: ComponentRef<
|
|
294
|
+
private _destroyToast(toastRef: ComponentRef<SdToast>): void {
|
|
295
295
|
const idx = this._toastRefs.indexOf(toastRef);
|
|
296
296
|
if (idx === -1) return; // 이미 파괴됨
|
|
297
297
|
|