@simplysm/angular 14.0.41 → 14.0.43
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/controls/button/sd-additional-button.js +1 -1
- package/dist/controls/button/sd-anchor.js +1 -1
- package/dist/controls/button/sd-button.js +1 -1
- package/dist/controls/button/sd-modal-select-button.d.ts +1 -1
- package/dist/controls/button/sd-modal-select-button.d.ts.map +1 -1
- package/dist/controls/button/sd-modal-select-button.js +8 -6
- package/dist/controls/checkbox/sd-checkbox-group-item.js +1 -1
- package/dist/controls/checkbox/sd-checkbox-group.js +1 -1
- package/dist/controls/checkbox/sd-checkbox.js +1 -1
- package/dist/controls/checkbox/sd-switch.js +1 -1
- package/dist/controls/collapse/sd-collapse-icon.d.ts +2 -4
- package/dist/controls/collapse/sd-collapse-icon.d.ts.map +1 -1
- package/dist/controls/collapse/sd-collapse-icon.js +7 -7
- package/dist/controls/collapse/sd-collapse.d.ts +1 -1
- package/dist/controls/collapse/sd-collapse.d.ts.map +1 -1
- package/dist/controls/collapse/sd-collapse.js +8 -7
- package/dist/controls/dropdown/sd-dropdown-popup.d.ts +2 -0
- package/dist/controls/dropdown/sd-dropdown-popup.d.ts.map +1 -1
- package/dist/controls/dropdown/sd-dropdown-popup.js +21 -8
- package/dist/controls/dropdown/sd-dropdown.d.ts.map +1 -1
- package/dist/controls/dropdown/sd-dropdown.js +5 -16
- package/dist/controls/form/sd-form.js +1 -1
- package/dist/controls/gap/sd-gap.js +5 -5
- package/dist/controls/input/sd-date-range-picker.d.ts +1 -0
- package/dist/controls/input/sd-date-range-picker.d.ts.map +1 -1
- package/dist/controls/input/sd-date-range-picker.js +14 -19
- package/dist/controls/input/sd-numpad.js +3 -3
- package/dist/controls/input/sd-range.js +1 -1
- package/dist/controls/input/sd-textarea.js +2 -2
- package/dist/controls/input/sd-textfield-type-handlers.js +2 -2
- package/dist/controls/input/sd-textfield.js +9 -9
- package/dist/controls/list/sd-list-item.d.ts +0 -1
- package/dist/controls/list/sd-list-item.d.ts.map +1 -1
- package/dist/controls/list/sd-list-item.js +38 -38
- package/dist/controls/list/sd-list.d.ts.map +1 -1
- package/dist/controls/list/sd-list.js +3 -3
- package/dist/controls/pagination/sd-pagination.js +1 -1
- package/dist/controls/select/sd-select-button.d.ts.map +1 -1
- package/dist/controls/select/sd-select-button.js +4 -8
- package/dist/controls/select/sd-select-item.d.ts +3 -3
- package/dist/controls/select/sd-select-item.d.ts.map +1 -1
- package/dist/controls/select/sd-select-item.js +27 -20
- package/dist/controls/select/sd-select.d.ts +5 -4
- package/dist/controls/select/sd-select.d.ts.map +1 -1
- package/dist/controls/select/sd-select.js +20 -17
- package/dist/controls/tab/sd-tab-item.js +1 -1
- package/dist/controls/tab/sd-tab.js +1 -1
- package/dist/core/app-structure/sd-app-structure.utils.js +1 -1
- package/dist/core/busy/sd-busy-container.d.ts.map +1 -1
- package/dist/core/busy/sd-busy-container.js +62 -68
- package/dist/core/busy/sd-busy.provider.js +1 -1
- package/dist/core/commands/sd-command.d.ts +13 -0
- package/dist/core/commands/sd-command.d.ts.map +1 -0
- package/dist/core/commands/sd-command.js +52 -0
- package/dist/core/error-handler/sd-global-error-handler.plugin.js +1 -1
- package/dist/core/events/sd-events.d.ts +1 -6
- package/dist/core/events/sd-events.d.ts.map +1 -1
- package/dist/core/events/sd-events.js +3 -11
- package/dist/core/events/sd-intersection.d.ts +13 -0
- package/dist/core/events/sd-intersection.d.ts.map +1 -0
- package/dist/core/events/sd-intersection.js +27 -0
- package/dist/core/events/sd-resize.d.ts +16 -0
- package/dist/core/events/sd-resize.d.ts.map +1 -0
- package/dist/core/events/{sd-resize-event.plugin.js → sd-resize.js} +18 -20
- package/dist/core/file-dialog/sd-file-dialog.provider.js +1 -1
- package/dist/core/modal/injectDragResize.js +9 -9
- package/dist/core/modal/injectFocusTrap.js +1 -1
- package/dist/core/modal/sd-confirm-modal.js +1 -1
- package/dist/core/modal/sd-modal.d.ts +9 -1
- package/dist/core/modal/sd-modal.d.ts.map +1 -1
- package/dist/core/modal/sd-modal.js +140 -42
- package/dist/core/modal/sd-modal.provider.d.ts +1 -0
- package/dist/core/modal/sd-modal.provider.d.ts.map +1 -1
- package/dist/core/modal/sd-modal.provider.js +5 -5
- package/dist/core/modal/sd-prompt-modal.js +1 -1
- package/dist/core/provideSdAngular.d.ts.map +1 -1
- package/dist/core/provideSdAngular.js +0 -10
- package/dist/core/ripple/setupRipple.js +5 -5
- package/dist/core/routing/menu-utils.js +1 -1
- package/dist/core/routing/sd-navigate-window.provider.js +1 -1
- package/dist/core/routing/sd-router-link.js +1 -1
- package/dist/core/selection/setupCumulateSelectedKeys.js +3 -3
- package/dist/core/setupModelHook.js +1 -1
- package/dist/core/toast/sd-toast-container.d.ts +1 -1
- package/dist/core/toast/sd-toast-container.js +3 -7
- package/dist/core/toast/sd-toast.d.ts.map +1 -1
- package/dist/core/toast/sd-toast.js +27 -24
- package/dist/core/toast/sd-toast.provider.js +6 -6
- package/dist/core/validation/setupInvalid.js +2 -1
- package/dist/data/data-detail/sd-data-detail.d.ts +2 -1
- package/dist/data/data-detail/sd-data-detail.d.ts.map +1 -1
- package/dist/data/data-detail/sd-data-detail.js +37 -33
- package/dist/data/data-select-button/sd-data-select-button.js +1 -1
- package/dist/data/data-sheet/sd-data-sheet.d.ts +2 -1
- package/dist/data/data-sheet/sd-data-sheet.d.ts.map +1 -1
- package/dist/data/data-sheet/sd-data-sheet.js +99 -59
- package/dist/data/kanban/sd-kanban-board.js +1 -1
- package/dist/data/kanban/sd-kanban-lane.js +1 -1
- package/dist/data/kanban/sd-kanban.d.ts +1 -1
- package/dist/data/kanban/sd-kanban.d.ts.map +1 -1
- package/dist/data/kanban/sd-kanban.js +4 -4
- package/dist/data/permission-table/sd-permission-table.js +6 -6
- package/dist/data/shared-data/sd-shared-data-select-button.js +1 -1
- package/dist/data/shared-data/sd-shared-data-select-list.js +3 -3
- package/dist/data/shared-data/sd-shared-data-select.d.ts +1 -1
- package/dist/data/shared-data/sd-shared-data-select.d.ts.map +1 -1
- package/dist/data/shared-data/sd-shared-data-select.js +29 -54
- package/dist/data/sheet/injectSheetDomAccessor.d.ts +6 -2
- package/dist/data/sheet/injectSheetDomAccessor.d.ts.map +1 -1
- package/dist/data/sheet/injectSheetDomAccessor.js +27 -22
- package/dist/data/sheet/injectSheetSelectRowIndicator.d.ts +10 -0
- package/dist/data/sheet/injectSheetSelectRowIndicator.d.ts.map +1 -0
- package/dist/data/sheet/injectSheetSelectRowIndicator.js +55 -0
- package/dist/data/sheet/sd-sheet-column-cell-template.d.ts +9 -0
- package/dist/data/sheet/sd-sheet-column-cell-template.d.ts.map +1 -0
- package/dist/data/sheet/sd-sheet-column-cell-template.js +17 -0
- package/dist/data/sheet/sd-sheet-column.d.ts +10 -7
- package/dist/data/sheet/sd-sheet-column.d.ts.map +1 -1
- package/dist/data/sheet/sd-sheet-column.js +10 -6
- package/dist/data/sheet/sd-sheet-config.modal.d.ts +19 -20
- package/dist/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
- package/dist/data/sheet/sd-sheet-config.modal.js +357 -217
- package/dist/data/sheet/sd-sheet.d.ts +30 -15
- package/dist/data/sheet/sd-sheet.d.ts.map +1 -1
- package/dist/data/sheet/sd-sheet.js +617 -274
- package/dist/data/sheet/types.d.ts +2 -0
- package/dist/data/sheet/types.d.ts.map +1 -1
- package/dist/data/sheet/useSheetCellAgent.js +6 -6
- package/dist/data/sheet/useSheetCellStyling.d.ts.map +1 -1
- package/dist/data/sheet/useSheetCellStyling.js +11 -5
- package/dist/data/sheet/useSheetFocusIndicator.d.ts +7 -0
- package/dist/data/sheet/useSheetFocusIndicator.d.ts.map +1 -0
- package/dist/data/sheet/useSheetFocusIndicator.js +53 -0
- package/dist/data/sheet/useSheetLayoutEngine.d.ts.map +1 -1
- package/dist/data/sheet/useSheetLayoutEngine.js +3 -1
- package/dist/data/state-preset/sd-state-preset.d.ts.map +1 -1
- package/dist/data/state-preset/sd-state-preset.js +14 -14
- package/dist/features/address/sd-address-search.modal.js +3 -3
- package/dist/features/editor/sd-tiptap-editor.js +6 -6
- package/dist/features/editor/useTiptapToolbar.js +2 -2
- package/dist/features/theme/sd-theme-selector.js +1 -1
- package/dist/features/visual/sd-barcode.js +1 -1
- package/dist/features/visual/sd-calendar.js +2 -2
- package/dist/features/visual/sd-echarts.d.ts +2 -1
- package/dist/features/visual/sd-echarts.d.ts.map +1 -1
- package/dist/features/visual/sd-echarts.js +5 -3
- package/dist/features/visual/sd-label.js +1 -1
- package/dist/features/visual/sd-note.js +1 -1
- package/dist/features/visual/sd-progress.js +1 -1
- package/dist/index.d.ts +5 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/layout/base-container/sd-base-container.js +3 -3
- package/dist/layout/dock/sd-dock-container.js +1 -1
- package/dist/layout/dock/sd-dock.d.ts +3 -2
- package/dist/layout/dock/sd-dock.d.ts.map +1 -1
- package/dist/layout/dock/sd-dock.js +6 -4
- package/dist/layout/sidebar/sd-sidebar-container.js +5 -5
- package/dist/layout/sidebar/sd-sidebar-menu.d.ts.map +1 -1
- package/dist/layout/sidebar/sd-sidebar-menu.js +7 -6
- package/dist/layout/sidebar/sd-sidebar-user.js +1 -1
- package/dist/layout/sidebar/sd-sidebar.js +1 -1
- package/dist/layout/topbar/sd-topbar-container.js +1 -1
- package/dist/layout/topbar/sd-topbar-menu.d.ts.map +1 -1
- package/dist/layout/topbar/sd-topbar-menu.js +7 -7
- package/dist/layout/topbar/sd-topbar-user.js +1 -1
- package/dist/layout/topbar/sd-topbar.js +3 -3
- package/package.json +6 -6
- package/src/controls/button/sd-modal-select-button.ts +7 -2
- package/src/controls/collapse/sd-collapse-icon.ts +3 -4
- package/src/controls/collapse/sd-collapse.ts +4 -5
- package/src/controls/dropdown/sd-dropdown-popup.ts +15 -2
- package/src/controls/dropdown/sd-dropdown.ts +4 -16
- package/src/controls/gap/sd-gap.ts +4 -4
- package/src/controls/input/sd-date-range-picker.ts +13 -16
- package/src/controls/input/sd-numpad.ts +1 -1
- package/src/controls/input/sd-textarea.ts +1 -1
- package/src/controls/input/sd-textfield-type-handlers.ts +2 -2
- package/src/controls/input/sd-textfield.ts +6 -6
- package/src/controls/list/sd-list-item.ts +40 -26
- package/src/controls/list/sd-list.ts +2 -1
- package/src/controls/select/sd-select-button.ts +8 -11
- package/src/controls/select/sd-select-item.ts +35 -27
- package/src/controls/select/sd-select.ts +111 -41
- package/src/core/app-structure/sd-app-structure.utils.ts +1 -1
- package/src/core/busy/sd-busy-container.ts +235 -123
- package/src/core/busy/sd-busy.provider.ts +1 -1
- package/src/core/commands/sd-command.ts +46 -0
- package/src/core/error-handler/sd-global-error-handler.plugin.ts +1 -1
- package/src/core/events/sd-events.ts +1 -12
- package/src/core/events/sd-intersection.ts +29 -0
- package/src/core/events/{sd-resize-event.plugin.ts → sd-resize.ts} +17 -24
- package/src/core/file-dialog/sd-file-dialog.provider.ts +1 -1
- package/src/core/modal/injectDragResize.ts +9 -9
- package/src/core/modal/injectFocusTrap.ts +1 -1
- package/src/core/modal/sd-modal.provider.ts +6 -5
- package/src/core/modal/sd-modal.ts +121 -42
- package/src/core/provideSdAngular.ts +0 -10
- package/src/core/ripple/setupRipple.ts +5 -5
- package/src/core/routing/menu-utils.ts +1 -1
- package/src/core/routing/sd-navigate-window.provider.ts +1 -1
- package/src/core/routing/sd-router-link.ts +1 -1
- package/src/core/selection/setupCumulateSelectedKeys.ts +3 -3
- package/src/core/setupModelHook.ts +1 -1
- package/src/core/toast/sd-toast-container.ts +1 -1
- package/src/core/toast/sd-toast.provider.ts +6 -6
- package/src/core/toast/sd-toast.ts +25 -22
- package/src/core/validation/setupInvalid.ts +2 -1
- package/src/data/data-detail/sd-data-detail.ts +15 -11
- package/src/data/data-sheet/sd-data-sheet.ts +27 -20
- package/src/data/kanban/sd-kanban.ts +4 -5
- package/src/data/permission-table/sd-permission-table.ts +4 -4
- package/src/data/shared-data/sd-shared-data-select-list.ts +1 -1
- package/src/data/shared-data/sd-shared-data-select.ts +8 -27
- package/src/data/sheet/injectSheetDomAccessor.ts +37 -25
- package/src/data/sheet/injectSheetSelectRowIndicator.ts +69 -0
- package/src/data/sheet/sd-sheet-column-cell-template.ts +17 -0
- package/src/data/sheet/sd-sheet-column.ts +12 -5
- package/src/data/sheet/sd-sheet-config.modal.ts +215 -191
- package/src/data/sheet/sd-sheet.ts +534 -203
- package/src/data/sheet/types.ts +2 -0
- package/src/data/sheet/useSheetCellAgent.ts +8 -8
- package/src/data/sheet/useSheetCellStyling.ts +9 -9
- package/src/data/sheet/useSheetFocusIndicator.ts +66 -0
- package/src/data/sheet/useSheetLayoutEngine.ts +3 -1
- package/src/data/state-preset/sd-state-preset.ts +26 -13
- package/src/features/address/sd-address-search.modal.ts +1 -1
- package/src/features/editor/sd-tiptap-editor.ts +4 -4
- package/src/features/editor/useTiptapToolbar.ts +2 -2
- package/src/features/visual/sd-calendar.ts +1 -1
- package/src/features/visual/sd-echarts.ts +2 -0
- package/src/index.ts +6 -7
- package/src/layout/base-container/sd-base-container.ts +1 -1
- package/src/layout/dock/sd-dock.ts +3 -2
- package/src/layout/sidebar/sd-sidebar-container.ts +2 -2
- package/src/layout/sidebar/sd-sidebar-menu.ts +1 -3
- package/src/layout/topbar/sd-topbar-menu.ts +11 -15
- package/src/layout/topbar/sd-topbar.ts +1 -1
- package/dist/core/commands/sd-insert-command-event.plugin.d.ts +0 -11
- package/dist/core/commands/sd-insert-command-event.plugin.d.ts.map +0 -1
- package/dist/core/commands/sd-insert-command-event.plugin.js +0 -35
- package/dist/core/commands/sd-refresh-command-event.plugin.d.ts +0 -11
- package/dist/core/commands/sd-refresh-command-event.plugin.d.ts.map +0 -1
- package/dist/core/commands/sd-refresh-command-event.plugin.js +0 -38
- package/dist/core/commands/sd-save-command-event.plugin.d.ts +0 -11
- package/dist/core/commands/sd-save-command-event.plugin.d.ts.map +0 -1
- package/dist/core/commands/sd-save-command-event.plugin.js +0 -38
- package/dist/core/events/sd-intersection-event.plugin.d.ts +0 -13
- package/dist/core/events/sd-intersection-event.plugin.d.ts.map +0 -1
- package/dist/core/events/sd-intersection-event.plugin.js +0 -29
- package/dist/core/events/sd-resize-event.plugin.d.ts +0 -16
- package/dist/core/events/sd-resize-event.plugin.d.ts.map +0 -1
- package/src/core/commands/sd-insert-command-event.plugin.ts +0 -39
- package/src/core/commands/sd-refresh-command-event.plugin.ts +0 -44
- package/src/core/commands/sd-save-command-event.plugin.ts +0 -44
- package/src/core/events/sd-intersection-event.plugin.ts +0 -35
|
@@ -6,8 +6,11 @@ import { SdActivatedModalProvider } from "./sd-activated-modal.provider";
|
|
|
6
6
|
import { SdSystemConfigProvider } from "../config/sd-system-config.provider";
|
|
7
7
|
import { injectFocusTrap } from "./injectFocusTrap";
|
|
8
8
|
import { injectDragResize } from "./injectDragResize";
|
|
9
|
+
import { SdAnchor } from "../../controls/button/sd-anchor";
|
|
10
|
+
import { SdResizeDirective } from "../events/sd-resize";
|
|
9
11
|
import "@simplysm/core-browser";
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "../events/sd-resize";
|
|
11
14
|
const _c0 = ["*"];
|
|
12
15
|
function SdModal_Conditional_2_Conditional_3_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
13
16
|
i0.ɵɵelementContainer(0);
|
|
@@ -20,12 +23,13 @@ function SdModal_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
20
23
|
} }
|
|
21
24
|
function SdModal_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
22
25
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
23
|
-
i0.ɵɵelementStart(0, "
|
|
24
|
-
i0.ɵɵlistener("click", function
|
|
26
|
+
i0.ɵɵelementStart(0, "sd-anchor", 8);
|
|
27
|
+
i0.ɵɵlistener("click", function SdModal_Conditional_2_Conditional_4_Template_sd_anchor_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onCloseButtonClick()); });
|
|
25
28
|
i0.ɵɵelement(1, "ng-icon", 9);
|
|
26
29
|
i0.ɵɵelementEnd();
|
|
27
30
|
} if (rf & 2) {
|
|
28
31
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
32
|
+
i0.ɵɵproperty("theme", "gray");
|
|
29
33
|
i0.ɵɵadvance();
|
|
30
34
|
i0.ɵɵproperty("svg", ctx_r1.tablerX);
|
|
31
35
|
} }
|
|
@@ -33,14 +37,15 @@ function SdModal_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
33
37
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
34
38
|
i0.ɵɵelementStart(0, "div", 4);
|
|
35
39
|
i0.ɵɵlistener("mousedown", function SdModal_Conditional_2_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onHeaderMouseDown($event)); });
|
|
36
|
-
i0.ɵɵelementStart(1, "
|
|
40
|
+
i0.ɵɵelementStart(1, "h5", 5);
|
|
37
41
|
i0.ɵɵtext(2);
|
|
38
42
|
i0.ɵɵelementEnd();
|
|
39
43
|
i0.ɵɵconditionalCreate(3, SdModal_Conditional_2_Conditional_3_Template, 1, 1, "ng-container");
|
|
40
|
-
i0.ɵɵconditionalCreate(4, SdModal_Conditional_2_Conditional_4_Template, 2,
|
|
44
|
+
i0.ɵɵconditionalCreate(4, SdModal_Conditional_2_Conditional_4_Template, 2, 2, "sd-anchor", 6);
|
|
41
45
|
i0.ɵɵelementEnd();
|
|
42
46
|
} if (rf & 2) {
|
|
43
47
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
48
|
+
i0.ɵɵstyleMap(ctx_r1.headerStyle());
|
|
44
49
|
i0.ɵɵadvance(2);
|
|
45
50
|
i0.ɵɵtextInterpolate(ctx_r1.title());
|
|
46
51
|
i0.ɵɵadvance();
|
|
@@ -87,6 +92,7 @@ export class SdModal {
|
|
|
87
92
|
title = input("", ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
88
93
|
hideHeader = input(false, ...(ngDevMode ? [{ debugName: "hideHeader" }] : /* istanbul ignore next */ []));
|
|
89
94
|
hideCloseButton = input(false, ...(ngDevMode ? [{ debugName: "hideCloseButton" }] : /* istanbul ignore next */ []));
|
|
95
|
+
headerStyle = input(undefined, ...(ngDevMode ? [{ debugName: "headerStyle" }] : /* istanbul ignore next */ []));
|
|
90
96
|
useCloseByBackdrop = input(true, ...(ngDevMode ? [{ debugName: "useCloseByBackdrop" }] : /* istanbul ignore next */ []));
|
|
91
97
|
useCloseByEscapeKey = input(true, ...(ngDevMode ? [{ debugName: "useCloseByEscapeKey" }] : /* istanbul ignore next */ []));
|
|
92
98
|
float = input(false, ...(ngDevMode ? [{ debugName: "float" }] : /* istanbul ignore next */ []));
|
|
@@ -114,17 +120,17 @@ export class SdModal {
|
|
|
114
120
|
// widthPx/heightPx를 dialog 스타일에 적용
|
|
115
121
|
effect(() => {
|
|
116
122
|
const dialogEl = this._getDialogEl();
|
|
117
|
-
if (dialogEl
|
|
123
|
+
if (dialogEl == null)
|
|
118
124
|
return;
|
|
119
125
|
const w = this.widthPx();
|
|
120
126
|
const h = this.heightPx();
|
|
121
|
-
if (w
|
|
127
|
+
if (w != null) {
|
|
122
128
|
dialogEl.style.width = `${w}px`;
|
|
123
129
|
}
|
|
124
130
|
else {
|
|
125
131
|
dialogEl.style.width = "";
|
|
126
132
|
}
|
|
127
|
-
if (h
|
|
133
|
+
if (h != null) {
|
|
128
134
|
dialogEl.style.height = `${h}px`;
|
|
129
135
|
}
|
|
130
136
|
else {
|
|
@@ -134,7 +140,7 @@ export class SdModal {
|
|
|
134
140
|
// key 기반 설정 복원
|
|
135
141
|
effect(() => {
|
|
136
142
|
const k = this.key();
|
|
137
|
-
if (k
|
|
143
|
+
if (k == null || this._sdSystemConfig == null)
|
|
138
144
|
return;
|
|
139
145
|
void this._restoreConfig(k).catch((err) => this._errorHandler.handleError(err));
|
|
140
146
|
});
|
|
@@ -146,7 +152,7 @@ export class SdModal {
|
|
|
146
152
|
onHeaderMouseDown(event) {
|
|
147
153
|
if (!this.movable())
|
|
148
154
|
return;
|
|
149
|
-
if (event.target.closest("button")
|
|
155
|
+
if (event.target.closest("button, sd-anchor") != null)
|
|
150
156
|
return;
|
|
151
157
|
event.preventDefault();
|
|
152
158
|
this._dragResize.startDrag(event);
|
|
@@ -172,8 +178,32 @@ export class SdModal {
|
|
|
172
178
|
onDialogFocus() {
|
|
173
179
|
this._bringToFront();
|
|
174
180
|
}
|
|
181
|
+
onHostResize(event) {
|
|
182
|
+
if (event.heightChanged)
|
|
183
|
+
this._calcHeight();
|
|
184
|
+
if (event.widthChanged)
|
|
185
|
+
this._calcWidth();
|
|
186
|
+
}
|
|
187
|
+
onDialogResize(event) {
|
|
188
|
+
if (event.heightChanged)
|
|
189
|
+
this._calcHeight();
|
|
190
|
+
if (event.widthChanged)
|
|
191
|
+
this._calcWidth();
|
|
192
|
+
}
|
|
193
|
+
onWindowResize() {
|
|
194
|
+
const dialogEl = this._getDialogEl();
|
|
195
|
+
if (dialogEl == null)
|
|
196
|
+
return;
|
|
197
|
+
const hostEl = this._elRef.nativeElement;
|
|
198
|
+
if (dialogEl.offsetLeft > hostEl.offsetWidth - 100) {
|
|
199
|
+
dialogEl.style.left = hostEl.offsetWidth - 100 + "px";
|
|
200
|
+
}
|
|
201
|
+
if (dialogEl.offsetTop > hostEl.offsetHeight - 100) {
|
|
202
|
+
dialogEl.style.top = hostEl.offsetHeight - 100 + "px";
|
|
203
|
+
}
|
|
204
|
+
}
|
|
175
205
|
_requestClose() {
|
|
176
|
-
if (this._sdActivatedModal
|
|
206
|
+
if (this._sdActivatedModal != null && !this._sdActivatedModal.canDeactivateFn()) {
|
|
177
207
|
return;
|
|
178
208
|
}
|
|
179
209
|
void this._saveConfig().catch((err) => this._errorHandler.handleError(err));
|
|
@@ -196,15 +226,35 @@ export class SdModal {
|
|
|
196
226
|
return;
|
|
197
227
|
hostEl.style.zIndex = String(maxZ + 1);
|
|
198
228
|
}
|
|
229
|
+
_calcHeight() {
|
|
230
|
+
const dialogEl = this._getDialogEl();
|
|
231
|
+
if (dialogEl == null)
|
|
232
|
+
return;
|
|
233
|
+
const style = getComputedStyle(this._elRef.nativeElement);
|
|
234
|
+
const paddingTop = style.paddingTop === "" ? 0 : parseInt(style.paddingTop, 10) || 0;
|
|
235
|
+
if (dialogEl.offsetHeight > this._elRef.nativeElement.offsetHeight - paddingTop) {
|
|
236
|
+
dialogEl.style.maxHeight = "100%";
|
|
237
|
+
dialogEl.style.height = "100%";
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
_calcWidth() {
|
|
241
|
+
const dialogEl = this._getDialogEl();
|
|
242
|
+
if (dialogEl == null)
|
|
243
|
+
return;
|
|
244
|
+
if (dialogEl.offsetWidth > this._elRef.nativeElement.offsetWidth) {
|
|
245
|
+
dialogEl.style.maxWidth = "100%";
|
|
246
|
+
dialogEl.style.width = "100%";
|
|
247
|
+
}
|
|
248
|
+
}
|
|
199
249
|
_getDialogEl() {
|
|
200
250
|
return this._elRef.nativeElement.querySelector("._dialog");
|
|
201
251
|
}
|
|
202
252
|
async _saveConfig() {
|
|
203
253
|
const k = this.key();
|
|
204
|
-
if (k
|
|
254
|
+
if (k == null || this._sdSystemConfig == null)
|
|
205
255
|
return;
|
|
206
256
|
const dialogEl = this._getDialogEl();
|
|
207
|
-
if (dialogEl
|
|
257
|
+
if (dialogEl == null)
|
|
208
258
|
return;
|
|
209
259
|
const config = {};
|
|
210
260
|
if (dialogEl.style.width !== "")
|
|
@@ -224,28 +274,30 @@ export class SdModal {
|
|
|
224
274
|
if (config == null)
|
|
225
275
|
return;
|
|
226
276
|
const dialogEl = this._getDialogEl();
|
|
227
|
-
if (dialogEl
|
|
277
|
+
if (dialogEl == null)
|
|
228
278
|
return;
|
|
229
|
-
if (config["width"]
|
|
279
|
+
if (config["width"] != null)
|
|
230
280
|
dialogEl.style.width = config["width"];
|
|
231
|
-
if (config["height"]
|
|
281
|
+
if (config["height"] != null)
|
|
232
282
|
dialogEl.style.height = config["height"];
|
|
233
|
-
if (config["left"]
|
|
283
|
+
if (config["left"] != null)
|
|
234
284
|
dialogEl.style.left = config["left"];
|
|
235
|
-
if (config["top"]
|
|
285
|
+
if (config["top"] != null)
|
|
236
286
|
dialogEl.style.top = config["top"];
|
|
237
287
|
}
|
|
238
288
|
static ɵfac = function SdModal_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdModal)(); };
|
|
239
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdModal, selectors: [["sd-modal"]], hostVars: 4, hostBindings: function SdModal_HostBindings(rf, ctx) { if (rf &
|
|
289
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdModal, selectors: [["sd-modal"]], hostVars: 4, hostBindings: function SdModal_HostBindings(rf, ctx) { if (rf & 1) {
|
|
290
|
+
i0.ɵɵlistener("sdResize", function SdModal_sdResize_HostBindingHandler($event) { return ctx.onHostResize($event); })("resize", function SdModal_resize_HostBindingHandler() { return ctx.onWindowResize(); }, i0.ɵɵresolveWindow);
|
|
291
|
+
} if (rf & 2) {
|
|
240
292
|
i0.ɵɵattribute("data-sd-open", ctx.open() || undefined)("data-sd-float", ctx.float() || undefined)("data-sd-fill", ctx.fill() || undefined)("data-sd-position", ctx.position() || undefined);
|
|
241
|
-
} }, inputs: { open: [1, "open"], key: [1, "key"], title: [1, "title"], hideHeader: [1, "hideHeader"], hideCloseButton: [1, "hideCloseButton"], useCloseByBackdrop: [1, "useCloseByBackdrop"], useCloseByEscapeKey: [1, "useCloseByEscapeKey"], float: [1, "float"], fill: [1, "fill"], resizable: [1, "resizable"], movable: [1, "movable"], position: [1, "position"], minHeightPx: [1, "minHeightPx"], minWidthPx: [1, "minWidthPx"], heightPx: [1, "heightPx"], widthPx: [1, "widthPx"], actionTplRef: [1, "actionTplRef"] }, outputs: { open: "openChange", closeRequest: "closeRequest" }, ngContentSelectors: _c0, decls: 6, vars: 2, consts: [[1, "_backdrop", 3, "
|
|
293
|
+
} }, inputs: { open: [1, "open"], key: [1, "key"], title: [1, "title"], hideHeader: [1, "hideHeader"], hideCloseButton: [1, "hideCloseButton"], headerStyle: [1, "headerStyle"], useCloseByBackdrop: [1, "useCloseByBackdrop"], useCloseByEscapeKey: [1, "useCloseByEscapeKey"], float: [1, "float"], fill: [1, "fill"], resizable: [1, "resizable"], movable: [1, "movable"], position: [1, "position"], minHeightPx: [1, "minHeightPx"], minWidthPx: [1, "minWidthPx"], heightPx: [1, "heightPx"], widthPx: [1, "widthPx"], actionTplRef: [1, "actionTplRef"] }, outputs: { open: "openChange", closeRequest: "closeRequest" }, features: [i0.ɵɵHostDirectivesFeature([{ directive: i1.SdResizeDirective, outputs: ["sdResize", "sdResize"] }])], ngContentSelectors: _c0, decls: 6, vars: 2, consts: [["tabindex", "-1", "role", "button", 1, "_backdrop", 3, "click", "keydown.enter"], ["tabindex", "-1", 1, "_dialog", 3, "keydown", "focus", "sdResize"], [1, "_header", 3, "style"], [1, "_content"], [1, "_header", 3, "mousedown"], [1, "_title"], [1, "_close-btn", 3, "theme"], [4, "ngTemplateOutlet"], [1, "_close-btn", 3, "click", "theme"], [3, "svg"], ["data-resize-dir", "top", 1, "_resize-handle", "_resize-top", 3, "mousedown"], ["data-resize-dir", "bottom", 1, "_resize-handle", "_resize-bottom", 3, "mousedown"], ["data-resize-dir", "left", 1, "_resize-handle", "_resize-left", 3, "mousedown"], ["data-resize-dir", "right", 1, "_resize-handle", "_resize-right", 3, "mousedown"], ["data-resize-dir", "top-left", 1, "_resize-handle", "_resize-top-left", 3, "mousedown"], ["data-resize-dir", "top-right", 1, "_resize-handle", "_resize-top-right", 3, "mousedown"], ["data-resize-dir", "bottom-left", 1, "_resize-handle", "_resize-bottom-left", 3, "mousedown"], ["data-resize-dir", "bottom-right", 1, "_resize-handle", "_resize-bottom-right", 3, "mousedown"]], template: function SdModal_Template(rf, ctx) { if (rf & 1) {
|
|
242
294
|
i0.ɵɵprojectionDef();
|
|
243
295
|
i0.ɵɵelementStart(0, "div", 0);
|
|
244
|
-
i0.ɵɵlistener("
|
|
296
|
+
i0.ɵɵlistener("click", function SdModal_Template_div_click_0_listener() { return ctx.onBackdropClick(); })("keydown.enter", function SdModal_Template_div_keydown_enter_0_listener() { return ctx.onBackdropClick(); });
|
|
245
297
|
i0.ɵɵelementEnd();
|
|
246
298
|
i0.ɵɵelementStart(1, "div", 1);
|
|
247
|
-
i0.ɵɵlistener("keydown", function SdModal_Template_div_keydown_1_listener($event) { return ctx.onDialogKeydown($event); })("focus", function SdModal_Template_div_focus_1_listener() { return ctx.onDialogFocus(); });
|
|
248
|
-
i0.ɵɵconditionalCreate(2, SdModal_Conditional_2_Template, 5,
|
|
299
|
+
i0.ɵɵlistener("keydown", function SdModal_Template_div_keydown_1_listener($event) { return ctx.onDialogKeydown($event); })("focus", function SdModal_Template_div_focus_1_listener() { return ctx.onDialogFocus(); })("sdResize", function SdModal_Template_div_sdResize_1_listener($event) { return ctx.onDialogResize($event); });
|
|
300
|
+
i0.ɵɵconditionalCreate(2, SdModal_Conditional_2_Template, 5, 5, "div", 2);
|
|
249
301
|
i0.ɵɵelementStart(3, "div", 3);
|
|
250
302
|
i0.ɵɵprojection(4);
|
|
251
303
|
i0.ɵɵelementEnd();
|
|
@@ -256,43 +308,89 @@ export class SdModal {
|
|
|
256
308
|
i0.ɵɵconditional(!ctx.hideHeader() ? 2 : -1);
|
|
257
309
|
i0.ɵɵadvance(3);
|
|
258
310
|
i0.ɵɵconditional(ctx.resizable() ? 5 : -1);
|
|
259
|
-
} }, dependencies: [NgTemplateOutlet, NgIcon], styles: ["sd-modal {\n display: block;\n position: fixed;\n z-index: var(--z-index-modal);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding-top: calc(var(--topbar-height) + var(--gap-sm));\n opacity: 0;\n transition: opacity var(--animation-duration) ease-in-out;\n pointer-events: none;\n}\nsd-modal > ._backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--trans-default);\n}\nsd-modal > ._dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n width: fit-content;\n min-width: 200px;\n background: var(--control-color);\n overflow: hidden;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n border-radius: var(--border-radius-default);\n transform: translateY(-25px);\n transition: transform var(--animation-duration) ease-in-out;\n}\nsd-modal > ._dialog:focus {\n outline: none;\n}\nsd-modal > ._dialog > ._header {\n display: flex;\n align-items: center;\n user-select: none;\n border-bottom: 1px solid var(--theme-gray-lightest);\n}\nsd-modal > ._dialog > ._header > ._title {\n flex: 1;\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._header > ._close-btn {\n
|
|
311
|
+
} }, dependencies: [NgTemplateOutlet, NgIcon, SdAnchor, SdResizeDirective], styles: ["sd-modal {\n display: block;\n position: fixed;\n z-index: var(--z-index-modal);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding-top: calc(var(--topbar-height) + var(--gap-sm));\n opacity: 0;\n transition: opacity var(--animation-duration) ease-in-out;\n pointer-events: none;\n}\nsd-modal > ._backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--trans-default);\n}\nsd-modal > ._dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n width: fit-content;\n min-width: 200px;\n background: var(--control-color);\n overflow: hidden;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n border-radius: var(--border-radius-default);\n transform: translateY(-25px);\n transition: transform var(--animation-duration) ease-in-out;\n}\nsd-modal > ._dialog:focus {\n outline: none;\n}\nsd-modal > ._dialog > ._header {\n display: flex;\n align-items: center;\n user-select: none;\n border-bottom: 1px solid var(--theme-gray-lightest);\n}\nsd-modal > ._dialog > ._header > ._title {\n flex: 1;\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._header > ._close-btn {\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._content {\n flex: 1;\n overflow: auto;\n}\nsd-modal > ._dialog > ._resize-handle {\n position: absolute;\n}\nsd-modal > ._dialog > ._resize-handle._resize-left {\n top: 0;\n left: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-right {\n top: 0;\n right: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top {\n top: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-right {\n right: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nesw-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-left {\n left: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nwse-resize;\n z-index: 1;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom {\n bottom: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-right {\n right: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nwse-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-left {\n left: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nesw-resize;\n z-index: 1;\n}\nsd-modal[data-sd-open][data-sd-init] {\n opacity: 1;\n pointer-events: auto;\n}\nsd-modal[data-sd-open][data-sd-init] > ._dialog {\n transform: none;\n}\nsd-modal[data-sd-float] {\n pointer-events: none;\n}\nsd-modal[data-sd-float] > ._backdrop {\n display: none;\n}\nsd-modal[data-sd-float] > ._dialog {\n pointer-events: auto;\n opacity: 0;\n box-shadow: 0 calc(4 * var(--elevation-size)) calc(4 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n border: 1px solid var(--theme-gray-lighter);\n}\nsd-modal[data-sd-float] > ._dialog:focus {\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] {\n pointer-events: none;\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] > ._dialog {\n pointer-events: auto;\n opacity: 1;\n}\nsd-modal[data-sd-position=bottom-right] > ._dialog {\n position: absolute;\n right: calc(var(--gap-xxl) * 2);\n bottom: var(--gap-xxl);\n}\nsd-modal[data-sd-position=top-right] > ._dialog {\n position: absolute;\n right: var(--gap-xxl);\n top: var(--gap-xxl);\n}\nsd-modal[data-sd-fill] {\n padding-top: 0;\n}\nsd-modal[data-sd-fill] > ._dialog {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\nsd-modal[data-sd-fill] > ._dialog > ._header {\n background: transparent;\n color: var(--text-trans-lighter);\n}"], encapsulation: 2, changeDetection: 0 });
|
|
260
312
|
}
|
|
261
313
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdModal, [{
|
|
262
314
|
type: Component,
|
|
263
|
-
args: [{ selector: "sd-modal", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgTemplateOutlet, NgIcon], host: {
|
|
315
|
+
args: [{ selector: "sd-modal", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgTemplateOutlet, NgIcon, SdAnchor, SdResizeDirective], hostDirectives: [{ directive: SdResizeDirective, outputs: ["sdResize"] }], host: {
|
|
264
316
|
"[attr.data-sd-open]": "open() || undefined",
|
|
265
317
|
"[attr.data-sd-float]": "float() || undefined",
|
|
266
318
|
"[attr.data-sd-fill]": "fill() || undefined",
|
|
267
319
|
"[attr.data-sd-position]": "position() || undefined",
|
|
320
|
+
"(sdResize)": "onHostResize($event)",
|
|
321
|
+
"(window:resize)": "onWindowResize()",
|
|
268
322
|
}, template: `
|
|
269
|
-
<div
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
323
|
+
<div
|
|
324
|
+
class="_backdrop"
|
|
325
|
+
tabindex="-1"
|
|
326
|
+
role="button"
|
|
327
|
+
(click)="onBackdropClick()"
|
|
328
|
+
(keydown.enter)="onBackdropClick()"
|
|
329
|
+
></div>
|
|
330
|
+
<div
|
|
331
|
+
class="_dialog"
|
|
332
|
+
tabindex="-1"
|
|
333
|
+
(keydown)="onDialogKeydown($event)"
|
|
334
|
+
(focus)="onDialogFocus()"
|
|
335
|
+
(sdResize)="onDialogResize($event)"
|
|
336
|
+
>
|
|
273
337
|
@if (!hideHeader()) {
|
|
274
|
-
<div class="_header" (mousedown)="onHeaderMouseDown($event)">
|
|
275
|
-
<
|
|
338
|
+
<div class="_header" (mousedown)="onHeaderMouseDown($event)" [style]="headerStyle()">
|
|
339
|
+
<h5 class="_title">{{ title() }}</h5>
|
|
276
340
|
@if (actionTplRef()) {
|
|
277
341
|
<ng-container *ngTemplateOutlet="actionTplRef()!" />
|
|
278
342
|
}
|
|
279
343
|
@if (!hideCloseButton()) {
|
|
280
|
-
<
|
|
344
|
+
<sd-anchor [theme]="'gray'" class="_close-btn" (click)="onCloseButtonClick()">
|
|
345
|
+
<ng-icon [svg]="tablerX" />
|
|
346
|
+
</sd-anchor>
|
|
281
347
|
}
|
|
282
348
|
</div>
|
|
283
349
|
}
|
|
284
350
|
<div class="_content"><ng-content /></div>
|
|
285
351
|
@if (resizable()) {
|
|
286
|
-
<div
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
<div
|
|
292
|
-
|
|
293
|
-
|
|
352
|
+
<div
|
|
353
|
+
class="_resize-handle _resize-top"
|
|
354
|
+
data-resize-dir="top"
|
|
355
|
+
(mousedown)="onResizeMouseDown($event, 'top')"
|
|
356
|
+
></div>
|
|
357
|
+
<div
|
|
358
|
+
class="_resize-handle _resize-bottom"
|
|
359
|
+
data-resize-dir="bottom"
|
|
360
|
+
(mousedown)="onResizeMouseDown($event, 'bottom')"
|
|
361
|
+
></div>
|
|
362
|
+
<div
|
|
363
|
+
class="_resize-handle _resize-left"
|
|
364
|
+
data-resize-dir="left"
|
|
365
|
+
(mousedown)="onResizeMouseDown($event, 'left')"
|
|
366
|
+
></div>
|
|
367
|
+
<div
|
|
368
|
+
class="_resize-handle _resize-right"
|
|
369
|
+
data-resize-dir="right"
|
|
370
|
+
(mousedown)="onResizeMouseDown($event, 'right')"
|
|
371
|
+
></div>
|
|
372
|
+
<div
|
|
373
|
+
class="_resize-handle _resize-top-left"
|
|
374
|
+
data-resize-dir="top-left"
|
|
375
|
+
(mousedown)="onResizeMouseDown($event, 'top-left')"
|
|
376
|
+
></div>
|
|
377
|
+
<div
|
|
378
|
+
class="_resize-handle _resize-top-right"
|
|
379
|
+
data-resize-dir="top-right"
|
|
380
|
+
(mousedown)="onResizeMouseDown($event, 'top-right')"
|
|
381
|
+
></div>
|
|
382
|
+
<div
|
|
383
|
+
class="_resize-handle _resize-bottom-left"
|
|
384
|
+
data-resize-dir="bottom-left"
|
|
385
|
+
(mousedown)="onResizeMouseDown($event, 'bottom-left')"
|
|
386
|
+
></div>
|
|
387
|
+
<div
|
|
388
|
+
class="_resize-handle _resize-bottom-right"
|
|
389
|
+
data-resize-dir="bottom-right"
|
|
390
|
+
(mousedown)="onResizeMouseDown($event, 'bottom-right')"
|
|
391
|
+
></div>
|
|
294
392
|
}
|
|
295
393
|
</div>
|
|
296
|
-
`, styles: ["sd-modal {\n display: block;\n position: fixed;\n z-index: var(--z-index-modal);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding-top: calc(var(--topbar-height) + var(--gap-sm));\n opacity: 0;\n transition: opacity var(--animation-duration) ease-in-out;\n pointer-events: none;\n}\nsd-modal > ._backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--trans-default);\n}\nsd-modal > ._dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n width: fit-content;\n min-width: 200px;\n background: var(--control-color);\n overflow: hidden;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n border-radius: var(--border-radius-default);\n transform: translateY(-25px);\n transition: transform var(--animation-duration) ease-in-out;\n}\nsd-modal > ._dialog:focus {\n outline: none;\n}\nsd-modal > ._dialog > ._header {\n display: flex;\n align-items: center;\n user-select: none;\n border-bottom: 1px solid var(--theme-gray-lightest);\n}\nsd-modal > ._dialog > ._header > ._title {\n flex: 1;\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._header > ._close-btn {\n
|
|
297
|
-
}], () => [], { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], hideHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideHeader", required: false }] }], hideCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideCloseButton", required: false }] }], useCloseByBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "useCloseByBackdrop", required: false }] }], useCloseByEscapeKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "useCloseByEscapeKey", required: false }] }], float: [{ type: i0.Input, args: [{ isSignal: true, alias: "float", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], movable: [{ type: i0.Input, args: [{ isSignal: true, alias: "movable", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], minHeightPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeightPx", required: false }] }], minWidthPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidthPx", required: false }] }], heightPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "heightPx", required: false }] }], widthPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "widthPx", required: false }] }], actionTplRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionTplRef", required: false }] }], closeRequest: [{ type: i0.Output, args: ["closeRequest"] }] }); })();
|
|
298
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdModal, { className: "SdModal", filePath: "packages/angular/src/core/modal/sd-modal.ts", lineNumber:
|
|
394
|
+
`, styles: ["sd-modal {\n display: block;\n position: fixed;\n z-index: var(--z-index-modal);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding-top: calc(var(--topbar-height) + var(--gap-sm));\n opacity: 0;\n transition: opacity var(--animation-duration) ease-in-out;\n pointer-events: none;\n}\nsd-modal > ._backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--trans-default);\n}\nsd-modal > ._dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n width: fit-content;\n min-width: 200px;\n background: var(--control-color);\n overflow: hidden;\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n border-radius: var(--border-radius-default);\n transform: translateY(-25px);\n transition: transform var(--animation-duration) ease-in-out;\n}\nsd-modal > ._dialog:focus {\n outline: none;\n}\nsd-modal > ._dialog > ._header {\n display: flex;\n align-items: center;\n user-select: none;\n border-bottom: 1px solid var(--theme-gray-lightest);\n}\nsd-modal > ._dialog > ._header > ._title {\n flex: 1;\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._header > ._close-btn {\n padding: var(--gap-sm) var(--gap-default);\n}\nsd-modal > ._dialog > ._content {\n flex: 1;\n overflow: auto;\n}\nsd-modal > ._dialog > ._resize-handle {\n position: absolute;\n}\nsd-modal > ._dialog > ._resize-handle._resize-left {\n top: 0;\n left: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-right {\n top: 0;\n right: 0;\n width: var(--gap-sm);\n height: 100%;\n cursor: ew-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top {\n top: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-right {\n right: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nesw-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-top-left {\n left: 0;\n top: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nwse-resize;\n z-index: 1;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom {\n bottom: 0;\n left: 0;\n width: 100%;\n height: var(--gap-sm);\n cursor: ns-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-right {\n right: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n z-index: 1;\n cursor: nwse-resize;\n}\nsd-modal > ._dialog > ._resize-handle._resize-bottom-left {\n left: 0;\n bottom: 0;\n width: var(--gap-sm);\n height: var(--gap-sm);\n cursor: nesw-resize;\n z-index: 1;\n}\nsd-modal[data-sd-open][data-sd-init] {\n opacity: 1;\n pointer-events: auto;\n}\nsd-modal[data-sd-open][data-sd-init] > ._dialog {\n transform: none;\n}\nsd-modal[data-sd-float] {\n pointer-events: none;\n}\nsd-modal[data-sd-float] > ._backdrop {\n display: none;\n}\nsd-modal[data-sd-float] > ._dialog {\n pointer-events: auto;\n opacity: 0;\n box-shadow: 0 calc(4 * var(--elevation-size)) calc(4 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n border: 1px solid var(--theme-gray-lighter);\n}\nsd-modal[data-sd-float] > ._dialog:focus {\n box-shadow: 0 calc(16 * var(--elevation-size)) calc(16 * 4 * var(--elevation-size)) var(--trans-lighter), 0 var(--elevation-size) var(--elevation-size) var(--trans-lighter);\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] {\n pointer-events: none;\n}\nsd-modal[data-sd-float][data-sd-open][data-sd-init] > ._dialog {\n pointer-events: auto;\n opacity: 1;\n}\nsd-modal[data-sd-position=bottom-right] > ._dialog {\n position: absolute;\n right: calc(var(--gap-xxl) * 2);\n bottom: var(--gap-xxl);\n}\nsd-modal[data-sd-position=top-right] > ._dialog {\n position: absolute;\n right: var(--gap-xxl);\n top: var(--gap-xxl);\n}\nsd-modal[data-sd-fill] {\n padding-top: 0;\n}\nsd-modal[data-sd-fill] > ._dialog {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\nsd-modal[data-sd-fill] > ._dialog > ._header {\n background: transparent;\n color: var(--text-trans-lighter);\n}"] }]
|
|
395
|
+
}], () => [], { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], hideHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideHeader", required: false }] }], hideCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideCloseButton", required: false }] }], headerStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerStyle", required: false }] }], useCloseByBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "useCloseByBackdrop", required: false }] }], useCloseByEscapeKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "useCloseByEscapeKey", required: false }] }], float: [{ type: i0.Input, args: [{ isSignal: true, alias: "float", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], movable: [{ type: i0.Input, args: [{ isSignal: true, alias: "movable", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], minHeightPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeightPx", required: false }] }], minWidthPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidthPx", required: false }] }], heightPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "heightPx", required: false }] }], widthPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "widthPx", required: false }] }], actionTplRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionTplRef", required: false }] }], closeRequest: [{ type: i0.Output, args: ["closeRequest"] }] }); })();
|
|
396
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdModal, { className: "SdModal", filePath: "packages/angular/src/core/modal/sd-modal.ts", lineNumber: 323 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-modal.provider.d.ts","sourceRoot":"","sources":["../../../src/core/modal/sd-modal.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,OAAO,wBAAwB,CAAC;;AAEhC;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,EAAE,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC;AAED,KAAK,kBAAkB,GAAG,aAAa,GAAG,OAAO,GAAG,cAAc,GAAG,sBAAsB,CAAC;AAC5F,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GACrF,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,MAAM,EAAE,YAAY,CAClB,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,EACtD,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,CACtF,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,qBACa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAE9C,UAAU,iDAAa;IAEjB,SAAS,CAAC,CAAC,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAC9C,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IA0JzD,OAAO,CAAC,aAAa;yCApKV,eAAe;6CAAf,eAAe;CA+K3B"}
|
|
1
|
+
{"version":3,"file":"sd-modal.provider.d.ts","sourceRoot":"","sources":["../../../src/core/modal/sd-modal.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,OAAO,wBAAwB,CAAC;;AAEhC;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,EAAE,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC;AAED,KAAK,kBAAkB,GAAG,aAAa,GAAG,OAAO,GAAG,cAAc,GAAG,sBAAsB,CAAC;AAC5F,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GACrF,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,MAAM,EAAE,YAAY,CAClB,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,EACtD,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,CACtF,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,qBACa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAE9C,UAAU,iDAAa;IAEjB,SAAS,CAAC,CAAC,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAC9C,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IA0JzD,OAAO,CAAC,aAAa;yCApKV,eAAe;6CAAf,eAAe;CA+K3B"}
|
|
@@ -48,9 +48,9 @@ export class SdModalProvider {
|
|
|
48
48
|
});
|
|
49
49
|
// 6. 옵션 바인딩
|
|
50
50
|
modalRef.setInput("title", modal.title);
|
|
51
|
-
if (options
|
|
51
|
+
if (options != null) {
|
|
52
52
|
for (const [key, value] of Object.entries(options)) {
|
|
53
|
-
if (value
|
|
53
|
+
if (value != null && key !== "noFirstControlFocusing") {
|
|
54
54
|
modalRef.setInput(key, value);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -92,7 +92,7 @@ export class SdModalProvider {
|
|
|
92
92
|
// 컨텐츠 영역에서 첫 탭 이동 가능 요소 검색
|
|
93
93
|
const contentEl = modalEl.querySelector("._content");
|
|
94
94
|
const firstTabbable = contentEl?.findFirstTabbableChild();
|
|
95
|
-
if (firstTabbable
|
|
95
|
+
if (firstTabbable != null) {
|
|
96
96
|
firstTabbable.focus();
|
|
97
97
|
}
|
|
98
98
|
else {
|
|
@@ -111,7 +111,7 @@ export class SdModalProvider {
|
|
|
111
111
|
const modalEl = modalRef.location.nativeElement;
|
|
112
112
|
const doDestroy = () => {
|
|
113
113
|
// DOM에서 제거
|
|
114
|
-
if (modalEl.parentNode
|
|
114
|
+
if (modalEl.parentNode != null) {
|
|
115
115
|
modalEl.parentNode.removeChild(modalEl);
|
|
116
116
|
}
|
|
117
117
|
// 뷰 분리 + 파괴
|
|
@@ -122,7 +122,7 @@ export class SdModalProvider {
|
|
|
122
122
|
// modalCount 감소
|
|
123
123
|
this.modalCount.update((v) => v - 1);
|
|
124
124
|
// 포커스 복귀
|
|
125
|
-
if (prevActiveEl
|
|
125
|
+
if (prevActiveEl != null && prevActiveEl.isConnected) {
|
|
126
126
|
prevActiveEl.focus();
|
|
127
127
|
}
|
|
128
128
|
resolve(result);
|
|
@@ -75,4 +75,4 @@ export class SdPromptModal {
|
|
|
75
75
|
`,
|
|
76
76
|
}]
|
|
77
77
|
}], null, { close: [{ type: i0.Output, args: ["close"] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }] }); })();
|
|
78
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdPromptModal, { className: "SdPromptModal", filePath: "packages/angular/src/core/modal/sd-prompt-modal.ts", lineNumber: 43
|
|
78
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdPromptModal, { className: "SdPromptModal", filePath: "packages/angular/src/core/modal/sd-prompt-modal.ts", lineNumber: 43 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provideSdAngular.d.ts","sourceRoot":"","sources":["../../src/core/provideSdAngular.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"provideSdAngular.d.ts","sourceRoot":"","sources":["../../src/core/provideSdAngular.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AA+B1D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,CA2IlF"}
|
|
@@ -10,11 +10,6 @@ import { SdAngularConfigProvider } from "./config/sd-angular-config.provider";
|
|
|
10
10
|
import { SdThemeProvider } from "../features/theme/sd-theme-provider";
|
|
11
11
|
import { SdLocalStorageProvider } from "./config/sd-local-storage.provider";
|
|
12
12
|
import { SdGlobalErrorHandlerPlugin } from "./error-handler/sd-global-error-handler.plugin";
|
|
13
|
-
import { SdSaveCommandEventPlugin } from "./commands/sd-save-command-event.plugin";
|
|
14
|
-
import { SdRefreshCommandEventPlugin } from "./commands/sd-refresh-command-event.plugin";
|
|
15
|
-
import { SdInsertCommandEventPlugin } from "./commands/sd-insert-command-event.plugin";
|
|
16
|
-
import { SdResizeEventPlugin } from "./events/sd-resize-event.plugin";
|
|
17
|
-
import { SdIntersectionEventPlugin } from "./events/sd-intersection-event.plugin";
|
|
18
13
|
import { SdOptionEventPlugin } from "./events/sd-option-event.plugin";
|
|
19
14
|
export function provideSdAngular(opt) {
|
|
20
15
|
return makeEnvironmentProviders([
|
|
@@ -84,11 +79,6 @@ export function provideSdAngular(opt) {
|
|
|
84
79
|
return provider;
|
|
85
80
|
},
|
|
86
81
|
},
|
|
87
|
-
{ provide: EVENT_MANAGER_PLUGINS, useClass: SdSaveCommandEventPlugin, multi: true },
|
|
88
|
-
{ provide: EVENT_MANAGER_PLUGINS, useClass: SdRefreshCommandEventPlugin, multi: true },
|
|
89
|
-
{ provide: EVENT_MANAGER_PLUGINS, useClass: SdInsertCommandEventPlugin, multi: true },
|
|
90
|
-
{ provide: EVENT_MANAGER_PLUGINS, useClass: SdResizeEventPlugin, multi: true },
|
|
91
|
-
{ provide: EVENT_MANAGER_PLUGINS, useClass: SdIntersectionEventPlugin, multi: true },
|
|
92
82
|
{ provide: EVENT_MANAGER_PLUGINS, useClass: SdOptionEventPlugin, multi: true },
|
|
93
83
|
{ provide: ErrorHandler, useClass: SdGlobalErrorHandlerPlugin },
|
|
94
84
|
provideZonelessChangeDetection(),
|
|
@@ -9,13 +9,13 @@ export function setupRipple(enableFn) {
|
|
|
9
9
|
});
|
|
10
10
|
let indicatorEl;
|
|
11
11
|
const onPointerDown = (event) => {
|
|
12
|
-
if (enableFn
|
|
12
|
+
if (enableFn != null && !enableFn())
|
|
13
13
|
return;
|
|
14
14
|
const rect = el.getBoundingClientRect();
|
|
15
15
|
const size = Math.max(rect.width, rect.height);
|
|
16
16
|
const x = event.clientX - rect.left;
|
|
17
17
|
const y = event.clientY - rect.top;
|
|
18
|
-
if (indicatorEl
|
|
18
|
+
if (indicatorEl != null) {
|
|
19
19
|
indicatorEl.remove();
|
|
20
20
|
}
|
|
21
21
|
indicatorEl = document.createElement("div");
|
|
@@ -34,19 +34,19 @@ export function setupRipple(enableFn) {
|
|
|
34
34
|
});
|
|
35
35
|
el.appendChild(indicatorEl);
|
|
36
36
|
indicatorEl.ontransitionend = (ev) => {
|
|
37
|
-
if (ev.propertyName === "opacity" && indicatorEl
|
|
37
|
+
if (ev.propertyName === "opacity" && indicatorEl != null) {
|
|
38
38
|
indicatorEl.remove();
|
|
39
39
|
indicatorEl = undefined;
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
requestAnimationFrame(() => {
|
|
43
|
-
if (indicatorEl
|
|
43
|
+
if (indicatorEl != null) {
|
|
44
44
|
indicatorEl.style.transform = "scale(1)";
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
};
|
|
48
48
|
const onPointerUp = () => {
|
|
49
|
-
if (indicatorEl
|
|
49
|
+
if (indicatorEl != null) {
|
|
50
50
|
indicatorEl.style.opacity = "0";
|
|
51
51
|
}
|
|
52
52
|
};
|
|
@@ -27,7 +27,7 @@ export class SdNavigateWindowProvider {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
const paramStr = params
|
|
30
|
+
const paramStr = params != null ? new URLSearchParams(params).toString() : "";
|
|
31
31
|
const suffix = paramStr !== "" ? `;${paramStr}` : "";
|
|
32
32
|
window.open(`${location.pathname}#${navigate}${suffix}`, "_blank");
|
|
33
33
|
}
|
|
@@ -29,7 +29,7 @@ export class SdRouterLink {
|
|
|
29
29
|
: "";
|
|
30
30
|
this._sdNavigateWindow.open(option.link + qp, option.params);
|
|
31
31
|
}
|
|
32
|
-
else if (option.outletName
|
|
32
|
+
else if (option.outletName == null) {
|
|
33
33
|
await this._router.navigate([option.link, ...(option.params ? [option.params] : [])], option.queryParams ? { queryParams: option.queryParams } : undefined);
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
@@ -7,10 +7,10 @@ export function setupCumulateSelectedKeys(options) {
|
|
|
7
7
|
const selectedItems = untracked(() => options.selectedItems());
|
|
8
8
|
if (selectedItems.length === 0)
|
|
9
9
|
return;
|
|
10
|
-
const itemKeySet = new Set(items.map((item) => options.keySelectorFn(item)).filter((k) => k
|
|
10
|
+
const itemKeySet = new Set(items.map((item) => options.keySelectorFn(item)).filter((k) => k != null));
|
|
11
11
|
const filtered = selectedItems.filter((item) => {
|
|
12
12
|
const key = options.keySelectorFn(item);
|
|
13
|
-
return key
|
|
13
|
+
return key != null && itemKeySet.has(key);
|
|
14
14
|
});
|
|
15
15
|
if (filtered.length !== selectedItems.length) {
|
|
16
16
|
options.selectedItems.set(filtered);
|
|
@@ -21,7 +21,7 @@ export function setupCumulateSelectedKeys(options) {
|
|
|
21
21
|
const selectedItems = options.selectedItems();
|
|
22
22
|
const keys = selectedItems
|
|
23
23
|
.map((item) => options.keySelectorFn(item))
|
|
24
|
-
.filter((k) => k
|
|
24
|
+
.filter((k) => k != null);
|
|
25
25
|
options.selectedItemKeys.set(keys);
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -2,6 +2,6 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
export declare class SdToastContainer {
|
|
3
3
|
overlap: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
4
4
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdToastContainer, never>;
|
|
5
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdToastContainer, "sd-toast-container", never, { "overlap": { "alias": "overlap"; "required": false; "isSignal": true; }; }, {}, never,
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdToastContainer, "sd-toast-container", never, { "overlap": { "alias": "overlap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=sd-toast-container.d.ts.map
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation, } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
const _c0 = ["*"];
|
|
4
3
|
export class SdToastContainer {
|
|
5
4
|
overlap = input(false, { ...(ngDevMode ? { debugName: "overlap" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
6
5
|
static ɵfac = function SdToastContainer_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdToastContainer)(); };
|
|
7
6
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdToastContainer, selectors: [["sd-toast-container"]], hostVars: 1, hostBindings: function SdToastContainer_HostBindings(rf, ctx) { if (rf & 2) {
|
|
8
7
|
i0.ɵɵattribute("data-sd-overlap", ctx.overlap() || undefined);
|
|
9
|
-
} }, inputs: { overlap: [1, "overlap"] },
|
|
10
|
-
i0.ɵɵprojectionDef();
|
|
11
|
-
i0.ɵɵprojection(0);
|
|
12
|
-
} }, styles: ["sd-toast-container {\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n pointer-events: none;\n padding: var(--gap-xxl);\n z-index: 9999;\n flex-direction: column;\n}\n@supports not (appearance: auto) {\n sd-toast-container.gap-xxs {\n gap: 0;\n }\n sd-toast-container.gap-xxs > * + * {\n margin-top: var(--gap-xxs);\n }\n sd-toast-container.gap-xs {\n gap: 0;\n }\n sd-toast-container.gap-xs > * + * {\n margin-top: var(--gap-xs);\n }\n sd-toast-container.gap-sm {\n gap: 0;\n }\n sd-toast-container.gap-sm > * + * {\n margin-top: var(--gap-sm);\n }\n sd-toast-container.gap-default {\n gap: 0;\n }\n sd-toast-container.gap-default > * + * {\n margin-top: var(--gap-default);\n }\n sd-toast-container.gap-lg {\n gap: 0;\n }\n sd-toast-container.gap-lg > * + * {\n margin-top: var(--gap-lg);\n }\n sd-toast-container.gap-xl {\n gap: 0;\n }\n sd-toast-container.gap-xl > * + * {\n margin-top: var(--gap-xl);\n }\n sd-toast-container.gap-xxl {\n gap: 0;\n }\n sd-toast-container.gap-xxl > * + * {\n margin-top: var(--gap-xxl);\n }\n sd-toast-container.gap-0 {\n gap: 0;\n }\n sd-toast-container.gap-0 > * + * {\n margin-top: var(--gap-0);\n }\n sd-toast-container.gap-auto {\n gap: 0;\n }\n sd-toast-container.gap-auto > * + * {\n margin-top: var(--gap-auto);\n }\n}\n@media all and (max-width: 520px) {\n sd-toast-container {\n flex-direction: column-reverse;\n }\n}\nsd-toast-container[data-sd-overlap] {\n display: block;\n}\nsd-toast-container[data-sd-overlap] > sd-toast {\n position: absolute;\n bottom: var(--gap-xxl);\n left: var(--gap-xxl);\n right: var(--gap-xxl);\n width: auto;\n}"], encapsulation: 2, changeDetection: 0 });
|
|
8
|
+
} }, inputs: { overlap: [1, "overlap"] }, decls: 0, vars: 0, template: function SdToastContainer_Template(rf, ctx) { }, styles: ["sd-toast-container {\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n pointer-events: none;\n padding: var(--gap-xxl);\n z-index: 9999;\n flex-direction: column;\n}\n@supports not (appearance: auto) {\n sd-toast-container.gap-xxs {\n gap: 0;\n }\n sd-toast-container.gap-xxs > * + * {\n margin-top: var(--gap-xxs);\n }\n sd-toast-container.gap-xs {\n gap: 0;\n }\n sd-toast-container.gap-xs > * + * {\n margin-top: var(--gap-xs);\n }\n sd-toast-container.gap-sm {\n gap: 0;\n }\n sd-toast-container.gap-sm > * + * {\n margin-top: var(--gap-sm);\n }\n sd-toast-container.gap-default {\n gap: 0;\n }\n sd-toast-container.gap-default > * + * {\n margin-top: var(--gap-default);\n }\n sd-toast-container.gap-lg {\n gap: 0;\n }\n sd-toast-container.gap-lg > * + * {\n margin-top: var(--gap-lg);\n }\n sd-toast-container.gap-xl {\n gap: 0;\n }\n sd-toast-container.gap-xl > * + * {\n margin-top: var(--gap-xl);\n }\n sd-toast-container.gap-xxl {\n gap: 0;\n }\n sd-toast-container.gap-xxl > * + * {\n margin-top: var(--gap-xxl);\n }\n sd-toast-container.gap-0 {\n gap: 0;\n }\n sd-toast-container.gap-0 > * + * {\n margin-top: var(--gap-0);\n }\n sd-toast-container.gap-auto {\n gap: 0;\n }\n sd-toast-container.gap-auto > * + * {\n margin-top: var(--gap-auto);\n }\n}\n@media all and (max-width: 520px) {\n sd-toast-container {\n flex-direction: column-reverse;\n }\n}\nsd-toast-container[data-sd-overlap] {\n display: block;\n}\nsd-toast-container[data-sd-overlap] > sd-toast {\n position: absolute;\n bottom: var(--gap-xxl);\n left: var(--gap-xxl);\n right: var(--gap-xxl);\n width: auto;\n}"], encapsulation: 2, changeDetection: 0 });
|
|
13
9
|
}
|
|
14
10
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdToastContainer, [{
|
|
15
11
|
type: Component,
|
|
16
12
|
args: [{ selector: "sd-toast-container", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, host: {
|
|
17
13
|
"[attr.data-sd-overlap]": "overlap() || undefined",
|
|
18
|
-
}, template:
|
|
14
|
+
}, template: "", styles: ["sd-toast-container {\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n pointer-events: none;\n padding: var(--gap-xxl);\n z-index: 9999;\n flex-direction: column;\n}\n@supports not (appearance: auto) {\n sd-toast-container.gap-xxs {\n gap: 0;\n }\n sd-toast-container.gap-xxs > * + * {\n margin-top: var(--gap-xxs);\n }\n sd-toast-container.gap-xs {\n gap: 0;\n }\n sd-toast-container.gap-xs > * + * {\n margin-top: var(--gap-xs);\n }\n sd-toast-container.gap-sm {\n gap: 0;\n }\n sd-toast-container.gap-sm > * + * {\n margin-top: var(--gap-sm);\n }\n sd-toast-container.gap-default {\n gap: 0;\n }\n sd-toast-container.gap-default > * + * {\n margin-top: var(--gap-default);\n }\n sd-toast-container.gap-lg {\n gap: 0;\n }\n sd-toast-container.gap-lg > * + * {\n margin-top: var(--gap-lg);\n }\n sd-toast-container.gap-xl {\n gap: 0;\n }\n sd-toast-container.gap-xl > * + * {\n margin-top: var(--gap-xl);\n }\n sd-toast-container.gap-xxl {\n gap: 0;\n }\n sd-toast-container.gap-xxl > * + * {\n margin-top: var(--gap-xxl);\n }\n sd-toast-container.gap-0 {\n gap: 0;\n }\n sd-toast-container.gap-0 > * + * {\n margin-top: var(--gap-0);\n }\n sd-toast-container.gap-auto {\n gap: 0;\n }\n sd-toast-container.gap-auto > * + * {\n margin-top: var(--gap-auto);\n }\n}\n@media all and (max-width: 520px) {\n sd-toast-container {\n flex-direction: column-reverse;\n }\n}\nsd-toast-container[data-sd-overlap] {\n display: block;\n}\nsd-toast-container[data-sd-overlap] > sd-toast {\n position: absolute;\n bottom: var(--gap-xxl);\n left: var(--gap-xxl);\n right: var(--gap-xxl);\n width: auto;\n}"] }]
|
|
19
15
|
}], null, { overlap: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlap", required: false }] }] }); })();
|
|
20
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdToastContainer, { className: "SdToastContainer", filePath: "packages/angular/src/core/toast/sd-toast-container.ts", lineNumber: 56
|
|
16
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdToastContainer, { className: "SdToastContainer", filePath: "packages/angular/src/core/toast/sd-toast-container.ts", lineNumber: 56 }); })();
|