@twobirds/microcomponents 0.0.34 → 0.0.39
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 +40 -27
- package/assets/documentation/{MicroComponents.md → MC.md} +17 -17
- package/assets/documentation/comparision.md +0 -0
- package/assets/documentation/elements.md +276 -0
- package/assets/documentation/magic.md +10 -68
- package/assets/my-tag.css +6 -2
- package/dist/MC.d.ts +3 -4
- package/dist/MC.d.ts.map +1 -1
- package/dist/MC.min.js +89 -66
- package/dist/MC.ts +213 -178
- package/dist/autoloader.ts +1 -1
- package/dist/{customElements.d.ts → elements.d.ts} +1 -1
- package/dist/elements.d.ts.map +1 -0
- package/dist/elements.min.js +1 -0
- package/dist/{customElements.ts → elements.ts} +23 -14
- package/dist/helpers.d.ts +6 -4
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.ts +95 -128
- package/dist/microcomponents.d.ts +3 -3
- package/dist/microcomponents.d.ts.map +1 -1
- package/dist/microcomponents.min.js +1 -1
- package/dist/microcomponents.ts +3 -3
- package/dist/{customObservables.d.ts → observables.d.ts} +3 -3
- package/dist/observables.d.ts.map +1 -0
- package/dist/observables.min.js +1 -0
- package/dist/observables.ts +353 -0
- package/dist/{customSelectors.d.ts → selectors.d.ts} +1 -1
- package/dist/selectors.d.ts.map +1 -0
- package/dist/selectors.min.js +1 -0
- package/dist/test.ts +135 -156
- package/klemmstein.png +0 -0
- package/package.json +52 -52
- package/public/MC.js +90 -67
- package/public/MC.js.map +1 -1
- package/public/MC.min.js +89 -66
- package/public/assets/search.js +1 -1
- package/public/autoloader.js +1 -1
- package/public/autoloader.js.map +1 -1
- package/public/classes/{DC.html → MC.DC.html} +60 -59
- package/public/classes/{MC.html → MC.MC.html} +41 -35
- package/public/classes/{McBase.html → MC.McBase.html} +28 -20
- package/public/classes/{McEvent.html → MC.McEvent.html} +48 -42
- package/public/documentation/{MicroComponents.md → MC.md} +17 -17
- package/public/documentation/comparision.md +0 -0
- package/public/documentation/elements.md +276 -0
- package/public/documentation/magic.md +10 -68
- package/public/{customElements.js → elements.js} +9 -10
- package/public/elements.js.map +1 -0
- package/public/elements.min.js +1 -0
- package/public/functions/{addListener.html → MC.addListener.html} +18 -12
- package/public/functions/{removeListener.html → MC.removeListener.html} +18 -12
- package/public/functions/elements.defineCE.html +78 -0
- package/public/functions/elements.getCE.html +63 -0
- package/public/functions/formValues.formValues.html +68 -0
- package/public/functions/observables.observe.html +65 -0
- package/public/functions/selectors._d.html +69 -0
- package/public/functions/selectors._t.html +69 -0
- package/public/helpers.js +66 -89
- package/public/helpers.js.map +1 -1
- package/public/index.html +48 -33
- package/public/interfaces/{HTMLMcElement.html → MC.HTMLMcElement.html} +601 -595
- package/public/interfaces/selectors.DSelector.html +1013 -0
- package/public/interfaces/selectors.TSelector.html +712 -0
- package/public/microcomponents.js +3 -3
- package/public/microcomponents.js.map +1 -1
- package/public/microcomponents.min.js +1 -1
- package/public/modules/MC.html +78 -0
- package/public/modules/elements.html +62 -0
- package/public/modules/formValues.html +60 -0
- package/public/modules/observables.html +65 -0
- package/public/modules/selectors.html +76 -0
- package/public/modules.html +11 -23
- package/public/my-tag.css +6 -2
- package/public/observables.js +259 -0
- package/public/observables.js.map +1 -0
- package/public/observables.min.js +1 -0
- package/public/{customSelectors.js → selectors.js} +1 -1
- package/public/selectors.js.map +1 -0
- package/public/selectors.min.js +1 -0
- package/public/src/MC.ts +413 -0
- package/public/src/McEvent.ts +96 -0
- package/public/src/autoloader.ts +98 -0
- package/{src/customElements.ts → public/src/elements.ts} +23 -14
- package/public/src/formValues.ts +275 -0
- package/public/src/helpers.ts +140 -0
- package/public/src/microcomponents.ts +8 -0
- package/public/src/observables.ts +353 -0
- package/public/src/test.ts +190 -0
- package/public/test.js +93 -118
- package/public/test.js.map +1 -1
- package/public/types/observables.Observable.html +91 -0
- package/public/types/selectors.selection.html +58 -0
- package/public/types/selectors.singleSelector.html +58 -0
- package/src/MC.ts +213 -178
- package/src/autoloader.ts +1 -1
- package/src/elements.ts +76 -0
- package/src/helpers.ts +95 -128
- package/src/microcomponents.ts +3 -3
- package/src/observables.ts +353 -0
- package/src/selectors.ts +1634 -0
- package/src/test.ts +135 -156
- package/typedoc.json +1 -1
- package/webpack.config.js +9 -9
- package/dist/customElements.d.ts.map +0 -1
- package/dist/customElements.min.js +0 -1
- package/dist/customObservables.d.ts.map +0 -1
- package/dist/customObservables.min.js +0 -1
- package/dist/customObservables.ts +0 -348
- package/dist/customSelectors.d.ts.map +0 -1
- package/dist/customSelectors.min.js +0 -1
- package/public/customElements.js.map +0 -1
- package/public/customElements.min.js +0 -1
- package/public/customObservables.js +0 -256
- package/public/customObservables.js.map +0 -1
- package/public/customObservables.min.js +0 -1
- package/public/customSelectors.js.map +0 -1
- package/public/customSelectors.min.js +0 -1
- package/src/customObservables.ts +0 -348
- /package/dist/{customSelectors.ts → selectors.ts} +0 -0
- /package/{src/customSelectors.ts → public/src/selectors.ts} +0 -0
package/public/MC.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
import { McEvent } from './McEvent.js';
|
|
3
|
-
var isBrowser = new Function(
|
|
3
|
+
var isBrowser = new Function('try {return this===window;}catch(e){ return false;}');
|
|
4
4
|
let nativeEventNames = new Set();
|
|
5
5
|
// HTMLElement native event names
|
|
6
6
|
if (isBrowser()) {
|
|
7
|
-
Object.keys(HTMLElement.prototype)
|
|
7
|
+
Object.keys(HTMLElement.prototype)
|
|
8
|
+
.filter((key) => /^on/.test(key))
|
|
9
|
+
.forEach((eventName) => nativeEventNames.add(eventName));
|
|
8
10
|
}
|
|
9
11
|
// get all microcomponents from a list of HTMLElements
|
|
10
12
|
function getMicroComponents(elements, search) {
|
|
11
13
|
let mcValues = [];
|
|
12
|
-
elements.forEach(e => {
|
|
14
|
+
elements.forEach((e) => {
|
|
13
15
|
if (e) {
|
|
14
16
|
if (e instanceof HTMLElement) {
|
|
15
17
|
const _mc = e?._mc;
|
|
@@ -91,44 +93,51 @@ function remove(target, key) {
|
|
|
91
93
|
delete _mc[key];
|
|
92
94
|
}
|
|
93
95
|
// remove the _mc attribute if the DOM collection is empty
|
|
94
|
-
if (!Object.keys(_mc).length &&
|
|
96
|
+
if (!Object.keys(_mc).length &&
|
|
97
|
+
target instanceof HTMLElement &&
|
|
98
|
+
target.hasAttribute('_mc')) {
|
|
95
99
|
target.removeAttribute('_mc');
|
|
96
100
|
}
|
|
97
101
|
return;
|
|
98
102
|
}
|
|
99
103
|
// trigger an event
|
|
100
|
-
function trigger(target, ev, data = {}) {
|
|
104
|
+
function trigger(target, ev, data = {}, bubble = 'l') {
|
|
101
105
|
let _mc = target?._mc;
|
|
102
106
|
if (!_mc)
|
|
103
107
|
return;
|
|
108
|
+
let event = ev instanceof McEvent
|
|
109
|
+
? new McEvent(ev.type, ev.data, 'l')
|
|
110
|
+
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string' ? ev : new McEvent(ev, data, bubble);
|
|
104
111
|
[...Object.values(_mc)].forEach((mc) => {
|
|
105
112
|
//console.log( 'mc [', mc.constructor.name, ']', mc.constructor.prototype?.oneInit );
|
|
106
113
|
if (mc?.trigger && typeof mc?.trigger === 'function') {
|
|
107
|
-
mc?.trigger(
|
|
114
|
+
mc?.trigger(event);
|
|
108
115
|
}
|
|
109
116
|
});
|
|
117
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
118
|
+
bubbleEvent(target, mcEvent);
|
|
119
|
+
}
|
|
110
120
|
return;
|
|
111
121
|
}
|
|
112
|
-
// run the "init" lifecycle event on the
|
|
122
|
+
// run the "init" lifecycle event on the complete _mc structure
|
|
113
123
|
function init(element) {
|
|
114
124
|
if (element.constructor === DC)
|
|
115
125
|
return;
|
|
116
126
|
setTimeout(() => {
|
|
117
127
|
element.trigger('Init');
|
|
118
|
-
|
|
119
|
-
let keys = Object.keys(element?._mc);
|
|
120
|
-
if (keys.length)
|
|
128
|
+
/*
|
|
129
|
+
let keys = Object.keys( ( element as any)?._mc );
|
|
130
|
+
if ( keys.length ){
|
|
121
131
|
//console.log( 'inner Inits on [', mc.constructor.name, ']', keys );
|
|
122
|
-
keys?.forEach((key) => {
|
|
123
|
-
let mc = element?._mc?.[key];
|
|
132
|
+
keys?.forEach( (key: string) => {
|
|
133
|
+
let mc = ( element as any)?._mc?.[key];
|
|
124
134
|
//console.log( key, typeof mc?.oneInit, mc );
|
|
125
|
-
if (mc['oneInit'] &&
|
|
126
|
-
mc.oneInit(new McEvent('Init'));
|
|
135
|
+
if ( ( mc as any )['oneInit'] && typeof ( mc as any ).oneInit == 'function' ){
|
|
136
|
+
( mc as any ).oneInit( new McEvent('Init') );
|
|
127
137
|
}
|
|
128
138
|
});
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
}, 0);
|
|
139
|
+
};
|
|
140
|
+
*/
|
|
132
141
|
}, 0);
|
|
133
142
|
}
|
|
134
143
|
function autoAttachListeners(element) {
|
|
@@ -137,13 +146,14 @@ function autoAttachListeners(element) {
|
|
|
137
146
|
const target = element.target;
|
|
138
147
|
if (target instanceof HTMLElement) {
|
|
139
148
|
let that = element;
|
|
140
|
-
Object
|
|
141
|
-
.
|
|
142
|
-
|
|
143
|
-
.forEach(key => {
|
|
149
|
+
Object.getOwnPropertyNames(that.constructor.prototype)
|
|
150
|
+
.filter((key) => /^on[A-Z]|one[A-Z]/.test(key) &&
|
|
151
|
+
typeof that.constructor.prototype[key] === 'function')
|
|
152
|
+
.forEach((key) => {
|
|
144
153
|
let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), // preserves upper/lowercase for non-native events
|
|
145
|
-
nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
146
|
-
|
|
154
|
+
nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
155
|
+
that.trigger(withoutOnOne, ev);
|
|
156
|
+
};
|
|
147
157
|
if (once) {
|
|
148
158
|
// console.log( '...is only called once', that.constructor.prototype[key] );
|
|
149
159
|
Object.defineProperty(element, 'on' + withoutOnOne, {
|
|
@@ -152,20 +162,49 @@ function autoAttachListeners(element) {
|
|
|
152
162
|
writable: true,
|
|
153
163
|
value: (ev) => {
|
|
154
164
|
// console.log( 'onceHandler execute:', that.constructor.prototype[key] );
|
|
155
|
-
|
|
156
|
-
}
|
|
165
|
+
that.constructor.prototype[key].bind(that)(ev);
|
|
166
|
+
},
|
|
157
167
|
});
|
|
158
168
|
}
|
|
159
|
-
if (nativeEventNames.has('on' + nativeEventName)) {
|
|
169
|
+
if (nativeEventNames.has('on' + nativeEventName)) {
|
|
170
|
+
// native event defined in HTMLElement
|
|
160
171
|
// console.log('added as native listener', target, nativeEventName );
|
|
161
172
|
addListener(target, nativeEventName, listener, false, once);
|
|
162
173
|
}
|
|
163
174
|
});
|
|
164
175
|
}
|
|
165
176
|
}
|
|
177
|
+
function bubbleEvent(target, ev) {
|
|
178
|
+
// at this point, either 'u' or 'd' bubbling should be indicated
|
|
179
|
+
// mcEvent bubbling is asynchronous, and the order of target MC execution in case of multiple matches is not guaranteed!
|
|
180
|
+
if (/[ud]/.test(ev.bubble)) {
|
|
181
|
+
setTimeout(() => {
|
|
182
|
+
// bubbling must include 'l' for local, or else no handlers are executed'
|
|
183
|
+
if (ev.bubble.indexOf('l') === -1) {
|
|
184
|
+
ev.bubble += 'l';
|
|
185
|
+
}
|
|
186
|
+
// bubble up towards root
|
|
187
|
+
if (ev.bubble.indexOf('u') > -1) {
|
|
188
|
+
let parent = traverseNodes(target, '', true)?.[0].target;
|
|
189
|
+
if (parent)
|
|
190
|
+
DC.trigger(parent, ev);
|
|
191
|
+
}
|
|
192
|
+
// bubble down
|
|
193
|
+
if (ev.bubble.indexOf('d') > -1) {
|
|
194
|
+
let targets = new Set(target._mc
|
|
195
|
+
.children()
|
|
196
|
+
.map((c) => c?.target));
|
|
197
|
+
targets.forEach((target) => {
|
|
198
|
+
if (target)
|
|
199
|
+
DC.trigger(target, ev);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}, 0);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
166
205
|
class McBase {
|
|
167
206
|
#target; // avoid circular reference
|
|
168
|
-
constructor(target) {
|
|
207
|
+
constructor(target, debug = false) {
|
|
169
208
|
let that = this, element = that;
|
|
170
209
|
this.#target = new WeakRef(target || {});
|
|
171
210
|
init(element); // async lifecycle event
|
|
@@ -181,30 +220,40 @@ class MC extends McBase {
|
|
|
181
220
|
super(target);
|
|
182
221
|
}
|
|
183
222
|
static trigger = trigger;
|
|
184
|
-
trigger(ev, data = {}, bubble) {
|
|
223
|
+
trigger(ev, data = {}, bubble = 'l') {
|
|
185
224
|
let that = this;
|
|
186
225
|
//console.log( that, '.trigger(', ev, data, bubble, ')' );
|
|
187
|
-
bubble = bubble || 'l';
|
|
188
226
|
// run all triggers
|
|
189
227
|
if (that.constructor === MC || that.constructor === DC) {
|
|
228
|
+
let event = ev instanceof McEvent
|
|
229
|
+
? new McEvent(ev.type, ev.data, 'l')
|
|
230
|
+
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string'
|
|
231
|
+
? ev
|
|
232
|
+
: new McEvent(ev, data, bubble);
|
|
190
233
|
[...Object.getOwnPropertyNames(that)].forEach((mc) => {
|
|
191
|
-
if (that[mc]?.trigger &&
|
|
192
|
-
that[mc]?.trigger
|
|
234
|
+
if (that[mc]?.trigger &&
|
|
235
|
+
typeof that[mc]?.trigger === 'function') {
|
|
236
|
+
that[mc]?.trigger(event);
|
|
193
237
|
}
|
|
194
238
|
});
|
|
239
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
240
|
+
bubbleEvent(that.target, mcEvent);
|
|
241
|
+
}
|
|
195
242
|
return; // must return here!
|
|
196
243
|
}
|
|
197
244
|
// only this instance
|
|
198
245
|
if (that instanceof MC || that instanceof DC) {
|
|
199
|
-
const that = this, mcEvent = typeof ev !== 'string'
|
|
200
|
-
|
|
246
|
+
const that = this, mcEvent = typeof ev !== 'string'
|
|
247
|
+
? ev
|
|
248
|
+
: new McEvent(ev, data, bubble), handlerName = 'on' + mcEvent.type[0].toUpperCase() + mcEvent.type.slice(1);
|
|
201
249
|
// console.log('trigger', handlerName, mcEvent, data, bubble );
|
|
202
250
|
if (mcEvent.bubble.indexOf('l') > -1) {
|
|
203
|
-
if (!mcEvent.immediateStopped
|
|
204
|
-
|
|
251
|
+
if (!mcEvent.immediateStopped &&
|
|
252
|
+
typeof that[handlerName] === 'function') {
|
|
205
253
|
// console.log( 'execute handler:', handlerName );
|
|
206
254
|
that[handlerName](mcEvent);
|
|
207
|
-
if (that.hasOwnProperty(handlerName)) {
|
|
255
|
+
if (that.hasOwnProperty(handlerName)) {
|
|
256
|
+
// it is a once handler
|
|
208
257
|
delete that[handlerName]; // remove after first execution
|
|
209
258
|
}
|
|
210
259
|
}
|
|
@@ -213,49 +262,24 @@ class MC extends McBase {
|
|
|
213
262
|
if (mcEvent.stopped || mcEvent.bubble === 'l') {
|
|
214
263
|
return that;
|
|
215
264
|
}
|
|
216
|
-
//
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
setTimeout(() => {
|
|
220
|
-
// bubbling must include 'l' for local, or else no handlers are executed'
|
|
221
|
-
if (mcEvent.bubble.indexOf('l') === -1) {
|
|
222
|
-
mcEvent.bubble += 'l';
|
|
223
|
-
}
|
|
224
|
-
// bubble up towards root
|
|
225
|
-
if (mcEvent.bubble.indexOf('u') > -1) {
|
|
226
|
-
that
|
|
227
|
-
.parent()
|
|
228
|
-
.forEach((mc) => {
|
|
229
|
-
mc instanceof MC ? mc.trigger(mcEvent) : null;
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
// bubble down
|
|
233
|
-
if (mcEvent.bubble.indexOf('d') > -1) {
|
|
234
|
-
that
|
|
235
|
-
.children()
|
|
236
|
-
.forEach((mc) => {
|
|
237
|
-
mc instanceof MC ? mc.trigger(mcEvent) : null;
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
}, 0);
|
|
265
|
+
//console.log('bubble', mcEvent);
|
|
266
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
267
|
+
bubbleEvent(that.target, mcEvent);
|
|
241
268
|
}
|
|
242
269
|
}
|
|
243
270
|
}
|
|
244
271
|
}
|
|
245
|
-
;
|
|
246
272
|
class DC extends McBase {
|
|
247
273
|
_mc = {};
|
|
248
|
-
constructor(target) {
|
|
274
|
+
constructor(target, debug = false) {
|
|
249
275
|
super(target);
|
|
250
276
|
}
|
|
251
|
-
static debug = false;
|
|
252
277
|
static add = add;
|
|
253
278
|
static remove = remove;
|
|
254
279
|
static trigger = trigger;
|
|
255
280
|
trigger(ev, data = {}, bubble) {
|
|
256
281
|
MC.prototype.trigger.call(this, ev, data, bubble);
|
|
257
282
|
}
|
|
258
|
-
;
|
|
259
283
|
parent(search = '') {
|
|
260
284
|
let target = this.target;
|
|
261
285
|
if (!isDOM(target))
|
|
@@ -288,6 +312,5 @@ class DC extends McBase {
|
|
|
288
312
|
return getMicroComponents([...myDomElements], search);
|
|
289
313
|
}
|
|
290
314
|
}
|
|
291
|
-
;
|
|
292
315
|
export { addListener, removeListener, McBase, MC, DC, McEvent };
|
|
293
316
|
//# sourceMappingURL=MC.js.map
|
package/public/MC.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MC.js","sourceRoot":"","sources":["../src/MC.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MC.js","sourceRoot":"","sources":["../src/MC.ts"],"names":[],"mappings":"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"}
|
package/public/MC.min.js
CHANGED
|
@@ -136,16 +136,18 @@ function traverseNodes(node, search, firstonly = true) {
|
|
|
136
136
|
;// ./build/MC.js
|
|
137
137
|
|
|
138
138
|
|
|
139
|
-
var MC_isBrowser = new Function(
|
|
139
|
+
var MC_isBrowser = new Function('try {return this===window;}catch(e){ return false;}');
|
|
140
140
|
let MC_nativeEventNames = new Set();
|
|
141
141
|
// HTMLElement native event names
|
|
142
142
|
if (MC_isBrowser()) {
|
|
143
|
-
Object.keys(HTMLElement.prototype)
|
|
143
|
+
Object.keys(HTMLElement.prototype)
|
|
144
|
+
.filter((key) => /^on/.test(key))
|
|
145
|
+
.forEach((eventName) => MC_nativeEventNames.add(eventName));
|
|
144
146
|
}
|
|
145
147
|
// get all microcomponents from a list of HTMLElements
|
|
146
148
|
function MC_getMicroComponents(elements, search) {
|
|
147
149
|
let mcValues = [];
|
|
148
|
-
elements.forEach(e => {
|
|
150
|
+
elements.forEach((e) => {
|
|
149
151
|
if (e) {
|
|
150
152
|
if (e instanceof HTMLElement) {
|
|
151
153
|
const _mc = e?._mc;
|
|
@@ -227,44 +229,51 @@ function remove(target, key) {
|
|
|
227
229
|
delete _mc[key];
|
|
228
230
|
}
|
|
229
231
|
// remove the _mc attribute if the DOM collection is empty
|
|
230
|
-
if (!Object.keys(_mc).length &&
|
|
232
|
+
if (!Object.keys(_mc).length &&
|
|
233
|
+
target instanceof HTMLElement &&
|
|
234
|
+
target.hasAttribute('_mc')) {
|
|
231
235
|
target.removeAttribute('_mc');
|
|
232
236
|
}
|
|
233
237
|
return;
|
|
234
238
|
}
|
|
235
239
|
// trigger an event
|
|
236
|
-
function trigger(target, ev, data = {}) {
|
|
240
|
+
function trigger(target, ev, data = {}, bubble = 'l') {
|
|
237
241
|
let _mc = target?._mc;
|
|
238
242
|
if (!_mc)
|
|
239
243
|
return;
|
|
244
|
+
let event = ev instanceof McEvent
|
|
245
|
+
? new McEvent(ev.type, ev.data, 'l')
|
|
246
|
+
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string' ? ev : new McEvent(ev, data, bubble);
|
|
240
247
|
[...Object.values(_mc)].forEach((mc) => {
|
|
241
248
|
//console.log( 'mc [', mc.constructor.name, ']', mc.constructor.prototype?.oneInit );
|
|
242
249
|
if (mc?.trigger && typeof mc?.trigger === 'function') {
|
|
243
|
-
mc?.trigger(
|
|
250
|
+
mc?.trigger(event);
|
|
244
251
|
}
|
|
245
252
|
});
|
|
253
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
254
|
+
bubbleEvent(target, mcEvent);
|
|
255
|
+
}
|
|
246
256
|
return;
|
|
247
257
|
}
|
|
248
|
-
// run the "init" lifecycle event on the
|
|
258
|
+
// run the "init" lifecycle event on the complete _mc structure
|
|
249
259
|
function init(element) {
|
|
250
260
|
if (element.constructor === DC)
|
|
251
261
|
return;
|
|
252
262
|
setTimeout(() => {
|
|
253
263
|
element.trigger('Init');
|
|
254
|
-
|
|
255
|
-
let keys = Object.keys(element?._mc);
|
|
256
|
-
if (keys.length)
|
|
264
|
+
/*
|
|
265
|
+
let keys = Object.keys( ( element as any)?._mc );
|
|
266
|
+
if ( keys.length ){
|
|
257
267
|
//console.log( 'inner Inits on [', mc.constructor.name, ']', keys );
|
|
258
|
-
keys?.forEach((key) => {
|
|
259
|
-
let mc = element?._mc?.[key];
|
|
268
|
+
keys?.forEach( (key: string) => {
|
|
269
|
+
let mc = ( element as any)?._mc?.[key];
|
|
260
270
|
//console.log( key, typeof mc?.oneInit, mc );
|
|
261
|
-
if (mc['oneInit'] &&
|
|
262
|
-
mc.oneInit(new McEvent('Init'));
|
|
271
|
+
if ( ( mc as any )['oneInit'] && typeof ( mc as any ).oneInit == 'function' ){
|
|
272
|
+
( mc as any ).oneInit( new McEvent('Init') );
|
|
263
273
|
}
|
|
264
274
|
});
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
}, 0);
|
|
275
|
+
};
|
|
276
|
+
*/
|
|
268
277
|
}, 0);
|
|
269
278
|
}
|
|
270
279
|
function autoAttachListeners(element) {
|
|
@@ -273,13 +282,14 @@ function autoAttachListeners(element) {
|
|
|
273
282
|
const target = element.target;
|
|
274
283
|
if (target instanceof HTMLElement) {
|
|
275
284
|
let that = element;
|
|
276
|
-
Object
|
|
277
|
-
.
|
|
278
|
-
|
|
279
|
-
.forEach(key => {
|
|
285
|
+
Object.getOwnPropertyNames(that.constructor.prototype)
|
|
286
|
+
.filter((key) => /^on[A-Z]|one[A-Z]/.test(key) &&
|
|
287
|
+
typeof that.constructor.prototype[key] === 'function')
|
|
288
|
+
.forEach((key) => {
|
|
280
289
|
let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), // preserves upper/lowercase for non-native events
|
|
281
|
-
nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
282
|
-
|
|
290
|
+
nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
291
|
+
that.trigger(withoutOnOne, ev);
|
|
292
|
+
};
|
|
283
293
|
if (once) {
|
|
284
294
|
// console.log( '...is only called once', that.constructor.prototype[key] );
|
|
285
295
|
Object.defineProperty(element, 'on' + withoutOnOne, {
|
|
@@ -288,20 +298,49 @@ function autoAttachListeners(element) {
|
|
|
288
298
|
writable: true,
|
|
289
299
|
value: (ev) => {
|
|
290
300
|
// console.log( 'onceHandler execute:', that.constructor.prototype[key] );
|
|
291
|
-
|
|
292
|
-
}
|
|
301
|
+
that.constructor.prototype[key].bind(that)(ev);
|
|
302
|
+
},
|
|
293
303
|
});
|
|
294
304
|
}
|
|
295
|
-
if (MC_nativeEventNames.has('on' + nativeEventName)) {
|
|
305
|
+
if (MC_nativeEventNames.has('on' + nativeEventName)) {
|
|
306
|
+
// native event defined in HTMLElement
|
|
296
307
|
// console.log('added as native listener', target, nativeEventName );
|
|
297
308
|
addListener(target, nativeEventName, listener, false, once);
|
|
298
309
|
}
|
|
299
310
|
});
|
|
300
311
|
}
|
|
301
312
|
}
|
|
313
|
+
function bubbleEvent(target, ev) {
|
|
314
|
+
// at this point, either 'u' or 'd' bubbling should be indicated
|
|
315
|
+
// mcEvent bubbling is asynchronous, and the order of target MC execution in case of multiple matches is not guaranteed!
|
|
316
|
+
if (/[ud]/.test(ev.bubble)) {
|
|
317
|
+
setTimeout(() => {
|
|
318
|
+
// bubbling must include 'l' for local, or else no handlers are executed'
|
|
319
|
+
if (ev.bubble.indexOf('l') === -1) {
|
|
320
|
+
ev.bubble += 'l';
|
|
321
|
+
}
|
|
322
|
+
// bubble up towards root
|
|
323
|
+
if (ev.bubble.indexOf('u') > -1) {
|
|
324
|
+
let parent = MC_traverseNodes(target, '', true)?.[0].target;
|
|
325
|
+
if (parent)
|
|
326
|
+
DC.trigger(parent, ev);
|
|
327
|
+
}
|
|
328
|
+
// bubble down
|
|
329
|
+
if (ev.bubble.indexOf('d') > -1) {
|
|
330
|
+
let targets = new Set(target._mc
|
|
331
|
+
.children()
|
|
332
|
+
.map((c) => c?.target));
|
|
333
|
+
targets.forEach((target) => {
|
|
334
|
+
if (target)
|
|
335
|
+
DC.trigger(target, ev);
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
}, 0);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
302
341
|
class McBase {
|
|
303
342
|
#target; // avoid circular reference
|
|
304
|
-
constructor(target) {
|
|
343
|
+
constructor(target, debug = false) {
|
|
305
344
|
let that = this, element = that;
|
|
306
345
|
this.#target = new WeakRef(target || {});
|
|
307
346
|
init(element); // async lifecycle event
|
|
@@ -317,30 +356,40 @@ class MC extends McBase {
|
|
|
317
356
|
super(target);
|
|
318
357
|
}
|
|
319
358
|
static trigger = trigger;
|
|
320
|
-
trigger(ev, data = {}, bubble) {
|
|
359
|
+
trigger(ev, data = {}, bubble = 'l') {
|
|
321
360
|
let that = this;
|
|
322
361
|
//console.log( that, '.trigger(', ev, data, bubble, ')' );
|
|
323
|
-
bubble = bubble || 'l';
|
|
324
362
|
// run all triggers
|
|
325
363
|
if (that.constructor === MC || that.constructor === DC) {
|
|
364
|
+
let event = ev instanceof McEvent
|
|
365
|
+
? new McEvent(ev.type, ev.data, 'l')
|
|
366
|
+
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string'
|
|
367
|
+
? ev
|
|
368
|
+
: new McEvent(ev, data, bubble);
|
|
326
369
|
[...Object.getOwnPropertyNames(that)].forEach((mc) => {
|
|
327
|
-
if (that[mc]?.trigger &&
|
|
328
|
-
that[mc]?.trigger
|
|
370
|
+
if (that[mc]?.trigger &&
|
|
371
|
+
typeof that[mc]?.trigger === 'function') {
|
|
372
|
+
that[mc]?.trigger(event);
|
|
329
373
|
}
|
|
330
374
|
});
|
|
375
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
376
|
+
bubbleEvent(that.target, mcEvent);
|
|
377
|
+
}
|
|
331
378
|
return; // must return here!
|
|
332
379
|
}
|
|
333
380
|
// only this instance
|
|
334
381
|
if (that instanceof MC || that instanceof DC) {
|
|
335
|
-
const that = this, mcEvent = typeof ev !== 'string'
|
|
336
|
-
|
|
382
|
+
const that = this, mcEvent = typeof ev !== 'string'
|
|
383
|
+
? ev
|
|
384
|
+
: new McEvent(ev, data, bubble), handlerName = 'on' + mcEvent.type[0].toUpperCase() + mcEvent.type.slice(1);
|
|
337
385
|
// console.log('trigger', handlerName, mcEvent, data, bubble );
|
|
338
386
|
if (mcEvent.bubble.indexOf('l') > -1) {
|
|
339
|
-
if (!mcEvent.immediateStopped
|
|
340
|
-
|
|
387
|
+
if (!mcEvent.immediateStopped &&
|
|
388
|
+
typeof that[handlerName] === 'function') {
|
|
341
389
|
// console.log( 'execute handler:', handlerName );
|
|
342
390
|
that[handlerName](mcEvent);
|
|
343
|
-
if (that.hasOwnProperty(handlerName)) {
|
|
391
|
+
if (that.hasOwnProperty(handlerName)) {
|
|
392
|
+
// it is a once handler
|
|
344
393
|
delete that[handlerName]; // remove after first execution
|
|
345
394
|
}
|
|
346
395
|
}
|
|
@@ -349,49 +398,24 @@ class MC extends McBase {
|
|
|
349
398
|
if (mcEvent.stopped || mcEvent.bubble === 'l') {
|
|
350
399
|
return that;
|
|
351
400
|
}
|
|
352
|
-
//
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
setTimeout(() => {
|
|
356
|
-
// bubbling must include 'l' for local, or else no handlers are executed'
|
|
357
|
-
if (mcEvent.bubble.indexOf('l') === -1) {
|
|
358
|
-
mcEvent.bubble += 'l';
|
|
359
|
-
}
|
|
360
|
-
// bubble up towards root
|
|
361
|
-
if (mcEvent.bubble.indexOf('u') > -1) {
|
|
362
|
-
that
|
|
363
|
-
.parent()
|
|
364
|
-
.forEach((mc) => {
|
|
365
|
-
mc instanceof MC ? mc.trigger(mcEvent) : null;
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
// bubble down
|
|
369
|
-
if (mcEvent.bubble.indexOf('d') > -1) {
|
|
370
|
-
that
|
|
371
|
-
.children()
|
|
372
|
-
.forEach((mc) => {
|
|
373
|
-
mc instanceof MC ? mc.trigger(mcEvent) : null;
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
}, 0);
|
|
401
|
+
//console.log('bubble', mcEvent);
|
|
402
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
403
|
+
bubbleEvent(that.target, mcEvent);
|
|
377
404
|
}
|
|
378
405
|
}
|
|
379
406
|
}
|
|
380
407
|
}
|
|
381
|
-
;
|
|
382
408
|
class DC extends McBase {
|
|
383
409
|
_mc = {};
|
|
384
|
-
constructor(target) {
|
|
410
|
+
constructor(target, debug = false) {
|
|
385
411
|
super(target);
|
|
386
412
|
}
|
|
387
|
-
static debug = false;
|
|
388
413
|
static add = add;
|
|
389
414
|
static remove = remove;
|
|
390
415
|
static trigger = trigger;
|
|
391
416
|
trigger(ev, data = {}, bubble) {
|
|
392
417
|
MC.prototype.trigger.call(this, ev, data, bubble);
|
|
393
418
|
}
|
|
394
|
-
;
|
|
395
419
|
parent(search = '') {
|
|
396
420
|
let target = this.target;
|
|
397
421
|
if (!MC_isDOM(target))
|
|
@@ -424,7 +448,6 @@ class DC extends McBase {
|
|
|
424
448
|
return MC_getMicroComponents([...myDomElements], search);
|
|
425
449
|
}
|
|
426
450
|
}
|
|
427
|
-
;
|
|
428
451
|
|
|
429
452
|
|
|
430
453
|
/******/ return __webpack_exports__;
|