@simplysm/angular 14.0.8 → 14.0.10
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 +234 -246
- package/dist/core/commons.d.ts.map +1 -1
- package/dist/core/directives/sd-events.directive.d.ts.map +1 -1
- package/dist/core/directives/sd-invalid.directive.d.ts.map +1 -1
- package/dist/core/directives/sd-item-of-template.directive.d.ts.map +1 -1
- package/dist/core/directives/sd-ripple.directive.d.ts.map +1 -1
- package/dist/core/directives/sd-router-link.directive.d.ts.map +1 -1
- package/dist/core/directives/sd-show-effect.directive.d.ts.map +1 -1
- package/dist/core/directives/sd-typed-template.directive.d.ts.map +1 -1
- package/dist/core/pipes/format.pipe.d.ts.map +1 -1
- package/dist/core/plugins/commands/findTopOpenModalEl.d.ts.map +1 -1
- package/dist/core/plugins/commands/sd-insert-command-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/commands/sd-refresh-command-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/commands/sd-save-command-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/events/sd-intersection-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/events/sd-option-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/events/sd-resize-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/sd-global-error-handler.plugin.d.ts.map +1 -1
- package/dist/core/provideSdAngular.d.ts.map +1 -1
- package/dist/core/providers/sd-angular-config.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-file-dialog.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-local-storage.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-navigate-window.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-print.provider.d.ts +7 -2
- package/dist/core/providers/sd-print.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-service-client-factory.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-shared-data.provider.d.ts +3 -0
- package/dist/core/providers/sd-shared-data.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-system-config.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-system-log.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-theme-provider.d.ts.map +1 -1
- package/dist/core/utils/TDirectiveInputSignals.d.ts +4 -0
- package/dist/core/utils/TDirectiveInputSignals.d.ts.map +1 -1
- package/dist/core/utils/injectParent.d.ts.map +1 -1
- package/dist/core/utils/setSafeStyle.d.ts.map +1 -1
- package/dist/core/utils/setups/setupBgTheme.d.ts.map +1 -1
- package/dist/core/utils/setups/setupCanDeactivate.d.ts.map +1 -1
- package/dist/core/utils/setups/setupCloserWhenSingleSelectionChange.d.ts +9 -0
- package/dist/core/utils/setups/setupCloserWhenSingleSelectionChange.d.ts.map +1 -0
- package/dist/core/utils/setups/setupCloserWhenSingleSelectionChange.js +20 -0
- package/dist/core/utils/setups/setupCumulateSelectedKeys.d.ts +9 -0
- package/dist/core/utils/setups/setupCumulateSelectedKeys.d.ts.map +1 -0
- package/dist/core/utils/setups/setupCumulateSelectedKeys.js +27 -0
- package/dist/core/utils/setups/setupInvalid.d.ts.map +1 -1
- package/dist/core/utils/setups/setupModelHook.d.ts.map +1 -1
- package/dist/core/utils/setups/setupRevealOnShow.d.ts.map +1 -1
- package/dist/core/utils/setups/setupRipple.d.ts.map +1 -1
- package/dist/core/utils/useCurrentPageCodeSignal.d.ts.map +1 -1
- package/dist/core/utils/useExpandingManager.d.ts.map +1 -1
- package/dist/core/utils/useFullPageCodeSignal.d.ts.map +1 -1
- package/dist/core/utils/useSdSystemConfigResource.d.ts.map +1 -1
- package/dist/core/utils/useSelectionManager.d.ts.map +1 -1
- package/dist/core/utils/useSortingManager.d.ts.map +1 -1
- package/dist/core/utils/useViewTitleSignal.d.ts.map +1 -1
- package/dist/core/utils/useViewTypeSignal.d.ts.map +1 -1
- package/dist/features/address/sd-address-search.modal.d.ts +19 -0
- package/dist/features/address/sd-address-search.modal.d.ts.map +1 -0
- package/dist/features/address/sd-address-search.modal.js +88 -0
- package/dist/features/base/sd-base-container.control.d.ts.map +1 -1
- package/dist/features/base/sd-base-container.control.js +1 -1
- package/dist/features/data-view/sd-data-detail.control.d.ts +70 -0
- package/dist/features/data-view/sd-data-detail.control.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-detail.control.js +606 -0
- package/dist/features/data-view/sd-data-select-button.control.d.ts +35 -0
- package/dist/features/data-view/sd-data-select-button.control.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-select-button.control.js +219 -0
- package/dist/features/data-view/sd-data-sheet-column.directive.d.ts +8 -0
- package/dist/features/data-view/sd-data-sheet-column.directive.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-sheet-column.directive.js +15 -0
- package/dist/features/data-view/sd-data-sheet.control.d.ts +131 -0
- package/dist/features/data-view/sd-data-sheet.control.d.ts.map +1 -0
- package/dist/features/data-view/sd-data-sheet.control.js +1152 -0
- package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts +16 -0
- package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts.map +1 -0
- package/dist/features/shared-data/sd-shared-data-select-button.control.js +66 -0
- package/dist/features/shared-data/sd-shared-data-select-list.control.d.ts +33 -0
- package/dist/features/shared-data/sd-shared-data-select-list.control.d.ts.map +1 -0
- package/dist/features/shared-data/sd-shared-data-select-list.control.js +346 -0
- package/dist/features/shared-data/sd-shared-data-select.control.d.ts +50 -0
- package/dist/features/shared-data/sd-shared-data-select.control.d.ts.map +1 -0
- package/dist/features/shared-data/sd-shared-data-select.control.js +425 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/ui/data/list/sd-list-item.control.d.ts +3 -1
- package/dist/ui/data/list/sd-list-item.control.d.ts.map +1 -1
- package/dist/ui/data/list/sd-list-item.control.js +8 -4
- package/dist/ui/data/list/sd-list.control.d.ts.map +1 -1
- package/dist/ui/data/list/sd-list.control.js +1 -1
- package/dist/ui/data/sheet/sd-sheet-column.directive.d.ts +8 -1
- package/dist/ui/data/sheet/sd-sheet-column.directive.d.ts.map +1 -1
- package/dist/ui/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
- package/dist/ui/data/sheet/sd-sheet-config.modal.js +1 -1
- package/dist/ui/data/sheet/sd-sheet.control.d.ts +4 -4
- package/dist/ui/data/sheet/sd-sheet.control.d.ts.map +1 -1
- package/dist/ui/data/sheet/sd-sheet.control.js +3 -4
- package/dist/ui/data/sheet/types.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetCellAgent.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetColumnFixing.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetDomAccessor.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts.map +1 -1
- package/dist/ui/form/button/sd-additional-button.control.d.ts.map +1 -1
- package/dist/ui/form/button/sd-additional-button.control.js +1 -1
- package/dist/ui/form/button/sd-anchor.control.d.ts.map +1 -1
- package/dist/ui/form/button/sd-anchor.control.js +1 -1
- package/dist/ui/form/button/sd-button.control.d.ts.map +1 -1
- package/dist/ui/form/button/sd-button.control.js +1 -1
- package/dist/ui/form/button/sd-modal-select-button.control.d.ts +16 -18
- package/dist/ui/form/button/sd-modal-select-button.control.d.ts.map +1 -1
- package/dist/ui/form/button/sd-modal-select-button.control.js +22 -39
- package/dist/ui/form/checkbox/sd-checkbox-group-item.control.d.ts.map +1 -1
- package/dist/ui/form/checkbox/sd-checkbox-group-item.control.js +1 -1
- package/dist/ui/form/checkbox/sd-checkbox-group.control.d.ts.map +1 -1
- package/dist/ui/form/checkbox/sd-checkbox-group.control.js +1 -1
- package/dist/ui/form/checkbox/sd-checkbox.control.d.ts.map +1 -1
- package/dist/ui/form/checkbox/sd-checkbox.control.js +1 -1
- package/dist/ui/form/checkbox/sd-switch.control.d.ts.map +1 -1
- package/dist/ui/form/checkbox/sd-switch.control.js +1 -1
- package/dist/ui/form/choice/sd-state-preset.control.d.ts.map +1 -1
- package/dist/ui/form/choice/sd-state-preset.control.js +1 -1
- package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts +18 -1
- package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts.map +1 -1
- package/dist/ui/form/editor/sd-tiptap-editor.control.js +18 -2
- package/dist/ui/form/input/sd-date-range.picker.d.ts.map +1 -1
- package/dist/ui/form/input/sd-date-range.picker.js +1 -1
- package/dist/ui/form/input/sd-numpad.control.d.ts.map +1 -1
- package/dist/ui/form/input/sd-numpad.control.js +1 -1
- package/dist/ui/form/input/sd-range.control.d.ts.map +1 -1
- package/dist/ui/form/input/sd-range.control.js +1 -1
- package/dist/ui/form/input/sd-textarea.control.d.ts.map +1 -1
- package/dist/ui/form/input/sd-textarea.control.js +1 -1
- package/dist/ui/form/input/sd-textfield-type-handlers.d.ts.map +1 -1
- package/dist/ui/form/input/sd-textfield.control.d.ts.map +1 -1
- package/dist/ui/form/input/sd-textfield.control.js +1 -1
- package/dist/ui/form/sd-form.control.d.ts.map +1 -1
- package/dist/ui/form/sd-form.control.js +1 -1
- package/dist/ui/form/select/sd-select-button.control.d.ts.map +1 -1
- package/dist/ui/form/select/sd-select-button.control.js +1 -1
- package/dist/ui/form/select/sd-select-item.control.d.ts +1 -1
- package/dist/ui/form/select/sd-select-item.control.d.ts.map +1 -1
- package/dist/ui/form/select/sd-select-item.control.js +1 -1
- package/dist/ui/form/select/sd-select.control.d.ts +9 -6
- package/dist/ui/form/select/sd-select.control.d.ts.map +1 -1
- package/dist/ui/form/select/sd-select.control.js +1 -1
- package/dist/ui/layout/dock/sd-dock-container.control.d.ts.map +1 -1
- package/dist/ui/layout/dock/sd-dock-container.control.js +1 -1
- package/dist/ui/layout/dock/sd-dock.control.d.ts.map +1 -1
- package/dist/ui/layout/dock/sd-dock.control.js +1 -1
- package/dist/ui/layout/kanban/sd-kanban-board.control.d.ts.map +1 -1
- package/dist/ui/layout/kanban/sd-kanban-board.control.js +1 -1
- package/dist/ui/layout/kanban/sd-kanban-lane.control.d.ts.map +1 -1
- package/dist/ui/layout/kanban/sd-kanban-lane.control.js +1 -1
- package/dist/ui/layout/kanban/sd-kanban.control.d.ts.map +1 -1
- package/dist/ui/layout/kanban/sd-kanban.control.js +1 -1
- package/dist/ui/layout/sd-card.directive.d.ts.map +1 -1
- package/dist/ui/layout/sd-gap.control.d.ts.map +1 -1
- package/dist/ui/layout/sd-gap.control.js +1 -1
- package/dist/ui/layout/sd-pane.directive.d.ts.map +1 -1
- package/dist/ui/layout/view/sd-view-item.control.d.ts.map +1 -1
- package/dist/ui/layout/view/sd-view-item.control.js +1 -1
- package/dist/ui/layout/view/sd-view.control.d.ts.map +1 -1
- package/dist/ui/layout/view/sd-view.control.js +1 -1
- package/dist/ui/navigation/collapse/sd-collapse-icon.control.d.ts.map +1 -1
- package/dist/ui/navigation/collapse/sd-collapse-icon.control.js +1 -1
- package/dist/ui/navigation/collapse/sd-collapse.control.d.ts.map +1 -1
- package/dist/ui/navigation/collapse/sd-collapse.control.js +1 -1
- package/dist/ui/navigation/menu-utils.d.ts.map +1 -1
- package/dist/ui/navigation/pagination/sd-pagination.control.d.ts.map +1 -1
- package/dist/ui/navigation/pagination/sd-pagination.control.js +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-container.control.d.ts.map +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-container.control.js +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts.map +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.js +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-user.control.d.ts.map +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-user.control.js +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar.control.d.ts.map +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar.control.js +1 -1
- package/dist/ui/navigation/tab/sd-tab-item.control.d.ts.map +1 -1
- package/dist/ui/navigation/tab/sd-tab-item.control.js +1 -1
- package/dist/ui/navigation/tab/sd-tab.control.d.ts.map +1 -1
- package/dist/ui/navigation/tab/sd-tab.control.js +1 -1
- package/dist/ui/navigation/tab/sd-tabview-item.control.d.ts.map +1 -1
- package/dist/ui/navigation/tab/sd-tabview-item.control.js +1 -1
- package/dist/ui/navigation/tab/sd-tabview.control.d.ts.map +1 -1
- package/dist/ui/navigation/tab/sd-tabview.control.js +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-container.control.d.ts.map +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-container.control.js +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts.map +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-menu.control.js +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-user.control.d.ts.map +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-user.control.js +1 -1
- package/dist/ui/navigation/topbar/sd-topbar.control.d.ts.map +1 -1
- package/dist/ui/navigation/topbar/sd-topbar.control.js +1 -1
- package/dist/ui/overlay/busy/sd-busy-container.control.d.ts.map +1 -1
- package/dist/ui/overlay/busy/sd-busy-container.control.js +1 -1
- package/dist/ui/overlay/busy/sd-busy.provider.d.ts.map +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts.map +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.js +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown.control.d.ts.map +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown.control.js +1 -1
- package/dist/ui/overlay/modal/sd-confirm-modal.control.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-confirm-modal.control.js +1 -1
- package/dist/ui/overlay/modal/sd-modal.control.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-modal.control.js +1 -1
- package/dist/ui/overlay/modal/sd-modal.provider.d.ts +9 -3
- package/dist/ui/overlay/modal/sd-modal.provider.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-prompt-modal.control.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-prompt-modal.control.js +1 -1
- package/dist/ui/overlay/toast/sd-toast-container.control.d.ts.map +1 -1
- package/dist/ui/overlay/toast/sd-toast-container.control.js +1 -1
- package/dist/ui/overlay/toast/sd-toast.control.d.ts.map +1 -1
- package/dist/ui/overlay/toast/sd-toast.control.js +1 -1
- package/dist/ui/overlay/toast/sd-toast.provider.d.ts.map +1 -1
- package/dist/ui/visual/sd-barcode.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-barcode.control.js +1 -1
- package/dist/ui/visual/sd-calendar.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-calendar.control.js +1 -1
- package/dist/ui/visual/sd-echarts.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-echarts.control.js +1 -1
- package/dist/ui/visual/sd-label.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-label.control.js +1 -1
- package/dist/ui/visual/sd-note.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-note.control.js +1 -1
- package/dist/ui/visual/sd-progress.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-progress.control.js +1 -1
- package/docs/core.md +877 -0
- package/docs/features.md +377 -0
- package/docs/styling.md +309 -0
- package/docs/ui-data.md +233 -0
- package/docs/ui-form.md +421 -0
- package/docs/ui-layout.md +216 -0
- package/docs/ui-navigation.md +279 -0
- package/docs/ui-overlay.md +330 -0
- package/docs/ui-visual.md +131 -0
- package/package.json +5 -5
- package/src/core/providers/sd-print.provider.ts +10 -2
- package/src/core/providers/sd-shared-data.provider.ts +3 -0
- package/src/core/utils/TDirectiveInputSignals.ts +5 -0
- package/src/core/utils/setups/setupCloserWhenSingleSelectionChange.ts +29 -0
- package/src/core/utils/setups/setupCumulateSelectedKeys.ts +38 -0
- package/src/features/address/sd-address-search.modal.ts +119 -0
- package/src/features/data-view/sd-data-detail.control.ts +394 -0
- package/src/features/data-view/sd-data-select-button.control.ts +210 -0
- package/src/features/data-view/sd-data-sheet-column.directive.ts +10 -0
- package/src/features/data-view/sd-data-sheet.control.ts +850 -0
- package/src/features/shared-data/sd-shared-data-select-button.control.ts +64 -0
- package/src/features/shared-data/sd-shared-data-select-list.control.ts +245 -0
- package/src/features/shared-data/sd-shared-data-select.control.ts +364 -0
- package/src/index.ts +35 -1
- package/src/scss.d.ts +5 -0
- package/src/ui/data/list/sd-list-item.control.ts +3 -1
- package/src/ui/data/sheet/sd-sheet-column.directive.ts +9 -1
- package/src/ui/data/sheet/sd-sheet.control.ts +6 -6
- package/src/ui/form/button/sd-modal-select-button.control.ts +41 -59
- package/src/ui/form/editor/sd-tiptap-editor.control.ts +35 -1
- package/src/ui/form/select/sd-select-item.control.ts +1 -1
- package/src/ui/form/select/sd-select.control.ts +7 -4
- package/src/ui/overlay/modal/sd-modal.provider.ts +15 -3
- package/docs/commons-and-configuration.md +0 -34
- package/docs/data-display-components.md +0 -146
- package/docs/directives.md +0 -158
- package/docs/event-plugins.md +0 -109
- package/docs/form-components.md +0 -362
- package/docs/hooks-and-utilities.md +0 -175
- package/docs/layout-components.md +0 -140
- package/docs/navigation-components.md +0 -200
- package/docs/overlay-components.md +0 -193
- package/docs/pipes.md +0 -25
- package/docs/providers.md +0 -448
- package/docs/setup-functions.md +0 -66
- package/docs/visual-components.md +0 -89
package/src/index.ts
CHANGED
|
@@ -57,6 +57,8 @@ export { useFullPageCodeSignal } from "./core/utils/useFullPageCodeSignal";
|
|
|
57
57
|
export { useViewTitleSignal } from "./core/utils/useViewTitleSignal";
|
|
58
58
|
export { useViewTypeSignal, type TSdViewType } from "./core/utils/useViewTypeSignal";
|
|
59
59
|
export { setupCanDeactivate } from "./core/utils/setups/setupCanDeactivate";
|
|
60
|
+
export { setupCumulateSelectedKeys } from "./core/utils/setups/setupCumulateSelectedKeys";
|
|
61
|
+
export { setupCloserWhenSingleSelectionChange } from "./core/utils/setups/setupCloserWhenSingleSelectionChange";
|
|
60
62
|
export {
|
|
61
63
|
useExpandingManager,
|
|
62
64
|
type IExpandItemDef,
|
|
@@ -64,8 +66,36 @@ export {
|
|
|
64
66
|
export { useSelectionManager } from "./core/utils/useSelectionManager";
|
|
65
67
|
export { injectParent } from "./core/utils/injectParent";
|
|
66
68
|
|
|
69
|
+
// features/address
|
|
70
|
+
export {
|
|
71
|
+
SdAddressSearchModal,
|
|
72
|
+
type IAddress,
|
|
73
|
+
} from "./features/address/sd-address-search.modal";
|
|
74
|
+
|
|
67
75
|
// features
|
|
68
76
|
export { SdBaseContainerControl } from "./features/base/sd-base-container.control";
|
|
77
|
+
export {
|
|
78
|
+
SdDataSheetControl,
|
|
79
|
+
AbsSdDataSheet,
|
|
80
|
+
type ISdDataSheetItemPropInfo,
|
|
81
|
+
type ISdDataSheetItemInfo,
|
|
82
|
+
type ISdDataSheetSearchResult,
|
|
83
|
+
} from "./features/data-view/sd-data-sheet.control";
|
|
84
|
+
export { SdDataSheetColumnDirective } from "./features/data-view/sd-data-sheet-column.directive";
|
|
85
|
+
export {
|
|
86
|
+
SdDataDetailControl,
|
|
87
|
+
AbsSdDataDetail,
|
|
88
|
+
type ISdDataDetailDataInfo,
|
|
89
|
+
} from "./features/data-view/sd-data-detail.control";
|
|
90
|
+
export {
|
|
91
|
+
SdDataSelectButtonControl,
|
|
92
|
+
AbsSdDataSelectButton,
|
|
93
|
+
} from "./features/data-view/sd-data-select-button.control";
|
|
94
|
+
|
|
95
|
+
// features/shared-data
|
|
96
|
+
export { SdSharedDataSelectControl } from "./features/shared-data/sd-shared-data-select.control";
|
|
97
|
+
export { SdSharedDataSelectButtonControl } from "./features/shared-data/sd-shared-data-select-button.control";
|
|
98
|
+
export { SdSharedDataSelectListControl } from "./features/shared-data/sd-shared-data-select-list.control";
|
|
69
99
|
|
|
70
100
|
// ui/layout
|
|
71
101
|
export { SdDockContainerControl } from "./ui/layout/dock/sd-dock-container.control";
|
|
@@ -229,4 +259,8 @@ export {
|
|
|
229
259
|
|
|
230
260
|
// core/utils
|
|
231
261
|
export { useSortingManager, type ISortingDef } from "./core/utils/useSortingManager";
|
|
232
|
-
export type {
|
|
262
|
+
export type {
|
|
263
|
+
TDirectiveInputSignals,
|
|
264
|
+
TUndefToOptional,
|
|
265
|
+
TWithOptional,
|
|
266
|
+
} from "./core/utils/TDirectiveInputSignals";
|
package/src/scss.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ import { setupRipple } from "../../../core/utils/setups/setupRipple";
|
|
|
24
24
|
standalone: true,
|
|
25
25
|
imports: [SdCollapseControl, SdCollapseIconControl, NgTemplateOutlet, NgIcon],
|
|
26
26
|
template: `
|
|
27
|
-
<div class="_content" tabindex="0" (click)="onContentClick()" (keydown.enter)="onContentClick()">
|
|
27
|
+
<div class="_content" [style]="contentStyle()" [class]="contentClass()" tabindex="0" (click)="onContentClick()" (keydown.enter)="onContentClick()">
|
|
28
28
|
@if (layout() === "accordion" && hasChildren()) {
|
|
29
29
|
<sd-collapse-icon [open]="open()" />
|
|
30
30
|
}
|
|
@@ -119,6 +119,8 @@ export class SdListItemControl {
|
|
|
119
119
|
selected = input(false, { transform: booleanAttribute });
|
|
120
120
|
selectedIcon = input<string>();
|
|
121
121
|
readonly = input(false, { transform: booleanAttribute });
|
|
122
|
+
contentStyle = input<string>();
|
|
123
|
+
contentClass = input<string>();
|
|
122
124
|
|
|
123
125
|
toolTpl = contentChild<TemplateRef<void>>("toolTpl");
|
|
124
126
|
|
|
@@ -6,6 +6,14 @@ import {
|
|
|
6
6
|
TemplateRef,
|
|
7
7
|
} from "@angular/core";
|
|
8
8
|
|
|
9
|
+
export interface SdSheetCellContext {
|
|
10
|
+
$implicit: unknown;
|
|
11
|
+
item: unknown;
|
|
12
|
+
index: number;
|
|
13
|
+
depth: number;
|
|
14
|
+
edit: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
9
17
|
@Directive({
|
|
10
18
|
selector: "sd-sheet-column",
|
|
11
19
|
standalone: true,
|
|
@@ -21,6 +29,6 @@ export class SdSheetColumnDirective {
|
|
|
21
29
|
disableResizing = input(false, { transform: booleanAttribute });
|
|
22
30
|
ordering = input(0);
|
|
23
31
|
|
|
24
|
-
cellTplRef = contentChild<TemplateRef<
|
|
32
|
+
cellTplRef = contentChild<TemplateRef<SdSheetCellContext>>("cellTpl");
|
|
25
33
|
summaryTplRef = contentChild<TemplateRef<void>>("summaryTpl");
|
|
26
34
|
}
|
|
@@ -135,7 +135,7 @@ import { SdSheetConfigModal } from "./sd-sheet-config.modal";
|
|
|
135
135
|
>
|
|
136
136
|
@if (expanding.hasExpandable()) {
|
|
137
137
|
<td class="_expand-col">
|
|
138
|
-
@if (getItemDef(item)
|
|
138
|
+
@if (getItemDef(item).hasChildren) {
|
|
139
139
|
<sd-anchor (click)="onExpandClick($event, item)">
|
|
140
140
|
<ng-icon [svg]="isExpanded(item) ? icons.tablerChevronDown : icons.tablerChevronRight" />
|
|
141
141
|
</sd-anchor>
|
|
@@ -351,7 +351,7 @@ export class SdSheetControl<T> {
|
|
|
351
351
|
inset = input(false, { transform: booleanAttribute });
|
|
352
352
|
contentStyle = input<string>();
|
|
353
353
|
getItemCellClassFn = input<(item: T, colKey: string) => string>();
|
|
354
|
-
getItemCellStyleFn = input<(item: T, colKey: string) => string>();
|
|
354
|
+
getItemCellStyleFn = input<(item: T, colKey: string) => string | undefined>();
|
|
355
355
|
hideConfigBar = input(false, { transform: booleanAttribute });
|
|
356
356
|
|
|
357
357
|
// Outputs
|
|
@@ -660,16 +660,16 @@ export class SdSheetControl<T> {
|
|
|
660
660
|
return parts.length > 0 ? parts.join(" ") : null;
|
|
661
661
|
}
|
|
662
662
|
|
|
663
|
-
async onKeydownCapture(event:
|
|
664
|
-
await this.cellAgent.handleKeydownCapture(event);
|
|
663
|
+
async onKeydownCapture(event: Event): Promise<void> {
|
|
664
|
+
await this.cellAgent.handleKeydownCapture(event as KeyboardEvent);
|
|
665
665
|
}
|
|
666
666
|
|
|
667
667
|
onDblClick(event: MouseEvent): void {
|
|
668
668
|
this.cellAgent.handleCellDoubleClick(event);
|
|
669
669
|
}
|
|
670
670
|
|
|
671
|
-
onBlurCapture(event:
|
|
672
|
-
this.cellAgent.handleBlurCapture(event);
|
|
671
|
+
onBlurCapture(event: Event): void {
|
|
672
|
+
this.cellAgent.handleBlurCapture(event as FocusEvent);
|
|
673
673
|
}
|
|
674
674
|
|
|
675
675
|
onItemKeydown(event: KeyboardEvent, item: T): void {
|
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
type ISdModalInfo,
|
|
16
16
|
type ISdModalOptions,
|
|
17
17
|
} from "../../overlay/modal/sd-modal.provider";
|
|
18
|
-
import type { TDirectiveInputSignals } from "../../../core/utils/TDirectiveInputSignals";
|
|
19
18
|
import type { TSelectModeValue } from "../select/sd-select.control";
|
|
20
19
|
import { SdAnchorControl } from "./sd-anchor.control";
|
|
21
20
|
import { SdButtonControl } from "./sd-button.control";
|
|
@@ -28,30 +27,25 @@ import { tablerSearch, tablerEraser } from "@ng-icons/tabler-icons";
|
|
|
28
27
|
* ISdModal을 확장하여 selectMode와 selectedItemKeys를 추가한다.
|
|
29
28
|
*/
|
|
30
29
|
export interface ISdSelectModal<T> extends ISdModal<ISelectModalOutputResult<T>> {
|
|
31
|
-
selectMode: InputSignal<"single" | "multi">;
|
|
32
|
-
selectedItemKeys: InputSignal<
|
|
30
|
+
selectMode: InputSignal<"single" | "multi" | undefined>;
|
|
31
|
+
selectedItemKeys: InputSignal<any[]>;
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
/**
|
|
36
35
|
* 모달 선택 결과
|
|
37
36
|
*/
|
|
38
37
|
export interface ISelectModalOutputResult<T> {
|
|
39
|
-
selectedItemKeys:
|
|
40
|
-
selectedItems:
|
|
38
|
+
selectedItemKeys: any[];
|
|
39
|
+
selectedItems: T[];
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
/**
|
|
44
43
|
* 모달 선택 정보 (selectMode/selectedItemKeys를 제외한 inputs)
|
|
45
44
|
*/
|
|
46
|
-
export type TSdSelectModalInfo<T extends ISdSelectModal<any>> =
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
inputs: Omit<
|
|
51
|
-
TDirectiveInputSignals<T>,
|
|
52
|
-
"initialized" | "close" | "actionTplRef" | "selectMode" | "selectedItemKeys"
|
|
53
|
-
>;
|
|
54
|
-
};
|
|
45
|
+
export type TSdSelectModalInfo<T extends ISdSelectModal<any>> = ISdModalInfo<
|
|
46
|
+
T,
|
|
47
|
+
"selectMode" | "selectedItemKeys"
|
|
48
|
+
>;
|
|
55
49
|
|
|
56
50
|
@Component({
|
|
57
51
|
selector: "sd-modal-select-button",
|
|
@@ -71,7 +65,7 @@ export type TSdSelectModalInfo<T extends ISdSelectModal<any>> = Omit<
|
|
|
71
65
|
}
|
|
72
66
|
@if (!disabled()) {
|
|
73
67
|
<sd-button [inset]="true" (click)="onSearchClick()">
|
|
74
|
-
<ng-icon [svg]="
|
|
68
|
+
<ng-icon [svg]="searchIcon()" />
|
|
75
69
|
</sd-button>
|
|
76
70
|
}
|
|
77
71
|
</div>
|
|
@@ -156,20 +150,27 @@ export type TSdSelectModalInfo<T extends ISdSelectModal<any>> = Omit<
|
|
|
156
150
|
"[attr.data-sd-disabled]": "disabled()",
|
|
157
151
|
},
|
|
158
152
|
})
|
|
159
|
-
export class SdModalSelectButtonControl
|
|
153
|
+
export class SdModalSelectButtonControl<
|
|
154
|
+
T extends object,
|
|
155
|
+
K,
|
|
156
|
+
M extends keyof TSelectModeValue<K> = keyof TSelectModeValue<K>,
|
|
157
|
+
> {
|
|
160
158
|
private readonly _sdModal = inject(SdModalProvider);
|
|
161
159
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
modal = input.required<TSdSelectModalInfo<ISdSelectModal<T>>>();
|
|
161
|
+
|
|
162
|
+
value = model<TSelectModeValue<K>[M]>();
|
|
163
|
+
selectedItems = model<T[]>([]);
|
|
164
|
+
|
|
165
165
|
disabled = input(false, { transform: booleanAttribute });
|
|
166
166
|
required = input(false, { transform: booleanAttribute });
|
|
167
|
-
modal = input<TSdSelectModalInfo<any>>();
|
|
168
|
-
modalOptions = input<ISdModalOptions>();
|
|
169
|
-
size = input<"sm" | "lg">();
|
|
170
167
|
inset = input(false, { transform: booleanAttribute });
|
|
168
|
+
size = input<"sm" | "lg">();
|
|
169
|
+
selectMode = input<M>("single" as M);
|
|
170
|
+
modalOptions = input<ISdModalOptions>();
|
|
171
|
+
|
|
172
|
+
searchIcon = input(tablerSearch);
|
|
171
173
|
|
|
172
|
-
protected readonly tablerSearch = tablerSearch;
|
|
173
174
|
protected readonly tablerEraser = tablerEraser;
|
|
174
175
|
|
|
175
176
|
_hasValue = computed(() => {
|
|
@@ -190,48 +191,29 @@ export class SdModalSelectButtonControl {
|
|
|
190
191
|
}
|
|
191
192
|
|
|
192
193
|
onEraseClick(): void {
|
|
193
|
-
|
|
194
|
-
this.value.set([]);
|
|
195
|
-
} else {
|
|
196
|
-
this.value.set(undefined);
|
|
197
|
-
}
|
|
194
|
+
this.value.set((this.selectMode() === "multi" ? [] : undefined) as any);
|
|
198
195
|
this.selectedItems.set([]);
|
|
199
196
|
}
|
|
200
197
|
|
|
201
198
|
async onSearchClick(): Promise<void> {
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const result = await this._sdModal.showAsync(
|
|
214
|
-
{
|
|
215
|
-
title: modalInfo.title,
|
|
216
|
-
type: modalInfo.type,
|
|
217
|
-
inputs: {
|
|
218
|
-
...modalInfo.inputs,
|
|
219
|
-
selectMode: this.selectMode(),
|
|
220
|
-
selectedItemKeys,
|
|
221
|
-
} as any,
|
|
199
|
+
const modal = this.modal();
|
|
200
|
+
const result = await this._sdModal.showAsync({
|
|
201
|
+
...modal,
|
|
202
|
+
inputs: {
|
|
203
|
+
selectMode: this.selectMode(),
|
|
204
|
+
selectedItemKeys: (this.selectMode() === "multi"
|
|
205
|
+
? ((this.value() as any[] | undefined) ?? [])
|
|
206
|
+
: [this.value()]
|
|
207
|
+
).filterExists(),
|
|
208
|
+
...modal.inputs,
|
|
222
209
|
},
|
|
223
|
-
|
|
224
|
-
);
|
|
225
|
-
|
|
226
|
-
if (result == null) return;
|
|
227
|
-
|
|
228
|
-
const typedResult = result as ISelectModalOutputResult<any>;
|
|
210
|
+
});
|
|
229
211
|
|
|
230
|
-
if (
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
this.value.set(
|
|
212
|
+
if (result) {
|
|
213
|
+
const newValue =
|
|
214
|
+
this.selectMode() === "multi" ? result.selectedItemKeys : result.selectedItemKeys[0];
|
|
215
|
+
this.value.set(newValue);
|
|
216
|
+
this.selectedItems.set(result.selectedItems);
|
|
234
217
|
}
|
|
235
|
-
this.selectedItems.set(typedResult.selectedItems);
|
|
236
218
|
}
|
|
237
219
|
}
|
|
@@ -24,6 +24,40 @@ import TextAlign from "@tiptap/extension-text-align";
|
|
|
24
24
|
import Image from "@tiptap/extension-image";
|
|
25
25
|
import Placeholder from "@tiptap/extension-placeholder";
|
|
26
26
|
|
|
27
|
+
interface TiptapActiveStates {
|
|
28
|
+
h1: boolean;
|
|
29
|
+
h2: boolean;
|
|
30
|
+
bold: boolean;
|
|
31
|
+
italic: boolean;
|
|
32
|
+
underline: boolean;
|
|
33
|
+
strike: boolean;
|
|
34
|
+
bulletList: boolean;
|
|
35
|
+
orderedList: boolean;
|
|
36
|
+
blockquote: boolean;
|
|
37
|
+
codeBlock: boolean;
|
|
38
|
+
alignLeft: boolean;
|
|
39
|
+
alignCenter: boolean;
|
|
40
|
+
alignRight: boolean;
|
|
41
|
+
alignJustify: boolean;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const DEFAULT_ACTIVE_STATES: TiptapActiveStates = {
|
|
45
|
+
h1: false,
|
|
46
|
+
h2: false,
|
|
47
|
+
bold: false,
|
|
48
|
+
italic: false,
|
|
49
|
+
underline: false,
|
|
50
|
+
strike: false,
|
|
51
|
+
bulletList: false,
|
|
52
|
+
orderedList: false,
|
|
53
|
+
blockquote: false,
|
|
54
|
+
codeBlock: false,
|
|
55
|
+
alignLeft: false,
|
|
56
|
+
alignCenter: false,
|
|
57
|
+
alignRight: false,
|
|
58
|
+
alignJustify: false,
|
|
59
|
+
};
|
|
60
|
+
|
|
27
61
|
const DEFAULT_EXTENSIONS: AnyExtension[] = [
|
|
28
62
|
StarterKit,
|
|
29
63
|
TextStyle,
|
|
@@ -251,7 +285,7 @@ export class SdTiptapEditorControl {
|
|
|
251
285
|
"#f9cb9c", "#ffe599", "#b6d7a8", "#a2c4c9", "#a4c2f4", "#9fc5e8", "#b4a7d6", "#d5a6bd",
|
|
252
286
|
];
|
|
253
287
|
|
|
254
|
-
activeStates: WritableSignal<
|
|
288
|
+
activeStates: WritableSignal<TiptapActiveStates> = signal(DEFAULT_ACTIVE_STATES);
|
|
255
289
|
activeColor = signal("");
|
|
256
290
|
activeBgColor = signal("");
|
|
257
291
|
colorPickerMode: "text" | "bg" | undefined;
|
|
@@ -78,7 +78,7 @@ import { SdGapControl } from "../../layout/sd-gap.control";
|
|
|
78
78
|
},
|
|
79
79
|
})
|
|
80
80
|
export class SdSelectItemControl<T> {
|
|
81
|
-
protected readonly _parentControl = inject<SdSelectControl<T>>(
|
|
81
|
+
protected readonly _parentControl = inject<SdSelectControl<any, T>>(
|
|
82
82
|
forwardRef(() => SdSelectControl),
|
|
83
83
|
);
|
|
84
84
|
private readonly _elRef = inject(ElementRef<HTMLElement>);
|
|
@@ -26,7 +26,10 @@ import { NgIcon } from "@ng-icons/core";
|
|
|
26
26
|
import { tablerCaretDown } from "@ng-icons/tabler-icons";
|
|
27
27
|
import { tabbable } from "tabbable";
|
|
28
28
|
|
|
29
|
-
export type TSelectModeValue<T> =
|
|
29
|
+
export type TSelectModeValue<T> = {
|
|
30
|
+
multi: T[];
|
|
31
|
+
single: T;
|
|
32
|
+
};
|
|
30
33
|
|
|
31
34
|
@Component({
|
|
32
35
|
selector: "sd-select",
|
|
@@ -175,9 +178,9 @@ export type TSelectModeValue<T> = T | T[] | undefined;
|
|
|
175
178
|
"[attr.data-sd-disabled]": "disabled()",
|
|
176
179
|
},
|
|
177
180
|
})
|
|
178
|
-
export class SdSelectControl<T> {
|
|
179
|
-
selectMode = input
|
|
180
|
-
value = model<TSelectModeValue<
|
|
181
|
+
export class SdSelectControl<M extends "single" | "multi", T> {
|
|
182
|
+
selectMode = input("single" as M);
|
|
183
|
+
value = model<TSelectModeValue<any>[M]>();
|
|
181
184
|
placeholder = input<string>();
|
|
182
185
|
disabled = input(false, { transform: booleanAttribute });
|
|
183
186
|
inline = input(false, { transform: booleanAttribute });
|
|
@@ -14,7 +14,10 @@ import {
|
|
|
14
14
|
} from "@angular/core";
|
|
15
15
|
import { outputToObservable } from "@angular/core/rxjs-interop";
|
|
16
16
|
import { Subscription } from "rxjs";
|
|
17
|
-
import type {
|
|
17
|
+
import type {
|
|
18
|
+
TDirectiveInputSignals,
|
|
19
|
+
TWithOptional,
|
|
20
|
+
} from "../../../core/utils/TDirectiveInputSignals";
|
|
18
21
|
import { SdModalControl } from "./sd-modal.control";
|
|
19
22
|
import "@simplysm/core-browser";
|
|
20
23
|
|
|
@@ -25,15 +28,24 @@ export interface ISdModal<O> {
|
|
|
25
28
|
initialized: Signal<boolean>;
|
|
26
29
|
close: OutputEmitterRef<O | undefined>;
|
|
27
30
|
actionTplRef?: TemplateRef<any>;
|
|
31
|
+
readonly _optionalModalInputs?: string;
|
|
28
32
|
}
|
|
29
33
|
|
|
34
|
+
type TSdModalExcludeKeys = "initialized" | "close" | "actionTplRef" | "_optionalModalInputs";
|
|
35
|
+
type TSdModalOptionalKeys<T> = T extends { _optionalModalInputs?: infer K extends string }
|
|
36
|
+
? K
|
|
37
|
+
: never;
|
|
38
|
+
|
|
30
39
|
/**
|
|
31
40
|
* 모달 생성 시 전달하는 정보
|
|
32
41
|
*/
|
|
33
|
-
export interface ISdModalInfo<T extends ISdModal<any
|
|
42
|
+
export interface ISdModalInfo<T extends ISdModal<any>, X extends keyof any = ""> {
|
|
34
43
|
title: string;
|
|
35
44
|
type: Type<T>;
|
|
36
|
-
inputs:
|
|
45
|
+
inputs: TWithOptional<
|
|
46
|
+
Omit<TDirectiveInputSignals<T>, TSdModalExcludeKeys | X>,
|
|
47
|
+
TSdModalOptionalKeys<T> & keyof Omit<TDirectiveInputSignals<T>, TSdModalExcludeKeys | X>
|
|
48
|
+
>;
|
|
37
49
|
}
|
|
38
50
|
|
|
39
51
|
/**
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Commons & Configuration
|
|
2
|
-
|
|
3
|
-
## `provideSdAngular`
|
|
4
|
-
|
|
5
|
-
Bootstrap function that registers all core providers, event plugins, the global error handler, and zoneless change detection. Call in `bootstrapApplication`.
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
function provideSdAngular(opt: { clientName: string }): EnvironmentProviders
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
Registers:
|
|
12
|
-
- `SdAngularConfigProvider` with the given `clientName`
|
|
13
|
-
- `SdThemeProvider` with dark mode persistence via `SdLocalStorageProvider`
|
|
14
|
-
- All event manager plugins (`SdSaveCommandEventPlugin`, `SdRefreshCommandEventPlugin`, `SdInsertCommandEventPlugin`, `SdResizeEventPlugin`, `SdIntersectionEventPlugin`, `SdOptionEventPlugin`)
|
|
15
|
-
- `SdGlobalErrorHandlerPlugin` as `ErrorHandler`
|
|
16
|
-
- `provideZonelessChangeDetection()`
|
|
17
|
-
- Global unhandled rejection/error listeners
|
|
18
|
-
- Service Worker update polling (5-minute interval)
|
|
19
|
-
- Router navigation busy indicator
|
|
20
|
-
|
|
21
|
-
## `TXT_CHANGE_IGNORE_CONFIRM`
|
|
22
|
-
|
|
23
|
-
Confirmation message text displayed when the user attempts to navigate away with unsaved changes.
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
const TXT_CHANGE_IGNORE_CONFIRM: string
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Value (Korean):
|
|
30
|
-
```
|
|
31
|
-
변경사항이 있습니다. 모든 변경사항을 무시하시겠습니까?
|
|
32
|
-
- 확인: 변경사항을 무시하고, 현재 요청한 작업을 수행
|
|
33
|
-
- 취소: 현재 요청한 작업을 취소하고, 변경사항 재검토
|
|
34
|
-
```
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
# Data Display Components
|
|
2
|
-
|
|
3
|
-
## `SdListControl`
|
|
4
|
-
|
|
5
|
-
List container component.
|
|
6
|
-
|
|
7
|
-
Selector: `sd-list`
|
|
8
|
-
|
|
9
|
-
| Input | Type | Description |
|
|
10
|
-
|-------|------|-------------|
|
|
11
|
-
| `inset` | `boolean` (booleanAttribute) | Transparent background (default: `false`) |
|
|
12
|
-
|
|
13
|
-
## `SdListItemControl`
|
|
14
|
-
|
|
15
|
-
List item with accordion or flat layout. Supports collapsible child lists, ripple effect, selected state, tool template, and selected icon.
|
|
16
|
-
|
|
17
|
-
Selector: `sd-list-item`
|
|
18
|
-
|
|
19
|
-
| Input/Model | Type | Description |
|
|
20
|
-
|-------------|------|-------------|
|
|
21
|
-
| `layout` | `"accordion" \| "flat"` | Layout mode (default: `"accordion"`) |
|
|
22
|
-
| `open` (model) | `boolean` | Collapse open state (default: `false`) |
|
|
23
|
-
| `selected` | `boolean` (booleanAttribute) | Selected state (default: `false`) |
|
|
24
|
-
| `selectedIcon` | `string` | Optional icon SVG for selection indicator |
|
|
25
|
-
| `readonly` | `boolean` (booleanAttribute) | Read-only mode (default: `false`) |
|
|
26
|
-
|
|
27
|
-
Content children:
|
|
28
|
-
- `#toolTpl` template: Additional tool area rendered on the right side
|
|
29
|
-
- `<sd-list>` child: Nested list shown in collapse
|
|
30
|
-
|
|
31
|
-
## `SdSheetControl`
|
|
32
|
-
|
|
33
|
-
Full-featured data grid with sorting, selection, tree expanding, pagination, column resizing, and configuration persistence.
|
|
34
|
-
|
|
35
|
-
Selector: `sd-sheet`
|
|
36
|
-
|
|
37
|
-
### Inputs
|
|
38
|
-
|
|
39
|
-
| Input | Type | Description |
|
|
40
|
-
|-------|------|-------------|
|
|
41
|
-
| `key` | `string` | Config key for column settings persistence |
|
|
42
|
-
| `items` | `T[]` | Data items (default: `[]`) |
|
|
43
|
-
| `trackByFn` | `(item: T, index: number) => unknown` | Track-by function for rows |
|
|
44
|
-
| `selectMode` | `"single" \| "multi"` | Selection mode |
|
|
45
|
-
| `autoSelect` | `"click" \| "focus"` | Auto-select trigger |
|
|
46
|
-
| `getItemSelectableFn` | `(item: T) => boolean \| string` | Item selectable check (string = disabled reason) |
|
|
47
|
-
| `getChildrenFn` | `(item: T, index: number) => T[] \| undefined` | Children accessor for tree mode |
|
|
48
|
-
| `useAutoSort` | `boolean` (booleanAttribute) | Enable client-side sorting (default: `false`) |
|
|
49
|
-
| `visiblePageCount` | `number` | Visible page buttons (default: `10`) |
|
|
50
|
-
| `totalPageCount` | `number` | Total pages (server-side pagination, default: `0`) |
|
|
51
|
-
| `itemsPerPage` | `number` | Items per page (client-side pagination, default: `0` = no pagination) |
|
|
52
|
-
| `focusMode` | `"row" \| "cell"` | Focus navigation mode (default: `"cell"`) |
|
|
53
|
-
| `inset` | `boolean` (booleanAttribute) | Borderless inset style (default: `false`) |
|
|
54
|
-
| `contentStyle` | `string` | Inline style for the scroll container |
|
|
55
|
-
| `getItemCellClassFn` | `(item: T, colKey: string) => string` | Cell CSS class function |
|
|
56
|
-
| `getItemCellStyleFn` | `(item: T, colKey: string) => string` | Cell inline style function |
|
|
57
|
-
| `hideConfigBar` | `boolean` (booleanAttribute) | Hide config/pagination bar (default: `false`) |
|
|
58
|
-
|
|
59
|
-
### Models
|
|
60
|
-
|
|
61
|
-
| Model | Type | Description |
|
|
62
|
-
|-------|------|-------------|
|
|
63
|
-
| `selectedItems` | `T[]` | Selected items (default: `[]`) |
|
|
64
|
-
| `expandedItems` | `T[]` | Expanded tree items (default: `[]`) |
|
|
65
|
-
| `sorts` | `ISortingDef[]` | Sort definitions (default: `[]`) |
|
|
66
|
-
| `currentPage` | `number` | Current page index, 0-based (default: `0`) |
|
|
67
|
-
|
|
68
|
-
### Outputs
|
|
69
|
-
|
|
70
|
-
| Output | Type | Description |
|
|
71
|
-
|--------|------|-------------|
|
|
72
|
-
| `itemKeydown` | `ISdSheetItemKeydownEventParam<T>` | Row-level keydown event |
|
|
73
|
-
| `cellKeydown` | `ISdSheetItemKeydownEventParam<T>` | Cell-level keydown event |
|
|
74
|
-
|
|
75
|
-
## `SdSheetColumnDirective`
|
|
76
|
-
|
|
77
|
-
Column definition for `SdSheetControl`. Defines header, width, and cell/summary templates.
|
|
78
|
-
|
|
79
|
-
Selector: `sd-sheet-column`
|
|
80
|
-
|
|
81
|
-
| Input | Type | Description |
|
|
82
|
-
|-------|------|-------------|
|
|
83
|
-
| `key` | `string` (required) | Unique column key |
|
|
84
|
-
| `header` | `string \| string[]` | Header text (multi-level headers via array, default: `""`) |
|
|
85
|
-
| `width` | `string` | Column width (CSS value) |
|
|
86
|
-
| `fixed` | `boolean` (booleanAttribute) | Fixed column (default: `false`) |
|
|
87
|
-
| `hidden` | `boolean` (booleanAttribute) | Hidden column (default: `false`) |
|
|
88
|
-
| `collapse` | `boolean` (booleanAttribute) | Collapsed column (default: `false`) |
|
|
89
|
-
| `disableSorting` | `boolean` (booleanAttribute) | Disable sorting for this column (default: `false`) |
|
|
90
|
-
| `disableResizing` | `boolean` (booleanAttribute) | Disable resizing for this column (default: `false`) |
|
|
91
|
-
| `ordering` | `number` | Column display order (default: `0`) |
|
|
92
|
-
|
|
93
|
-
Content children:
|
|
94
|
-
- `#cellTpl` template: Cell content template. Context: `{ $implicit: T, item: T, index: number, depth: number, edit: boolean }`
|
|
95
|
-
- `#summaryTpl` template: Summary (footer) template
|
|
96
|
-
|
|
97
|
-
## `SdSheetConfigModal`
|
|
98
|
-
|
|
99
|
-
Modal for configuring sheet columns (visibility, order, width, fixed state). Implements `ISdModal<ISdSheetConfig>`.
|
|
100
|
-
|
|
101
|
-
Selector: `sd-sheet-config-modal`
|
|
102
|
-
|
|
103
|
-
| Input | Type | Description |
|
|
104
|
-
|-------|------|-------------|
|
|
105
|
-
| `columns` | `SdSheetColumnDirective[]` (required) | Column directives |
|
|
106
|
-
| `config` | `ISdSheetConfig` (required) | Current configuration |
|
|
107
|
-
|
|
108
|
-
## Types
|
|
109
|
-
|
|
110
|
-
### `ISdSheetColumnDef`
|
|
111
|
-
|
|
112
|
-
| Field | Type | Description |
|
|
113
|
-
|-------|------|-------------|
|
|
114
|
-
| `key` | `string` | Unique column key |
|
|
115
|
-
| `header` | `string \| string[]` | Header text |
|
|
116
|
-
| `width` | `string \| undefined` | Column width |
|
|
117
|
-
| `fixed` | `boolean` | Whether column is fixed |
|
|
118
|
-
| `hidden` | `boolean` | Whether column is hidden |
|
|
119
|
-
| `collapse` | `boolean` | Whether column is collapsed |
|
|
120
|
-
| `disableSorting` | `boolean` | Whether sorting is disabled |
|
|
121
|
-
| `disableResizing` | `boolean` | Whether resizing is disabled |
|
|
122
|
-
| `ordering` | `number` | Display order |
|
|
123
|
-
|
|
124
|
-
### `ISdSheetConfig`
|
|
125
|
-
|
|
126
|
-
| Field | Type | Description |
|
|
127
|
-
|-------|------|-------------|
|
|
128
|
-
| `columnRecord` | `Record<string, { width?: string; hidden?: boolean; fixed?: boolean; ordering?: number }>` | Per-column overrides |
|
|
129
|
-
|
|
130
|
-
### `ISdSheetHeaderDef`
|
|
131
|
-
|
|
132
|
-
| Field | Type | Description |
|
|
133
|
-
|-------|------|-------------|
|
|
134
|
-
| `text` | `string` | Header cell text |
|
|
135
|
-
| `colspan` | `number` | Column span |
|
|
136
|
-
| `rowspan` | `number` | Row span |
|
|
137
|
-
| `isLastRow` | `boolean` | Whether this is the last header row |
|
|
138
|
-
| `colDef` | `ISdSheetColumnDef \| undefined` | Associated column definition |
|
|
139
|
-
|
|
140
|
-
### `ISdSheetItemKeydownEventParam`
|
|
141
|
-
|
|
142
|
-
| Field | Type | Description |
|
|
143
|
-
|-------|------|-------------|
|
|
144
|
-
| `item` | `T` | The data item |
|
|
145
|
-
| `key` | `string` | Optional column key (for cell keydown) |
|
|
146
|
-
| `event` | `KeyboardEvent` | The keyboard event |
|