@dooboostore/simple-web-component 1.0.46 → 1.0.48
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 +109 -11
- package/dist/cjs/bundle-entry.js +22 -0
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/decorators/addEventListener.js +45 -7
- package/dist/cjs/decorators/addEventListener.js.map +2 -2
- package/dist/cjs/decorators/elementDefine.js +225 -6
- package/dist/cjs/decorators/elementDefine.js.map +3 -3
- package/dist/cjs/decorators/index.js +2 -0
- package/dist/cjs/decorators/index.js.map +2 -2
- package/dist/cjs/decorators/mutationObserver.js +104 -0
- package/dist/cjs/decorators/mutationObserver.js.map +7 -0
- package/dist/cjs/decorators/query.js +13 -1
- package/dist/cjs/decorators/query.js.map +2 -2
- package/dist/cjs/decorators/resizeObserver.js +104 -0
- package/dist/cjs/decorators/resizeObserver.js.map +7 -0
- package/dist/cjs/examples/RxJSOperatorsExample.js +285 -0
- package/dist/cjs/examples/RxJSOperatorsExample.js.map +7 -0
- package/dist/esm/bundle-entry.js +8 -0
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/decorators/addEventListener.js +45 -7
- package/dist/esm/decorators/addEventListener.js.map +2 -2
- package/dist/esm/decorators/elementDefine.js +225 -6
- package/dist/esm/decorators/elementDefine.js.map +3 -3
- package/dist/esm/decorators/index.js +2 -0
- package/dist/esm/decorators/index.js.map +2 -2
- package/dist/esm/decorators/mutationObserver.js +85 -0
- package/dist/esm/decorators/mutationObserver.js.map +7 -0
- package/dist/esm/decorators/query.js +13 -1
- package/dist/esm/decorators/query.js.map +2 -2
- package/dist/esm/decorators/resizeObserver.js +85 -0
- package/dist/esm/decorators/resizeObserver.js.map +7 -0
- package/dist/esm/examples/RxJSOperatorsExample.js +266 -0
- package/dist/esm/examples/RxJSOperatorsExample.js.map +7 -0
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js +5869 -157
- package/dist/esm-bundle/dooboostore-simple-web-component.esm.js.map +4 -4
- package/dist/types/bundle-entry.d.ts +3 -0
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/decorators/addEventListener.d.ts +24 -5
- package/dist/types/decorators/addEventListener.d.ts.map +1 -1
- package/dist/types/decorators/elementDefine.d.ts +14 -0
- package/dist/types/decorators/elementDefine.d.ts.map +1 -1
- package/dist/types/decorators/index.d.ts +2 -0
- package/dist/types/decorators/index.d.ts.map +1 -1
- package/dist/types/decorators/mutationObserver.d.ts +36 -0
- package/dist/types/decorators/mutationObserver.d.ts.map +1 -0
- package/dist/types/decorators/query.d.ts +12 -0
- package/dist/types/decorators/query.d.ts.map +1 -1
- package/dist/types/decorators/resizeObserver.d.ts +37 -0
- package/dist/types/decorators/resizeObserver.d.ts.map +1 -0
- package/dist/types/examples/RxJSOperatorsExample.d.ts +94 -0
- package/dist/types/examples/RxJSOperatorsExample.d.ts.map +1 -0
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js +5886 -178
- package/dist/umd-bundle/dooboostore-simple-web-component.umd.js.map +4 -4
- package/package.json +7 -8
- package/src/bundle-entry.ts +8 -0
- package/src/decorators/addEventListener.ts +52 -9
- package/src/decorators/elementDefine.ts +330 -47
- package/src/decorators/index.ts +2 -0
- package/src/decorators/mutationObserver.ts +128 -0
- package/src/decorators/query.ts +23 -0
- package/src/decorators/resizeObserver.ts +129 -0
- package/src/examples/RxJSOperatorsExample.ts +279 -0
- package/dist/cjs/elements/tt/SwcAppMixin.js +0 -1
- package/dist/cjs/elements/tt/SwcAppMixin.js.map +0 -7
- package/dist/cjs/elements/tt/SwcAsync.js +0 -1
- package/dist/cjs/elements/tt/SwcAsync.js.map +0 -7
- package/dist/cjs/elements/tt/SwcAsyncTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcAsyncTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcChoose.js +0 -1
- package/dist/cjs/elements/tt/SwcChoose.js.map +0 -7
- package/dist/cjs/elements/tt/SwcChooseTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcChooseTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcIf.js +0 -1
- package/dist/cjs/elements/tt/SwcIf.js.map +0 -7
- package/dist/cjs/elements/tt/SwcIfTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcIfTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcLoop.js +0 -1
- package/dist/cjs/elements/tt/SwcLoop.js.map +0 -7
- package/dist/cjs/elements/tt/SwcLoopTemplate.js +0 -1
- package/dist/cjs/elements/tt/SwcLoopTemplate.js.map +0 -7
- package/dist/cjs/elements/tt/SwcSubTemplates.js +0 -1
- package/dist/cjs/elements/tt/SwcSubTemplates.js.map +0 -7
- package/dist/cjs/elements/tt/register.js +0 -1
- package/dist/cjs/elements/tt/register.js.map +0 -7
- package/dist/esm/elements/tt/SwcAppMixin.js +0 -1
- package/dist/esm/elements/tt/SwcAppMixin.js.map +0 -7
- package/dist/esm/elements/tt/SwcAsync.js +0 -1
- package/dist/esm/elements/tt/SwcAsync.js.map +0 -7
- package/dist/esm/elements/tt/SwcAsyncTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcAsyncTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcChoose.js +0 -1
- package/dist/esm/elements/tt/SwcChoose.js.map +0 -7
- package/dist/esm/elements/tt/SwcChooseTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcChooseTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcIf.js +0 -1
- package/dist/esm/elements/tt/SwcIf.js.map +0 -7
- package/dist/esm/elements/tt/SwcIfTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcIfTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcLoop.js +0 -1
- package/dist/esm/elements/tt/SwcLoop.js.map +0 -7
- package/dist/esm/elements/tt/SwcLoopTemplate.js +0 -1
- package/dist/esm/elements/tt/SwcLoopTemplate.js.map +0 -7
- package/dist/esm/elements/tt/SwcSubTemplates.js +0 -1
- package/dist/esm/elements/tt/SwcSubTemplates.js.map +0 -7
- package/dist/esm/elements/tt/register.js +0 -1
- package/dist/esm/elements/tt/register.js.map +0 -7
- package/dist/types/elements/tt/SwcAppMixin.d.ts +0 -1
- package/dist/types/elements/tt/SwcAppMixin.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcAsync.d.ts +0 -1
- package/dist/types/elements/tt/SwcAsync.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcAsyncTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcAsyncTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcChoose.d.ts +0 -1
- package/dist/types/elements/tt/SwcChoose.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcChooseTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcChooseTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcIf.d.ts +0 -1
- package/dist/types/elements/tt/SwcIf.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcIfTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcIfTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcLoop.d.ts +0 -1
- package/dist/types/elements/tt/SwcLoop.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcLoopTemplate.d.ts +0 -1
- package/dist/types/elements/tt/SwcLoopTemplate.d.ts.map +0 -1
- package/dist/types/elements/tt/SwcSubTemplates.d.ts +0 -1
- package/dist/types/elements/tt/SwcSubTemplates.d.ts.map +0 -1
- package/dist/types/elements/tt/register.d.ts +0 -1
- package/dist/types/elements/tt/register.d.ts.map +0 -1
- package/src/elements/tt/SwcAppMixin.ts +0 -13
- package/src/elements/tt/SwcAsync.ts +0 -139
- package/src/elements/tt/SwcAsyncTemplate.ts +0 -126
- package/src/elements/tt/SwcChoose.ts +0 -182
- package/src/elements/tt/SwcChooseTemplate.ts +0 -229
- package/src/elements/tt/SwcIf.ts +0 -145
- package/src/elements/tt/SwcIfTemplate.ts +0 -158
- package/src/elements/tt/SwcLoop.ts +0 -222
- package/src/elements/tt/SwcLoopTemplate.ts +0 -255
- package/src/elements/tt/SwcSubTemplates.ts +0 -6
- package/src/elements/tt/register.ts +0 -720
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dooboostore/simple-web-component",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.48",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
]
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
|
-
"description": "Simple Web Component library
|
|
16
|
+
"description": "Simple Web Component library",
|
|
17
17
|
"sideEffects": [
|
|
18
18
|
"./dist/esm/elements/*.js",
|
|
19
19
|
"./dist/esm/elements/is/*.js",
|
|
@@ -67,7 +67,10 @@
|
|
|
67
67
|
},
|
|
68
68
|
"author": "dooboostore <dooboostore@gmail.com> (https://github.com/dooboostore)",
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"reflect-metadata": "^0.2.2"
|
|
70
|
+
"reflect-metadata": "^0.2.2",
|
|
71
|
+
"@dooboostore/core": "1.0.32",
|
|
72
|
+
"@dooboostore/core-web": "1.0.13",
|
|
73
|
+
"@dooboostore/simple-boot": "1.0.57"
|
|
71
74
|
},
|
|
72
75
|
"devDependencies": {
|
|
73
76
|
"@babel/core": "^7.24.0",
|
|
@@ -91,11 +94,7 @@
|
|
|
91
94
|
"typescript": "^5.9.2",
|
|
92
95
|
"webpack": "^5.93.0",
|
|
93
96
|
"webpack-cli": "^5.1.4",
|
|
94
|
-
"webpack-dev-server": "^5.2.0"
|
|
95
|
-
"@dooboostore/core": "1.0.32",
|
|
96
|
-
"@dooboostore/core-node": "1.0.12",
|
|
97
|
-
"@dooboostore/simple-boot": "1.0.56",
|
|
98
|
-
"@dooboostore/core-web": "1.0.12"
|
|
97
|
+
"webpack-dev-server": "^5.2.0"
|
|
99
98
|
},
|
|
100
99
|
"scripts": {
|
|
101
100
|
"clean": "rm -rf dist",
|
package/src/bundle-entry.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
+
|
|
3
|
+
// simple-web-component itself
|
|
2
4
|
export * from './index';
|
|
5
|
+
|
|
6
|
+
// Re-export peer dependencies so bundle consumers can access them
|
|
7
|
+
// without separately importing each package
|
|
8
|
+
export * as Core from '@dooboostore/core';
|
|
9
|
+
export * as CoreWeb from '@dooboostore/core-web';
|
|
10
|
+
export * as SimpleBoot from '@dooboostore/simple-boot';
|
|
@@ -11,6 +11,8 @@ export interface AddEventListenerBaseOptions<TEvent extends Event = Event> exten
|
|
|
11
11
|
// removeOnDisconnected?: boolean;
|
|
12
12
|
delegate?: boolean;
|
|
13
13
|
filter?: (target: Event | CustomEvent, meta:{currentThis: any, helper: HelperHostSet}) => boolean;
|
|
14
|
+
// 리스너 제거(disconnected 또는 unmount) 시 호출되는 콜백. 첫 번째 인자는 바인딩된 타겟 element, 두 번째는 이 옵션이 속한 전체 옵션 객체(Base + SwcQuery + delegate).
|
|
15
|
+
removeListener?: (target: Element, optionValue: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }) => void;
|
|
14
16
|
// RxJS operator options
|
|
15
17
|
debounceTime?: number;
|
|
16
18
|
throttleTime?: number;
|
|
@@ -30,11 +32,31 @@ export const ADD_EVENT_LISTENER_METADATA_KEY = Symbol.for('simple-web-component:
|
|
|
30
32
|
|
|
31
33
|
export function addEventListener<TEvent extends Event = Event>(target: SpecialSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator;
|
|
32
34
|
export function addEventListener<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;
|
|
35
|
+
/**
|
|
36
|
+
* @addEventListener(type, options?) — 셀렉터 생략 시 $this(컴포넌트 자신)로 바인딩
|
|
37
|
+
*/
|
|
38
|
+
export function addEventListener<TEvent extends Event = Event>(type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }): MethodDecorator;
|
|
33
39
|
/**
|
|
34
40
|
* @addEventListener decorator to bind events to elements.
|
|
35
41
|
*/
|
|
36
|
-
export function addEventListener<TEvent extends Event = Event>(
|
|
42
|
+
export function addEventListener<TEvent extends Event = Event>(selectorOrType: EventListenerSelector | string, typeOrOptions?: string | (AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }), maybeOptions?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions & { delegate?: boolean }): MethodDecorator {
|
|
37
43
|
return (targetObj: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
|
|
44
|
+
let selector: EventListenerSelector;
|
|
45
|
+
let type: string;
|
|
46
|
+
let opts: any = {};
|
|
47
|
+
|
|
48
|
+
if (typeof typeOrOptions === 'string') {
|
|
49
|
+
// (selector, type[, options]) form — 기존 호환
|
|
50
|
+
selector = selectorOrType as EventListenerSelector;
|
|
51
|
+
type = typeOrOptions;
|
|
52
|
+
opts = maybeOptions ?? {};
|
|
53
|
+
} else {
|
|
54
|
+
// (type[, options]) form — selector 기본값 $this
|
|
55
|
+
selector = '$this';
|
|
56
|
+
type = selectorOrType as string;
|
|
57
|
+
opts = typeOrOptions ?? {};
|
|
58
|
+
}
|
|
59
|
+
|
|
38
60
|
const constructor = targetObj.constructor;
|
|
39
61
|
|
|
40
62
|
let listeners = ReflectUtils.getMetadata<AddEventListenerMetadata<TEvent>[]>(ADD_EVENT_LISTENER_METADATA_KEY, constructor);
|
|
@@ -43,7 +65,7 @@ export function addEventListener<TEvent extends Event = Event>(selectorOrTarget:
|
|
|
43
65
|
ReflectUtils.defineMetadata(ADD_EVENT_LISTENER_METADATA_KEY, listeners, constructor);
|
|
44
66
|
}
|
|
45
67
|
|
|
46
|
-
listeners.push({ propertyKey, selector
|
|
68
|
+
listeners.push({ propertyKey, selector, type, options: opts });
|
|
47
69
|
};
|
|
48
70
|
}
|
|
49
71
|
|
|
@@ -62,16 +84,23 @@ export function addEventListenerDelegate<TEvent extends Event = Event>(selector:
|
|
|
62
84
|
return addEventListener<TEvent>(selector, type, {...options??{}, root:'auto', delegate: true});
|
|
63
85
|
}
|
|
64
86
|
|
|
87
|
+
// ─── root별 일반 헬퍼 (delegate 없음) ───
|
|
88
|
+
|
|
89
|
+
export function addEventListenerLightDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator {
|
|
90
|
+
return addEventListener<TEvent>(selector, type, {...options??{}, root:'light'});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function addEventListenerShadowDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator {
|
|
94
|
+
return addEventListener<TEvent>(selector, type, {...options??{}, root:'shadow'});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function addEventListenerAllDom<TEvent extends Event = Event>(selector: EventListenerSelector, type: string, options?: AddEventListenerBaseOptions<TEvent>): MethodDecorator {
|
|
98
|
+
return addEventListener<TEvent>(selector, type, {...options??{}, root:'all'});
|
|
99
|
+
}
|
|
100
|
+
|
|
65
101
|
/**
|
|
66
102
|
* @addEventListenerThis decorator - simplified version of @addEventListener for $this selector
|
|
67
103
|
*/
|
|
68
|
-
|
|
69
|
-
// --- Aliases: event... ---
|
|
70
|
-
export const event = addEventListener;
|
|
71
|
-
export const eventDelegateLightDom = addEventListenerDelegateLightDom;
|
|
72
|
-
export const eventDelegateShadowDom = addEventListenerDelegateShadowDom;
|
|
73
|
-
export const eventDelegateAllDom = addEventListenerDelegateAllDom;
|
|
74
|
-
export const eventDelegate = addEventListenerDelegate;
|
|
75
104
|
export function addEventListenerThis<TEvent extends Event = Event>(type: string, options?: AddEventListenerBaseOptions<TEvent> & SwcQueryOptions): MethodDecorator {
|
|
76
105
|
return addEventListener<TEvent>('$this', type, options);
|
|
77
106
|
}
|
|
@@ -90,6 +119,20 @@ export function addEventListenerDocument<TEvent extends Event = Event>(type: str
|
|
|
90
119
|
return addEventListener<TEvent>('$document', type, options);
|
|
91
120
|
}
|
|
92
121
|
|
|
122
|
+
// --- Aliases: event... ---
|
|
123
|
+
export const event = addEventListener;
|
|
124
|
+
export const eventDelegateLightDom = addEventListenerDelegateLightDom;
|
|
125
|
+
export const eventDelegateShadowDom = addEventListenerDelegateShadowDom;
|
|
126
|
+
export const eventDelegateAllDom = addEventListenerDelegateAllDom;
|
|
127
|
+
export const eventDelegate = addEventListenerDelegate;
|
|
128
|
+
export const eventLightDom = addEventListenerLightDom;
|
|
129
|
+
export const eventShadowDom = addEventListenerShadowDom;
|
|
130
|
+
export const eventAllDom = addEventListenerAllDom;
|
|
131
|
+
export const eventAppHost = addEventListenerAppHost;
|
|
132
|
+
export const eventWindow = addEventListenerWindow;
|
|
133
|
+
export const eventDocument = addEventListenerDocument;
|
|
134
|
+
export const eventThis = addEventListenerThis;
|
|
135
|
+
|
|
93
136
|
export const getAddEventListenerMetadata = (target: any): AddEventListenerMetadata<Event>[] | undefined => {
|
|
94
137
|
const constructor = target instanceof Function ? target : target.constructor;
|
|
95
138
|
return ReflectUtils.getMetadata(ADD_EVENT_LISTENER_METADATA_KEY, constructor);
|