@simplysm/angular 14.0.11 → 14.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -5
- package/dist/core/directives/sd-router-link.directive.js +2 -2
- package/dist/core/pipes/format.pipe.d.ts.map +1 -1
- package/dist/core/pipes/format.pipe.js +2 -0
- package/dist/core/plugins/commands/findTopOpenModalEl.d.ts +1 -1
- package/dist/core/plugins/commands/findTopOpenModalEl.d.ts.map +1 -1
- package/dist/core/plugins/commands/findTopOpenModalEl.js +2 -2
- package/dist/core/plugins/commands/sd-insert-command-event.plugin.d.ts +1 -0
- package/dist/core/plugins/commands/sd-insert-command-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/commands/sd-insert-command-event.plugin.js +4 -3
- package/dist/core/plugins/commands/sd-refresh-command-event.plugin.d.ts +1 -0
- package/dist/core/plugins/commands/sd-refresh-command-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/commands/sd-refresh-command-event.plugin.js +4 -3
- package/dist/core/plugins/commands/sd-save-command-event.plugin.d.ts +1 -0
- package/dist/core/plugins/commands/sd-save-command-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/commands/sd-save-command-event.plugin.js +4 -3
- package/dist/core/plugins/events/sd-intersection-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/events/sd-intersection-event.plugin.js +2 -3
- package/dist/core/plugins/events/sd-option-event.plugin.d.ts +1 -0
- package/dist/core/plugins/events/sd-option-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/events/sd-option-event.plugin.js +2 -1
- package/dist/core/plugins/sd-global-error-handler.plugin.d.ts.map +1 -1
- package/dist/core/plugins/sd-global-error-handler.plugin.js +3 -1
- package/dist/core/provideSdAngular.d.ts.map +1 -1
- package/dist/core/provideSdAngular.js +14 -4
- package/dist/core/providers/sd-app-structure.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.provider.js +8 -7
- package/dist/core/providers/sd-file-dialog.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-file-dialog.provider.js +15 -7
- package/dist/core/providers/sd-local-storage.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-local-storage.provider.js +6 -1
- package/dist/core/providers/sd-navigate-window.provider.js +4 -1
- package/dist/core/providers/sd-print.provider.js +2 -2
- package/dist/core/providers/sd-shared-data.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-shared-data.provider.js +14 -3
- package/dist/core/utils/injectParent.js +9 -5
- package/dist/core/utils/setups/setupModelHook.d.ts.map +1 -1
- package/dist/core/utils/setups/setupModelHook.js +4 -1
- package/dist/core/utils/setups/setupRevealOnShow.d.ts.map +1 -1
- package/dist/core/utils/setups/setupRevealOnShow.js +3 -2
- package/dist/core/utils/useExpandingManager.d.ts.map +1 -1
- package/dist/core/utils/useExpandingManager.js +3 -2
- package/dist/core/utils/useSdSystemConfigResource.d.ts +1 -1
- package/dist/core/utils/useSdSystemConfigResource.d.ts.map +1 -1
- package/dist/core/utils/useSdSystemConfigResource.js +13 -12
- package/dist/core/utils/withBusy.d.ts +3 -0
- package/dist/core/utils/withBusy.d.ts.map +1 -0
- package/dist/core/utils/withBusy.js +9 -0
- package/dist/features/address/sd-address-search.modal.d.ts.map +1 -1
- package/dist/features/address/sd-address-search.modal.js +5 -2
- package/dist/features/data-view/sd-data-detail.control.d.ts.map +1 -1
- package/dist/features/data-view/sd-data-detail.control.js +14 -18
- package/dist/features/data-view/sd-data-sheet.control.d.ts.map +1 -1
- package/dist/features/data-view/sd-data-sheet.control.js +23 -30
- package/dist/features/permission-table/sd-permission-table.control.d.ts +4 -0
- package/dist/features/permission-table/sd-permission-table.control.d.ts.map +1 -1
- package/dist/features/permission-table/sd-permission-table.control.js +113 -43
- package/dist/features/shared-data/matchesSearchText.d.ts +2 -0
- package/dist/features/shared-data/matchesSearchText.d.ts.map +1 -0
- package/dist/features/shared-data/matchesSearchText.js +11 -0
- package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts +2 -2
- package/dist/features/shared-data/sd-shared-data-select-button.control.d.ts.map +1 -1
- package/dist/features/shared-data/sd-shared-data-select-list.control.d.ts +1 -0
- package/dist/features/shared-data/sd-shared-data-select-list.control.d.ts.map +1 -1
- package/dist/features/shared-data/sd-shared-data-select-list.control.js +16 -11
- package/dist/features/shared-data/sd-shared-data-select.control.d.ts +2 -1
- package/dist/features/shared-data/sd-shared-data-select.control.d.ts.map +1 -1
- package/dist/features/shared-data/sd-shared-data-select.control.js +44 -29
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/ui/data/sheet/sd-sheet.control.d.ts +5 -2
- package/dist/ui/data/sheet/sd-sheet.control.d.ts.map +1 -1
- package/dist/ui/data/sheet/sd-sheet.control.js +48 -47
- package/dist/ui/data/sheet/types.d.ts +5 -1
- package/dist/ui/data/sheet/types.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetCellAgent.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetCellAgent.js +8 -4
- package/dist/ui/data/sheet/useSheetColumnFixing.d.ts +6 -0
- package/dist/ui/data/sheet/useSheetColumnFixing.d.ts.map +1 -1
- package/dist/ui/data/sheet/useSheetColumnFixing.js +6 -0
- package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts +2 -2
- package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts.map +1 -1
- package/dist/ui/form/editor/sd-tiptap-editor.control.js +15 -13
- package/dist/ui/form/input/sd-date-range.picker.d.ts.map +1 -1
- package/dist/ui/form/input/sd-date-range.picker.js +8 -1
- package/dist/ui/form/select/sd-select.control.d.ts.map +1 -1
- package/dist/ui/form/select/sd-select.control.js +20 -16
- package/dist/ui/layout/dock/sd-dock.control.js +4 -4
- package/dist/ui/navigation/pagination/sd-pagination.control.js +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts +7 -13
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.d.ts.map +1 -1
- package/dist/ui/navigation/sidebar/sd-sidebar-menu.control.js +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts +7 -13
- package/dist/ui/navigation/topbar/sd-topbar-menu.control.d.ts.map +1 -1
- package/dist/ui/navigation/topbar/sd-topbar-menu.control.js +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts +0 -3
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.d.ts.map +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.js +8 -21
- package/dist/ui/overlay/dropdown/sd-dropdown.control.d.ts +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown.control.d.ts.map +1 -1
- package/dist/ui/overlay/dropdown/sd-dropdown.control.js +19 -20
- package/dist/ui/overlay/modal/sd-modal.control.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-modal.control.js +21 -5
- package/dist/ui/overlay/toast/sd-toast.provider.d.ts +1 -0
- package/dist/ui/overlay/toast/sd-toast.provider.d.ts.map +1 -1
- package/dist/ui/overlay/toast/sd-toast.provider.js +16 -2
- package/dist/ui/visual/sd-barcode.control.d.ts +2 -2
- package/dist/ui/visual/sd-barcode.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-barcode.control.js +25 -18
- package/dist/ui/visual/sd-progress.control.d.ts.map +1 -1
- package/dist/ui/visual/sd-progress.control.js +1 -1
- package/docs/core.md +19 -0
- package/docs/features.md +25 -0
- package/docs/ui-data.md +20 -4
- package/docs/ui-navigation.md +8 -44
- package/package.json +25 -25
- package/src/core/directives/sd-router-link.directive.ts +1 -1
- package/src/core/pipes/format.pipe.ts +1 -0
- package/src/core/plugins/commands/findTopOpenModalEl.ts +2 -2
- package/src/core/plugins/commands/sd-insert-command-event.plugin.ts +5 -3
- package/src/core/plugins/commands/sd-refresh-command-event.plugin.ts +5 -3
- package/src/core/plugins/commands/sd-save-command-event.plugin.ts +5 -3
- package/src/core/plugins/events/sd-intersection-event.plugin.ts +2 -3
- package/src/core/plugins/events/sd-option-event.plugin.ts +3 -1
- package/src/core/plugins/sd-global-error-handler.plugin.ts +4 -1
- package/src/core/provideSdAngular.ts +17 -4
- package/src/core/providers/sd-app-structure.provider.ts +7 -7
- package/src/core/providers/sd-file-dialog.provider.ts +18 -9
- package/src/core/providers/sd-local-storage.provider.ts +5 -1
- package/src/core/providers/sd-navigate-window.provider.ts +3 -3
- package/src/core/providers/sd-print.provider.ts +2 -2
- package/src/core/providers/sd-shared-data.provider.ts +14 -3
- package/src/core/utils/injectParent.ts +10 -6
- package/src/core/utils/setups/setupModelHook.ts +6 -1
- package/src/core/utils/setups/setupRevealOnShow.ts +3 -2
- package/src/core/utils/useExpandingManager.ts +4 -2
- package/src/core/utils/useSdSystemConfigResource.ts +13 -11
- package/src/core/utils/withBusy.ts +13 -0
- package/src/features/address/sd-address-search.modal.ts +5 -2
- package/src/features/data-view/sd-data-detail.control.ts +37 -33
- package/src/features/data-view/sd-data-sheet.control.ts +61 -54
- package/src/features/permission-table/sd-permission-table.control.ts +127 -51
- package/src/features/shared-data/matchesSearchText.ts +16 -0
- package/src/features/shared-data/sd-shared-data-select-button.control.ts +4 -4
- package/src/features/shared-data/sd-shared-data-select-list.control.ts +19 -11
- package/src/features/shared-data/sd-shared-data-select.control.ts +50 -30
- package/src/index.ts +4 -8
- package/src/ui/data/sheet/sd-sheet.control.ts +51 -48
- package/src/ui/data/sheet/types.ts +6 -1
- package/src/ui/data/sheet/useSheetCellAgent.ts +5 -3
- package/src/ui/data/sheet/useSheetColumnFixing.ts +6 -0
- package/src/ui/form/editor/sd-tiptap-editor.control.ts +14 -12
- package/src/ui/form/input/sd-date-range.picker.ts +7 -1
- package/src/ui/form/select/sd-select.control.ts +18 -14
- package/src/ui/layout/dock/sd-dock.control.ts +4 -4
- package/src/ui/navigation/pagination/sd-pagination.control.ts +1 -1
- package/src/ui/navigation/sidebar/sd-sidebar-menu.control.ts +7 -14
- package/src/ui/navigation/topbar/sd-topbar-menu.control.ts +7 -14
- package/src/ui/overlay/dropdown/sd-dropdown-popup.control.ts +2 -17
- package/src/ui/overlay/dropdown/sd-dropdown.control.ts +19 -19
- package/src/ui/overlay/modal/sd-modal.control.ts +21 -5
- package/src/ui/overlay/toast/sd-toast.provider.ts +14 -1
- package/src/ui/visual/sd-barcode.control.ts +18 -16
- package/src/ui/visual/sd-progress.control.ts +1 -1
|
@@ -8,11 +8,15 @@ export function injectParent(type, options) {
|
|
|
8
8
|
break;
|
|
9
9
|
}
|
|
10
10
|
const comp = lView[8];
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
// 컴포넌트 인스턴스 검증: null, primitive, plain object({})는 건너뜀
|
|
12
|
+
// Angular 내부 슬롯 변경 시 잘못된 객체 반환을 방지하는 방어 코드
|
|
13
|
+
if (comp != null && typeof comp === "object" && comp.constructor !== Object) {
|
|
14
|
+
if (type == null) {
|
|
15
|
+
return comp;
|
|
16
|
+
}
|
|
17
|
+
if (comp instanceof type) {
|
|
18
|
+
return comp;
|
|
19
|
+
}
|
|
16
20
|
}
|
|
17
21
|
currentInjector = currentInjector.get(Injector, undefined, {
|
|
18
22
|
skipSelf: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupModelHook.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/setups/setupModelHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvF,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3D,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GACrD,IAAI,
|
|
1
|
+
{"version":3,"file":"setupModelHook.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/setups/setupModelHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvF,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3D,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GACrD,IAAI,CA4BN"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ErrorHandler, inject } from "@angular/core";
|
|
2
2
|
export function setupModelHook(model, canFn) {
|
|
3
3
|
const errorHandler = inject(ErrorHandler);
|
|
4
|
-
const orgSet = model.set;
|
|
4
|
+
const orgSet = model.set.bind(model);
|
|
5
5
|
model.set = (value) => {
|
|
6
6
|
const canSet = canFn()(value);
|
|
7
7
|
if (canSet === false) {
|
|
@@ -19,4 +19,7 @@ export function setupModelHook(model, canFn) {
|
|
|
19
19
|
errorHandler.handleError(err);
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
|
+
model.update = (fn) => {
|
|
23
|
+
model.set(fn(model()));
|
|
24
|
+
};
|
|
22
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRevealOnShow.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/setups/setupRevealOnShow.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,EAAE,MAAM;IACZ,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,IAAI,
|
|
1
|
+
{"version":3,"file":"setupRevealOnShow.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/setups/setupRevealOnShow.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,EAAE,MAAM;IACZ,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,IAAI,CA2CN"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { effect, ElementRef, inject, untracked } from "@angular/core";
|
|
1
|
+
import { computed, effect, ElementRef, inject, untracked } from "@angular/core";
|
|
2
2
|
export function setupRevealOnShow(optFn) {
|
|
3
3
|
const elRef = inject(ElementRef);
|
|
4
|
+
const resolvedType = computed(() => optFn?.().type ?? "t2b", ...(ngDevMode ? [{ debugName: "resolvedType" }] : /* istanbul ignore next */ []));
|
|
4
5
|
effect((onCleanup) => {
|
|
5
6
|
const el = elRef.nativeElement;
|
|
6
|
-
const type =
|
|
7
|
+
const type = resolvedType();
|
|
7
8
|
Object.assign(el.style, {
|
|
8
9
|
opacity: "0",
|
|
9
10
|
transform: type === "t2b" ? "translateY(-1em)" : "translateX(-1em)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExpandingManager.d.ts","sourceRoot":"","sources":["../../../src/core/utils/useExpandingManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,aAAa,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IACjF,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;CAC3B,GAAG;IACF,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,SAAS,IAAI,IAAI,CAAC;IAClB,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IAC5B,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACjC,
|
|
1
|
+
{"version":3,"file":"useExpandingManager.d.ts","sourceRoot":"","sources":["../../../src/core/utils/useExpandingManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,aAAa,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IACjF,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;CAC3B,GAAG;IACF,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,SAAS,IAAI,IAAI,CAAC;IAClB,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IAC5B,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CACjC,CAgGA"}
|
|
@@ -23,11 +23,12 @@ export function useExpandingManager(binding) {
|
|
|
23
23
|
const displayItems = computed(() => allDefs().map((d) => d.item), ...(ngDevMode ? [{ debugName: "displayItems" }] : /* istanbul ignore next */ []));
|
|
24
24
|
const expandableDefs = computed(() => allDefs().filter((d) => d.hasChildren), ...(ngDevMode ? [{ debugName: "expandableDefs" }] : /* istanbul ignore next */ []));
|
|
25
25
|
const hasExpandable = computed(() => expandableDefs().length > 0, ...(ngDevMode ? [{ debugName: "hasExpandable" }] : /* istanbul ignore next */ []));
|
|
26
|
+
const _expandedSet = computed(() => new Set(binding.expandedItems()), ...(ngDevMode ? [{ debugName: "_expandedSet" }] : /* istanbul ignore next */ []));
|
|
26
27
|
const isAllExpanded = computed(() => {
|
|
27
28
|
const expandable = expandableDefs();
|
|
28
29
|
if (expandable.length === 0)
|
|
29
30
|
return false;
|
|
30
|
-
const expandedSet =
|
|
31
|
+
const expandedSet = _expandedSet();
|
|
31
32
|
return expandable.every((d) => expandedSet.has(d.item));
|
|
32
33
|
}, ...(ngDevMode ? [{ debugName: "isAllExpanded" }] : /* istanbul ignore next */ []));
|
|
33
34
|
const defMap = computed(() => {
|
|
@@ -57,7 +58,7 @@ export function useExpandingManager(binding) {
|
|
|
57
58
|
const itemDef = map.get(item);
|
|
58
59
|
if (itemDef == null)
|
|
59
60
|
return false;
|
|
60
|
-
const expandedSet =
|
|
61
|
+
const expandedSet = _expandedSet();
|
|
61
62
|
let current = itemDef.parentDef;
|
|
62
63
|
while (current != null) {
|
|
63
64
|
if (!expandedSet.has(current.item)) {
|
|
@@ -7,7 +7,7 @@ export declare function useSdSystemConfigResource<T>(options: {
|
|
|
7
7
|
status: Signal<import("@angular/core").ResourceStatus>;
|
|
8
8
|
hasValue: () => boolean;
|
|
9
9
|
reload: () => boolean;
|
|
10
|
-
set(value: T | undefined)
|
|
10
|
+
set: (value: T | undefined) => void;
|
|
11
11
|
update(fn: (prev: T | undefined) => T | undefined): void;
|
|
12
12
|
};
|
|
13
13
|
//# sourceMappingURL=useSdSystemConfigResource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSdSystemConfigResource.d.ts","sourceRoot":"","sources":["../../../src/core/utils/useSdSystemConfigResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAG1G,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE;;;;;;
|
|
1
|
+
{"version":3,"file":"useSdSystemConfigResource.d.ts","sourceRoot":"","sources":["../../../src/core/utils/useSdSystemConfigResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAG1G,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE;;;;;;iBAcnE,CAAC,GAAG,SAAS;eAkBpB,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,SAAS;EAKpD"}
|
|
@@ -9,26 +9,27 @@ export function useSdSystemConfigResource(options) {
|
|
|
9
9
|
loader: async ({ params: key }) => {
|
|
10
10
|
return (await sdSystemConfig.getAsync(`${elTag}.${key}`));
|
|
11
11
|
} });
|
|
12
|
+
function set(value) {
|
|
13
|
+
res.set(value);
|
|
14
|
+
const key = options.key();
|
|
15
|
+
if (key == null)
|
|
16
|
+
return;
|
|
17
|
+
queueMicrotask(() => {
|
|
18
|
+
sdSystemConfig.setAsync(`${elTag}.${key}`, value).catch((err) => {
|
|
19
|
+
errorHandler.handleError(err);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
12
23
|
return {
|
|
13
24
|
value: res.value,
|
|
14
25
|
isLoading: res.isLoading,
|
|
15
26
|
status: res.status,
|
|
16
27
|
hasValue: () => res.hasValue(),
|
|
17
28
|
reload: () => res.reload(),
|
|
18
|
-
set
|
|
19
|
-
res.set(value);
|
|
20
|
-
const key = options.key();
|
|
21
|
-
if (key == null)
|
|
22
|
-
return;
|
|
23
|
-
queueMicrotask(() => {
|
|
24
|
-
sdSystemConfig.setAsync(`${elTag}.${key}`, value).catch((err) => {
|
|
25
|
-
errorHandler.handleError(err);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
},
|
|
29
|
+
set,
|
|
29
30
|
update(fn) {
|
|
30
31
|
const newValue = fn(res.value());
|
|
31
|
-
|
|
32
|
+
set(newValue);
|
|
32
33
|
},
|
|
33
34
|
};
|
|
34
35
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withBusy.d.ts","sourceRoot":"","sources":["../../../src/core/utils/withBusy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EACjC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-address-search.modal.d.ts","sourceRoot":"","sources":["../../../src/features/address/sd-address-search.modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAKX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;;AAwBzE,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,qBAYa,oBAAqB,YAAW,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IACrE,YAAY,0DAET;IAEH,KAAK,qDAAsB;IAE3B,WAAW,kDAAiB;IAE5B,QAAQ;YAIM,SAAS;yCAbZ,oBAAoB;2CAApB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"sd-address-search.modal.d.ts","sourceRoot":"","sources":["../../../src/features/address/sd-address-search.modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAKX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;;AAwBzE,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,qBAYa,oBAAqB,YAAW,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IACrE,YAAY,0DAET;IAEH,KAAK,qDAAsB;IAE3B,WAAW,kDAAiB;IAE5B,QAAQ;YAIM,SAAS;yCAbZ,oBAAoB;2CAApB,oBAAoB;CAoEhC"}
|
|
@@ -13,7 +13,7 @@ export class SdAddressSearchModal {
|
|
|
13
13
|
}
|
|
14
14
|
async initAsync() {
|
|
15
15
|
if (!document.getElementById("daum_address")) {
|
|
16
|
-
await new Promise((resolve) => {
|
|
16
|
+
await new Promise((resolve, reject) => {
|
|
17
17
|
const scriptEl = document.createElement("script");
|
|
18
18
|
scriptEl.src = "//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js";
|
|
19
19
|
scriptEl.setAttribute("id", "daum_address");
|
|
@@ -22,6 +22,9 @@ export class SdAddressSearchModal {
|
|
|
22
22
|
resolve();
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
|
+
scriptEl.onerror = () => {
|
|
26
|
+
reject(new Error("주소 검색 스크립트를 불러올 수 없습니다."));
|
|
27
|
+
};
|
|
25
28
|
document.head.appendChild(scriptEl);
|
|
26
29
|
});
|
|
27
30
|
}
|
|
@@ -31,7 +34,7 @@ export class SdAddressSearchModal {
|
|
|
31
34
|
const addr = data.userSelectedType === "R" ? data.roadAddress : data.jibunAddress;
|
|
32
35
|
let extraAddr = "";
|
|
33
36
|
if (data.userSelectedType === "R") {
|
|
34
|
-
if (data.bname !== "" && /[동로가]
|
|
37
|
+
if (data.bname !== "" && /[동로가]$/.test(data.bname)) {
|
|
35
38
|
extraAddr += data.bname;
|
|
36
39
|
}
|
|
37
40
|
if (data.buildingName !== "" && data.apartment === "Y") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-data-detail.control.d.ts","sourceRoot":"","sources":["../../../src/features/data-view/sd-data-detail.control.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,MAAM,EACX,WAAW,EAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAO,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"sd-data-detail.control.d.ts","sourceRoot":"","sources":["../../../src/features/data-view/sd-data-detail.control.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,MAAM,EACX,WAAW,EAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAO,MAAM,uBAAuB,CAAC;AAUtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0CAA0C,CAAC;;AAazE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAMD,8BACsB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,CACjE,YAAW,QAAQ,CAAC,CAAC,CAAC;IAItB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5B,oBAAoB,CAAC,IAAI,IAAI;IAE7B,QAAQ,CAAC,IAAI,IACT,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,qBAAqB,CAAA;KAAE,CAAC,GACjD;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,qBAAqB,CAAA;KAAE;IAE5C,YAAY,CAAC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;IAEnE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;IAIxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAE9D,QAAQ,sCAAiC;IAEzC,SAAS,iDAAa;IACtB,WAAW,6DAAyC;IACpD,WAAW,kDAAiB;IAC5B,KAAK,8CAAe;IACpB,YAAY,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,4CAAsB;IAE1B,QAAQ,4EAAwD;IAEhE,OAAO,CAAC,aAAa,CAAC,CAAI;;IAyB1B,kBAAkB;IAQZ,SAAS;IAYT,OAAO;IASP,cAAc,CAAC,GAAG,EAAE,OAAO;IAqB3B,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE;IAmC3E,OAAO,CAAC,gCAAgC;yCAlJpB,eAAe;2CAAf,eAAe;CA4JpC;AAMD,qBA6Ja,mBAAmB;IAC9B,MAAM,gCAAwC;IAE9C,QAAQ,oCAAwC;IAEhD,UAAU,uCAAkD;IAC5D,UAAU,uCAAkD;IAC5D,aAAa,2BAA8D;IAC3E,UAAU,uCAAkD;IAE5D,iBAAiB,uCAAsD;;IAQjE,oBAAoB;IAIpB,mBAAmB;IAInB,oBAAoB;IAI1B,mBAAmB;IAIb,QAAQ;IAId,SAAS,CAAC,QAAQ,CAAC,KAAK;;;;;MAKtB;yCA3CS,mBAAmB;2CAAnB,mBAAmB;CA4C/B"}
|
|
@@ -7,6 +7,7 @@ import { SdSharedDataProvider } from "../../core/providers/sd-shared-data.provid
|
|
|
7
7
|
import { injectParent } from "../../core/utils/injectParent";
|
|
8
8
|
import { setupCanDeactivate } from "../../core/utils/setups/setupCanDeactivate";
|
|
9
9
|
import { useViewTypeSignal } from "../../core/utils/useViewTypeSignal";
|
|
10
|
+
import { withBusy } from "../../core/utils/withBusy";
|
|
10
11
|
import { SdButtonControl } from "../../ui/form/button/sd-button.control";
|
|
11
12
|
import { SdAnchorControl } from "../../ui/form/button/sd-anchor.control";
|
|
12
13
|
import { SdFormControl } from "../../ui/form/sd-form.control";
|
|
@@ -294,12 +295,10 @@ export class AbsSdDataDetail {
|
|
|
294
295
|
this.initialized.set(true);
|
|
295
296
|
return;
|
|
296
297
|
}
|
|
297
|
-
this.busyCount.
|
|
298
|
-
await this._sdToast.try(async () => {
|
|
298
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
299
299
|
await this._sdSharedData.wait();
|
|
300
300
|
await this.refresh();
|
|
301
|
-
});
|
|
302
|
-
this.busyCount.update((v) => v - 1);
|
|
301
|
+
}));
|
|
303
302
|
this.initialized.set(true);
|
|
304
303
|
});
|
|
305
304
|
});
|
|
@@ -317,11 +316,9 @@ export class AbsSdDataDetail {
|
|
|
317
316
|
return;
|
|
318
317
|
if (!this.checkIgnoreChanges())
|
|
319
318
|
return;
|
|
320
|
-
this.busyCount.
|
|
321
|
-
await this._sdToast.try(async () => {
|
|
319
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
322
320
|
await this.refresh();
|
|
323
|
-
});
|
|
324
|
-
this.busyCount.update((v) => v - 1);
|
|
321
|
+
}));
|
|
325
322
|
}
|
|
326
323
|
async refresh() {
|
|
327
324
|
const result = await this.load();
|
|
@@ -340,15 +337,13 @@ export class AbsSdDataDetail {
|
|
|
340
337
|
return;
|
|
341
338
|
if (!this.toggleDelete)
|
|
342
339
|
return;
|
|
343
|
-
this.busyCount.
|
|
344
|
-
await this._sdToast.try(async () => {
|
|
340
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
345
341
|
const result = await this.toggleDelete(del);
|
|
346
342
|
if (!result)
|
|
347
343
|
return;
|
|
348
344
|
this._sdToast.success(`${del ? "삭제" : "복구"}되었습니다.`);
|
|
349
345
|
this.close.emit(result);
|
|
350
|
-
}, (err) => this._getOrmDataEditToastErrorMessage(err));
|
|
351
|
-
this.busyCount.update((v) => v - 1);
|
|
346
|
+
}, (err) => this._getOrmDataEditToastErrorMessage(err)));
|
|
352
347
|
}
|
|
353
348
|
async doSubmit(opt) {
|
|
354
349
|
if (this.busyCount() > 0)
|
|
@@ -357,23 +352,24 @@ export class AbsSdDataDetail {
|
|
|
357
352
|
return;
|
|
358
353
|
if (!this.submit)
|
|
359
354
|
return;
|
|
360
|
-
|
|
355
|
+
const dataInfo = this.dataInfo();
|
|
356
|
+
if (dataInfo == null)
|
|
357
|
+
return;
|
|
358
|
+
if (!dataInfo.isNew &&
|
|
361
359
|
(this._dataSnapshot == null || obj.equal(this.data(), this._dataSnapshot))) {
|
|
362
360
|
if (!opt?.hideNoChangeMessage) {
|
|
363
361
|
this._sdToast.info("변경사항이 없습니다.");
|
|
364
362
|
}
|
|
365
363
|
return;
|
|
366
364
|
}
|
|
367
|
-
this.busyCount.
|
|
368
|
-
await this._sdToast.try(async () => {
|
|
365
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
369
366
|
const result = await this.submit(this.data());
|
|
370
367
|
if (!result)
|
|
371
368
|
return;
|
|
372
369
|
this._sdToast.success("저장되었습니다.");
|
|
373
370
|
this.close.emit(result);
|
|
374
371
|
await this.refresh();
|
|
375
|
-
}, (err) => this._getOrmDataEditToastErrorMessage(err));
|
|
376
|
-
this.busyCount.update((v) => v - 1);
|
|
372
|
+
}, (err) => this._getOrmDataEditToastErrorMessage(err)));
|
|
377
373
|
}
|
|
378
374
|
_getOrmDataEditToastErrorMessage(err) {
|
|
379
375
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -614,4 +610,4 @@ export class SdDataDetailControl {
|
|
|
614
610
|
`,
|
|
615
611
|
}]
|
|
616
612
|
}], () => [], { formCtrl: [{ type: i0.ViewChild, args: ["formCtrl", { isSignal: true }] }], toolTplRef: [{ type: i0.ContentChild, args: ["toolTpl", { ...{ read: TemplateRef }, isSignal: true }] }], prevTplRef: [{ type: i0.ContentChild, args: ["prevTpl", { ...{ read: TemplateRef }, isSignal: true }] }], contentTplRef: [{ type: i0.ContentChild, args: ["contentTpl", { ...{ read: TemplateRef }, isSignal: true }] }], nextTplRef: [{ type: i0.ContentChild, args: ["nextTpl", { ...{ read: TemplateRef }, isSignal: true }] }], modalActionTplRef: [{ type: i0.ViewChild, args: ["modalActionTpl", { ...{ read: TemplateRef }, isSignal: true }] }] }); })();
|
|
617
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdDataDetailControl, { className: "SdDataDetailControl", filePath: "packages/angular/src/features/data-view/sd-data-detail.control.ts", lineNumber:
|
|
613
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdDataDetailControl, { className: "SdDataDetailControl", filePath: "packages/angular/src/features/data-view/sd-data-detail.control.ts", lineNumber: 371, forbidOrphanRendering: true }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-data-sheet.control.d.ts","sourceRoot":"","sources":["../../../src/features/data-view/sd-data-sheet.control.ts"],"names":[],"mappings":"AACA,OAAO,EAUL,KAAK,WAAW,EAKhB,KAAK,MAAM,EACX,WAAW,EAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,qBAAqB,EAAO,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"sd-data-sheet.control.d.ts","sourceRoot":"","sources":["../../../src/features/data-view/sd-data-sheet.control.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import { setupCumulateSelectedKeys } from "../../core/utils/setups/setupCumulate
|
|
|
13
13
|
import { setupCloserWhenSingleSelectionChange } from "../../core/utils/setups/setupCloserWhenSingleSelectionChange";
|
|
14
14
|
import { setupCanDeactivate } from "../../core/utils/setups/setupCanDeactivate";
|
|
15
15
|
import { injectParent } from "../../core/utils/injectParent";
|
|
16
|
+
import { withBusy } from "../../core/utils/withBusy";
|
|
16
17
|
import { FormatPipe } from "../../core/pipes/format.pipe";
|
|
17
18
|
import { TXT_CHANGE_IGNORE_CONFIRM } from "../../core/commons";
|
|
18
19
|
import { SdBaseContainerControl } from "../base/sd-base-container.control";
|
|
@@ -548,22 +549,26 @@ export class AbsSdDataSheet {
|
|
|
548
549
|
this.filter.set(filter);
|
|
549
550
|
this.lastFilter.set(obj.clone(filter));
|
|
550
551
|
});
|
|
551
|
-
effect(() => {
|
|
552
|
+
effect((onCleanup) => {
|
|
552
553
|
this.page();
|
|
553
554
|
this.lastFilter();
|
|
554
555
|
this.sortingDefs();
|
|
555
556
|
this.prepareRefreshEffect?.();
|
|
557
|
+
let cancelled = false;
|
|
558
|
+
onCleanup(() => {
|
|
559
|
+
cancelled = true;
|
|
560
|
+
});
|
|
556
561
|
queueMicrotask(async () => {
|
|
562
|
+
if (cancelled)
|
|
563
|
+
return;
|
|
557
564
|
if (!this.canUse()) {
|
|
558
565
|
this.initialized.set(true);
|
|
559
566
|
return;
|
|
560
567
|
}
|
|
561
|
-
this.busyCount.
|
|
562
|
-
await this._sdToast.try(async () => {
|
|
568
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
563
569
|
await this._sdSharedData.wait();
|
|
564
570
|
await this.refresh();
|
|
565
|
-
});
|
|
566
|
-
this.busyCount.update((v) => v - 1);
|
|
571
|
+
}));
|
|
567
572
|
this.initialized.set(true);
|
|
568
573
|
});
|
|
569
574
|
});
|
|
@@ -605,12 +610,10 @@ export class AbsSdDataSheet {
|
|
|
605
610
|
async doAddItem() {
|
|
606
611
|
if (!this.newItem)
|
|
607
612
|
return;
|
|
608
|
-
this.busyCount.
|
|
609
|
-
await this._sdToast.try(async () => {
|
|
613
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
610
614
|
const newItem = await this.newItem();
|
|
611
615
|
this.items.update((items) => [newItem, ...items]);
|
|
612
|
-
});
|
|
613
|
-
this.busyCount.update((v) => v - 1);
|
|
616
|
+
}));
|
|
614
617
|
}
|
|
615
618
|
async doSubmit(opt) {
|
|
616
619
|
if (this.busyCount() > 0)
|
|
@@ -626,16 +629,14 @@ export class AbsSdDataSheet {
|
|
|
626
629
|
}
|
|
627
630
|
return;
|
|
628
631
|
}
|
|
629
|
-
this.busyCount.
|
|
630
|
-
await this._sdToast.try(async () => {
|
|
632
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
631
633
|
const result = await this.submit(diffs);
|
|
632
634
|
if (!result)
|
|
633
635
|
return;
|
|
634
636
|
this._sdToast.success("저장되었습니다.");
|
|
635
637
|
await this.refresh();
|
|
636
638
|
this.submitted.emit(true);
|
|
637
|
-
}, (err) => this._getOrmDataEditToastErrorMessage(err));
|
|
638
|
-
this.busyCount.update((v) => v - 1);
|
|
639
|
+
}, (err) => this._getOrmDataEditToastErrorMessage(err)));
|
|
639
640
|
}
|
|
640
641
|
doToggleDeleteItem(item) {
|
|
641
642
|
if (!this.canEdit())
|
|
@@ -656,37 +657,31 @@ export class AbsSdDataSheet {
|
|
|
656
657
|
const result = await this.editItem(item);
|
|
657
658
|
if (!result)
|
|
658
659
|
return;
|
|
659
|
-
this.busyCount.
|
|
660
|
-
await this._sdToast.try(async () => {
|
|
660
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
661
661
|
await this.refresh();
|
|
662
|
-
});
|
|
663
|
-
this.busyCount.update((v) => v - 1);
|
|
662
|
+
}));
|
|
664
663
|
}
|
|
665
664
|
async doToggleDeleteItems(del) {
|
|
666
665
|
if (!this.canEdit())
|
|
667
666
|
return;
|
|
668
667
|
if (!this.toggleDeleteItems)
|
|
669
668
|
return;
|
|
670
|
-
this.busyCount.
|
|
671
|
-
await this._sdToast.try(async () => {
|
|
669
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
672
670
|
const result = await this.toggleDeleteItems(del);
|
|
673
671
|
if (!result)
|
|
674
672
|
return;
|
|
675
673
|
await this.refresh();
|
|
676
674
|
this._sdToast.success(`${del ? "삭제" : "복구"} 되었습니다.`);
|
|
677
|
-
}, (err) => this._getOrmDataEditToastErrorMessage(err));
|
|
678
|
-
this.busyCount.update((v) => v - 1);
|
|
675
|
+
}, (err) => this._getOrmDataEditToastErrorMessage(err)));
|
|
679
676
|
}
|
|
680
677
|
//-- excel
|
|
681
678
|
async doDownloadExcel() {
|
|
682
679
|
if (!this.downloadExcel)
|
|
683
680
|
return;
|
|
684
|
-
this.busyCount.
|
|
685
|
-
await this._sdToast.try(async () => {
|
|
681
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
686
682
|
const items = (await this.search(false)).items;
|
|
687
683
|
await this.downloadExcel(items);
|
|
688
|
-
});
|
|
689
|
-
this.busyCount.update((v) => v - 1);
|
|
684
|
+
}));
|
|
690
685
|
}
|
|
691
686
|
async doUploadExcel() {
|
|
692
687
|
if (!this.uploadExcel)
|
|
@@ -694,13 +689,11 @@ export class AbsSdDataSheet {
|
|
|
694
689
|
const file = await this._sdFileDialog.showAsync(false, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
695
690
|
if (!file)
|
|
696
691
|
return;
|
|
697
|
-
this.busyCount.
|
|
698
|
-
await this._sdToast.try(async () => {
|
|
692
|
+
await withBusy(this.busyCount, () => this._sdToast.try(async () => {
|
|
699
693
|
await this.uploadExcel(file);
|
|
700
694
|
await this.refresh();
|
|
701
695
|
this._sdToast.success("엑셀 업로드가 완료 되었습니다.");
|
|
702
|
-
}, (err) => this._getOrmDataEditToastErrorMessage(err));
|
|
703
|
-
this.busyCount.update((v) => v - 1);
|
|
696
|
+
}, (err) => this._getOrmDataEditToastErrorMessage(err)));
|
|
704
697
|
}
|
|
705
698
|
//-- modal selection
|
|
706
699
|
doModalConfirm() {
|
|
@@ -1180,4 +1173,4 @@ export class SdDataSheetControl {
|
|
|
1180
1173
|
`,
|
|
1181
1174
|
}]
|
|
1182
1175
|
}], () => [], { formCtrl: [{ type: i0.ViewChild, args: ["formCtrl", { isSignal: true }] }], insertText: [{ type: i0.Input, args: [{ isSignal: true, alias: "insertText", required: false }] }], deleteText: [{ type: i0.Input, args: [{ isSignal: true, alias: "deleteText", required: false }] }], restoreText: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreText", required: false }] }], deleteIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "deleteIcon", required: false }] }], restoreIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreIcon", required: false }] }], pageTopbarTplRef: [{ type: i0.ContentChild, args: ["pageTopbarTpl", { ...{ read: TemplateRef }, isSignal: true }] }], prevTplRef: [{ type: i0.ContentChild, args: ["prevTpl", { ...{ read: TemplateRef }, isSignal: true }] }], filterTplRef: [{ type: i0.ContentChild, args: ["filterTpl", { ...{ read: TemplateRef }, isSignal: true }] }], beforeToolTplRef: [{ type: i0.ContentChild, args: ["beforeToolTpl", { ...{ read: TemplateRef }, isSignal: true }] }], toolTplRef: [{ type: i0.ContentChild, args: ["toolTpl", { ...{ read: TemplateRef }, isSignal: true }] }], modalBottomTplRef: [{ type: i0.ContentChild, args: ["modalBottomTpl", { ...{ read: TemplateRef }, isSignal: true }] }], columnControls: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SdDataSheetColumnDirective), { isSignal: true }] }], modalActionTplRef: [{ type: i0.ViewChild, args: ["modalActionTpl", { ...{ read: TemplateRef }, isSignal: true }] }] }); })();
|
|
1183
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdDataSheetControl, { className: "SdDataSheetControl", filePath: "packages/angular/src/features/data-view/sd-data-sheet.control.ts", lineNumber:
|
|
1176
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SdDataSheetControl, { className: "SdDataSheetControl", filePath: "packages/angular/src/features/data-view/sd-data-sheet.control.ts", lineNumber: 781, forbidOrphanRendering: true }); })();
|
|
@@ -6,6 +6,10 @@ export declare class SdPermissionTableControl<TModule> {
|
|
|
6
6
|
disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
7
7
|
collapsedItems: import("@angular/core").WritableSignal<Set<ISdPermission<TModule>>>;
|
|
8
8
|
depthLength: import("@angular/core").Signal<number>;
|
|
9
|
+
private readonly _permExistsCache;
|
|
10
|
+
private readonly _permCheckedCache;
|
|
11
|
+
private readonly _editDisabledCache;
|
|
12
|
+
private readonly _arrCache;
|
|
9
13
|
arr(len: number): number[];
|
|
10
14
|
getIsPermCollapsed(item: ISdPermission<TModule>): boolean;
|
|
11
15
|
getAllChildren(item: ISdPermission<TModule>): ISdPermission<TModule>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-permission-table.control.d.ts","sourceRoot":"","sources":["../../../src/features/permission-table/sd-permission-table.control.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;;AAMpF,qBAiMa,wBAAwB,CAAC,OAAO;IAC3C,KAAK,+DAAsC;IAE3C,KAAK,gEAAuC;IAC5C,QAAQ,qEAAiD;IAEzD,cAAc,sEAA6C;IAE3D,WAAW,yCAER;IAEH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"sd-permission-table.control.d.ts","sourceRoot":"","sources":["../../../src/features/permission-table/sd-permission-table.control.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;;AAMpF,qBAiMa,wBAAwB,CAAC,OAAO;IAC3C,KAAK,+DAAsC;IAE3C,KAAK,gEAAuC;IAC5C,QAAQ,qEAAiD;IAEzD,cAAc,sEAA6C;IAE3D,WAAW,yCAER;IAEH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CA6B9B;IAEH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAgC/B;IAEH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA6ChC;IAEH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IAEzD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAW1B,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO;IAIzD,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE;IAItE,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO;IAItD,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO;IAI5E,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO;IAI7E,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC;IAgBjD,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,EAAE,OAAO;IAQlF,OAAO,CAAC,gBAAgB;IAkDxB,OAAO,CAAC,eAAe;IAYvB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAG;QACpC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;KAC5C,CAAC;yCAxPS,wBAAwB;2CAAxB,wBAAwB;CAyPpC"}
|