@dooboostore/simple-web-component 1.0.32 → 1.0.34
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 +280 -43
- package/dist/cjs/decorators/addEventListener.js.map +1 -1
- package/dist/cjs/decorators/applyAttribute.js +67 -57
- package/dist/cjs/decorators/applyAttribute.js.map +2 -2
- package/dist/cjs/decorators/applyClass.js +80 -70
- package/dist/cjs/decorators/applyClass.js.map +2 -2
- package/dist/cjs/decorators/applyNode.js +1 -8
- package/dist/cjs/decorators/applyNode.js.map +2 -2
- package/dist/cjs/decorators/applyStyle.js +66 -56
- package/dist/cjs/decorators/applyStyle.js.map +2 -2
- package/dist/cjs/decorators/attribute.js +35 -29
- package/dist/cjs/decorators/attribute.js.map +2 -2
- package/dist/cjs/decorators/changedAttributeHost.js +32 -12
- package/dist/cjs/decorators/changedAttributeHost.js.map +2 -2
- package/dist/cjs/decorators/elementDefine.js +29 -16
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/emitCustomEvent.js +57 -44
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +3 -1
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/publishSwcAppMessage.js +86 -0
- package/dist/cjs/decorators/publishSwcAppMessage.js.map +7 -0
- package/dist/cjs/decorators/setProperty.js +50 -39
- package/dist/cjs/decorators/setProperty.js.map +2 -2
- package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js +62 -0
- package/dist/cjs/decorators/subscribeSwcAppMessageWhileConnected.js.map +7 -0
- package/dist/cjs/decorators/{subscribeSwcAppRouteChange.js → subscribeSwcAppRouteChangeWhileConnected.js} +16 -16
- package/dist/cjs/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +7 -0
- package/dist/cjs/elements/SwcAppEngine.js +7 -7
- package/dist/cjs/elements/SwcAppEngine.js.map +3 -3
- package/dist/cjs/elements/SwcAppMixin.js +90 -43
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/elements/SwcChoose.js +19 -15
- package/dist/cjs/elements/SwcChoose.js.map +2 -2
- package/dist/cjs/elements/register.js +21 -16
- package/dist/cjs/elements/register.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/Utils.js +7 -3
- package/dist/cjs/utils/Utils.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js.map +1 -1
- package/dist/esm/decorators/applyAttribute.js +67 -57
- package/dist/esm/decorators/applyAttribute.js.map +2 -2
- package/dist/esm/decorators/applyClass.js +80 -70
- package/dist/esm/decorators/applyClass.js.map +2 -2
- package/dist/esm/decorators/applyNode.js +1 -8
- package/dist/esm/decorators/applyNode.js.map +2 -2
- package/dist/esm/decorators/applyStyle.js +66 -56
- package/dist/esm/decorators/applyStyle.js.map +2 -2
- package/dist/esm/decorators/attribute.js +35 -29
- package/dist/esm/decorators/attribute.js.map +2 -2
- package/dist/esm/decorators/changedAttributeHost.js +32 -12
- package/dist/esm/decorators/changedAttributeHost.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +30 -17
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js +57 -44
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +3 -1
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/publishSwcAppMessage.js +67 -0
- package/dist/esm/decorators/publishSwcAppMessage.js.map +7 -0
- package/dist/esm/decorators/setProperty.js +50 -39
- package/dist/esm/decorators/setProperty.js.map +2 -2
- package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js +43 -0
- package/dist/esm/decorators/subscribeSwcAppMessageWhileConnected.js.map +7 -0
- package/dist/esm/decorators/{subscribeSwcAppRouteChange.js → subscribeSwcAppRouteChangeWhileConnected.js} +13 -13
- package/dist/esm/decorators/subscribeSwcAppRouteChangeWhileConnected.js.map +7 -0
- package/dist/esm/elements/SwcAppEngine.js +6 -6
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +90 -43
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/elements/SwcChoose.js +20 -16
- package/dist/esm/elements/SwcChoose.js.map +2 -2
- package/dist/esm/elements/register.js +22 -17
- package/dist/esm/elements/register.js.map +2 -2
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/Utils.js +7 -3
- package/dist/esm/utils/Utils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +543 -348
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/addEventListener.d.ts +4 -1
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/applyAttribute.d.ts +5 -1
- package/dist/types/decorators/applyAttribute.d.ts.map +1 -1
- package/dist/types/decorators/applyClass.d.ts +4 -0
- package/dist/types/decorators/applyClass.d.ts.map +1 -1
- package/dist/types/decorators/applyNode.d.ts +4 -1
- package/dist/types/decorators/applyNode.d.ts.map +1 -1
- package/dist/types/decorators/applyStyle.d.ts +5 -1
- package/dist/types/decorators/applyStyle.d.ts.map +1 -1
- package/dist/types/decorators/attribute.d.ts +5 -0
- package/dist/types/decorators/attribute.d.ts.map +1 -1
- package/dist/types/decorators/changedAttributeHost.d.ts +13 -3
- package/dist/types/decorators/changedAttributeHost.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts +1 -0
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts +5 -1
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +3 -1
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/publishSwcAppMessage.d.ts +13 -0
- package/dist/types/decorators/publishSwcAppMessage.d.ts.map +1 -0
- package/dist/types/decorators/setProperty.d.ts +5 -1
- package/dist/types/decorators/setProperty.d.ts.map +1 -1
- package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts +16 -0
- package/dist/types/decorators/subscribeSwcAppMessageWhileConnected.d.ts.map +1 -0
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts +18 -0
- package/dist/types/decorators/subscribeSwcAppRouteChangeWhileConnected.d.ts.map +1 -0
- package/dist/types/elements/SwcAppEngine.d.ts +6 -3
- package/dist/types/elements/SwcAppEngine.d.ts.map +1 -1
- package/dist/types/elements/SwcAppMixin.d.ts +8 -3
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/elements/register.d.ts.map +1 -1
- package/dist/types/types.d.ts +6 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +543 -348
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +4 -4
- package/src/decorators/addEventListener.ts +1 -1
- package/src/decorators/applyAttribute.ts +74 -61
- package/src/decorators/applyClass.ts +91 -77
- package/src/decorators/applyNode.ts +3 -12
- package/src/decorators/applyStyle.ts +75 -61
- package/src/decorators/attribute.ts +55 -43
- package/src/decorators/changedAttributeHost.ts +47 -14
- package/src/decorators/elementDefine.ts +38 -19
- package/src/decorators/emitCustomEvent.ts +65 -49
- package/src/decorators/index.ts +3 -1
- package/src/decorators/publishSwcAppMessage.ts +100 -0
- package/src/decorators/setProperty.ts +58 -44
- package/src/decorators/subscribeSwcAppMessageWhileConnected.ts +73 -0
- package/src/decorators/subscribeSwcAppRouteChangeWhileConnected.ts +71 -0
- package/src/elements/SwcAppEngine.ts +11 -12
- package/src/elements/SwcAppMixin.ts +115 -44
- package/src/elements/SwcChoose.ts +28 -7
- package/src/elements/register.ts +28 -7
- package/src/types.ts +8 -0
- package/src/utils/Utils.ts +15 -5
- package/dist/cjs/decorators/subscribeSwcAppRouteChange.js.map +0 -7
- package/dist/esm/decorators/subscribeSwcAppRouteChange.js.map +0 -7
- package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts +0 -18
- package/dist/types/decorators/subscribeSwcAppRouteChange.d.ts.map +0 -1
- package/src/decorators/subscribeSwcAppRouteChange.ts +0 -71
package/src/elements/register.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { elementDefine, attributeHost, changedAttributeHost } from '../decorators';
|
|
1
|
+
import { getElementConfig, elementDefine, attributeHost, changedAttributeHost, getAttributeValue } from '../decorators';
|
|
2
2
|
import { SwcAppMixin } from './SwcAppMixin';
|
|
3
3
|
import { SwcUtils } from '../utils/Utils';
|
|
4
4
|
import { FunctionUtils,ActionExpression } from '@dooboostore/core';
|
|
@@ -318,7 +318,9 @@ export const registerAllElements = (w: any): Record<string, Constructor<HTMLElem
|
|
|
318
318
|
|
|
319
319
|
@elementDefine('swc-choose', { extends: 'template', window: w })
|
|
320
320
|
class SwcChoose extends HTMLTemplateElement {
|
|
321
|
-
@attributeHost('value')
|
|
321
|
+
// @attributeHost('value')
|
|
322
|
+
// fetchValue: any;
|
|
323
|
+
|
|
322
324
|
_value: any;
|
|
323
325
|
|
|
324
326
|
@attributeHost('replace-wrap')
|
|
@@ -332,12 +334,29 @@ export const registerAllElements = (w: any): Record<string, Constructor<HTMLElem
|
|
|
332
334
|
}
|
|
333
335
|
|
|
334
336
|
set value(nv: any) {
|
|
335
|
-
this.
|
|
337
|
+
this._value = nv;
|
|
338
|
+
this.refresh(this._value);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
constructor() {
|
|
342
|
+
super();
|
|
343
|
+
// console.log('swc chooooooooooooooooooooooooose constructor called!');
|
|
344
|
+
// console.log('swc cccccccss', this.getAttribute('value'));
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// static get observedAttributes() {
|
|
348
|
+
// return ['value'];
|
|
349
|
+
// }
|
|
350
|
+
|
|
351
|
+
attributeChangedCallback(na, o, n) {
|
|
352
|
+
// console.log('-----------------choooooooose attr origin', na, o, n);
|
|
336
353
|
}
|
|
337
354
|
|
|
338
355
|
@changedAttributeHost('value')
|
|
339
|
-
private setValue() {
|
|
340
|
-
|
|
356
|
+
private setValue(value: any, o: string, n: string) {
|
|
357
|
+
// console.log('-----------------choooooooose attr setValue', value, o, n);
|
|
358
|
+
this._value = value;
|
|
359
|
+
this.refresh(this._value);
|
|
341
360
|
}
|
|
342
361
|
|
|
343
362
|
@changedAttributeHost('replace-wrap')
|
|
@@ -367,11 +386,13 @@ export const registerAllElements = (w: any): Record<string, Constructor<HTMLElem
|
|
|
367
386
|
return ae.getUnprocessedTemplate();
|
|
368
387
|
}
|
|
369
388
|
|
|
370
|
-
refresh(value
|
|
389
|
+
refresh(value?: any) {
|
|
390
|
+
value = getAttributeValue(this, 'value') ?? this._value;
|
|
391
|
+
// console.log('chooooooooo refresh->', value);
|
|
371
392
|
const portal = this.parentElement;
|
|
372
393
|
if (!portal) return;
|
|
373
394
|
|
|
374
|
-
const win = this.ownerDocument?.defaultView || window;
|
|
395
|
+
const win = (getElementConfig(this).window ?? this.ownerDocument?.defaultView) || window;
|
|
375
396
|
const helperSet = SwcUtils.getHelperAndHostSet(win, this);
|
|
376
397
|
const groupArgs = { ...helperSet, $value: value };
|
|
377
398
|
|
package/src/types.ts
CHANGED
|
@@ -42,6 +42,13 @@ export type HostSet = {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
export type HelperHostSet = HelperSet & HostSet & {$this: any};
|
|
45
|
+
|
|
46
|
+
export type SwcAppMessage<T = any> = {
|
|
47
|
+
publisher?: any;
|
|
48
|
+
data?: T;
|
|
49
|
+
type?: string;
|
|
50
|
+
};
|
|
51
|
+
|
|
45
52
|
export interface SwcChooseInterface extends HTMLTemplateElement {
|
|
46
53
|
value: any;
|
|
47
54
|
refresh(): void;
|
|
@@ -58,4 +65,5 @@ export interface SwcAppInterface extends HTMLElement {
|
|
|
58
65
|
reload(): void;
|
|
59
66
|
back(): void;
|
|
60
67
|
forward(): void;
|
|
68
|
+
publishMessage(message: SwcAppMessage): void;
|
|
61
69
|
}
|
package/src/utils/Utils.ts
CHANGED
|
@@ -249,8 +249,10 @@ export namespace SwcUtils {
|
|
|
249
249
|
};
|
|
250
250
|
|
|
251
251
|
export const getAppHosts = (el: HTMLElement): SwcAppInterface[] => {
|
|
252
|
-
const hosts = getHosts(el);
|
|
253
|
-
return hosts.filter(host => host.tagName.toLowerCase() === 'swc-app' || host.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];
|
|
252
|
+
// const hosts = getHosts(el);
|
|
253
|
+
// return hosts.filter(host => host.tagName.toLowerCase() === 'swc-app' || host.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];
|
|
254
|
+
const hosts = SwcUtils.findAllParentAppHostsDirect(el);
|
|
255
|
+
return hosts;
|
|
254
256
|
};
|
|
255
257
|
|
|
256
258
|
export const getAppHost = (el: HTMLElement): SwcAppInterface | undefined => {
|
|
@@ -277,7 +279,15 @@ export namespace SwcUtils {
|
|
|
277
279
|
*/
|
|
278
280
|
export const findAllParentAppHostsDirect = (el: HTMLElement): SwcAppInterface[] => {
|
|
279
281
|
const appHosts: SwcAppInterface[] = [];
|
|
280
|
-
|
|
282
|
+
|
|
283
|
+
const w = el.ownerDocument?.defaultView || ((typeof window !== 'undefined' ? window : undefined) as any);
|
|
284
|
+
|
|
285
|
+
// Guard against SSR environment where window might be undefined
|
|
286
|
+
if (!w) {
|
|
287
|
+
return appHosts;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// console.log('------?',w.ShadowRoot);
|
|
281
291
|
// el 자체부터 시작 (el이 app host일 수도 있음)
|
|
282
292
|
let current: HTMLElement | null = el;
|
|
283
293
|
|
|
@@ -296,9 +306,9 @@ export namespace SwcUtils {
|
|
|
296
306
|
} else {
|
|
297
307
|
// parentElement가 없음 = Shadow root의 직접 자식일 수 있음
|
|
298
308
|
const root = current.getRootNode();
|
|
299
|
-
if (root instanceof ShadowRoot) {
|
|
309
|
+
if (w.ShadowRoot && root instanceof w.ShadowRoot) {
|
|
300
310
|
// Shadow host로 올라가기
|
|
301
|
-
current = root.host as HTMLElement;
|
|
311
|
+
current = (root as ShadowRoot).host as HTMLElement;
|
|
302
312
|
} else {
|
|
303
313
|
// Document root 도달
|
|
304
314
|
break;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/decorators/subscribeSwcAppRouteChange.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { Router } from '@dooboostore/core-web';\n\nexport const SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY = Symbol.for('simple-web-component:subscribe-swc-app-route-change');\n\nexport interface SwcAppRouteChangeSubscriberMetadata {\n propertyKey: string | symbol;\n pathPattern?: string | string[];\n filter?: (router: Router) => boolean;\n}\n\nexport interface SwcAppRouteChangeOptions {\n path?: string | string[];\n filter?: (router: Router) => boolean;\n}\n\nfunction createSwcAppRouteChangeSubscriber(options?: SwcAppRouteChangeOptions): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const pathPattern = options?.path;\n const filter = options?.filter;\n\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, constructor) as SwcAppRouteChangeSubscriberMetadata[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, pathPattern, filter });\n \n return descriptor;\n };\n}\n\n// \uC624\uBC84\uB85C\uB4DC \uC2DC\uADF8\uB2C8\uCC98 - \uC9C1\uC811 \uC0AC\uC6A9 (\uAD04\uD638 \uC5C6\uC74C)\nexport function subscribeSwcAppRouteChange(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\n// \uC624\uBC84\uB85C\uB4DC \uC2DC\uADF8\uB2C8\uCC98 - \uD568\uC218 \uD638\uCD9C (\uAD04\uD638 \uC788\uC74C)\nexport function subscribeSwcAppRouteChange(): MethodDecorator;\nexport function subscribeSwcAppRouteChange(pathPattern: string): MethodDecorator;\nexport function subscribeSwcAppRouteChange(pathPatterns: string[]): MethodDecorator;\nexport function subscribeSwcAppRouteChange(options: SwcAppRouteChangeOptions): MethodDecorator;\n\n// \uC2E4\uC81C \uAD6C\uD604 (\uC774\uC911 \uBAA8\uB4DC)\nexport function subscribeSwcAppRouteChange(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n // \uC9C1\uC811 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0 (\uAD04\uD638 \uC5C6\uC74C): @subscribeSwcAppRouteChange\n // propertyKey\uAC00 string | symbol\uC774\uACE0 descriptor\uAC00 \uC788\uC73C\uBA74 \uC9C1\uC811 \uC0AC\uC6A9\n if (propertyKey && (typeof propertyKey === 'string' || typeof propertyKey === 'symbol')) {\n return createSwcAppRouteChangeSubscriber({})(targetOrOptions, propertyKey, descriptor);\n }\n \n // \uD568\uC218\uB85C \uD638\uCD9C\uB41C \uACBD\uC6B0 (\uAD04\uD638 \uC788\uC74C): @subscribeSwcAppRouteChange() / @subscribeSwcAppRouteChange('/path')\n let options: SwcAppRouteChangeOptions = {};\n\n if (Array.isArray(targetOrOptions)) {\n // \uBC30\uC5F4: @subscribeSwcAppRouteChange(['/path1', '/path2'])\n options.path = targetOrOptions;\n } else if (typeof targetOrOptions === 'string') {\n // \uBB38\uC790\uC5F4: @subscribeSwcAppRouteChange('/path')\n options.path = targetOrOptions;\n } else if (targetOrOptions && typeof targetOrOptions === 'object') {\n // \uAC1D\uCCB4: @subscribeSwcAppRouteChange({ path: '/path', filter: ... })\n options = targetOrOptions;\n }\n\n return createSwcAppRouteChangeSubscriber(options);\n}\n\n// Helper function to retrieve route change subscribers metadata\nexport const getSubscribeSwcAppRouteChangeMetadata = (target: any): SwcAppRouteChangeSubscriberMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getOwnMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, constructor);\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B;AAGtB,MAAM,8CAA8C,OAAO,IAAI,qDAAqD;AAa3H,SAAS,kCAAkC,SAAqD;AAC9F,SAAO,CAAC,QAAgB,aAA8B,eAAoC;AACxF,UAAM,cAAc,SAAS;AAC7B,UAAM,SAAS,SAAS;AAExB,UAAM,cAAc,OAAO;AAC3B,QAAI,OAAO,yBAAa,eAAe,6CAA6C,WAAW;AAC/F,QAAI,CAAC,MAAM;AACT,aAAO,CAAC;AACR,+BAAa,eAAe,6CAA6C,MAAM,WAAW;AAAA,IAC5F;AACA,SAAK,KAAK,EAAE,aAAa,aAAa,OAAO,CAAC;AAE9C,WAAO;AAAA,EACT;AACF;AAWO,SAAS,2BAA2B,iBAAuB,aAA+B,YAAsC;AAGrI,MAAI,gBAAgB,OAAO,gBAAgB,YAAY,OAAO,gBAAgB,WAAW;AACvF,WAAO,kCAAkC,CAAC,CAAC,EAAE,iBAAiB,aAAa,UAAU;AAAA,EACvF;AAGA,MAAI,UAAoC,CAAC;AAEzC,MAAI,MAAM,QAAQ,eAAe,GAAG;AAElC,YAAQ,OAAO;AAAA,EACjB,WAAW,OAAO,oBAAoB,UAAU;AAE9C,YAAQ,OAAO;AAAA,EACjB,WAAW,mBAAmB,OAAO,oBAAoB,UAAU;AAEjE,cAAU;AAAA,EACZ;AAEA,SAAO,kCAAkC,OAAO;AAClD;AAGO,MAAM,wCAAwC,CAAC,WAAmE;AACvH,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,yBAAa,eAAe,6CAA6C,WAAW;AAC7F;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/decorators/subscribeSwcAppRouteChange.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReflectUtils } from '@dooboostore/core';\nimport { Router } from '@dooboostore/core-web';\n\nexport const SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY = Symbol.for('simple-web-component:subscribe-swc-app-route-change');\n\nexport interface SwcAppRouteChangeSubscriberMetadata {\n propertyKey: string | symbol;\n pathPattern?: string | string[];\n filter?: (router: Router) => boolean;\n}\n\nexport interface SwcAppRouteChangeOptions {\n path?: string | string[];\n filter?: (router: Router) => boolean;\n}\n\nfunction createSwcAppRouteChangeSubscriber(options?: SwcAppRouteChangeOptions): MethodDecorator {\n return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {\n const pathPattern = options?.path;\n const filter = options?.filter;\n\n const constructor = target.constructor;\n let list = ReflectUtils.getOwnMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, constructor) as SwcAppRouteChangeSubscriberMetadata[];\n if (!list) {\n list = [];\n ReflectUtils.defineMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, list, constructor);\n }\n list.push({ propertyKey, pathPattern, filter });\n \n return descriptor;\n };\n}\n\n// \uC624\uBC84\uB85C\uB4DC \uC2DC\uADF8\uB2C8\uCC98 - \uC9C1\uC811 \uC0AC\uC6A9 (\uAD04\uD638 \uC5C6\uC74C)\nexport function subscribeSwcAppRouteChange(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;\n// \uC624\uBC84\uB85C\uB4DC \uC2DC\uADF8\uB2C8\uCC98 - \uD568\uC218 \uD638\uCD9C (\uAD04\uD638 \uC788\uC74C)\nexport function subscribeSwcAppRouteChange(): MethodDecorator;\nexport function subscribeSwcAppRouteChange(pathPattern: string): MethodDecorator;\nexport function subscribeSwcAppRouteChange(pathPatterns: string[]): MethodDecorator;\nexport function subscribeSwcAppRouteChange(options: SwcAppRouteChangeOptions): MethodDecorator;\n\n// \uC2E4\uC81C \uAD6C\uD604 (\uC774\uC911 \uBAA8\uB4DC)\nexport function subscribeSwcAppRouteChange(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {\n // \uC9C1\uC811 \uB370\uCF54\uB808\uC774\uD130\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0 (\uAD04\uD638 \uC5C6\uC74C): @subscribeSwcAppRouteChange\n // propertyKey\uAC00 string | symbol\uC774\uACE0 descriptor\uAC00 \uC788\uC73C\uBA74 \uC9C1\uC811 \uC0AC\uC6A9\n if (propertyKey && (typeof propertyKey === 'string' || typeof propertyKey === 'symbol')) {\n return createSwcAppRouteChangeSubscriber({})(targetOrOptions, propertyKey, descriptor);\n }\n \n // \uD568\uC218\uB85C \uD638\uCD9C\uB41C \uACBD\uC6B0 (\uAD04\uD638 \uC788\uC74C): @subscribeSwcAppRouteChange() / @subscribeSwcAppRouteChange('/path')\n let options: SwcAppRouteChangeOptions = {};\n\n if (Array.isArray(targetOrOptions)) {\n // \uBC30\uC5F4: @subscribeSwcAppRouteChange(['/path1', '/path2'])\n options.path = targetOrOptions;\n } else if (typeof targetOrOptions === 'string') {\n // \uBB38\uC790\uC5F4: @subscribeSwcAppRouteChange('/path')\n options.path = targetOrOptions;\n } else if (targetOrOptions && typeof targetOrOptions === 'object') {\n // \uAC1D\uCCB4: @subscribeSwcAppRouteChange({ path: '/path', filter: ... })\n options = targetOrOptions;\n }\n\n return createSwcAppRouteChangeSubscriber(options);\n}\n\n// Helper function to retrieve route change subscribers metadata\nexport const getSubscribeSwcAppRouteChangeMetadata = (target: any): SwcAppRouteChangeSubscriberMetadata[] | undefined => {\n const constructor = target instanceof Function ? target : target.constructor;\n return ReflectUtils.getOwnMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, constructor);\n};\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,oBAAoB;AAGtB,MAAM,8CAA8C,OAAO,IAAI,qDAAqD;AAa3H,SAAS,kCAAkC,SAAqD;AAC9F,SAAO,CAAC,QAAgB,aAA8B,eAAoC;AACxF,UAAM,cAAc,SAAS;AAC7B,UAAM,SAAS,SAAS;AAExB,UAAM,cAAc,OAAO;AAC3B,QAAI,OAAO,aAAa,eAAe,6CAA6C,WAAW;AAC/F,QAAI,CAAC,MAAM;AACT,aAAO,CAAC;AACR,mBAAa,eAAe,6CAA6C,MAAM,WAAW;AAAA,IAC5F;AACA,SAAK,KAAK,EAAE,aAAa,aAAa,OAAO,CAAC;AAE9C,WAAO;AAAA,EACT;AACF;AAWO,SAAS,2BAA2B,iBAAuB,aAA+B,YAAsC;AAGrI,MAAI,gBAAgB,OAAO,gBAAgB,YAAY,OAAO,gBAAgB,WAAW;AACvF,WAAO,kCAAkC,CAAC,CAAC,EAAE,iBAAiB,aAAa,UAAU;AAAA,EACvF;AAGA,MAAI,UAAoC,CAAC;AAEzC,MAAI,MAAM,QAAQ,eAAe,GAAG;AAElC,YAAQ,OAAO;AAAA,EACjB,WAAW,OAAO,oBAAoB,UAAU;AAE9C,YAAQ,OAAO;AAAA,EACjB,WAAW,mBAAmB,OAAO,oBAAoB,UAAU;AAEjE,cAAU;AAAA,EACZ;AAEA,SAAO,kCAAkC,OAAO;AAClD;AAGO,MAAM,wCAAwC,CAAC,WAAmE;AACvH,QAAM,cAAc,kBAAkB,WAAW,SAAS,OAAO;AACjE,SAAO,aAAa,eAAe,6CAA6C,WAAW;AAC7F;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Router } from '@dooboostore/core-web';
|
|
2
|
-
export declare const SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY: unique symbol;
|
|
3
|
-
export interface SwcAppRouteChangeSubscriberMetadata {
|
|
4
|
-
propertyKey: string | symbol;
|
|
5
|
-
pathPattern?: string | string[];
|
|
6
|
-
filter?: (router: Router) => boolean;
|
|
7
|
-
}
|
|
8
|
-
export interface SwcAppRouteChangeOptions {
|
|
9
|
-
path?: string | string[];
|
|
10
|
-
filter?: (router: Router) => boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare function subscribeSwcAppRouteChange(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;
|
|
13
|
-
export declare function subscribeSwcAppRouteChange(): MethodDecorator;
|
|
14
|
-
export declare function subscribeSwcAppRouteChange(pathPattern: string): MethodDecorator;
|
|
15
|
-
export declare function subscribeSwcAppRouteChange(pathPatterns: string[]): MethodDecorator;
|
|
16
|
-
export declare function subscribeSwcAppRouteChange(options: SwcAppRouteChangeOptions): MethodDecorator;
|
|
17
|
-
export declare const getSubscribeSwcAppRouteChangeMetadata: (target: any) => SwcAppRouteChangeSubscriberMetadata[] | undefined;
|
|
18
|
-
//# sourceMappingURL=subscribeSwcAppRouteChange.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscribeSwcAppRouteChange.d.ts","sourceRoot":"","sources":["../../../src/decorators/subscribeSwcAppRouteChange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,eAAO,MAAM,2CAA2C,eAAoE,CAAC;AAE7H,MAAM,WAAW,mCAAmC;IAClD,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC;AAoBD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,IAAI,CAAC;AAEpJ,wBAAgB,0BAA0B,IAAI,eAAe,CAAC;AAC9D,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAAC;AACjF,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;AACpF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,wBAAwB,GAAG,eAAe,CAAC;AA4B/F,eAAO,MAAM,qCAAqC,GAAI,QAAQ,GAAG,KAAG,mCAAmC,EAAE,GAAG,SAG3G,CAAC"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { ReflectUtils } from '@dooboostore/core';
|
|
2
|
-
import { Router } from '@dooboostore/core-web';
|
|
3
|
-
|
|
4
|
-
export const SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY = Symbol.for('simple-web-component:subscribe-swc-app-route-change');
|
|
5
|
-
|
|
6
|
-
export interface SwcAppRouteChangeSubscriberMetadata {
|
|
7
|
-
propertyKey: string | symbol;
|
|
8
|
-
pathPattern?: string | string[];
|
|
9
|
-
filter?: (router: Router) => boolean;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface SwcAppRouteChangeOptions {
|
|
13
|
-
path?: string | string[];
|
|
14
|
-
filter?: (router: Router) => boolean;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function createSwcAppRouteChangeSubscriber(options?: SwcAppRouteChangeOptions): MethodDecorator {
|
|
18
|
-
return (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => {
|
|
19
|
-
const pathPattern = options?.path;
|
|
20
|
-
const filter = options?.filter;
|
|
21
|
-
|
|
22
|
-
const constructor = target.constructor;
|
|
23
|
-
let list = ReflectUtils.getOwnMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, constructor) as SwcAppRouteChangeSubscriberMetadata[];
|
|
24
|
-
if (!list) {
|
|
25
|
-
list = [];
|
|
26
|
-
ReflectUtils.defineMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, list, constructor);
|
|
27
|
-
}
|
|
28
|
-
list.push({ propertyKey, pathPattern, filter });
|
|
29
|
-
|
|
30
|
-
return descriptor;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// 오버로드 시그니처 - 직접 사용 (괄호 없음)
|
|
35
|
-
export function subscribeSwcAppRouteChange(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor | void;
|
|
36
|
-
// 오버로드 시그니처 - 함수 호출 (괄호 있음)
|
|
37
|
-
export function subscribeSwcAppRouteChange(): MethodDecorator;
|
|
38
|
-
export function subscribeSwcAppRouteChange(pathPattern: string): MethodDecorator;
|
|
39
|
-
export function subscribeSwcAppRouteChange(pathPatterns: string[]): MethodDecorator;
|
|
40
|
-
export function subscribeSwcAppRouteChange(options: SwcAppRouteChangeOptions): MethodDecorator;
|
|
41
|
-
|
|
42
|
-
// 실제 구현 (이중 모드)
|
|
43
|
-
export function subscribeSwcAppRouteChange(targetOrOptions?: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): any {
|
|
44
|
-
// 직접 데코레이터로 사용된 경우 (괄호 없음): @subscribeSwcAppRouteChange
|
|
45
|
-
// propertyKey가 string | symbol이고 descriptor가 있으면 직접 사용
|
|
46
|
-
if (propertyKey && (typeof propertyKey === 'string' || typeof propertyKey === 'symbol')) {
|
|
47
|
-
return createSwcAppRouteChangeSubscriber({})(targetOrOptions, propertyKey, descriptor);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// 함수로 호출된 경우 (괄호 있음): @subscribeSwcAppRouteChange() / @subscribeSwcAppRouteChange('/path')
|
|
51
|
-
let options: SwcAppRouteChangeOptions = {};
|
|
52
|
-
|
|
53
|
-
if (Array.isArray(targetOrOptions)) {
|
|
54
|
-
// 배열: @subscribeSwcAppRouteChange(['/path1', '/path2'])
|
|
55
|
-
options.path = targetOrOptions;
|
|
56
|
-
} else if (typeof targetOrOptions === 'string') {
|
|
57
|
-
// 문자열: @subscribeSwcAppRouteChange('/path')
|
|
58
|
-
options.path = targetOrOptions;
|
|
59
|
-
} else if (targetOrOptions && typeof targetOrOptions === 'object') {
|
|
60
|
-
// 객체: @subscribeSwcAppRouteChange({ path: '/path', filter: ... })
|
|
61
|
-
options = targetOrOptions;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return createSwcAppRouteChangeSubscriber(options);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Helper function to retrieve route change subscribers metadata
|
|
68
|
-
export const getSubscribeSwcAppRouteChangeMetadata = (target: any): SwcAppRouteChangeSubscriberMetadata[] | undefined => {
|
|
69
|
-
const constructor = target instanceof Function ? target : target.constructor;
|
|
70
|
-
return ReflectUtils.getOwnMetadata(SUBSCRIBE_SWC_APP_ROUTE_CHANGE_METADATA_KEY, constructor);
|
|
71
|
-
};
|