@dooboostore/simple-web-component 1.0.29 → 1.0.31
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 +651 -27
- package/dist/cjs/decorators/elementDefine.js +5 -3
- package/dist/cjs/decorators/elementDefine.js.map +2 -2
- package/dist/cjs/decorators/emitCustomEvent.js.map +2 -2
- package/dist/cjs/decorators/index.js +1 -0
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/setProperty.js +97 -0
- package/dist/cjs/decorators/setProperty.js.map +7 -0
- package/dist/cjs/elements/SwcAppEngine.js +3 -3
- package/dist/cjs/elements/SwcAppEngine.js.map +2 -2
- package/dist/cjs/elements/SwcAppMixin.js +1 -8
- package/dist/cjs/elements/SwcAppMixin.js.map +2 -2
- package/dist/cjs/elements/SwcAsync.js +37 -53
- package/dist/cjs/elements/SwcAsync.js.map +2 -2
- package/dist/cjs/elements/SwcChoose.js +55 -60
- package/dist/cjs/elements/SwcChoose.js.map +2 -2
- package/dist/cjs/elements/SwcIf.js +31 -60
- package/dist/cjs/elements/SwcIf.js.map +2 -2
- package/dist/cjs/elements/SwcLoop.js +20 -43
- package/dist/cjs/elements/SwcLoop.js.map +2 -2
- package/dist/cjs/elements/SwcSubTemplates.js +0 -27
- package/dist/cjs/elements/SwcSubTemplates.js.map +2 -2
- package/dist/cjs/elements/register.js +216 -128
- package/dist/cjs/elements/register.js.map +2 -2
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/router/ElementRouter.js +1 -8
- package/dist/cjs/router/ElementRouter.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/Utils.js +26 -10
- package/dist/cjs/utils/Utils.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +5 -3
- package/dist/esm/decorators/elementDefine.js.map +2 -2
- package/dist/esm/decorators/emitCustomEvent.js.map +2 -2
- package/dist/esm/decorators/index.js +1 -0
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/setProperty.js +78 -0
- package/dist/esm/decorators/setProperty.js.map +7 -0
- package/dist/esm/elements/SwcAppEngine.js +3 -3
- package/dist/esm/elements/SwcAppEngine.js.map +2 -2
- package/dist/esm/elements/SwcAppMixin.js +1 -8
- package/dist/esm/elements/SwcAppMixin.js.map +2 -2
- package/dist/esm/elements/SwcAsync.js +37 -34
- package/dist/esm/elements/SwcAsync.js.map +2 -2
- package/dist/esm/elements/SwcChoose.js +55 -41
- package/dist/esm/elements/SwcChoose.js.map +2 -2
- package/dist/esm/elements/SwcIf.js +31 -41
- package/dist/esm/elements/SwcIf.js.map +2 -2
- package/dist/esm/elements/SwcLoop.js +20 -24
- package/dist/esm/elements/SwcLoop.js.map +2 -2
- package/dist/esm/elements/SwcSubTemplates.js +0 -8
- package/dist/esm/elements/SwcSubTemplates.js.map +2 -2
- package/dist/esm/elements/register.js +216 -128
- package/dist/esm/elements/register.js.map +2 -2
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/router/ElementRouter.js +1 -8
- package/dist/esm/router/ElementRouter.js.map +2 -2
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/Utils.js +26 -10
- package/dist/esm/utils/Utils.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +105 -13
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/emitCustomEvent.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +1 -0
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/setProperty.d.ts +13 -0
- package/dist/types/decorators/setProperty.d.ts.map +1 -0
- package/dist/types/elements/SwcAppMixin.d.ts.map +1 -1
- package/dist/types/elements/SwcAsync.d.ts +1 -11
- package/dist/types/elements/SwcAsync.d.ts.map +1 -1
- package/dist/types/elements/SwcChoose.d.ts +1 -13
- package/dist/types/elements/SwcChoose.d.ts.map +1 -1
- package/dist/types/elements/SwcIf.d.ts +1 -13
- package/dist/types/elements/SwcIf.d.ts.map +1 -1
- package/dist/types/elements/SwcLoop.d.ts +1 -13
- package/dist/types/elements/SwcLoop.d.ts.map +1 -1
- package/dist/types/elements/SwcSubTemplates.d.ts +6 -6
- package/dist/types/elements/SwcSubTemplates.d.ts.map +1 -1
- package/dist/types/elements/register.d.ts +3 -1
- package/dist/types/elements/register.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/router/ElementRouter.d.ts.map +1 -1
- package/dist/types/types.d.ts +3 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/Utils.d.ts +10 -0
- package/dist/types/utils/Utils.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +105 -13
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +3 -3
- package/src/decorators/elementDefine.ts +10 -3
- package/src/decorators/emitCustomEvent.ts +1 -0
- package/src/decorators/index.ts +1 -0
- package/src/decorators/setProperty.ts +97 -0
- package/src/elements/SwcAppEngine.ts +3 -3
- package/src/elements/SwcAppMixin.ts +7 -28
- package/src/elements/SwcAsync.ts +46 -30
- package/src/elements/SwcChoose.ts +82 -38
- package/src/elements/SwcIf.ts +38 -38
- package/src/elements/SwcLoop.ts +24 -19
- package/src/elements/SwcSubTemplates.ts +6 -6
- package/src/elements/register.ts +261 -121
- package/src/index.ts +3 -1
- package/src/router/ElementRouter.ts +1 -12
- package/src/types.ts +3 -1
- package/src/utils/Utils.ts +40 -19
package/src/utils/Utils.ts
CHANGED
|
@@ -148,6 +148,27 @@ export const htmlArticleElement = (options?: { doc?: Document; attrs?: Record<st
|
|
|
148
148
|
};
|
|
149
149
|
|
|
150
150
|
export namespace SwcUtils {
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
export const parsePathPatternsSetAttributeString = (pathPattern: string[], path: string) => {
|
|
154
|
+
return JSON.stringify(SwcUtils.parsePathPatternsSet(pathPattern, path)).replace(/"/g, "'");
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export const parsePathPatternsSet = (pathPattern: string[], path: string) => {
|
|
158
|
+
return {
|
|
159
|
+
path: path,
|
|
160
|
+
pathData: SwcUtils.parsePathPatterns(pathPattern, path)
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
export const parsePathPatterns = (pathPattern: string[], path: string) => {
|
|
164
|
+
for (const pattern of pathPattern) {
|
|
165
|
+
const data = SwcUtils.parsePathPattern(pattern, path || '/');
|
|
166
|
+
if (data !== null) {
|
|
167
|
+
return data;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
151
172
|
export const getHelperSet = (win: Window): HelperSet => {
|
|
152
173
|
const doc: Document = win.document;
|
|
153
174
|
return {
|
|
@@ -255,32 +276,31 @@ export namespace SwcUtils {
|
|
|
255
276
|
export const findAllParentAppHostsDirect = (el: HTMLElement): SwcAppInterface[] => {
|
|
256
277
|
const appHosts: SwcAppInterface[] = [];
|
|
257
278
|
|
|
258
|
-
//
|
|
259
|
-
let current: HTMLElement | null =
|
|
260
|
-
|
|
261
|
-
if (rootNode instanceof ShadowRoot) {
|
|
262
|
-
// Element is inside shadow DOM, start from shadow root's host
|
|
263
|
-
current = (rootNode as any).host as HTMLElement;
|
|
264
|
-
} else {
|
|
265
|
-
// Element is in light DOM, start from parent
|
|
266
|
-
current = el.parentElement;
|
|
267
|
-
}
|
|
268
|
-
|
|
279
|
+
// el 자체부터 시작 (el이 app host일 수도 있음)
|
|
280
|
+
let current: HTMLElement | null = el;
|
|
281
|
+
|
|
269
282
|
while (current) {
|
|
270
|
-
// console.log('vvvvvvv');
|
|
271
|
-
// alert(1)
|
|
272
|
-
// debugger;
|
|
273
283
|
const isAppHost =
|
|
274
|
-
current.tagName.toLowerCase() === 'swc-app' ||
|
|
284
|
+
current.tagName.toLowerCase() === 'swc-app' ||
|
|
275
285
|
current.getAttribute('is')?.startsWith('swc-app-');
|
|
276
286
|
if (isAppHost) {
|
|
277
287
|
appHosts.push(current as SwcAppInterface);
|
|
278
288
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
289
|
+
|
|
290
|
+
// 다음 부모 찾기
|
|
291
|
+
if (current.parentElement) {
|
|
292
|
+
// Light DOM: 정상적인 부모 요소
|
|
283
293
|
current = current.parentElement;
|
|
294
|
+
} else {
|
|
295
|
+
// parentElement가 없음 = Shadow root의 직접 자식일 수 있음
|
|
296
|
+
const root = current.getRootNode();
|
|
297
|
+
if (root instanceof ShadowRoot) {
|
|
298
|
+
// Shadow host로 올라가기
|
|
299
|
+
current = root.host as HTMLElement;
|
|
300
|
+
} else {
|
|
301
|
+
// Document root 도달
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
284
304
|
}
|
|
285
305
|
}
|
|
286
306
|
return appHosts.reverse(); // [root, ..., closest-parent]
|
|
@@ -316,6 +336,7 @@ export namespace SwcUtils {
|
|
|
316
336
|
}
|
|
317
337
|
|
|
318
338
|
const $appHosts = SwcUtils.findAllParentAppHostsDirect(el); //$hosts.filter(h => h.tagName.toLowerCase() === 'swc-app' || h.getAttribute('is')?.startsWith('swc-app-')) as SwcAppInterface[];
|
|
339
|
+
// console.log('apphosts00000000', $appHosts)
|
|
319
340
|
const $appHost = $appHosts.length > 0 ? ($appHosts[$appHosts.length - 1] === el ? ($appHosts.length > 1 ? $appHosts[$appHosts.length - 2] : null) : $appHosts[$appHosts.length - 1]) : null;
|
|
320
341
|
const $firstAppHost = $appHosts.length > 0 ? $appHosts[0] : null;
|
|
321
342
|
|