@simplysm/angular 14.0.10 → 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 +7 -4
- package/dist/features/data-view/sd-data-detail.control.d.ts.map +1 -1
- package/dist/features/data-view/sd-data-detail.control.js +75 -68
- package/dist/features/data-view/sd-data-sheet.control.d.ts +2 -0
- package/dist/features/data-view/sd-data-sheet.control.d.ts.map +1 -1
- package/dist/features/data-view/sd-data-sheet.control.js +134 -110
- package/dist/features/permission-table/sd-permission-table.control.d.ts +32 -0
- package/dist/features/permission-table/sd-permission-table.control.d.ts.map +1 -0
- package/dist/features/permission-table/sd-permission-table.control.js +467 -0
- 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 +45 -30
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -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/modal/sd-modal.provider.d.ts.map +1 -1
- package/dist/ui/overlay/modal/sd-modal.provider.js +12 -0
- 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 +74 -51
- package/src/features/data-view/sd-data-sheet.control.ts +84 -60
- package/src/features/permission-table/sd-permission-table.control.ts +461 -0
- 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 +51 -31
- package/src/index.ts +7 -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/modal/sd-modal.provider.ts +13 -0
- 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") {
|
|
@@ -43,6 +43,7 @@ export declare abstract class AbsSdDataDetail<T extends object, R = boolean> imp
|
|
|
43
43
|
permCheck?: boolean;
|
|
44
44
|
hideNoChangeMessage?: boolean;
|
|
45
45
|
}): Promise<void>;
|
|
46
|
+
private _getOrmDataEditToastErrorMessage;
|
|
46
47
|
static ɵfac: i0.ɵɵFactoryDeclaration<AbsSdDataDetail<any, any>, never>;
|
|
47
48
|
static ɵdir: i0.ɵɵDirectiveDeclaration<AbsSdDataDetail<any, any>, never, never, {}, { "close": "close"; }, never, never, true, never>;
|
|
48
49
|
}
|
|
@@ -60,10 +61,12 @@ export declare class SdDataDetailControl {
|
|
|
60
61
|
onRestoreButtonClick(): Promise<void>;
|
|
61
62
|
onSubmitButtonClick(): void;
|
|
62
63
|
onSubmit(): Promise<void>;
|
|
63
|
-
protected readonly
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
protected readonly icons: {
|
|
65
|
+
tablerDeviceFloppy: string;
|
|
66
|
+
tablerRefresh: string;
|
|
67
|
+
tablerRestore: string;
|
|
68
|
+
tablerEraser: string;
|
|
69
|
+
};
|
|
67
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdDataDetailControl, never>;
|
|
68
71
|
static ɵcmp: i0.ɵɵComponentDeclaration<SdDataDetailControl, "sd-data-detail", never, {}, {}, ["toolTplRef", "prevTplRef", "contentTplRef", "nextTplRef"], never, true, never>;
|
|
69
72
|
}
|
|
@@ -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";
|
|
@@ -35,7 +36,7 @@ function SdDataDetailControl_ng_template_1_Conditional_0_Template(rf, ctx) { if
|
|
|
35
36
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
36
37
|
i0.ɵɵproperty("theme", "link-primary");
|
|
37
38
|
i0.ɵɵadvance();
|
|
38
|
-
i0.ɵɵproperty("svg", ctx_r2.tablerDeviceFloppy);
|
|
39
|
+
i0.ɵɵproperty("svg", ctx_r2.icons.tablerDeviceFloppy);
|
|
39
40
|
} }
|
|
40
41
|
function SdDataDetailControl_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
41
42
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -53,7 +54,7 @@ function SdDataDetailControl_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
53
54
|
i0.ɵɵadvance();
|
|
54
55
|
i0.ɵɵproperty("theme", "link-info");
|
|
55
56
|
i0.ɵɵadvance();
|
|
56
|
-
i0.ɵɵproperty("svg", ctx_r2.tablerRefresh);
|
|
57
|
+
i0.ɵɵproperty("svg", ctx_r2.icons.tablerRefresh);
|
|
57
58
|
} }
|
|
58
59
|
function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
59
60
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
@@ -75,11 +76,11 @@ function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Condition
|
|
|
75
76
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
76
77
|
i0.ɵɵproperty("theme", "primary");
|
|
77
78
|
i0.ɵɵadvance();
|
|
78
|
-
i0.ɵɵproperty("svg", ctx_r2.tablerDeviceFloppy);
|
|
79
|
+
i0.ɵɵproperty("svg", ctx_r2.icons.tablerDeviceFloppy);
|
|
79
80
|
i0.ɵɵadvance(4);
|
|
80
81
|
i0.ɵɵproperty("theme", "info");
|
|
81
82
|
i0.ɵɵadvance();
|
|
82
|
-
i0.ɵɵproperty("svg", ctx_r2.tablerRefresh);
|
|
83
|
+
i0.ɵɵproperty("svg", ctx_r2.icons.tablerRefresh);
|
|
83
84
|
} }
|
|
84
85
|
function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
85
86
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
@@ -92,7 +93,7 @@ function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Condition
|
|
|
92
93
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
93
94
|
i0.ɵɵproperty("theme", "warning");
|
|
94
95
|
i0.ɵɵadvance();
|
|
95
|
-
i0.ɵɵproperty("svg", ctx_r2.tablerRestore);
|
|
96
|
+
i0.ɵɵproperty("svg", ctx_r2.icons.tablerRestore);
|
|
96
97
|
} }
|
|
97
98
|
function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
98
99
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
@@ -105,24 +106,24 @@ function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Condition
|
|
|
105
106
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
106
107
|
i0.ɵɵproperty("theme", "danger");
|
|
107
108
|
i0.ɵɵadvance();
|
|
108
|
-
i0.ɵɵproperty("svg", ctx_r2.tablerEraser);
|
|
109
|
+
i0.ɵɵproperty("svg", ctx_r2.icons.tablerEraser);
|
|
109
110
|
} }
|
|
110
111
|
function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
111
112
|
i0.ɵɵconditionalCreate(0, SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_1_Conditional_0_Template, 3, 2, "sd-button", 6)(1, SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_1_Conditional_1_Template, 3, 2, "sd-button", 6);
|
|
112
113
|
} if (rf & 2) {
|
|
113
|
-
let
|
|
114
|
+
let tmp_8_0;
|
|
114
115
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
115
|
-
i0.ɵɵconditional(((
|
|
116
|
+
i0.ɵɵconditional(((tmp_8_0 = ctx_r2.parent.dataInfo()) == null ? null : tmp_8_0.isDeleted) ? 0 : 1);
|
|
116
117
|
} }
|
|
117
118
|
function SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
118
119
|
i0.ɵɵconditionalCreate(0, SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_0_Template, 10, 4);
|
|
119
120
|
i0.ɵɵconditionalCreate(1, SdDataDetailControl_ng_template_3_Conditional_1_Conditional_1_Conditional_1_Template, 2, 1);
|
|
120
121
|
} if (rf & 2) {
|
|
121
|
-
let
|
|
122
|
+
let tmp_8_0;
|
|
122
123
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
123
124
|
i0.ɵɵconditional(ctx_r2.parent.submit ? 0 : -1);
|
|
124
125
|
i0.ɵɵadvance();
|
|
125
|
-
i0.ɵɵconditional(!((
|
|
126
|
+
i0.ɵɵconditional(!((tmp_8_0 = ctx_r2.parent.dataInfo()) == null ? null : tmp_8_0.isNew) && ctx_r2.parent.toggleDelete && (!ctx_r2.parent.canDelete || ctx_r2.parent.canDelete()) ? 1 : -1);
|
|
126
127
|
} }
|
|
127
128
|
function SdDataDetailControl_ng_template_3_Conditional_1_ng_template_2_Template(rf, ctx) { }
|
|
128
129
|
function SdDataDetailControl_ng_template_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -158,9 +159,9 @@ function SdDataDetailControl_ng_template_3_Conditional_7_Conditional_2_Template(
|
|
|
158
159
|
function SdDataDetailControl_ng_template_3_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
159
160
|
i0.ɵɵtext(0);
|
|
160
161
|
} if (rf & 2) {
|
|
161
|
-
let
|
|
162
|
+
let tmp_7_0;
|
|
162
163
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
163
|
-
i0.ɵɵtextInterpolate1(" (", (
|
|
164
|
+
i0.ɵɵtextInterpolate1(" (", (tmp_7_0 = ctx_r2.parent.dataInfo()) == null ? null : tmp_7_0.lastModifiedBy, ") ");
|
|
164
165
|
} }
|
|
165
166
|
function SdDataDetailControl_ng_template_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
166
167
|
i0.ɵɵelementStart(0, "div", 15);
|
|
@@ -169,14 +170,14 @@ function SdDataDetailControl_ng_template_3_Conditional_7_Template(rf, ctx) { if
|
|
|
169
170
|
i0.ɵɵconditionalCreate(3, SdDataDetailControl_ng_template_3_Conditional_7_Conditional_3_Template, 1, 1);
|
|
170
171
|
i0.ɵɵelementEnd();
|
|
171
172
|
} if (rf & 2) {
|
|
172
|
-
let tmp_6_0;
|
|
173
173
|
let tmp_7_0;
|
|
174
|
+
let tmp_8_0;
|
|
174
175
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
175
176
|
i0.ɵɵclassProp("bg-theme-gray-lightest", ctx_r2.parent.viewType() === "modal");
|
|
176
177
|
i0.ɵɵadvance(2);
|
|
177
|
-
i0.ɵɵconditional(((
|
|
178
|
+
i0.ɵɵconditional(((tmp_7_0 = ctx_r2.parent.dataInfo()) == null ? null : tmp_7_0.lastModifiedAt) ? 2 : -1);
|
|
178
179
|
i0.ɵɵadvance();
|
|
179
|
-
i0.ɵɵconditional(((
|
|
180
|
+
i0.ɵɵconditional(((tmp_8_0 = ctx_r2.parent.dataInfo()) == null ? null : tmp_8_0.lastModifiedBy) ? 3 : -1);
|
|
180
181
|
} }
|
|
181
182
|
function SdDataDetailControl_ng_template_3_Conditional_8_ng_template_1_Template(rf, ctx) { }
|
|
182
183
|
function SdDataDetailControl_ng_template_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -193,15 +194,15 @@ function SdDataDetailControl_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
193
194
|
i0.ɵɵelementStart(0, "div", 9);
|
|
194
195
|
i0.ɵɵconditionalCreate(1, SdDataDetailControl_ng_template_3_Conditional_1_Template, 3, 2, "div", 10);
|
|
195
196
|
i0.ɵɵconditionalCreate(2, SdDataDetailControl_ng_template_3_Conditional_2_Template, 2, 1, "div");
|
|
196
|
-
i0.ɵɵelementStart(3, "div", 11)(4, "sd-form", 12,
|
|
197
|
-
i0.ɵɵlistener("
|
|
197
|
+
i0.ɵɵelementStart(3, "div", 11)(4, "sd-form", 12, 3);
|
|
198
|
+
i0.ɵɵlistener("formSubmit", function SdDataDetailControl_ng_template_3_Template_sd_form_formSubmit_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSubmit()); });
|
|
198
199
|
i0.ɵɵtemplate(6, SdDataDetailControl_ng_template_3_ng_template_6_Template, 0, 0, "ng-template", 13);
|
|
199
200
|
i0.ɵɵelementEnd()();
|
|
200
201
|
i0.ɵɵconditionalCreate(7, SdDataDetailControl_ng_template_3_Conditional_7_Template, 4, 4, "div", 14);
|
|
201
202
|
i0.ɵɵconditionalCreate(8, SdDataDetailControl_ng_template_3_Conditional_8_Template, 2, 1, "div");
|
|
202
203
|
i0.ɵɵelementEnd();
|
|
203
204
|
} if (rf & 2) {
|
|
204
|
-
let
|
|
205
|
+
let tmp_8_0;
|
|
205
206
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
206
207
|
i0.ɵɵadvance();
|
|
207
208
|
i0.ɵɵconditional(ctx_r2.parent.viewType() === "control" && ctx_r2.parent.canEdit() || ctx_r2.toolTplRef() ? 1 : -1);
|
|
@@ -210,7 +211,7 @@ function SdDataDetailControl_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
210
211
|
i0.ɵɵadvance(4);
|
|
211
212
|
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.contentTplRef());
|
|
212
213
|
i0.ɵɵadvance();
|
|
213
|
-
i0.ɵɵconditional(((
|
|
214
|
+
i0.ɵɵconditional(((tmp_8_0 = ctx_r2.parent.dataInfo()) == null ? null : tmp_8_0.lastModifiedAt) || ((tmp_8_0 = ctx_r2.parent.dataInfo()) == null ? null : tmp_8_0.lastModifiedBy) ? 7 : -1);
|
|
214
215
|
i0.ɵɵadvance();
|
|
215
216
|
i0.ɵɵconditional(ctx_r2.nextTplRef() ? 8 : -1);
|
|
216
217
|
} }
|
|
@@ -255,20 +256,20 @@ function SdDataDetailControl_Conditional_5_ng_template_0_Template(rf, ctx) { if
|
|
|
255
256
|
i0.ɵɵadvance(2);
|
|
256
257
|
i0.ɵɵproperty("size", "sm")("theme", "primary");
|
|
257
258
|
} }
|
|
258
|
-
function
|
|
259
|
+
function SdDataDetailControl_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
260
|
+
i0.ɵɵtemplate(0, SdDataDetailControl_Conditional_5_ng_template_0_Template, 5, 3, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
|
|
261
|
+
} }
|
|
262
|
+
function SdDataDetailControl_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
259
263
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
260
264
|
i0.ɵɵelementStart(0, "sd-anchor", 20);
|
|
261
|
-
i0.ɵɵlistener("click", function
|
|
265
|
+
i0.ɵɵlistener("click", function SdDataDetailControl_ng_template_6_Template_sd_anchor_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onRefreshButtonClick()); });
|
|
262
266
|
i0.ɵɵelement(1, "ng-icon", 8);
|
|
263
267
|
i0.ɵɵelementEnd();
|
|
264
268
|
} if (rf & 2) {
|
|
265
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
269
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
266
270
|
i0.ɵɵproperty("theme", "gray");
|
|
267
271
|
i0.ɵɵadvance();
|
|
268
|
-
i0.ɵɵproperty("svg", ctx_r2.tablerRefresh);
|
|
269
|
-
} }
|
|
270
|
-
function SdDataDetailControl_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
271
|
-
i0.ɵɵtemplate(0, SdDataDetailControl_Conditional_5_ng_template_0_Template, 5, 3, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(2, SdDataDetailControl_Conditional_5_ng_template_2_Template, 2, 2, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
|
|
272
|
+
i0.ɵɵproperty("svg", ctx_r2.icons.tablerRefresh);
|
|
272
273
|
} }
|
|
273
274
|
//#endregion
|
|
274
275
|
//#region AbsSdDataDetail
|
|
@@ -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
|
-
});
|
|
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,32 @@ 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
|
-
});
|
|
376
|
-
|
|
372
|
+
}, (err) => this._getOrmDataEditToastErrorMessage(err)));
|
|
373
|
+
}
|
|
374
|
+
_getOrmDataEditToastErrorMessage(err) {
|
|
375
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
376
|
+
if (message.includes("a parent row: a foreign key constraint") ||
|
|
377
|
+
message.includes("conflicted with the REFERENCE")) {
|
|
378
|
+
return "경고! 연결된 작업에 의한 처리 거부. 후속작업 확인 요망";
|
|
379
|
+
}
|
|
380
|
+
return message;
|
|
377
381
|
}
|
|
378
382
|
static ɵfac = function AbsSdDataDetail_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AbsSdDataDetail)(); };
|
|
379
383
|
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbsSdDataDetail, outputs: { close: "close" } });
|
|
@@ -411,10 +415,12 @@ export class SdDataDetailControl {
|
|
|
411
415
|
async onSubmit() {
|
|
412
416
|
await this.parent.doSubmit({ permCheck: true });
|
|
413
417
|
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
+
icons = {
|
|
419
|
+
tablerDeviceFloppy,
|
|
420
|
+
tablerRefresh,
|
|
421
|
+
tablerRestore,
|
|
422
|
+
tablerEraser,
|
|
423
|
+
};
|
|
418
424
|
static ɵfac = function SdDataDetailControl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SdDataDetailControl)(); };
|
|
419
425
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SdDataDetailControl, selectors: [["sd-data-detail"]], contentQueries: function SdDataDetailControl_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
420
426
|
i0.ɵɵcontentQuerySignal(dirIndex, ctx.toolTplRef, _c0, 5, TemplateRef)(dirIndex, ctx.prevTplRef, _c1, 5, TemplateRef)(dirIndex, ctx.contentTplRef, _c2, 5, TemplateRef)(dirIndex, ctx.nextTplRef, _c3, 5, TemplateRef);
|
|
@@ -426,10 +432,11 @@ export class SdDataDetailControl {
|
|
|
426
432
|
i0.ɵɵqueryAdvance(2);
|
|
427
433
|
} }, hostBindings: function SdDataDetailControl_HostBindings(rf, ctx) { if (rf & 1) {
|
|
428
434
|
i0.ɵɵlistener("sdRefreshCommand", function SdDataDetailControl_sdRefreshCommand_HostBindingHandler() { return ctx.onRefreshButtonClick(); })("sdSaveCommand", function SdDataDetailControl_sdSaveCommand_HostBindingHandler() { return ctx.onSubmitButtonClick(); });
|
|
429
|
-
} }, decls:
|
|
435
|
+
} }, decls: 8, vars: 6, consts: [["pageTopbarTpl", ""], ["contentTpl", ""], ["modalActionTpl", ""], ["formCtrl", ""], ["modalBottomTpl", ""], [3, "busy", "busyMessage", "viewType", "initialized", "restricted"], [3, "theme"], [3, "click", "theme"], [3, "svg"], [1, "flex-column", "fill"], [1, "p-default", "flex-row", "gap-default", "bdb", "bdb-theme-gray-lightest"], [1, "flex-fill"], [3, "formSubmit"], [3, "ngTemplateOutlet"], [1, "p-sm-default", 3, "bg-theme-gray-lightest"], [1, "p-sm-default"], [1, "p-sm-default", "flex-row", "gap-sm"], [1, "flex-fill", "flex-row", "gap-sm", "main-align-end"], [3, "click", "size", "theme"], [3, "size", "theme"], ["title", "\uC0C8\uB85C\uACE0\uCE68(CTRL+ALT+L)", 1, "p-sm-default", 3, "click", "theme"]], template: function SdDataDetailControl_Template(rf, ctx) { if (rf & 1) {
|
|
430
436
|
i0.ɵɵelementStart(0, "sd-base-container", 5);
|
|
431
437
|
i0.ɵɵtemplate(1, SdDataDetailControl_ng_template_1_Template, 6, 3, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(3, SdDataDetailControl_ng_template_3_Template, 9, 5, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
432
|
-
i0.ɵɵconditionalCreate(5, SdDataDetailControl_Conditional_5_Template,
|
|
438
|
+
i0.ɵɵconditionalCreate(5, SdDataDetailControl_Conditional_5_Template, 2, 0);
|
|
439
|
+
i0.ɵɵtemplate(6, SdDataDetailControl_ng_template_6_Template, 2, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
|
433
440
|
i0.ɵɵelementEnd();
|
|
434
441
|
} if (rf & 2) {
|
|
435
442
|
i0.ɵɵproperty("busy", ctx.parent.busyCount() > 0)("busyMessage", ctx.parent.busyMessage())("viewType", ctx.parent.viewType())("initialized", ctx.parent.initialized())("restricted", !ctx.parent.canUse());
|
|
@@ -474,13 +481,13 @@ export class SdDataDetailControl {
|
|
|
474
481
|
<ng-template #pageTopbarTpl>
|
|
475
482
|
@if (parent.canEdit() && parent.submit) {
|
|
476
483
|
<sd-button [theme]="'link-primary'" (click)="onSubmitButtonClick()">
|
|
477
|
-
<ng-icon [svg]="tablerDeviceFloppy" />
|
|
484
|
+
<ng-icon [svg]="icons.tablerDeviceFloppy" />
|
|
478
485
|
저장
|
|
479
486
|
<small>(CTRL+S)</small>
|
|
480
487
|
</sd-button>
|
|
481
488
|
}
|
|
482
489
|
<sd-button [theme]="'link-info'" (click)="onRefreshButtonClick()">
|
|
483
|
-
<ng-icon [svg]="tablerRefresh" />
|
|
490
|
+
<ng-icon [svg]="icons.tablerRefresh" />
|
|
484
491
|
새로고침
|
|
485
492
|
<small>(CTRL+ALT+L)</small>
|
|
486
493
|
</sd-button>
|
|
@@ -493,12 +500,12 @@ export class SdDataDetailControl {
|
|
|
493
500
|
@if (parent.viewType() === "control" && parent.canEdit()) {
|
|
494
501
|
@if (parent.submit) {
|
|
495
502
|
<sd-button [theme]="'primary'" (click)="onSubmitButtonClick()">
|
|
496
|
-
<ng-icon [svg]="tablerDeviceFloppy" />
|
|
503
|
+
<ng-icon [svg]="icons.tablerDeviceFloppy" />
|
|
497
504
|
저장
|
|
498
505
|
<small>(CTRL+S)</small>
|
|
499
506
|
</sd-button>
|
|
500
507
|
<sd-button [theme]="'info'" (click)="onRefreshButtonClick()">
|
|
501
|
-
<ng-icon [svg]="tablerRefresh" />
|
|
508
|
+
<ng-icon [svg]="icons.tablerRefresh" />
|
|
502
509
|
새로고침
|
|
503
510
|
<small>(CTRL+ALT+L)</small>
|
|
504
511
|
</sd-button>
|
|
@@ -510,12 +517,12 @@ export class SdDataDetailControl {
|
|
|
510
517
|
) {
|
|
511
518
|
@if (parent.dataInfo()?.isDeleted) {
|
|
512
519
|
<sd-button [theme]="'warning'" (click)="onRestoreButtonClick()">
|
|
513
|
-
<ng-icon [svg]="tablerRestore" />
|
|
520
|
+
<ng-icon [svg]="icons.tablerRestore" />
|
|
514
521
|
복구
|
|
515
522
|
</sd-button>
|
|
516
523
|
} @else {
|
|
517
524
|
<sd-button [theme]="'danger'" (click)="onDeleteButtonClick()">
|
|
518
|
-
<ng-icon [svg]="tablerEraser" />
|
|
525
|
+
<ng-icon [svg]="icons.tablerEraser" />
|
|
519
526
|
삭제
|
|
520
527
|
</sd-button>
|
|
521
528
|
}
|
|
@@ -533,7 +540,7 @@ export class SdDataDetailControl {
|
|
|
533
540
|
}
|
|
534
541
|
|
|
535
542
|
<div class="flex-fill">
|
|
536
|
-
<sd-form #formCtrl (
|
|
543
|
+
<sd-form #formCtrl (formSubmit)="onSubmit()">
|
|
537
544
|
<ng-template [ngTemplateOutlet]="contentTplRef()" />
|
|
538
545
|
</sd-form>
|
|
539
546
|
</div>
|
|
@@ -587,20 +594,20 @@ export class SdDataDetailControl {
|
|
|
587
594
|
</div>
|
|
588
595
|
</div>
|
|
589
596
|
</ng-template>
|
|
590
|
-
|
|
591
|
-
<ng-template #modalActionTpl>
|
|
592
|
-
<sd-anchor
|
|
593
|
-
[theme]="'gray'"
|
|
594
|
-
class="p-sm-default"
|
|
595
|
-
(click)="onRefreshButtonClick()"
|
|
596
|
-
title="새로고침(CTRL+ALT+L)"
|
|
597
|
-
>
|
|
598
|
-
<ng-icon [svg]="tablerRefresh" />
|
|
599
|
-
</sd-anchor>
|
|
600
|
-
</ng-template>
|
|
601
597
|
}
|
|
598
|
+
|
|
599
|
+
<ng-template #modalActionTpl>
|
|
600
|
+
<sd-anchor
|
|
601
|
+
[theme]="'gray'"
|
|
602
|
+
class="p-sm-default"
|
|
603
|
+
(click)="onRefreshButtonClick()"
|
|
604
|
+
title="새로고침(CTRL+ALT+L)"
|
|
605
|
+
>
|
|
606
|
+
<ng-icon [svg]="icons.tablerRefresh" />
|
|
607
|
+
</sd-anchor>
|
|
608
|
+
</ng-template>
|
|
602
609
|
</sd-base-container>
|
|
603
610
|
`,
|
|
604
611
|
}]
|
|
605
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 }] }] }); })();
|
|
606
|
-
(() => { (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 }); })();
|
|
@@ -103,6 +103,8 @@ export declare class SdDataSheetControl {
|
|
|
103
103
|
toolTplRef: Signal<TemplateRef<any> | undefined>;
|
|
104
104
|
modalBottomTplRef: Signal<TemplateRef<any> | undefined>;
|
|
105
105
|
columnControls: Signal<readonly SdDataSheetColumnDirective[]>;
|
|
106
|
+
modalActionTplRef: Signal<TemplateRef<any> | undefined>;
|
|
107
|
+
constructor();
|
|
106
108
|
protected readonly icons: {
|
|
107
109
|
tablerRefresh: string;
|
|
108
110
|
tablerDeviceFloppy: string;
|