@simplysm/angular 14.1.2 → 14.1.6
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 +3 -2
- package/dist/controls/button/sd-anchor.js +3 -2
- package/dist/controls/button/sd-button.js +11 -6
- package/dist/controls/button/sd-modal-select-button.js +15 -8
- package/dist/controls/checkbox/sd-checkbox-group-item.js +7 -4
- package/dist/controls/checkbox/sd-checkbox-group.js +3 -2
- package/dist/controls/checkbox/sd-checkbox.js +13 -7
- package/dist/controls/checkbox/sd-switch.js +9 -5
- package/dist/controls/collapse/sd-collapse-icon.js +7 -4
- package/dist/controls/collapse/sd-collapse.js +9 -5
- package/dist/controls/dropdown/sd-dropdown-popup.js +1 -1
- package/dist/controls/dropdown/sd-dropdown.js +5 -3
- package/dist/controls/form/sd-form.js +1 -1
- package/dist/controls/gap/sd-gap.js +13 -7
- package/dist/controls/input/sd-date-range-picker.js +7 -4
- package/dist/controls/input/sd-numpad.js +7 -4
- package/dist/controls/input/sd-range.js +9 -5
- package/dist/controls/input/sd-textarea.js +21 -11
- package/dist/controls/input/sd-textfield-type-handlers.d.ts.map +1 -1
- package/dist/controls/input/sd-textfield-type-handlers.js +5 -8
- package/dist/controls/input/sd-textfield.d.ts.map +1 -1
- package/dist/controls/input/sd-textfield.js +54 -26
- package/dist/controls/list/sd-list-item.js +19 -10
- package/dist/controls/list/sd-list.js +1 -1
- package/dist/controls/pagination/sd-pagination.js +11 -6
- package/dist/controls/select/sd-select-button.js +1 -1
- package/dist/controls/select/sd-select-item.js +7 -4
- package/dist/controls/select/sd-select.js +35 -18
- package/dist/controls/tab/sd-tab-item.d.ts +4 -4
- package/dist/controls/tab/sd-tab-item.d.ts.map +1 -1
- package/dist/controls/tab/sd-tab-item.js +6 -4
- package/dist/controls/tab/sd-tab.d.ts +4 -4
- package/dist/controls/tab/sd-tab.d.ts.map +1 -1
- package/dist/controls/tab/sd-tab.js +3 -2
- package/dist/core/app-structure/sd-app-structure.provider.js +10 -5
- package/dist/core/busy/sd-busy-container.js +9 -5
- package/dist/core/busy/sd-busy.provider.js +4 -2
- package/dist/core/config/injectSdSystemConfigResource.js +1 -1
- package/dist/core/config/sd-system-config.provider.d.ts +1 -1
- package/dist/core/config/sd-system-config.provider.d.ts.map +1 -1
- package/dist/core/config/sd-system-config.provider.js +1 -1
- package/dist/core/mark.d.ts +1 -1
- package/dist/core/mark.d.ts.map +1 -1
- package/dist/core/modal/sd-activated-modal.provider.js +4 -2
- package/dist/core/modal/sd-confirm-modal.js +5 -3
- package/dist/core/modal/sd-modal.js +37 -19
- package/dist/core/modal/sd-modal.provider.js +2 -1
- package/dist/core/modal/sd-prompt-modal.js +7 -4
- package/dist/core/selection/useExpandingManager.js +14 -7
- package/dist/core/selection/useSelectionManager.js +8 -4
- package/dist/core/selection/useSortingManager.js +2 -1
- package/dist/core/setupModelHook.d.ts +1 -1
- package/dist/core/setupModelHook.d.ts.map +1 -1
- package/dist/core/shared-data/sd-shared-data.provider.js +6 -3
- package/dist/core/show-effect/sd-show-effect.js +2 -1
- package/dist/core/show-effect/setupRevealOnShow.js +2 -1
- package/dist/core/template/sd-item-of-template.js +2 -1
- package/dist/core/template/sd-typed-template.js +2 -1
- package/dist/core/toast/sd-toast-container.js +1 -1
- package/dist/core/toast/sd-toast.js +13 -7
- package/dist/core/toast/sd-toast.provider.js +4 -2
- package/dist/data/crud/sd-base-container.js +19 -10
- package/dist/data/crud/sd-crud-detail.js +22 -12
- package/dist/data/crud/sd-crud-list.d.ts +1 -1
- package/dist/data/crud/sd-crud-list.d.ts.map +1 -1
- package/dist/data/crud/sd-crud-list.js +66 -34
- package/dist/data/kanban/sd-kanban-board.js +5 -3
- package/dist/data/kanban/sd-kanban-lane.js +14 -9
- package/dist/data/kanban/sd-kanban.js +18 -11
- package/dist/data/permission-table/sd-permission-table.js +15 -8
- package/dist/data/shared-data/sd-shared-data-select-button.d.ts +2 -2
- package/dist/data/shared-data/sd-shared-data-select-button.d.ts.map +1 -1
- package/dist/data/shared-data/sd-shared-data-select-button.js +13 -7
- package/dist/data/shared-data/sd-shared-data-select-list.js +27 -14
- package/dist/data/shared-data/sd-shared-data-select.js +45 -23
- package/dist/data/sheet/injectSheetColumnResizing.js +6 -3
- package/dist/data/sheet/sd-sheet-column-cell-template.js +2 -1
- package/dist/data/sheet/sd-sheet-column.d.ts +4 -4
- package/dist/data/sheet/sd-sheet-column.d.ts.map +1 -1
- package/dist/data/sheet/sd-sheet-column.js +16 -8
- package/dist/data/sheet/sd-sheet-config.modal.d.ts +1 -1
- package/dist/data/sheet/sd-sheet-config.modal.d.ts.map +1 -1
- package/dist/data/sheet/sd-sheet-config.modal.js +11 -6
- package/dist/data/sheet/sd-sheet.d.ts +2 -2
- package/dist/data/sheet/sd-sheet.d.ts.map +1 -1
- package/dist/data/sheet/sd-sheet.js +57 -32
- package/dist/data/sheet/useSheetCellAgent.js +2 -1
- package/dist/data/sheet/useSheetCellStyling.js +2 -1
- package/dist/data/sheet/useSheetColumnFixing.js +2 -1
- package/dist/data/sheet/useSheetDisplayPipeline.js +8 -4
- package/dist/data/sheet/useSheetLayoutEngine.js +10 -5
- package/dist/data/state-preset/sd-state-preset.js +9 -5
- package/dist/features/address/sd-address-search.modal.js +5 -3
- package/dist/features/editor/sd-markdown-editor.d.ts +2 -1
- package/dist/features/editor/sd-markdown-editor.d.ts.map +1 -1
- package/dist/features/editor/sd-markdown-editor.js +11 -6
- package/dist/features/editor/sd-tiptap-editor.d.ts +1 -1
- package/dist/features/editor/sd-tiptap-editor.d.ts.map +1 -1
- package/dist/features/editor/sd-tiptap-editor.js +13 -7
- package/dist/features/editor/useTiptapToolbar.d.ts +2 -1
- package/dist/features/editor/useTiptapToolbar.d.ts.map +1 -1
- package/dist/features/editor/useTiptapToolbar.js +8 -4
- package/dist/features/theme/sd-theme-provider.js +6 -3
- package/dist/features/theme/sd-theme-selector.js +5 -3
- package/dist/features/visual/sd-barcode.js +7 -4
- package/dist/features/visual/sd-calendar.js +13 -7
- package/dist/features/visual/sd-echarts.js +9 -5
- package/dist/features/visual/sd-label.js +5 -3
- package/dist/features/visual/sd-note.js +5 -3
- package/dist/features/visual/sd-progress.js +9 -5
- package/dist/layout/sidebar/sd-sidebar-container.js +3 -2
- package/dist/layout/sidebar/sd-sidebar-menu.js +11 -6
- package/dist/layout/sidebar/sd-sidebar-user.js +5 -3
- package/dist/layout/sidebar/sd-sidebar.js +3 -2
- package/dist/layout/topbar/sd-topbar-container.js +1 -1
- package/dist/layout/topbar/sd-topbar-menu.js +7 -4
- package/dist/layout/topbar/sd-topbar-user.js +5 -3
- package/dist/layout/topbar/sd-topbar.js +5 -3
- package/package.json +11 -13
- package/src/controls/input/sd-textfield-type-handlers.ts +5 -7
- package/src/controls/input/sd-textfield.ts +5 -1
- package/src/controls/tab/sd-tab-item.ts +3 -3
- package/src/controls/tab/sd-tab.ts +2 -2
- package/src/core/config/injectSdSystemConfigResource.ts +1 -1
- package/src/core/config/sd-system-config.provider.ts +2 -2
- package/src/core/mark.ts +2 -2
- package/src/core/setupModelHook.ts +2 -2
- package/src/data/shared-data/sd-shared-data-select-button.ts +2 -2
- package/src/data/sheet/sd-sheet-column.ts +2 -2
- package/src/features/editor/sd-markdown-editor.ts +2 -2
- package/src/features/editor/useTiptapToolbar.ts +21 -2
|
@@ -18,7 +18,8 @@ const _c1 = ["beforeTpl"];
|
|
|
18
18
|
const _c2 = [[["sd-select-button"]], "*"];
|
|
19
19
|
const _c3 = ["sd-select-button", "*"];
|
|
20
20
|
const _c4 = (a0, a1, a2, a3) => ({ $implicit: a0, item: a1, index: a2, depth: a3 });
|
|
21
|
-
function _forTrack0($index, $item) {
|
|
21
|
+
function _forTrack0($index, $item) { /* @ts-ignore */
|
|
22
|
+
return this.trackByFn()($item.data, $item.index); }
|
|
22
23
|
function SdSelect_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
23
24
|
i0.ɵɵelement(0, "div", 4);
|
|
24
25
|
} if (rf & 2) {
|
|
@@ -98,28 +99,42 @@ function SdSelect_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
|
98
99
|
i0.ɵɵprojection(0, 1);
|
|
99
100
|
} }
|
|
100
101
|
export class SdSelect {
|
|
101
|
-
selectMode = input("single",
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
selectMode = input("single", /* @ts-ignore */
|
|
103
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
104
|
+
value = model(/* @ts-ignore */
|
|
105
|
+
...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
|
|
106
|
+
placeholder = input(/* @ts-ignore */
|
|
107
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
104
108
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
105
109
|
inline = input(false, { ...(ngDevMode ? { debugName: "inline" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
106
110
|
inset = input(false, { ...(ngDevMode ? { debugName: "inset" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
107
|
-
size = input(
|
|
111
|
+
size = input(/* @ts-ignore */
|
|
112
|
+
...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
|
|
108
113
|
required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
109
114
|
hideSelectAll = input(false, { ...(ngDevMode ? { debugName: "hideSelectAll" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
110
|
-
multiSelectionDisplayDirection = input(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
multiSelectionDisplayDirection = input(/* @ts-ignore */
|
|
116
|
+
...(ngDevMode ? [undefined, { debugName: "multiSelectionDisplayDirection" }] : /* istanbul ignore next */ []));
|
|
117
|
+
items = input(/* @ts-ignore */
|
|
118
|
+
...(ngDevMode ? [undefined, { debugName: "items" }] : /* istanbul ignore next */ []));
|
|
119
|
+
trackByFn = input((item) => item, /* @ts-ignore */
|
|
120
|
+
...(ngDevMode ? [{ debugName: "trackByFn" }] : /* istanbul ignore next */ []));
|
|
121
|
+
getChildrenFn = input(/* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [undefined, { debugName: "getChildrenFn" }] : /* istanbul ignore next */ []));
|
|
123
|
+
contentClass = input(/* @ts-ignore */
|
|
124
|
+
...(ngDevMode ? [undefined, { debugName: "contentClass" }] : /* istanbul ignore next */ []));
|
|
125
|
+
contentStyle = input(/* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [undefined, { debugName: "contentStyle" }] : /* istanbul ignore next */ []));
|
|
127
|
+
dropdownOpen = model(false, /* @ts-ignore */
|
|
128
|
+
...(ngDevMode ? [{ debugName: "dropdownOpen" }] : /* istanbul ignore next */ []));
|
|
117
129
|
tablerCaretDown = tablerCaretDown;
|
|
118
|
-
_itemControls = contentChildren(SdSelectItem,
|
|
130
|
+
_itemControls = contentChildren(SdSelectItem, /* @ts-ignore */
|
|
131
|
+
...(ngDevMode ? [{ debugName: "_itemControls" }] : /* istanbul ignore next */ []));
|
|
119
132
|
_dropdownControl = viewChild.required(SdDropdown);
|
|
120
133
|
_dropdownElRef = viewChild.required(SdDropdown, { read: ElementRef });
|
|
121
|
-
_headerTpl = contentChild("headerTpl",
|
|
122
|
-
|
|
134
|
+
_headerTpl = contentChild("headerTpl", /* @ts-ignore */
|
|
135
|
+
...(ngDevMode ? [{ debugName: "_headerTpl" }] : /* istanbul ignore next */ []));
|
|
136
|
+
_beforeTpl = contentChild("beforeTpl", /* @ts-ignore */
|
|
137
|
+
...(ngDevMode ? [{ debugName: "_beforeTpl" }] : /* istanbul ignore next */ []));
|
|
123
138
|
_itemOfTpl = contentChild(SdItemOfTemplate, { ...(ngDevMode ? { debugName: "_itemOfTpl" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
124
139
|
_sanitizer = inject(DomSanitizer);
|
|
125
140
|
_selectedItemContentHTML = computed(() => {
|
|
@@ -149,7 +164,8 @@ export class SdSelect {
|
|
|
149
164
|
if (html === "")
|
|
150
165
|
return undefined;
|
|
151
166
|
return this._sanitizer.bypassSecurityTrustHtml(html);
|
|
152
|
-
},
|
|
167
|
+
}, /* @ts-ignore */
|
|
168
|
+
...(ngDevMode ? [{ debugName: "_selectedItemContentHTML" }] : /* istanbul ignore next */ []));
|
|
153
169
|
_flatItems = computed(() => {
|
|
154
170
|
const items = this.items();
|
|
155
171
|
if (items == null)
|
|
@@ -170,7 +186,8 @@ export class SdSelect {
|
|
|
170
186
|
};
|
|
171
187
|
walk(items, 0);
|
|
172
188
|
return flat;
|
|
173
|
-
},
|
|
189
|
+
}, /* @ts-ignore */
|
|
190
|
+
...(ngDevMode ? [{ debugName: "_flatItems" }] : /* istanbul ignore next */ []));
|
|
174
191
|
constructor() {
|
|
175
192
|
// Required validation
|
|
176
193
|
setupInvalid(() => {
|
|
@@ -318,7 +335,7 @@ export class SdSelect {
|
|
|
318
335
|
SdGap,
|
|
319
336
|
NgTemplateOutlet,
|
|
320
337
|
SdRipple,
|
|
321
|
-
NgIcon], styles: ["sd-select {\n display: block;\n position: relative;\n width: 100%;\n min-width: 10em;\n}\nsd-select > sd-dropdown {\n display: flex;\n overflow: hidden;\n border: 1px solid var(--border-color-light);\n border-radius: var(--border-radius-default);\n background: var(--theme-secondary-lightest);\n}\nsd-select > sd-dropdown:focus, sd-select > sd-dropdown:focus-within {\n border-color: var(--theme-primary-default);\n}\nsd-select > sd-dropdown > ._sd-select-control {\n display: flex;\n position: relative;\n gap: var(--gap-default);\n flex-grow: 1;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n font-family: var(--font-family-field);\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-content {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n opacity: 0.3;\n}\nsd-select > sd-dropdown > ._sd-select-control:hover > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:focus > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:active > ._sd-select-control-icon {\n opacity: 1;\n}\nsd-select > sd-dropdown > sd-select-button {\n padding: var(--gap-sm);\n border-left: 1px solid var(--theme-gray-lightest);\n}\nsd-select > sd-dropdown > sd-select-button:last-of-type {\n border-top-right-radius: var(--border-radius-default);\n border-bottom-right-radius: var(--border-radius-default);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown {\n background: var(--theme-gray-lightest);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-light);\n cursor: default;\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n display: none;\n}\nsd-select[data-sd-inline=true] {\n display: inline-block;\n width: auto;\n vertical-align: top;\n}\nsd-select[data-sd-size=sm] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-xs) var(--gap-sm);\n gap: var(--gap-sm);\n}\nsd-select[data-sd-size=sm] > sd-dropdown > sd-select-button {\n padding: var(--gap-xs);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-default) var(--gap-lg);\n gap: var(--gap-lg);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > sd-select-button {\n padding: var(--gap-default);\n}\nsd-select[data-sd-inset=true] {\n min-width: auto;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown {\n border: none;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown > sd-select-button {\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus, sd-select[data-sd-inset=true] > sd-dropdown:focus-within {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus > sd-select-button, sd-select[data-sd-inset=true] > sd-dropdown:focus-within > sd-select-button {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown {\n background: var(--control-color);\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-default);\n}\n\n._sd-select-all-bar {\n display: flex;\n padding: var(--gap-sm) var(--gap-default);\n border-bottom: 1px solid var(--border-color-light);\n}"], encapsulation: 2
|
|
338
|
+
NgIcon], styles: ["sd-select {\n display: block;\n position: relative;\n width: 100%;\n min-width: 10em;\n}\nsd-select > sd-dropdown {\n display: flex;\n overflow: hidden;\n border: 1px solid var(--border-color-light);\n border-radius: var(--border-radius-default);\n background: var(--theme-secondary-lightest);\n}\nsd-select > sd-dropdown:focus, sd-select > sd-dropdown:focus-within {\n border-color: var(--theme-primary-default);\n}\nsd-select > sd-dropdown > ._sd-select-control {\n display: flex;\n position: relative;\n gap: var(--gap-default);\n flex-grow: 1;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n font-family: var(--font-family-field);\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-content {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nsd-select > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n opacity: 0.3;\n}\nsd-select > sd-dropdown > ._sd-select-control:hover > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:focus > ._sd-select-control-icon, sd-select > sd-dropdown > ._sd-select-control:active > ._sd-select-control-icon {\n opacity: 1;\n}\nsd-select > sd-dropdown > sd-select-button {\n padding: var(--gap-sm);\n border-left: 1px solid var(--theme-gray-lightest);\n}\nsd-select > sd-dropdown > sd-select-button:last-of-type {\n border-top-right-radius: var(--border-radius-default);\n border-bottom-right-radius: var(--border-radius-default);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown {\n background: var(--theme-gray-lightest);\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-light);\n cursor: default;\n}\nsd-select[data-sd-disabled=true] > sd-dropdown > ._sd-select-control > ._sd-select-control-icon {\n display: none;\n}\nsd-select[data-sd-inline=true] {\n display: inline-block;\n width: auto;\n vertical-align: top;\n}\nsd-select[data-sd-size=sm] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-xs) var(--gap-sm);\n gap: var(--gap-sm);\n}\nsd-select[data-sd-size=sm] > sd-dropdown > sd-select-button {\n padding: var(--gap-xs);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > ._sd-select-control {\n padding: var(--gap-default) var(--gap-lg);\n gap: var(--gap-lg);\n}\nsd-select[data-sd-size=lg] > sd-dropdown > sd-select-button {\n padding: var(--gap-default);\n}\nsd-select[data-sd-inset=true] {\n min-width: auto;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown {\n border: none;\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown > sd-select-button {\n border-radius: 0;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus, sd-select[data-sd-inset=true] > sd-dropdown:focus-within {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true] > sd-dropdown:focus > sd-select-button, sd-select[data-sd-inset=true] > sd-dropdown:focus-within > sd-select-button {\n outline: 1px solid var(--theme-primary-default);\n outline-offset: -1px;\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown {\n background: var(--control-color);\n}\nsd-select[data-sd-inset=true][data-sd-disabled=true] > sd-dropdown > ._sd-select-control {\n color: var(--text-trans-default);\n}\n\n._sd-select-all-bar {\n display: flex;\n padding: var(--gap-sm) var(--gap-default);\n border-bottom: 1px solid var(--border-color-light);\n}"], encapsulation: 2 });
|
|
322
339
|
}
|
|
323
340
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdSelect, [{
|
|
324
341
|
type: Component,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SdTabItem {
|
|
2
|
+
export declare class SdTabItem<T> {
|
|
3
3
|
private readonly _parentControl;
|
|
4
|
-
value: import("@angular/core").InputSignal<
|
|
4
|
+
value: import("@angular/core").InputSignal<T>;
|
|
5
5
|
isSelected: import("@angular/core").Signal<boolean>;
|
|
6
6
|
onClick(): void;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdTabItem
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdTabItem
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdTabItem<any>, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdTabItem<any>, "sd-tab-item", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=sd-tab-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-tab-item.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab-item.ts"],"names":[],"mappings":";AAWA,qBAiCa,SAAS;
|
|
1
|
+
{"version":3,"file":"sd-tab-item.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab-item.ts"],"names":[],"mappings":";AAWA,qBAiCa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E,KAAK,yCAAuB;IAE5B,UAAU,0CAAgE;IAE1E,OAAO;yCAPI,SAAS;2CAAT,SAAS;CAUrB"}
|
|
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
const _c0 = ["*"];
|
|
5
5
|
export class SdTabItem {
|
|
6
6
|
_parentControl = inject(forwardRef(() => SdTab));
|
|
7
|
-
value = input(
|
|
8
|
-
|
|
7
|
+
value = input.required(/* @ts-ignore */
|
|
8
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
9
|
+
isSelected = computed(() => this._parentControl.value() === this.value(), /* @ts-ignore */
|
|
10
|
+
...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
|
|
9
11
|
onClick() {
|
|
10
12
|
this._parentControl.value.set(this.value());
|
|
11
13
|
}
|
|
@@ -17,7 +19,7 @@ export class SdTabItem {
|
|
|
17
19
|
} }, inputs: { value: [1, "value"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdTabItem_Template(rf, ctx) { if (rf & 1) {
|
|
18
20
|
i0.ɵɵprojectionDef();
|
|
19
21
|
i0.ɵɵprojection(0);
|
|
20
|
-
} }, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"], encapsulation: 2
|
|
22
|
+
} }, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"], encapsulation: 2 });
|
|
21
23
|
}
|
|
22
24
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTabItem, [{
|
|
23
25
|
type: Component,
|
|
@@ -27,5 +29,5 @@ export class SdTabItem {
|
|
|
27
29
|
}, template: `
|
|
28
30
|
<ng-content></ng-content>
|
|
29
31
|
`, styles: ["sd-tab-item {\n display: inline-block;\n padding: var(--gap-sm) var(--gap-default);\n cursor: pointer;\n margin-bottom: -2px;\n border-bottom: 2px solid transparent !important;\n font-weight: bold;\n color: var(--theme-gray-default);\n}\nsd-tab-item[data-sd-selected=true] {\n border-bottom: 3px solid var(--theme-primary-default) !important;\n color: var(--theme-primary-default);\n}"] }]
|
|
30
|
-
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required:
|
|
32
|
+
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] }); })();
|
|
31
33
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdTabItem, { className: "SdTabItem", filePath: "packages/angular/src/controls/tab/sd-tab-item.ts", lineNumber: 45 }); })();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class SdTab {
|
|
3
|
-
value: import("@angular/core").ModelSignal<
|
|
4
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdTab
|
|
5
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SdTab
|
|
2
|
+
export declare class SdTab<T> {
|
|
3
|
+
value: import("@angular/core").ModelSignal<T | undefined>;
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdTab<any>, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdTab<any>, "sd-tab", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, ["*"], true, never>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=sd-tab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-tab.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab.ts"],"names":[],"mappings":";AAEA,qBAoBa,KAAK;
|
|
1
|
+
{"version":3,"file":"sd-tab.d.ts","sourceRoot":"","sources":["../../../src/controls/tab/sd-tab.ts"],"names":[],"mappings":";AAEA,qBAoBa,KAAK,CAAC,CAAC;IAClB,KAAK,qDAAc;yCADR,KAAK;2CAAL,KAAK;CAEjB"}
|
|
@@ -2,12 +2,13 @@ import { ChangeDetectionStrategy, Component, model, ViewEncapsulation } from "@a
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
const _c0 = ["*"];
|
|
4
4
|
export class SdTab {
|
|
5
|
-
value = model(
|
|
5
|
+
value = model(/* @ts-ignore */
|
|
6
|
+
...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
|
|
6
7
|
static ɵfac = function SdTab_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdTab)(); };
|
|
7
8
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdTab, selectors: [["sd-tab"]], inputs: { value: [1, "value"] }, outputs: { value: "valueChange" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function SdTab_Template(rf, ctx) { if (rf & 1) {
|
|
8
9
|
i0.ɵɵprojectionDef();
|
|
9
10
|
i0.ɵɵprojection(0);
|
|
10
|
-
} }, styles: ["sd-tab {\n display: block;\n border-bottom: 2px solid var(--theme-gray-lighter);\n padding: 0 calc(var(--gap-default) + 1px) 0 calc(var(--gap-default) - 1px);\n}"], encapsulation: 2
|
|
11
|
+
} }, styles: ["sd-tab {\n display: block;\n border-bottom: 2px solid var(--theme-gray-lighter);\n padding: 0 calc(var(--gap-default) + 1px) 0 calc(var(--gap-default) - 1px);\n}"], encapsulation: 2 });
|
|
11
12
|
}
|
|
12
13
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdTab, [{
|
|
13
14
|
type: Component,
|
|
@@ -8,14 +8,19 @@ export function injectPermsSignal(viewCodes, keys) {
|
|
|
8
8
|
// 권한은 모듈만 체크하고
|
|
9
9
|
// 메뉴는 모듈/권한 모두 체크함
|
|
10
10
|
export class SdAppStructureProvider {
|
|
11
|
-
usableModules = signal(undefined,
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
usableModules = signal(undefined, /* @ts-ignore */
|
|
12
|
+
...(ngDevMode ? [{ debugName: "usableModules" }] : /* istanbul ignore next */ []));
|
|
13
|
+
permRecord = signal(undefined, /* @ts-ignore */
|
|
14
|
+
...(ngDevMode ? [{ debugName: "permRecord" }] : /* istanbul ignore next */ []));
|
|
15
|
+
items = signal([], /* @ts-ignore */
|
|
16
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
14
17
|
initialize(items) {
|
|
15
18
|
this.items.set(items);
|
|
16
19
|
}
|
|
17
|
-
usableMenus = computed(() => SdAppStructureUtils.getMenus(this.items(), [], this.usableModules(), this.permRecord()),
|
|
18
|
-
|
|
20
|
+
usableMenus = computed(() => SdAppStructureUtils.getMenus(this.items(), [], this.usableModules(), this.permRecord()), /* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [{ debugName: "usableMenus" }] : /* istanbul ignore next */ []));
|
|
22
|
+
usableFlatMenus = computed(() => SdAppStructureUtils.getFlatMenus(this.items(), this.usableModules(), this.permRecord()), /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "usableFlatMenus" }] : /* istanbul ignore next */ []));
|
|
19
24
|
getPermissionsByStructure(items, codeChain = []) {
|
|
20
25
|
return SdAppStructureUtils.getPermissions(items, codeChain, this.usableModules());
|
|
21
26
|
}
|
|
@@ -32,10 +32,14 @@ function SdBusyContainer_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
32
32
|
export class SdBusyContainer {
|
|
33
33
|
_sdBusy = inject(SdBusyProvider);
|
|
34
34
|
busy = input(false, { ...(ngDevMode ? { debugName: "busy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
35
|
-
message = input(undefined,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
message = input(undefined, /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
|
|
37
|
+
type = input(undefined, /* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
39
|
+
progressPercent = input(undefined, /* @ts-ignore */
|
|
40
|
+
...(ngDevMode ? [{ debugName: "progressPercent" }] : /* istanbul ignore next */ []));
|
|
41
|
+
currType = computed(() => this.type() ?? this._sdBusy.type(), /* @ts-ignore */
|
|
42
|
+
...(ngDevMode ? [{ debugName: "currType" }] : /* istanbul ignore next */ []));
|
|
39
43
|
onKeydownCapture(event) {
|
|
40
44
|
if (this.busy()) {
|
|
41
45
|
event.preventDefault();
|
|
@@ -65,7 +69,7 @@ export class SdBusyContainer {
|
|
|
65
69
|
i0.ɵɵconditional(ctx.message() != undefined ? 6 : -1);
|
|
66
70
|
i0.ɵɵadvance();
|
|
67
71
|
i0.ɵɵconditional(ctx.progressPercent() != null ? 7 : -1);
|
|
68
|
-
} }, styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-busy-container {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 70px;\n min-height: 70px;\n overflow: auto;\n}\nsd-busy-container > ._screen {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9998;\n visibility: hidden;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--animation-duration);\n transition-timing-function: linear;\n}\nsd-busy-container > ._screen > ._progress {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container > ._screen > ._progress > ._progress-bar {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n transform-origin: left;\n transform: scaleX(0);\n background-color: var(--theme-primary-default);\n}\nsd-busy-container[data-sd-busy=true] > ._screen {\n visibility: visible;\n pointer-events: auto;\n opacity: 1;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect {\n transform: translateY(-100%);\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator {\n top: 0;\n width: 30px;\n height: 30px;\n margin: 20px auto 0 auto;\n border: 6px solid var(--background-color);\n border-radius: 100%;\n border-bottom-color: var(--theme-primary-default);\n animation: sd-busy-spin 1s linear infinite;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._message {\n position: absolute;\n top: 55px;\n width: 100%;\n color: var(--background-color);\n font-weight: bold;\n text-align: center;\n text-shadow: 0 0 2px var(--background-rev-color);\n}\nsd-busy-container[data-sd-type=spinner][data-sd-busy=true] > ._screen > ._rect {\n transform: none;\n transition: var(--animation-duration) ease-out;\n}\nsd-busy-container[data-sd-type=bar] {\n min-height: 4px;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before, sd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transform-origin: left;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before {\n background-color: var(--theme-primary-default);\n animation: sd-busy-bar-indicator-before 2s infinite ease-in;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n background-color: var(--background-color);\n animation: sd-busy-bar-indicator-after 2s infinite ease-out;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: calc(50% - 20px);\n left: calc(50% - 20px);\n width: 40px;\n height: 40px;\n transform: rotateZ(45deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n float: left;\n width: 50%;\n height: 50%;\n position: relative;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--trans-light);\n animation: sd-busy-cube 2.4s infinite linear both;\n transform-origin: 100% 100%;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2 {\n transform: rotateZ(90deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before {\n animation-delay: 0.3s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3 {\n transform: rotateZ(180deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before {\n animation-delay: 0.6s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n transform: rotateZ(270deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n animation-delay: 0.9s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\n\n@keyframes sd-busy-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes sd-busy-bar-indicator-before {\n 0% {\n transform: scaleX(0);\n }\n 60%, 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-bar-indicator-after {\n 0%, 50% {\n transform: scaleX(0);\n }\n 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-cube {\n 0%, 10% {\n transform: perspective(140px) rotateX(-180deg);\n opacity: 0;\n }\n 25%, 75% {\n transform: perspective(140px) rotateX(0deg);\n opacity: 1;\n }\n 90%, 100% {\n transform: perspective(140px) rotateY(180deg);\n opacity: 0;\n }\n}"], encapsulation: 2
|
|
72
|
+
} }, styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-busy-container {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 70px;\n min-height: 70px;\n overflow: auto;\n}\nsd-busy-container > ._screen {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9998;\n visibility: hidden;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--animation-duration);\n transition-timing-function: linear;\n}\nsd-busy-container > ._screen > ._progress {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container > ._screen > ._progress > ._progress-bar {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n transform-origin: left;\n transform: scaleX(0);\n background-color: var(--theme-primary-default);\n}\nsd-busy-container[data-sd-busy=true] > ._screen {\n visibility: visible;\n pointer-events: auto;\n opacity: 1;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect {\n transform: translateY(-100%);\n transition: var(--animation-duration) ease-in;\n transition-property: transform;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator {\n top: 0;\n width: 30px;\n height: 30px;\n margin: 20px auto 0 auto;\n border: 6px solid var(--background-color);\n border-radius: 100%;\n border-bottom-color: var(--theme-primary-default);\n animation: sd-busy-spin 1s linear infinite;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=spinner] > ._screen > ._rect > ._message {\n position: absolute;\n top: 55px;\n width: 100%;\n color: var(--background-color);\n font-weight: bold;\n text-align: center;\n text-shadow: 0 0 2px var(--background-rev-color);\n}\nsd-busy-container[data-sd-type=spinner][data-sd-busy=true] > ._screen > ._rect {\n transform: none;\n transition: var(--animation-duration) ease-out;\n}\nsd-busy-container[data-sd-type=bar] {\n min-height: 4px;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n width: 100%;\n background-color: var(--background-color);\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before, sd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n position: absolute;\n top: 0;\n left: 0;\n display: inline-block;\n content: \"\";\n height: 4px;\n width: 100%;\n transform-origin: left;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:before {\n background-color: var(--theme-primary-default);\n animation: sd-busy-bar-indicator-before 2s infinite ease-in;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator:after {\n background-color: var(--background-color);\n animation: sd-busy-bar-indicator-after 2s infinite ease-out;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._indicator > div {\n display: none;\n}\nsd-busy-container[data-sd-type=bar][data-sd-busy=true] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator {\n position: absolute;\n top: calc(50% - 20px);\n left: calc(50% - 20px);\n width: 40px;\n height: 40px;\n transform: rotateZ(45deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n float: left;\n width: 50%;\n height: 50%;\n position: relative;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube1:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before,\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--trans-light);\n animation: sd-busy-cube 2.4s infinite linear both;\n transform-origin: 100% 100%;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2 {\n transform: rotateZ(90deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube2:before {\n animation-delay: 0.3s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3 {\n transform: rotateZ(180deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube3:before {\n animation-delay: 0.6s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4 {\n transform: rotateZ(270deg);\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._indicator ._cube4:before {\n animation-delay: 0.9s;\n}\nsd-busy-container[data-sd-type=cube] > ._screen > ._rect > ._message {\n position: absolute;\n top: 4px;\n right: 0;\n display: inline-block;\n}\n\n@keyframes sd-busy-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes sd-busy-bar-indicator-before {\n 0% {\n transform: scaleX(0);\n }\n 60%, 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-bar-indicator-after {\n 0%, 50% {\n transform: scaleX(0);\n }\n 100% {\n transform: scaleX(1);\n }\n}\n@keyframes sd-busy-cube {\n 0%, 10% {\n transform: perspective(140px) rotateX(-180deg);\n opacity: 0;\n }\n 25%, 75% {\n transform: perspective(140px) rotateX(0deg);\n opacity: 1;\n }\n 90%, 100% {\n transform: perspective(140px) rotateY(180deg);\n opacity: 0;\n }\n}"], encapsulation: 2 });
|
|
69
73
|
}
|
|
70
74
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdBusyContainer, [{
|
|
71
75
|
type: Component,
|
|
@@ -5,8 +5,10 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export class SdBusyProvider {
|
|
6
6
|
_appRef = inject(ApplicationRef);
|
|
7
7
|
_envInjector = inject(EnvironmentInjector);
|
|
8
|
-
type = signal("bar",
|
|
9
|
-
|
|
8
|
+
type = signal("bar", /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
10
|
+
globalBusyCount = signal(0, /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "globalBusyCount" }] : /* istanbul ignore next */ []));
|
|
10
12
|
_containerRef;
|
|
11
13
|
get containerRef() {
|
|
12
14
|
if (this._containerRef == null) {
|
|
@@ -7,7 +7,7 @@ export function injectSdSystemConfigResource(options) {
|
|
|
7
7
|
const elTag = elRef.nativeElement.tagName.toLowerCase();
|
|
8
8
|
const res = resource({ ...(ngDevMode ? { debugName: "res" } : /* istanbul ignore next */ {}), params: () => options.key(),
|
|
9
9
|
loader: async ({ params: key }) => {
|
|
10
|
-
return
|
|
10
|
+
return sdSystemConfig.getAsync(`${elTag}.${key}`);
|
|
11
11
|
} });
|
|
12
12
|
function set(value) {
|
|
13
13
|
res.set(value);
|
|
@@ -6,7 +6,7 @@ export declare class SdSystemConfigProvider<T> {
|
|
|
6
6
|
get(key: keyof T & string): PromiseLike<unknown>;
|
|
7
7
|
};
|
|
8
8
|
setAsync<K extends keyof T & string>(key: K, data: T[K] | undefined): Promise<void>;
|
|
9
|
-
getAsync
|
|
9
|
+
getAsync<K extends keyof T & string>(key: K): Promise<T[K] | undefined>;
|
|
10
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdSystemConfigProvider<any>, never>;
|
|
11
11
|
static ɵprov: i0.ɵɵInjectableDeclaration<SdSystemConfigProvider<any>>;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-system-config.provider.d.ts","sourceRoot":"","sources":["../../../src/core/config/sd-system-config.provider.ts"],"names":[],"mappings":";AAGA,qBACa,sBAAsB,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;IAE7F,EAAE,CAAC,EAAE;QACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtF,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;KAClD,CAAC;IAEI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;IAUnE,QAAQ,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"sd-system-config.provider.d.ts","sourceRoot":"","sources":["../../../src/core/config/sd-system-config.provider.ts"],"names":[],"mappings":";AAGA,qBACa,sBAAsB,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;IAE7F,EAAE,CAAC,EAAE;QACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtF,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;KAClD,CAAC;IAEI,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;IAUnE,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;yCAlBlE,sBAAsB;6CAAtB,sBAAsB;CAyBlC"}
|
package/dist/core/mark.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import type { WritableSignal } from "@angular/core";
|
|
|
3
3
|
* WritableSignal의 값이 in-place mutation된 후 소비자에게 변경을 알린다.
|
|
4
4
|
* shallow copy로 새 참조를 생성하여 signal을 업데이트한다.
|
|
5
5
|
*/
|
|
6
|
-
export declare function mark(sig: WritableSignal<
|
|
6
|
+
export declare function mark<T extends object>(sig: WritableSignal<T>): void;
|
|
7
7
|
//# sourceMappingURL=mark.d.ts.map
|
package/dist/core/mark.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../src/core/mark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../src/core/mark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAEnE"}
|
|
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* 모달 내부에서 inject하여 사용하는 프로바이더
|
|
5
5
|
*/
|
|
6
6
|
export class SdActivatedModalProvider {
|
|
7
|
-
modalComponent = signal(undefined,
|
|
8
|
-
|
|
7
|
+
modalComponent = signal(undefined, /* @ts-ignore */
|
|
8
|
+
...(ngDevMode ? [{ debugName: "modalComponent" }] : /* istanbul ignore next */ []));
|
|
9
|
+
contentComponent = signal(undefined, /* @ts-ignore */
|
|
10
|
+
...(ngDevMode ? [{ debugName: "contentComponent" }] : /* istanbul ignore next */ []));
|
|
9
11
|
canDeactivateFn = () => true;
|
|
10
12
|
static ɵfac = function SdActivatedModalProvider_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdActivatedModalProvider)(); };
|
|
11
13
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SdActivatedModalProvider, factory: SdActivatedModalProvider.ɵfac });
|
|
@@ -7,9 +7,11 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
* 확인 시 true emit, 취소 시 undefined emit.
|
|
8
8
|
*/
|
|
9
9
|
export class SdConfirmModal {
|
|
10
|
-
initialized = signal(true,
|
|
10
|
+
initialized = signal(true, /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
|
|
11
12
|
close = output();
|
|
12
|
-
message = input.required(
|
|
13
|
+
message = input.required(/* @ts-ignore */
|
|
14
|
+
...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
|
|
13
15
|
onConfirm() {
|
|
14
16
|
this.close.emit(true);
|
|
15
17
|
}
|
|
@@ -31,7 +33,7 @@ export class SdConfirmModal {
|
|
|
31
33
|
i0.ɵɵproperty("innerHTML", ctx.message(), i0.ɵɵsanitizeHtml);
|
|
32
34
|
i0.ɵɵadvance(2);
|
|
33
35
|
i0.ɵɵproperty("theme", "primary");
|
|
34
|
-
} }, dependencies: [SdButton], encapsulation: 2
|
|
36
|
+
} }, dependencies: [SdButton], encapsulation: 2 });
|
|
35
37
|
}
|
|
36
38
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdConfirmModal, [{
|
|
37
39
|
type: Component,
|
|
@@ -87,24 +87,42 @@ export class SdModal {
|
|
|
87
87
|
_errorHandler = inject(ErrorHandler);
|
|
88
88
|
_focusTrap = injectFocusTrap();
|
|
89
89
|
tablerX = tablerX;
|
|
90
|
-
open = model(false,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
90
|
+
open = model(false, /* @ts-ignore */
|
|
91
|
+
...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
|
|
92
|
+
key = input(undefined, /* @ts-ignore */
|
|
93
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
94
|
+
title = input("", /* @ts-ignore */
|
|
95
|
+
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
96
|
+
hideHeader = input(false, /* @ts-ignore */
|
|
97
|
+
...(ngDevMode ? [{ debugName: "hideHeader" }] : /* istanbul ignore next */ []));
|
|
98
|
+
hideCloseButton = input(false, /* @ts-ignore */
|
|
99
|
+
...(ngDevMode ? [{ debugName: "hideCloseButton" }] : /* istanbul ignore next */ []));
|
|
100
|
+
headerStyle = input(undefined, /* @ts-ignore */
|
|
101
|
+
...(ngDevMode ? [{ debugName: "headerStyle" }] : /* istanbul ignore next */ []));
|
|
102
|
+
useCloseByBackdrop = input(true, /* @ts-ignore */
|
|
103
|
+
...(ngDevMode ? [{ debugName: "useCloseByBackdrop" }] : /* istanbul ignore next */ []));
|
|
104
|
+
useCloseByEscapeKey = input(true, /* @ts-ignore */
|
|
105
|
+
...(ngDevMode ? [{ debugName: "useCloseByEscapeKey" }] : /* istanbul ignore next */ []));
|
|
106
|
+
float = input(false, /* @ts-ignore */
|
|
107
|
+
...(ngDevMode ? [{ debugName: "float" }] : /* istanbul ignore next */ []));
|
|
108
|
+
fill = input(false, /* @ts-ignore */
|
|
109
|
+
...(ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []));
|
|
110
|
+
resizable = input(false, /* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [{ debugName: "resizable" }] : /* istanbul ignore next */ []));
|
|
112
|
+
movable = input(false, /* @ts-ignore */
|
|
113
|
+
...(ngDevMode ? [{ debugName: "movable" }] : /* istanbul ignore next */ []));
|
|
114
|
+
position = input(undefined, /* @ts-ignore */
|
|
115
|
+
...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
116
|
+
minHeightPx = input(undefined, /* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [{ debugName: "minHeightPx" }] : /* istanbul ignore next */ []));
|
|
118
|
+
minWidthPx = input(undefined, /* @ts-ignore */
|
|
119
|
+
...(ngDevMode ? [{ debugName: "minWidthPx" }] : /* istanbul ignore next */ []));
|
|
120
|
+
heightPx = input(undefined, /* @ts-ignore */
|
|
121
|
+
...(ngDevMode ? [{ debugName: "heightPx" }] : /* istanbul ignore next */ []));
|
|
122
|
+
widthPx = input(undefined, /* @ts-ignore */
|
|
123
|
+
...(ngDevMode ? [{ debugName: "widthPx" }] : /* istanbul ignore next */ []));
|
|
124
|
+
actionTplRef = input(undefined, /* @ts-ignore */
|
|
125
|
+
...(ngDevMode ? [{ debugName: "actionTplRef" }] : /* istanbul ignore next */ []));
|
|
108
126
|
closeRequest = output();
|
|
109
127
|
_dragResize = injectDragResize({
|
|
110
128
|
getDialogEl: () => this._getDialogEl(),
|
|
@@ -308,7 +326,7 @@ export class SdModal {
|
|
|
308
326
|
i0.ɵɵconditional(!ctx.hideHeader() ? 2 : -1);
|
|
309
327
|
i0.ɵɵadvance(3);
|
|
310
328
|
i0.ɵɵconditional(ctx.resizable() ? 5 : -1);
|
|
311
|
-
} }, dependencies: [NgTemplateOutlet, NgIcon, SdAnchor, SdResizeDirective], styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-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(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) 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-lighter);\n background: 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(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) 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(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) 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
|
|
329
|
+
} }, dependencies: [NgTemplateOutlet, NgIcon, SdAnchor, SdResizeDirective], styles: ["/*@function to-rgb($oklch-color) {\n @return color.to-space($oklch-color, rgb);\n}*/\n/*$colors: (\n red: to-rgb(oklch(0.704 0.191 22.216)),\n orange: to-rgb(oklch(0.75 0.183 55.934)),\n amber: to-rgb(oklch(0.828 0.189 84.429)),\n yellow: to-rgb(oklch(0.852 0.199 91.936)),\n lime: to-rgb(oklch(0.841 0.238 128.85)),\n green: to-rgb(oklch(0.792 0.209 151.711)),\n emerald: to-rgb(oklch(0.765 0.177 163.223)),\n teal: to-rgb(oklch(0.777 0.152 181.912)),\n cyan: to-rgb(oklch(0.789 0.154 211.53)),\n sky: to-rgb(oklch(0.746 0.16 232.661)),\n blue: to-rgb(oklch(0.707 0.165 254.624)),\n indigo: to-rgb(oklch(0.673 0.182 276.935)),\n violet: to-rgb(oklch(0.702 0.183 293.541)),\n purple: to-rgb(oklch(0.714 0.203 305.504)),\n fuchsia: to-rgb(oklch(0.74 0.238 322.16)),\n pink: to-rgb(oklch(0.718 0.202 349.761)),\n rose: to-rgb(oklch(0.712 0.194 13.428)),\n slate: to-rgb(oklch(0.704 0.04 256.788)),\n gray: to-rgb(oklch(0.707 0.022 261.325)),\n zinc: to-rgb(oklch(0.705 0.015 286.067)),\n neutral: to-rgb(oklch(0.708 0 0)),\n stone: to-rgb(oklch(0.709 0.01 56.259)),\n);*/\nsd-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(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) 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-lighter);\n background: 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(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) 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(--elevation-blur-mult)) var(--trans-lighter), 0 var(--elevation-size) calc(var(--elevation-size) * var(--elevation-blur-mult)) 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 });
|
|
312
330
|
}
|
|
313
331
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdModal, [{
|
|
314
332
|
type: Component,
|
|
@@ -12,7 +12,8 @@ export class SdModalProvider {
|
|
|
12
12
|
_appRef = inject(ApplicationRef);
|
|
13
13
|
_envInjector = inject(EnvironmentInjector);
|
|
14
14
|
_injector = inject(Injector);
|
|
15
|
-
modalCount = signal(0,
|
|
15
|
+
modalCount = signal(0, /* @ts-ignore */
|
|
16
|
+
...(ngDevMode ? [{ debugName: "modalCount" }] : /* istanbul ignore next */ []));
|
|
16
17
|
async showAsync(modal, options) {
|
|
17
18
|
return new Promise((resolve, reject) => {
|
|
18
19
|
// 1. modalCount 증가
|
|
@@ -10,10 +10,13 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
* 입력값은 필수(required)이며, 빈 값으로 확인 시 sd-form 네이티브 검증으로 차단된다.
|
|
11
11
|
*/
|
|
12
12
|
export class SdPromptModal {
|
|
13
|
-
initialized = signal(true,
|
|
13
|
+
initialized = signal(true, /* @ts-ignore */
|
|
14
|
+
...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
|
|
14
15
|
close = output();
|
|
15
|
-
message = input.required(
|
|
16
|
-
|
|
16
|
+
message = input.required(/* @ts-ignore */
|
|
17
|
+
...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
|
|
18
|
+
_inputValue = signal(undefined, /* @ts-ignore */
|
|
19
|
+
...(ngDevMode ? [{ debugName: "_inputValue" }] : /* istanbul ignore next */ []));
|
|
17
20
|
onConfirm() {
|
|
18
21
|
this.close.emit(this._inputValue());
|
|
19
22
|
}
|
|
@@ -44,7 +47,7 @@ export class SdPromptModal {
|
|
|
44
47
|
i0.ɵɵproperty("required", true);
|
|
45
48
|
i0.ɵɵadvance(2);
|
|
46
49
|
i0.ɵɵproperty("type", "submit")("theme", "primary");
|
|
47
|
-
} }, dependencies: [SdForm, SdButton, SdTextfield], encapsulation: 2
|
|
50
|
+
} }, dependencies: [SdForm, SdButton, SdTextfield], encapsulation: 2 });
|
|
48
51
|
}
|
|
49
52
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SdPromptModal, [{
|
|
50
53
|
type: Component,
|
|
@@ -19,25 +19,32 @@ export function useExpandingManager(binding) {
|
|
|
19
19
|
}
|
|
20
20
|
walk(binding.items(), undefined, 0);
|
|
21
21
|
return defs;
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
const
|
|
22
|
+
}, /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "allDefs" }] : /* istanbul ignore next */ []));
|
|
24
|
+
const displayItems = computed(() => allDefs().map((d) => d.item), /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "displayItems" }] : /* istanbul ignore next */ []));
|
|
26
|
+
const expandableDefs = computed(() => allDefs().filter((d) => d.hasChildren), /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "expandableDefs" }] : /* istanbul ignore next */ []));
|
|
28
|
+
const hasExpandable = computed(() => expandableDefs().length > 0, /* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [{ debugName: "hasExpandable" }] : /* istanbul ignore next */ []));
|
|
30
|
+
const _expandedSet = computed(() => new Set(binding.expandedItems()), /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "_expandedSet" }] : /* istanbul ignore next */ []));
|
|
27
32
|
const isAllExpanded = computed(() => {
|
|
28
33
|
const expandable = expandableDefs();
|
|
29
34
|
if (expandable.length === 0)
|
|
30
35
|
return false;
|
|
31
36
|
const expandedSet = _expandedSet();
|
|
32
37
|
return expandable.every((d) => expandedSet.has(d.item));
|
|
33
|
-
},
|
|
38
|
+
}, /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "isAllExpanded" }] : /* istanbul ignore next */ []));
|
|
34
40
|
const defMap = computed(() => {
|
|
35
41
|
const map = new Map();
|
|
36
42
|
for (const d of allDefs()) {
|
|
37
43
|
map.set(d.item, d);
|
|
38
44
|
}
|
|
39
45
|
return map;
|
|
40
|
-
},
|
|
46
|
+
}, /* @ts-ignore */
|
|
47
|
+
...(ngDevMode ? [{ debugName: "defMap" }] : /* istanbul ignore next */ []));
|
|
41
48
|
function toggle(item) {
|
|
42
49
|
binding.expandedItems.update((arr) => {
|
|
43
50
|
const next = [...arr];
|