@simplysm/angular 14.0.7 → 14.0.9
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 +7 -0
- package/dist/core/utils/injectParent.d.ts.map +1 -0
- package/dist/core/utils/injectParent.js +26 -0
- 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 +26 -0
- package/dist/features/base/sd-base-container.control.d.ts.map +1 -0
- package/dist/features/base/sd-base-container.control.js +183 -0
- 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 +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -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 +9 -5
- 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 +6 -5
- package/dist/ui/data/sheet/sd-sheet.control.d.ts.map +1 -1
- package/dist/ui/data/sheet/sd-sheet.control.js +19 -17
- 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/useSheetCellAgent.js +1 -2
- 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/data/sheet/useSheetLayoutEngine.js +1 -0
- 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 +2 -0
- package/dist/ui/layout/dock/sd-dock.control.d.ts.map +1 -1
- package/dist/ui/layout/dock/sd-dock.control.js +13 -4
- 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 +8 -2
- 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 +2 -2
- 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 +8 -4
- package/dist/ui/navigation/sidebar/sd-sidebar-container.control.d.ts.map +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-container.control.js +2 -2
- 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 +2 -2
- 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 +1 -0
- package/dist/ui/overlay/modal/sd-modal.control.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-modal.control.js +10 -2
- 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/overlay/toast/sd-toast.provider.js +7 -3
- 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 +1 -0
- package/dist/ui/visual/sd-progress.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-progress.control.js +5 -4
- 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/injectParent.ts +41 -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/base/sd-base-container.control.ts +113 -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 +39 -1
- package/src/scss.d.ts +5 -0
- package/src/ui/data/list/sd-list-item.control.ts +4 -2
- package/src/ui/data/sheet/sd-sheet-column.directive.ts +9 -1
- package/src/ui/data/sheet/sd-sheet.control.ts +23 -19
- package/src/ui/data/sheet/useSheetCellAgent.ts +1 -2
- package/src/ui/data/sheet/useSheetLayoutEngine.ts +1 -0
- 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/layout/dock/sd-dock.control.ts +15 -2
- package/src/ui/layout/kanban/sd-kanban-lane.control.ts +6 -3
- package/src/ui/navigation/pagination/sd-pagination.control.ts +5 -3
- package/src/ui/navigation/sidebar/sd-sidebar-container.control.ts +1 -1
- package/src/ui/overlay/dropdown/sd-dropdown-popup.control.ts +1 -1
- package/src/ui/overlay/modal/sd-modal.control.ts +9 -0
- package/src/ui/overlay/modal/sd-modal.provider.ts +15 -3
- package/src/ui/overlay/toast/sd-toast.provider.ts +9 -3
- package/src/ui/visual/sd-progress.control.ts +4 -1
- 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
|
@@ -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
|
/**
|
|
@@ -201,12 +201,13 @@ export class SdToastProvider {
|
|
|
201
201
|
const progressSignal = toastRef.instance.progress;
|
|
202
202
|
|
|
203
203
|
effect(
|
|
204
|
-
() => {
|
|
204
|
+
(onCleanup) => {
|
|
205
205
|
const val = progressSignal();
|
|
206
206
|
if (val >= 100) {
|
|
207
|
-
setTimeout(() => {
|
|
207
|
+
const timerId = setTimeout(() => {
|
|
208
208
|
this._dismissToast(toastRef);
|
|
209
209
|
}, 1000);
|
|
210
|
+
onCleanup(() => clearTimeout(timerId));
|
|
210
211
|
}
|
|
211
212
|
},
|
|
212
213
|
{ injector: toastRef.injector },
|
|
@@ -260,14 +261,19 @@ export class SdToastProvider {
|
|
|
260
261
|
toastRef.instance.open.set(false);
|
|
261
262
|
|
|
262
263
|
const el = toastRef.location.nativeElement as HTMLElement;
|
|
264
|
+
let fallbackId: ReturnType<typeof setTimeout>;
|
|
265
|
+
|
|
263
266
|
const onTransitionEnd = () => {
|
|
267
|
+
clearTimeout(fallbackId);
|
|
264
268
|
el.removeEventListener("transitionend", onTransitionEnd);
|
|
265
269
|
this._destroyToast(toastRef);
|
|
266
270
|
};
|
|
271
|
+
|
|
267
272
|
el.addEventListener("transitionend", onTransitionEnd);
|
|
268
273
|
|
|
269
274
|
// fallback: transition이 없는 경우 300ms 후 파괴
|
|
270
|
-
setTimeout(() => {
|
|
275
|
+
fallbackId = setTimeout(() => {
|
|
276
|
+
el.removeEventListener("transitionend", onTransitionEnd);
|
|
271
277
|
this._destroyToast(toastRef);
|
|
272
278
|
}, 300);
|
|
273
279
|
}
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
booleanAttribute,
|
|
3
3
|
ChangeDetectionStrategy,
|
|
4
4
|
Component,
|
|
5
|
+
computed,
|
|
5
6
|
input,
|
|
6
7
|
ViewEncapsulation,
|
|
7
8
|
} from "@angular/core";
|
|
@@ -22,7 +23,7 @@ import { PercentPipe } from "@angular/common";
|
|
|
22
23
|
<div class="_content tx-right">
|
|
23
24
|
{{ value() | percent: "1.0-2" }}
|
|
24
25
|
</div>
|
|
25
|
-
<div class="_progress" [style.width]="
|
|
26
|
+
<div class="_progress" [style.width]="_barWidth()"></div>
|
|
26
27
|
`,
|
|
27
28
|
styles: [
|
|
28
29
|
/* language=SCSS */ `
|
|
@@ -85,4 +86,6 @@ export class SdProgressControl {
|
|
|
85
86
|
>();
|
|
86
87
|
|
|
87
88
|
value = input.required<number>();
|
|
89
|
+
|
|
90
|
+
_barWidth = computed(() => Math.min(this.value() * 100, 100) + "%");
|
|
88
91
|
}
|
|
@@ -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 |
|
package/docs/directives.md
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
# Directives
|
|
2
|
-
|
|
3
|
-
## `SdEventsDirective`
|
|
4
|
-
|
|
5
|
-
Exposes capture, passive, once, and custom event outputs for template binding. Automatically selected when using supported event bindings.
|
|
6
|
-
|
|
7
|
-
Selector: `[click.capture]`, `[click.once]`, `[mousedown.capture]`, `[scroll.passive]`, `[sdResize]`, `[sdSaveCommand]`, etc.
|
|
8
|
-
|
|
9
|
-
Outputs:
|
|
10
|
-
|
|
11
|
-
| Output | Type | Description |
|
|
12
|
-
|--------|------|-------------|
|
|
13
|
-
| `click.capture` | `OutputEmitterRef<MouseEvent>` | Click in capture phase |
|
|
14
|
-
| `click.once` | `OutputEmitterRef<MouseEvent>` | Click once |
|
|
15
|
-
| `click.capture.once` | `OutputEmitterRef<MouseEvent>` | Click capture once |
|
|
16
|
-
| `mousedown.capture` | `OutputEmitterRef<MouseEvent>` | Mouse down capture |
|
|
17
|
-
| `mouseup.capture` | `OutputEmitterRef<MouseEvent>` | Mouse up capture |
|
|
18
|
-
| `mouseover.capture` | `OutputEmitterRef<MouseEvent>` | Mouse over capture |
|
|
19
|
-
| `mouseout.capture` | `OutputEmitterRef<MouseEvent>` | Mouse out capture |
|
|
20
|
-
| `keydown.capture` | `OutputEmitterRef<KeyboardEvent>` | Key down capture |
|
|
21
|
-
| `keyup.capture` | `OutputEmitterRef<KeyboardEvent>` | Key up capture |
|
|
22
|
-
| `focus.capture` | `OutputEmitterRef<FocusEvent>` | Focus capture |
|
|
23
|
-
| `blur.capture` | `OutputEmitterRef<FocusEvent>` | Blur capture |
|
|
24
|
-
| `invalid.capture` | `OutputEmitterRef<Event>` | Invalid capture |
|
|
25
|
-
| `scroll.capture` | `OutputEmitterRef<Event>` | Scroll capture |
|
|
26
|
-
| `scroll.passive` | `OutputEmitterRef<Event>` | Scroll passive |
|
|
27
|
-
| `scroll.capture.passive` | `OutputEmitterRef<Event>` | Scroll capture passive |
|
|
28
|
-
| `wheel.passive` | `OutputEmitterRef<WheelEvent>` | Wheel passive |
|
|
29
|
-
| `wheel.capture.passive` | `OutputEmitterRef<WheelEvent>` | Wheel capture passive |
|
|
30
|
-
| `touchstart.passive` | `OutputEmitterRef<TouchEvent>` | Touch start passive |
|
|
31
|
-
| `touchstart.capture.passive` | `OutputEmitterRef<TouchEvent>` | Touch start capture passive |
|
|
32
|
-
| `touchmove.passive` | `OutputEmitterRef<TouchEvent>` | Touch move passive |
|
|
33
|
-
| `touchmove.capture.passive` | `OutputEmitterRef<TouchEvent>` | Touch move capture passive |
|
|
34
|
-
| `touchend.passive` | `OutputEmitterRef<TouchEvent>` | Touch end passive |
|
|
35
|
-
| `dragover.capture` | `OutputEmitterRef<DragEvent>` | Drag over capture |
|
|
36
|
-
| `dragenter.capture` | `OutputEmitterRef<DragEvent>` | Drag enter capture |
|
|
37
|
-
| `dragleave.capture` | `OutputEmitterRef<DragEvent>` | Drag leave capture |
|
|
38
|
-
| `drop.capture` | `OutputEmitterRef<DragEvent>` | Drop capture |
|
|
39
|
-
| `transitionend.once` | `OutputEmitterRef<TransitionEvent>` | Transition end once |
|
|
40
|
-
| `animationend.once` | `OutputEmitterRef<AnimationEvent>` | Animation end once |
|
|
41
|
-
| `sdResize` | `OutputEmitterRef<ISdResizeEvent>` | Resize observer event |
|
|
42
|
-
| `sdRefreshCommand` | `OutputEmitterRef<KeyboardEvent>` | Ctrl+Alt+L command |
|
|
43
|
-
| `sdSaveCommand` | `OutputEmitterRef<KeyboardEvent>` | Ctrl+S command |
|
|
44
|
-
| `sdInsertCommand` | `OutputEmitterRef<KeyboardEvent>` | Ctrl+Insert command |
|
|
45
|
-
|
|
46
|
-
## `SdRippleDirective`
|
|
47
|
-
|
|
48
|
-
Adds material-style ripple effect on pointer interaction.
|
|
49
|
-
|
|
50
|
-
Selector: `[sd-ripple]`
|
|
51
|
-
|
|
52
|
-
| Input | Type | Description |
|
|
53
|
-
|-------|------|-------------|
|
|
54
|
-
| `sd-ripple` (alias) | `boolean` (required, booleanAttribute) | Whether ripple is enabled |
|
|
55
|
-
|
|
56
|
-
## `SdShowEffectDirective`
|
|
57
|
-
|
|
58
|
-
Animates element reveal when it enters the viewport via IntersectionObserver.
|
|
59
|
-
|
|
60
|
-
Selector: `[sd-show-effect]`
|
|
61
|
-
|
|
62
|
-
| Input | Type | Description |
|
|
63
|
-
|-------|------|-------------|
|
|
64
|
-
| `sd-show-effect` (alias) | `boolean` (required, booleanAttribute) | Whether effect is enabled |
|
|
65
|
-
| `sdShowEffectType` | `"l2r" \| "t2b"` | Animation direction (default: `"t2b"`) |
|
|
66
|
-
|
|
67
|
-
## `SdInvalidDirective`
|
|
68
|
-
|
|
69
|
-
Shows a validation indicator with a custom message on the host element. Integrates with form validation.
|
|
70
|
-
|
|
71
|
-
Selector: `[sd-invalid]`
|
|
72
|
-
|
|
73
|
-
| Input | Type | Description |
|
|
74
|
-
|-------|------|-------------|
|
|
75
|
-
| `sd-invalid` (alias) | `string` (required) | Validation error message (empty string = valid) |
|
|
76
|
-
|
|
77
|
-
## `SdTypedTemplateDirective`
|
|
78
|
-
|
|
79
|
-
Provides type-safe ng-template context guard for custom template contexts.
|
|
80
|
-
|
|
81
|
-
Selector: `ng-template[typed]`
|
|
82
|
-
|
|
83
|
-
| Input | Type | Description |
|
|
84
|
-
|-------|------|-------------|
|
|
85
|
-
| `typed` | `T` (required) | Context type token |
|
|
86
|
-
|
|
87
|
-
```typescript
|
|
88
|
-
class SdTypedTemplateDirective<T> {
|
|
89
|
-
static ngTemplateContextGuard<TypeToken>(
|
|
90
|
-
_dir: SdTypedTemplateDirective<TypeToken>,
|
|
91
|
-
_ctx: unknown,
|
|
92
|
-
): _ctx is TypeToken;
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## `SdItemOfTemplateDirective`
|
|
97
|
-
|
|
98
|
-
Provides typed iteration context for ng-template. Used for passing item type information to template outlets.
|
|
99
|
-
|
|
100
|
-
Selector: `ng-template[itemOf]`
|
|
101
|
-
|
|
102
|
-
| Input | Type | Description |
|
|
103
|
-
|-------|------|-------------|
|
|
104
|
-
| `itemOf` | `TItem[]` (required) | Array of items for type inference |
|
|
105
|
-
|
|
106
|
-
```typescript
|
|
107
|
-
class SdItemOfTemplateDirective<TItem> {
|
|
108
|
-
static ngTemplateContextGuard<TContextItem>(
|
|
109
|
-
_dir: SdItemOfTemplateDirective<TContextItem>,
|
|
110
|
-
_ctx: unknown,
|
|
111
|
-
): _ctx is SdItemOfTemplateContext<TContextItem>;
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### `SdItemOfTemplateContext`
|
|
116
|
-
|
|
117
|
-
| Field | Type | Description |
|
|
118
|
-
|-------|------|-------------|
|
|
119
|
-
| `$implicit` | `TItem` | The current item |
|
|
120
|
-
| `item` | `TItem` | The current item (named) |
|
|
121
|
-
| `index` | `number` | Item index |
|
|
122
|
-
| `depth` | `number` | Nesting depth |
|
|
123
|
-
|
|
124
|
-
## `SdRouterLinkDirective`
|
|
125
|
-
|
|
126
|
-
Navigation directive supporting router navigation, window opening, and outlet navigation. Ctrl/Alt+click opens in new tab; Shift+click opens in new window.
|
|
127
|
-
|
|
128
|
-
Selector: `[sd-router-link]`
|
|
129
|
-
|
|
130
|
-
| Input | Type | Description |
|
|
131
|
-
|-------|------|-------------|
|
|
132
|
-
| `sd-router-link` (alias) | `object \| undefined` | Navigation option |
|
|
133
|
-
|
|
134
|
-
Option object fields:
|
|
135
|
-
|
|
136
|
-
| Field | Type | Description |
|
|
137
|
-
|-------|------|-------------|
|
|
138
|
-
| `link` | `string` | Target route path |
|
|
139
|
-
| `params` | `Record<string, string>` | Optional route parameters |
|
|
140
|
-
| `window` | `{ width?: number; height?: number }` | Optional window dimensions |
|
|
141
|
-
| `outletName` | `string` | Optional named outlet |
|
|
142
|
-
| `queryParams` | `Record<string, string>` | Optional query parameters |
|
|
143
|
-
|
|
144
|
-
## `SdCardDirective`
|
|
145
|
-
|
|
146
|
-
Applies card styling (CSS class `card`) to the host element.
|
|
147
|
-
|
|
148
|
-
Selector: `sd-card`, `[sd-card]`
|
|
149
|
-
|
|
150
|
-
No inputs.
|
|
151
|
-
|
|
152
|
-
## `SdPaneDirective`
|
|
153
|
-
|
|
154
|
-
Applies fill-area pane styling (CSS class `fill`, `display: block`) to the host element.
|
|
155
|
-
|
|
156
|
-
Selector: `sd-pane`, `[sd-pane]`
|
|
157
|
-
|
|
158
|
-
No inputs.
|
package/docs/event-plugins.md
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Event Plugins
|
|
2
|
-
|
|
3
|
-
All event plugins are automatically registered by `provideSdAngular`.
|
|
4
|
-
|
|
5
|
-
## `SdOptionEventPlugin`
|
|
6
|
-
|
|
7
|
-
Adds `.capture`, `.passive`, `.once` modifiers to native DOM events in Angular templates.
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
@Injectable({ providedIn: null })
|
|
11
|
-
class SdOptionEventPlugin extends EventManagerPlugin {
|
|
12
|
-
supports(eventName: string): boolean;
|
|
13
|
-
addEventListener(element: HTMLElement, eventName: string, handler: (event: Event) => void): () => void;
|
|
14
|
-
}
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Usage in template:
|
|
18
|
-
```html
|
|
19
|
-
<div (click.capture)="onCapture($event)"></div>
|
|
20
|
-
<div (scroll.passive)="onScroll($event)"></div>
|
|
21
|
-
<div (click.once)="onClickOnce($event)"></div>
|
|
22
|
-
<div (click.capture.once)="onCaptureOnce($event)"></div>
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## `SdResizeEventPlugin`
|
|
26
|
-
|
|
27
|
-
Provides `(sdResize)` event binding via `ResizeObserver`.
|
|
28
|
-
|
|
29
|
-
```typescript
|
|
30
|
-
@Injectable({ providedIn: null })
|
|
31
|
-
class SdResizeEventPlugin extends EventManagerPlugin {
|
|
32
|
-
supports(eventName: string): boolean; // "sdResize"
|
|
33
|
-
addEventListener(element: HTMLElement, eventName: string, handler: (entry: ISdResizeEvent) => void): () => void;
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### `ISdResizeEvent`
|
|
38
|
-
|
|
39
|
-
| Field | Type | Description |
|
|
40
|
-
|-------|------|-------------|
|
|
41
|
-
| `heightChanged` | `boolean` | Whether height changed since last event |
|
|
42
|
-
| `widthChanged` | `boolean` | Whether width changed since last event |
|
|
43
|
-
| `target` | `Element` | The observed element |
|
|
44
|
-
| `contentRect` | `DOMRectReadOnly` | Content rectangle of the element |
|
|
45
|
-
|
|
46
|
-
## `SdIntersectionEventPlugin`
|
|
47
|
-
|
|
48
|
-
Provides `(sdIntersection)` event binding via `IntersectionObserver`.
|
|
49
|
-
|
|
50
|
-
```typescript
|
|
51
|
-
@Injectable({ providedIn: null })
|
|
52
|
-
class SdIntersectionEventPlugin extends EventManagerPlugin {
|
|
53
|
-
supports(eventName: string): boolean; // "sdIntersection"
|
|
54
|
-
addEventListener(element: HTMLElement, eventName: string, handler: (entry: ISdIntersectionEvent) => void): () => void;
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### `ISdIntersectionEvent`
|
|
59
|
-
|
|
60
|
-
| Field | Type | Description |
|
|
61
|
-
|-------|------|-------------|
|
|
62
|
-
| `entry` | `IntersectionObserverEntry` | The intersection observer entry |
|
|
63
|
-
|
|
64
|
-
## `SdSaveCommandEventPlugin`
|
|
65
|
-
|
|
66
|
-
Provides `(sdSaveCommand)` event binding that triggers on Ctrl+S. Respects modal stacking (only fires for the topmost open modal).
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
@Injectable({ providedIn: null })
|
|
70
|
-
class SdSaveCommandEventPlugin extends EventManagerPlugin {
|
|
71
|
-
supports(eventName: string): boolean; // "sdSaveCommand"
|
|
72
|
-
addEventListener(element: HTMLElement, eventName: string, handler: (event: Event) => void): () => void;
|
|
73
|
-
}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## `SdRefreshCommandEventPlugin`
|
|
77
|
-
|
|
78
|
-
Provides `(sdRefreshCommand)` event binding that triggers on Ctrl+Alt+L. Respects modal stacking.
|
|
79
|
-
|
|
80
|
-
```typescript
|
|
81
|
-
@Injectable({ providedIn: null })
|
|
82
|
-
class SdRefreshCommandEventPlugin extends EventManagerPlugin {
|
|
83
|
-
supports(eventName: string): boolean; // "sdRefreshCommand"
|
|
84
|
-
addEventListener(element: HTMLElement, eventName: string, handler: (event: Event) => void): () => void;
|
|
85
|
-
}
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## `SdInsertCommandEventPlugin`
|
|
89
|
-
|
|
90
|
-
Provides `(sdInsertCommand)` event binding that triggers on Ctrl+Insert. Respects modal stacking.
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
@Injectable({ providedIn: null })
|
|
94
|
-
class SdInsertCommandEventPlugin extends EventManagerPlugin {
|
|
95
|
-
supports(eventName: string): boolean; // "sdInsertCommand"
|
|
96
|
-
addEventListener(element: HTMLElement, eventName: string, handler: (event: Event) => void): () => void;
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## `SdGlobalErrorHandlerPlugin`
|
|
101
|
-
|
|
102
|
-
Global error handler implementing Angular's `ErrorHandler`. Handles `PromiseRejectionEvent`, `ErrorEvent`, `Error`, and unknown errors. Displays error overlay and destroys the application on unrecoverable errors.
|
|
103
|
-
|
|
104
|
-
```typescript
|
|
105
|
-
@Injectable({ providedIn: null })
|
|
106
|
-
class SdGlobalErrorHandlerPlugin implements ErrorHandler {
|
|
107
|
-
handleError(event: any): false;
|
|
108
|
-
}
|
|
109
|
-
```
|