@simplysm/angular 14.0.5 → 14.0.7
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/core/directives/sd-router-link.directive.d.ts.map +1 -1
- package/dist/core/directives/sd-router-link.directive.js +5 -10
- package/dist/core/plugins/events/sd-resize-event.plugin.d.ts.map +1 -1
- package/dist/core/plugins/events/sd-resize-event.plugin.js +3 -0
- package/dist/core/plugins/sd-global-error-handler.plugin.d.ts +1 -0
- package/dist/core/plugins/sd-global-error-handler.plugin.d.ts.map +1 -1
- package/dist/core/plugins/sd-global-error-handler.plugin.js +4 -0
- package/dist/core/providers/sd-app-structure.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-app-structure.provider.js +4 -1
- package/dist/core/providers/sd-navigate-window.provider.d.ts +2 -1
- package/dist/core/providers/sd-navigate-window.provider.d.ts.map +1 -1
- package/dist/core/providers/sd-navigate-window.provider.js +13 -10
- package/dist/core/utils/setups/setupCanDeactivate.d.ts.map +1 -1
- package/dist/core/utils/setups/setupCanDeactivate.js +9 -2
- package/dist/core/utils/setups/setupInvalid.d.ts.map +1 -1
- package/dist/core/utils/setups/setupInvalid.js +4 -0
- package/dist/core/utils/setups/setupModelHook.d.ts +1 -1
- package/dist/core/utils/setups/setupModelHook.d.ts.map +1 -1
- package/dist/core/utils/setups/setupModelHook.js +5 -1
- package/dist/core/utils/setups/setupRipple.d.ts.map +1 -1
- package/dist/core/utils/setups/setupRipple.js +3 -2
- package/dist/core/utils/useExpandingManager.d.ts.map +1 -1
- package/dist/core/utils/useExpandingManager.js +2 -1
- package/dist/core/utils/useSdSystemConfigResource.d.ts.map +1 -1
- package/dist/core/utils/useSdSystemConfigResource.js +6 -3
- package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts +5 -5
- package/dist/ui/form/editor/sd-tiptap-editor.control.d.ts.map +1 -1
- package/dist/ui/form/editor/sd-tiptap-editor.control.js +79 -78
- package/dist/ui/form/input/sd-date-range.picker.d.ts.map +1 -1
- package/dist/ui/form/input/sd-date-range.picker.js +4 -3
- package/dist/ui/form/input/sd-textfield-type-handlers.d.ts.map +1 -1
- package/dist/ui/form/input/sd-textfield-type-handlers.js +21 -2
- package/dist/ui/form/input/sd-textfield.control.d.ts.map +1 -1
- package/dist/ui/form/input/sd-textfield.control.js +1 -0
- package/dist/ui/overlay/modal/sd-modal.control.js +1 -1
- package/dist/ui/overlay/modal/sd-modal.provider.d.ts +1 -1
- package/dist/ui/overlay/modal/sd-modal.provider.js +1 -1
- package/docs/providers.md +1 -1
- package/docs/setup-functions.md +1 -1
- package/package.json +7 -10
- package/src/core/directives/sd-router-link.directive.ts +5 -13
- package/src/core/plugins/events/sd-resize-event.plugin.ts +3 -0
- package/src/core/plugins/sd-global-error-handler.plugin.ts +4 -0
- package/src/core/providers/sd-app-structure.provider.ts +4 -1
- package/src/core/providers/sd-navigate-window.provider.ts +12 -13
- package/src/core/utils/setups/setupCanDeactivate.ts +10 -2
- package/src/core/utils/setups/setupInvalid.ts +5 -0
- package/src/core/utils/setups/setupModelHook.ts +5 -2
- package/src/core/utils/setups/setupRipple.ts +3 -2
- package/src/core/utils/useExpandingManager.ts +2 -1
- package/src/core/utils/useSdSystemConfigResource.ts +6 -3
- package/src/ui/form/editor/sd-tiptap-editor.control.ts +64 -61
- package/src/ui/form/input/sd-date-range.picker.ts +4 -3
- package/src/ui/form/input/sd-textfield-type-handlers.ts +25 -5
- package/src/ui/form/input/sd-textfield.control.ts +1 -0
- package/src/ui/overlay/modal/sd-modal.control.ts +1 -1
- package/src/ui/overlay/modal/sd-modal.provider.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-router-link.directive.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\directives\\sd-router-link.directive.ts"],"names":[],"mappings":";AAIA,qBAQa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAE/D,MAAM;cAEM,MAAM;iBACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;iBACtB;YACP,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB;qBACY,MAAM;sBACL,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mBAGA;IAEpC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;yCAlBpC,qBAAqB;2CAArB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"sd-router-link.directive.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\directives\\sd-router-link.directive.ts"],"names":[],"mappings":";AAIA,qBAQa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAE/D,MAAM;cAEM,MAAM;iBACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;iBACtB;YACP,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB;qBACY,MAAM;sBACL,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mBAGA;IAEpC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;yCAlBpC,qBAAqB;2CAArB,qBAAqB;CA4DjC"}
|
|
@@ -10,6 +10,9 @@ export class SdRouterLinkDirective {
|
|
|
10
10
|
const option = this.option();
|
|
11
11
|
if (!option)
|
|
12
12
|
return;
|
|
13
|
+
// Alt+click → 무시 (Chrome 표준: 다운로드, SPA에서는 해당 없음)
|
|
14
|
+
if (event.altKey)
|
|
15
|
+
return;
|
|
13
16
|
event.preventDefault();
|
|
14
17
|
event.stopPropagation();
|
|
15
18
|
if (this._navWindow.isWindow) {
|
|
@@ -20,19 +23,11 @@ export class SdRouterLinkDirective {
|
|
|
20
23
|
: "";
|
|
21
24
|
this._navWindow.open(option.link + qp, option.params, `width=${width},height=${height}`);
|
|
22
25
|
}
|
|
23
|
-
else if (event.ctrlKey || event.
|
|
24
|
-
const qp = option.queryParams
|
|
25
|
-
? "?" + new URLSearchParams(option.queryParams).toString()
|
|
26
|
-
: "";
|
|
27
|
-
this._navWindow.open(option.link + qp, option.params, "_blank");
|
|
28
|
-
}
|
|
29
|
-
else if (event.shiftKey) {
|
|
30
|
-
const width = option.window?.width ?? 800;
|
|
31
|
-
const height = option.window?.height ?? 800;
|
|
26
|
+
else if (event.ctrlKey || event.shiftKey) {
|
|
32
27
|
const qp = option.queryParams
|
|
33
28
|
? "?" + new URLSearchParams(option.queryParams).toString()
|
|
34
29
|
: "";
|
|
35
|
-
this._navWindow.open(option.link + qp, option.params
|
|
30
|
+
this._navWindow.open(option.link + qp, option.params);
|
|
36
31
|
}
|
|
37
32
|
else if (option.outletName === undefined) {
|
|
38
33
|
await this._router.navigate([option.link, ...(option.params ? [option.params] : [])], option.queryParams ? { queryParams: option.queryParams } : undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-resize-event.plugin.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\plugins\\events\\sd-resize-event.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;;AAG/D,qBACa,mBAAoB,SAAQ,kBAAkB;;IAKhD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,gBAAgB,CACvB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GACvC,MAAM,IAAI;yCAbF,mBAAmB;6CAAnB,mBAAmB;
|
|
1
|
+
{"version":3,"file":"sd-resize-event.plugin.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\plugins\\events\\sd-resize-event.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;;AAG/D,qBACa,mBAAoB,SAAQ,kBAAkB;;IAKhD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,gBAAgB,CACvB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GACvC,MAAM,IAAI;yCAbF,mBAAmB;6CAAnB,mBAAmB;CAgD/B;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC;CAC9B"}
|
|
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class SdGlobalErrorHandlerPlugin implements ErrorHandler {
|
|
4
4
|
private readonly _envInjector;
|
|
5
5
|
private readonly _systemLog;
|
|
6
|
+
private _hasDisplayedError;
|
|
6
7
|
handleError(event: any): false | undefined;
|
|
7
8
|
private _displayErrorMessage;
|
|
8
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdGlobalErrorHandlerPlugin, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-global-error-handler.plugin.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\plugins\\sd-global-error-handler.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAIb,MAAM,eAAe,CAAC;;AAGvB,qBACa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;
|
|
1
|
+
{"version":3,"file":"sd-global-error-handler.plugin.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\plugins\\sd-global-error-handler.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAIb,MAAM,eAAe,CAAC;;AAGvB,qBACa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,kBAAkB,CAAS;IAEnC,WAAW,CAAC,KAAK,EAAE,GAAG;IAoEtB,OAAO,CAAC,oBAAoB;yCAzEjB,0BAA0B;6CAA1B,0BAA0B;CAiHtC"}
|
|
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export class SdGlobalErrorHandlerPlugin {
|
|
5
5
|
_envInjector = inject(EnvironmentInjector);
|
|
6
6
|
_systemLog = inject(SdSystemLogProvider);
|
|
7
|
+
_hasDisplayedError = false;
|
|
7
8
|
handleError(event) {
|
|
8
9
|
try {
|
|
9
10
|
if (event instanceof PromiseRejectionEvent) {
|
|
@@ -70,6 +71,9 @@ export class SdGlobalErrorHandlerPlugin {
|
|
|
70
71
|
return false;
|
|
71
72
|
}
|
|
72
73
|
_displayErrorMessage(title, param) {
|
|
74
|
+
if (this._hasDisplayedError)
|
|
75
|
+
return;
|
|
76
|
+
this._hasDisplayedError = true;
|
|
73
77
|
const paramLines = Object.keys(param).map((key) => key + ": " + param[key]);
|
|
74
78
|
void this._systemLog.writeAsync("error", `[${title}]\n${paramLines.join("\n")}`);
|
|
75
79
|
const appRef = this._envInjector.get(ApplicationRef);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-app-structure.provider.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\providers\\sd-app-structure.provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;;AAE5C,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAG5F;AAID,8BACsB,sBAAsB,CAAC,OAAO,GAAG,OAAO;IAC5D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAEjE,WAAW,6BAET;IACF,eAAe,iCAEb;IAEF,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,GAAE,MAAM,EAAO;IAIzF,kBAAkB,CAAC,QAAQ,EAAE,MAAM;IAInC,sBAAsB,CAAC,QAAQ,EAAE,MAAM;IAIvC,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;yCAxBzD,sBAAsB;6CAAtB,sBAAsB;CAgC3C;AAED,8BAAsB,mBAAmB;IAGvC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"sd-app-structure.provider.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\providers\\sd-app-structure.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,9 @@ export class SdAppStructureUtils {
|
|
|
32
32
|
//---------- Info
|
|
33
33
|
static getTitleByFullCode(items, fullCode) {
|
|
34
34
|
const itemChain = this.getItemChainByFullCode(items, fullCode);
|
|
35
|
+
if (itemChain.length === 0) {
|
|
36
|
+
throw new Error(`Item not found for fullCode: ${fullCode}`);
|
|
37
|
+
}
|
|
35
38
|
const parent = itemChain
|
|
36
39
|
.slice(0, -1)
|
|
37
40
|
.map((item) => item.title)
|
|
@@ -49,7 +52,7 @@ export class SdAppStructureUtils {
|
|
|
49
52
|
// 권한이라는것이 아얘 존재하지 않거나
|
|
50
53
|
else if (fullCodes.every((fullCode) => {
|
|
51
54
|
const item = this.getItemChainByFullCode(items, fullCode).last();
|
|
52
|
-
return
|
|
55
|
+
return item != null && !("perms" in item);
|
|
53
56
|
})) {
|
|
54
57
|
result.push(permKey);
|
|
55
58
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class SdNavigateWindowProvider {
|
|
3
|
-
private
|
|
3
|
+
private readonly _openedWindows;
|
|
4
|
+
private _beforeUnloadRegistered;
|
|
4
5
|
get isWindow(): boolean;
|
|
5
6
|
open(navigate: string, params?: Record<string, string>, features?: string): void;
|
|
6
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<SdNavigateWindowProvider, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-navigate-window.provider.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\providers\\sd-navigate-window.provider.ts"],"names":[],"mappings":";AAEA,qBACa,wBAAwB;IACnC,OAAO,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"sd-navigate-window.provider.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\providers\\sd-navigate-window.provider.ts"],"names":[],"mappings":";AAEA,qBACa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,uBAAuB,CAAS;IAExC,IAAI,QAAQ,IAAI,OAAO,CAKtB;IAED,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;yCAXrE,wBAAwB;6CAAxB,wBAAwB;CAuCpC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Injectable } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class SdNavigateWindowProvider {
|
|
4
|
-
|
|
4
|
+
_openedWindows = new Set();
|
|
5
|
+
_beforeUnloadRegistered = false;
|
|
5
6
|
get isWindow() {
|
|
6
7
|
const urlSearchParams = new URLSearchParams(location.hash.slice(location.hash.indexOf(";") + 1));
|
|
7
8
|
return urlSearchParams.get("window") === "true";
|
|
@@ -9,16 +10,18 @@ export class SdNavigateWindowProvider {
|
|
|
9
10
|
open(navigate, params, features) {
|
|
10
11
|
if (this.isWindow || (features != null && features !== "")) {
|
|
11
12
|
const newWindow = window.open(`${location.pathname}#${navigate};${new URLSearchParams({ ...params, window: "true" }).toString()}`, "", features);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
if (newWindow) {
|
|
14
|
+
this._openedWindows.add(newWindow);
|
|
15
|
+
}
|
|
16
|
+
if (!this._beforeUnloadRegistered) {
|
|
17
|
+
this._beforeUnloadRegistered = true;
|
|
18
|
+
window.addEventListener("beforeunload", () => {
|
|
19
|
+
for (const w of this._openedWindows) {
|
|
20
|
+
w.close();
|
|
21
|
+
}
|
|
22
|
+
this._openedWindows.clear();
|
|
23
|
+
});
|
|
15
24
|
}
|
|
16
|
-
this._beforeUnloadController = new AbortController();
|
|
17
|
-
window.addEventListener("beforeunload", () => {
|
|
18
|
-
if (newWindow) {
|
|
19
|
-
newWindow.close();
|
|
20
|
-
}
|
|
21
|
-
}, { signal: this._beforeUnloadController.signal });
|
|
22
25
|
}
|
|
23
26
|
else {
|
|
24
27
|
window.open(`${location.pathname}#${navigate};${new URLSearchParams(params).toString()}`, "_blank");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupCanDeactivate.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\utils\\setups\\setupCanDeactivate.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"setupCanDeactivate.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\utils\\setups\\setupCanDeactivate.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI,CAqC1D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementRef, inject, reflectComponentType } from "@angular/core";
|
|
1
|
+
import { DestroyRef, ElementRef, inject, reflectComponentType } from "@angular/core";
|
|
2
2
|
import { ActivatedRoute } from "@angular/router";
|
|
3
3
|
import { SdActivatedModalProvider } from "../../../ui/overlay/modal/sd-modal.provider";
|
|
4
4
|
export function setupCanDeactivate(fn) {
|
|
@@ -6,7 +6,7 @@ export function setupCanDeactivate(fn) {
|
|
|
6
6
|
const activatedRoute = inject(ActivatedRoute, { optional: true });
|
|
7
7
|
const elRef = inject(ElementRef);
|
|
8
8
|
if (activatedModal != null) {
|
|
9
|
-
activatedModal.
|
|
9
|
+
activatedModal.canDeactiveFn = fn;
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
12
|
if (activatedRoute) {
|
|
@@ -24,5 +24,12 @@ export function setupCanDeactivate(fn) {
|
|
|
24
24
|
activatedRoute.routeConfig.canDeactivate = [];
|
|
25
25
|
}
|
|
26
26
|
activatedRoute.routeConfig.canDeactivate.push(canDeactivateFn);
|
|
27
|
+
const destroyRef = inject(DestroyRef);
|
|
28
|
+
destroyRef.onDestroy(() => {
|
|
29
|
+
const idx = activatedRoute.routeConfig.canDeactivate.indexOf(canDeactivateFn);
|
|
30
|
+
if (idx !== -1) {
|
|
31
|
+
activatedRoute.routeConfig.canDeactivate.splice(idx, 1);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
27
34
|
}
|
|
28
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupInvalid.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\utils\\setups\\setupInvalid.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,iBAAiB,EAAE,MAAM,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"setupInvalid.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\utils\\setups\\setupInvalid.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,iBAAiB,EAAE,MAAM,MAAM,GAAG,IAAI,CAmClE"}
|
|
@@ -18,6 +18,10 @@ export function setupInvalid(getInvalidMessage) {
|
|
|
18
18
|
const isInvalid = !inputEl.checkValidity();
|
|
19
19
|
setSafeStyle(renderer, indicatorEl, { display: isInvalid ? "block" : "none" });
|
|
20
20
|
});
|
|
21
|
+
destroyRef.onDestroy(() => {
|
|
22
|
+
indicatorEl.remove();
|
|
23
|
+
inputEl.remove();
|
|
24
|
+
});
|
|
21
25
|
const formEl = inputEl.form;
|
|
22
26
|
if (formEl == null)
|
|
23
27
|
return;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Signal, type WritableSignal } from "@angular/core";
|
|
2
2
|
export declare function setupModelHook<T, S extends WritableSignal<T>>(model: S, canFn: Signal<(item: T) => boolean | Promise<boolean>>): void;
|
|
3
3
|
//# sourceMappingURL=setupModelHook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupModelHook.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\utils\\setups\\setupModelHook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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,CAuBN"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { ErrorHandler, inject } from "@angular/core";
|
|
1
2
|
export function setupModelHook(model, canFn) {
|
|
3
|
+
const errorHandler = inject(ErrorHandler);
|
|
2
4
|
const orgSet = model.set;
|
|
3
5
|
model.set = (value) => {
|
|
4
6
|
const canSet = canFn()(value);
|
|
@@ -13,6 +15,8 @@ export function setupModelHook(model, canFn) {
|
|
|
13
15
|
if (allowed !== false) {
|
|
14
16
|
orgSet(value);
|
|
15
17
|
}
|
|
16
|
-
}).catch(() => {
|
|
18
|
+
}).catch((err) => {
|
|
19
|
+
errorHandler.handleError(err);
|
|
20
|
+
});
|
|
17
21
|
};
|
|
18
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRipple.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\utils\\setups\\setupRipple.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"setupRipple.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\core\\utils\\setups\\setupRipple.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CA4E1D"}
|
|
@@ -33,9 +33,10 @@ export function setupRipple(enableFn) {
|
|
|
33
33
|
transform: "scale(0.1)",
|
|
34
34
|
});
|
|
35
35
|
el.appendChild(indicatorEl);
|
|
36
|
-
indicatorEl.ontransitionend = () => {
|
|
37
|
-
if (
|
|
36
|
+
indicatorEl.ontransitionend = (ev) => {
|
|
37
|
+
if (ev.propertyName === "opacity" && indicatorEl !== undefined) {
|
|
38
38
|
indicatorEl.remove();
|
|
39
|
+
indicatorEl = undefined;
|
|
39
40
|
}
|
|
40
41
|
};
|
|
41
42
|
requestAnimationFrame(() => {
|
|
@@ -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,CA8FA"}
|
|
@@ -57,9 +57,10 @@ export function useExpandingManager(binding) {
|
|
|
57
57
|
const itemDef = map.get(item);
|
|
58
58
|
if (itemDef == null)
|
|
59
59
|
return false;
|
|
60
|
+
const expandedSet = new Set(binding.expandedItems());
|
|
60
61
|
let current = itemDef.parentDef;
|
|
61
62
|
while (current != null) {
|
|
62
|
-
if (!
|
|
63
|
+
if (!expandedSet.has(current.item)) {
|
|
63
64
|
return false;
|
|
64
65
|
}
|
|
65
66
|
current = current.parentDef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSdSystemConfigResource.d.ts","sourceRoot":"","sources":["..\\..\\..\\src\\core\\utils\\useSdSystemConfigResource.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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;;;;;;eAoB1E,CAAC,GAAG,SAAS;eAUb,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,SAAS;EAKpD"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ElementRef, inject, resource } from "@angular/core";
|
|
1
|
+
import { ElementRef, ErrorHandler, inject, resource } from "@angular/core";
|
|
2
2
|
import { SdSystemConfigProvider } from "../providers/sd-system-config.provider";
|
|
3
3
|
export function useSdSystemConfigResource(options) {
|
|
4
4
|
const sdSystemConfig = inject(SdSystemConfigProvider);
|
|
5
5
|
const elRef = inject(ElementRef);
|
|
6
|
+
const errorHandler = inject(ErrorHandler);
|
|
6
7
|
const elTag = elRef.nativeElement.tagName.toLowerCase();
|
|
7
8
|
const res = resource({ ...(ngDevMode ? { debugName: "res" } : /* istanbul ignore next */ {}), params: () => options.key(),
|
|
8
9
|
loader: async ({ params: key }) => {
|
|
@@ -19,8 +20,10 @@ export function useSdSystemConfigResource(options) {
|
|
|
19
20
|
const key = options.key();
|
|
20
21
|
if (key == null)
|
|
21
22
|
return;
|
|
22
|
-
queueMicrotask(
|
|
23
|
-
|
|
23
|
+
queueMicrotask(() => {
|
|
24
|
+
sdSystemConfig.setAsync(`${elTag}.${key}`, value).catch((err) => {
|
|
25
|
+
errorHandler.handleError(err);
|
|
26
|
+
});
|
|
24
27
|
});
|
|
25
28
|
},
|
|
26
29
|
update(fn) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type WritableSignal } from "@angular/core";
|
|
1
2
|
import { Editor, type AnyExtension } from "@tiptap/core";
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class SdTiptapEditorControl {
|
|
@@ -11,19 +12,18 @@ export declare class SdTiptapEditorControl {
|
|
|
11
12
|
private readonly elRef;
|
|
12
13
|
private readonly destroyRef;
|
|
13
14
|
readonly colorPresets: string[];
|
|
14
|
-
activeStates: Record<string, boolean
|
|
15
|
-
activeColor: string
|
|
16
|
-
activeBgColor: string
|
|
15
|
+
activeStates: WritableSignal<Record<string, boolean>>;
|
|
16
|
+
activeColor: WritableSignal<string>;
|
|
17
|
+
activeBgColor: WritableSignal<string>;
|
|
17
18
|
colorPickerMode: "text" | "bg" | undefined;
|
|
18
19
|
/** @internal -- TipTap Editor 인스턴스. 테스트 및 고급 사용자용 */
|
|
19
|
-
editor: Editor | undefined
|
|
20
|
+
editor: WritableSignal<Editor | undefined>;
|
|
20
21
|
private updatingFromEditor;
|
|
21
22
|
private lastExtensions;
|
|
22
23
|
private readonly resolvedExtensions;
|
|
23
24
|
constructor();
|
|
24
25
|
private createEditor;
|
|
25
26
|
private destroyEditor;
|
|
26
|
-
private getEditorHtml;
|
|
27
27
|
private getEditorHtmlFrom;
|
|
28
28
|
execCmd(cmd: string): void;
|
|
29
29
|
toggleColorPicker(mode: "text" | "bg"): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-tiptap-editor.control.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\ui\\form\\editor\\sd-tiptap-editor.control.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sd-tiptap-editor.control.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\ui\\form\\editor\\sd-tiptap-editor.control.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;;AAkBzD,qBAsMa,qBAAqB;IAChC,KAAK,0DAAmB;IACxB,QAAQ,qEAAiD;IACzD,QAAQ,qEAAiD;IACzD,QAAQ,qEAAiD;IACzD,WAAW,0DAAmB;IAC9B,WAAW,+CAAiB,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,eAAI;IACzE,UAAU,kEAA2B;IAErC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,QAAQ,CAAC,YAAY,WAMnB;IAEF,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAc;IACnE,WAAW,yBAAc;IACzB,aAAa,yBAAc;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE3C,qDAAqD;IACrD,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAqB;IAC/D,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAShC;;IA2DH,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA4D1B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI5C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAqB3C,OAAO,CAAC,mBAAmB;yCA1NhB,qBAAqB;2CAArB,qBAAqB;CAmPjC"}
|