@twobirds/microcomponents 0.0.44 → 0.0.46
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/MC.min.js +7 -56
- package/dist/microcomponents.min.js +1 -1
- package/dist/observables.d.ts.map +1 -1
- package/dist/observables.min.js +1 -1
- package/dist/observables.ts +7 -16
- package/dist/test.ts +1 -5
- package/package.json +1 -1
- package/public/MC.js +7 -52
- package/public/MC.js.map +1 -1
- package/public/MC.min.js +7 -56
- package/public/McEvent.js +0 -4
- package/public/McEvent.js.map +1 -1
- package/public/assets/search.js +1 -1
- package/public/autoloader.js +1 -6
- package/public/autoloader.js.map +1 -1
- package/public/classes/MC.DC.html +18 -23
- package/public/classes/MC.MC.html +12 -17
- package/public/classes/MC.McBase.html +4 -4
- package/public/classes/MC.McEvent.html +13 -13
- package/public/formValues.js +3 -19
- package/public/formValues.js.map +1 -1
- package/public/functions/MC.addListener.html +1 -1
- package/public/functions/MC.removeListener.html +1 -1
- package/public/functions/elements.defineCE.html +1 -1
- package/public/functions/elements.getCE.html +1 -1
- package/public/functions/formValues.formValues.html +1 -1
- package/public/functions/observables.observe.html +1 -1
- package/public/functions/selectors._d.html +1 -1
- package/public/functions/selectors._t.html +1 -1
- package/public/helpers.js +4 -5
- package/public/helpers.js.map +1 -1
- package/public/interfaces/MC.HTMLMcElement.html +2 -2
- package/public/interfaces/selectors.DSelector.html +55 -55
- package/public/interfaces/selectors.TSelector.html +37 -37
- package/public/microcomponents.es3.js +15 -61
- package/public/microcomponents.es3.js.map +1 -1
- package/public/microcomponents.min.js +1 -1
- package/public/modules/MC.html +1 -1
- package/public/modules/elements.html +1 -1
- package/public/modules/formValues.html +1 -1
- package/public/modules/observables.html +1 -1
- package/public/modules/selectors.html +1 -1
- package/public/observables.js +12 -56
- package/public/observables.js.map +1 -1
- package/public/observables.min.js +1 -1
- package/public/selectors.js +7 -125
- package/public/selectors.js.map +1 -1
- package/public/src/observables.ts +7 -16
- package/public/src/test.ts +1 -5
- package/public/test.js +6 -30
- package/public/test.js.map +1 -1
- package/public/types/observables.Observable.html +1 -1
- package/public/types/selectors.selection.html +1 -1
- package/public/types/selectors.singleSelector.html +1 -1
- package/src/observables.ts +7 -16
- package/src/test.ts +1 -5
- package/tsconfig.json +97 -101
package/public/MC.js
CHANGED
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
import { McEvent } from './McEvent.js';
|
|
3
3
|
var isBrowser = new Function('try {return this===window;}catch(e){ return false;}');
|
|
4
4
|
let nativeEventNames = new Set();
|
|
5
|
-
// HTMLElement native event names
|
|
6
5
|
if (isBrowser()) {
|
|
7
6
|
Object.keys(HTMLElement.prototype)
|
|
8
7
|
.filter((key) => /^on/.test(key))
|
|
9
8
|
.forEach((eventName) => nativeEventNames.add(eventName));
|
|
10
9
|
}
|
|
11
|
-
// get all microcomponents from a list of HTMLElements
|
|
12
10
|
function getMicroComponents(elements, search) {
|
|
13
11
|
let mcValues = [];
|
|
14
12
|
elements.forEach((e) => {
|
|
@@ -26,7 +24,6 @@ function getMicroComponents(elements, search) {
|
|
|
26
24
|
});
|
|
27
25
|
return mcValues;
|
|
28
26
|
}
|
|
29
|
-
// get all ancestor DOM nodes up to the document root
|
|
30
27
|
function traverseNodes(node, search, firstonly = true) {
|
|
31
28
|
let mcValues = [];
|
|
32
29
|
while (node) {
|
|
@@ -55,44 +52,36 @@ function addListener(domNode, eventName, handler, capture = false, once = false)
|
|
|
55
52
|
if (once) {
|
|
56
53
|
options.once = once;
|
|
57
54
|
}
|
|
58
|
-
//console.log( 'addEventListener', eventName, ( handler as Function ).name, options );
|
|
59
55
|
domNode.addEventListener(eventName, handler, options);
|
|
60
56
|
}
|
|
61
57
|
function removeListener(domNode, eventName, handler) {
|
|
62
58
|
domNode.removeEventListener(eventName, handler);
|
|
63
59
|
}
|
|
64
|
-
// add a microcomponent to a target DOM node
|
|
65
60
|
function add(target, key, element = {}) {
|
|
66
61
|
let node = target;
|
|
67
|
-
// create the _mc property if necessary
|
|
68
62
|
if (!node._mc) {
|
|
69
63
|
let debug = DC?.debug;
|
|
70
64
|
DC.debug = false;
|
|
71
65
|
node._mc = new DC(target);
|
|
72
66
|
DC.debug = debug;
|
|
73
|
-
delete node._mc._mc;
|
|
67
|
+
delete node._mc._mc;
|
|
74
68
|
}
|
|
75
69
|
const _mc = node._mc;
|
|
76
|
-
// add the element with the given property key to the _mc property
|
|
77
70
|
if (key.length && !_mc[key]) {
|
|
78
71
|
_mc[key] = element;
|
|
79
|
-
// add attribute if HTMLElement
|
|
80
72
|
if (target instanceof HTMLElement) {
|
|
81
73
|
target.setAttribute('_mc', '');
|
|
82
74
|
}
|
|
83
75
|
}
|
|
84
76
|
return element;
|
|
85
77
|
}
|
|
86
|
-
// remove a micro component from the DOM
|
|
87
78
|
function remove(target, key) {
|
|
88
79
|
if (!key)
|
|
89
|
-
return;
|
|
80
|
+
return;
|
|
90
81
|
const _mc = target?._mc || {};
|
|
91
|
-
// delete the property from the HTMLElement _mc collection
|
|
92
82
|
if (_mc && _mc[key]) {
|
|
93
83
|
delete _mc[key];
|
|
94
84
|
}
|
|
95
|
-
// remove the _mc attribute if the DOM collection is empty
|
|
96
85
|
if (!Object.keys(_mc).length &&
|
|
97
86
|
target instanceof HTMLElement &&
|
|
98
87
|
target.hasAttribute('_mc')) {
|
|
@@ -100,7 +89,6 @@ function remove(target, key) {
|
|
|
100
89
|
}
|
|
101
90
|
return;
|
|
102
91
|
}
|
|
103
|
-
// trigger an event
|
|
104
92
|
function trigger(target, ev, data = {}, bubble = 'l') {
|
|
105
93
|
let _mc = target?._mc;
|
|
106
94
|
if (!_mc)
|
|
@@ -109,7 +97,6 @@ function trigger(target, ev, data = {}, bubble = 'l') {
|
|
|
109
97
|
? new McEvent(ev.type, ev.data, 'l')
|
|
110
98
|
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string' ? ev : new McEvent(ev, data, bubble);
|
|
111
99
|
[...Object.values(_mc)].forEach((mc) => {
|
|
112
|
-
//console.log( 'mc [', mc.constructor.name, ']', mc.constructor.prototype?.oneInit );
|
|
113
100
|
if (mc?.trigger && typeof mc?.trigger === 'function') {
|
|
114
101
|
mc?.trigger(event);
|
|
115
102
|
}
|
|
@@ -119,25 +106,11 @@ function trigger(target, ev, data = {}, bubble = 'l') {
|
|
|
119
106
|
}
|
|
120
107
|
return;
|
|
121
108
|
}
|
|
122
|
-
// run the "init" lifecycle event on the complete _mc structure
|
|
123
109
|
function init(element) {
|
|
124
110
|
if (element.constructor === DC)
|
|
125
111
|
return;
|
|
126
112
|
setTimeout(() => {
|
|
127
113
|
element.trigger('Init');
|
|
128
|
-
/*
|
|
129
|
-
let keys = Object.keys( ( element as any)?._mc );
|
|
130
|
-
if ( keys.length ){
|
|
131
|
-
//console.log( 'inner Inits on [', mc.constructor.name, ']', keys );
|
|
132
|
-
keys?.forEach( (key: string) => {
|
|
133
|
-
let mc = ( element as any)?._mc?.[key];
|
|
134
|
-
//console.log( key, typeof mc?.oneInit, mc );
|
|
135
|
-
if ( ( mc as any )['oneInit'] && typeof ( mc as any ).oneInit == 'function' ){
|
|
136
|
-
( mc as any ).oneInit( new McEvent('Init') );
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
*/
|
|
141
114
|
}, 0);
|
|
142
115
|
}
|
|
143
116
|
function autoAttachListeners(element) {
|
|
@@ -150,46 +123,36 @@ function autoAttachListeners(element) {
|
|
|
150
123
|
.filter((key) => /^on[A-Z]|one[A-Z]/.test(key) &&
|
|
151
124
|
typeof that.constructor.prototype[key] === 'function')
|
|
152
125
|
.forEach((key) => {
|
|
153
|
-
let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''),
|
|
154
|
-
nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
126
|
+
let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
155
127
|
that.trigger(withoutOnOne, ev);
|
|
156
128
|
};
|
|
157
129
|
if (once) {
|
|
158
|
-
// console.log( '...is only called once', that.constructor.prototype[key] );
|
|
159
130
|
Object.defineProperty(element, 'on' + withoutOnOne, {
|
|
160
131
|
configurable: true,
|
|
161
132
|
enumerable: false,
|
|
162
133
|
writable: true,
|
|
163
134
|
value: (ev) => {
|
|
164
|
-
// console.log( 'onceHandler execute:', that.constructor.prototype[key] );
|
|
165
135
|
that.constructor.prototype[key].bind(that)(ev);
|
|
166
136
|
},
|
|
167
137
|
});
|
|
168
138
|
}
|
|
169
139
|
if (nativeEventNames.has('on' + nativeEventName)) {
|
|
170
|
-
// native event defined in HTMLElement
|
|
171
|
-
// console.log('added as native listener', target, nativeEventName );
|
|
172
140
|
addListener(target, nativeEventName, listener, false, once);
|
|
173
141
|
}
|
|
174
142
|
});
|
|
175
143
|
}
|
|
176
144
|
}
|
|
177
145
|
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
146
|
if (/[ud]/.test(ev.bubble)) {
|
|
181
147
|
setTimeout(() => {
|
|
182
|
-
// bubbling must include 'l' for local, or else no handlers are executed'
|
|
183
148
|
if (ev.bubble.indexOf('l') === -1) {
|
|
184
149
|
ev.bubble += 'l';
|
|
185
150
|
}
|
|
186
|
-
// bubble up towards root
|
|
187
151
|
if (ev.bubble.indexOf('u') > -1) {
|
|
188
152
|
let parent = traverseNodes(target, '', true)?.[0].target;
|
|
189
153
|
if (parent)
|
|
190
154
|
DC.trigger(parent, ev);
|
|
191
155
|
}
|
|
192
|
-
// bubble down
|
|
193
156
|
if (ev.bubble.indexOf('d') > -1) {
|
|
194
157
|
let targets = new Set(target._mc
|
|
195
158
|
.children()
|
|
@@ -203,11 +166,11 @@ function bubbleEvent(target, ev) {
|
|
|
203
166
|
}
|
|
204
167
|
}
|
|
205
168
|
class McBase {
|
|
206
|
-
#target;
|
|
169
|
+
#target;
|
|
207
170
|
constructor(target, debug = false) {
|
|
208
171
|
let that = this, element = that;
|
|
209
172
|
this.#target = new WeakRef(target || {});
|
|
210
|
-
init(element);
|
|
173
|
+
init(element);
|
|
211
174
|
autoAttachListeners(element);
|
|
212
175
|
}
|
|
213
176
|
get target() {
|
|
@@ -222,8 +185,6 @@ class MC extends McBase {
|
|
|
222
185
|
static trigger = trigger;
|
|
223
186
|
trigger(ev, data = {}, bubble = 'l') {
|
|
224
187
|
let that = this;
|
|
225
|
-
//console.log( that, '.trigger(', ev, data, bubble, ')' );
|
|
226
|
-
// run all triggers
|
|
227
188
|
if (that.constructor === MC || that.constructor === DC) {
|
|
228
189
|
let event = ev instanceof McEvent
|
|
229
190
|
? new McEvent(ev.type, ev.data, 'l')
|
|
@@ -239,30 +200,24 @@ class MC extends McBase {
|
|
|
239
200
|
if (/[ud]/.test(mcEvent.bubble)) {
|
|
240
201
|
bubbleEvent(that.target, mcEvent);
|
|
241
202
|
}
|
|
242
|
-
return;
|
|
203
|
+
return;
|
|
243
204
|
}
|
|
244
|
-
// only this instance
|
|
245
205
|
if (that instanceof MC || that instanceof DC) {
|
|
246
206
|
const that = this, mcEvent = typeof ev !== 'string'
|
|
247
207
|
? ev
|
|
248
208
|
: new McEvent(ev, data, bubble), handlerName = 'on' + mcEvent.type[0].toUpperCase() + mcEvent.type.slice(1);
|
|
249
|
-
// console.log('trigger', handlerName, mcEvent, data, bubble );
|
|
250
209
|
if (mcEvent.bubble.indexOf('l') > -1) {
|
|
251
210
|
if (!mcEvent.immediateStopped &&
|
|
252
211
|
typeof that[handlerName] === 'function') {
|
|
253
|
-
// console.log( 'execute handler:', handlerName );
|
|
254
212
|
that[handlerName](mcEvent);
|
|
255
213
|
if (that.hasOwnProperty(handlerName)) {
|
|
256
|
-
|
|
257
|
-
delete that[handlerName]; // remove after first execution
|
|
214
|
+
delete that[handlerName];
|
|
258
215
|
}
|
|
259
216
|
}
|
|
260
217
|
}
|
|
261
|
-
// if event stopped or local only, handling is cancelled
|
|
262
218
|
if (mcEvent.stopped || mcEvent.bubble === 'l') {
|
|
263
219
|
return that;
|
|
264
220
|
}
|
|
265
|
-
//console.log('bubble', mcEvent);
|
|
266
221
|
if (/[ud]/.test(mcEvent.bubble)) {
|
|
267
222
|
bubbleEvent(that.target, mcEvent);
|
|
268
223
|
}
|
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
|
@@ -61,7 +61,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
61
61
|
|
|
62
62
|
var isBrowser = new Function("try {return this===window;}catch(e){ return false;}");
|
|
63
63
|
let nativeEventNames = new Set();
|
|
64
|
-
// HTMLElement native event names
|
|
65
64
|
if (isBrowser()) {
|
|
66
65
|
Object.keys(HTMLElement.prototype).filter(key => /^on/.test(key)).forEach(eventName => nativeEventNames.add(eventName));
|
|
67
66
|
}
|
|
@@ -73,7 +72,6 @@ class McEvent {
|
|
|
73
72
|
#stopped = false;
|
|
74
73
|
#immediateStopped = false;
|
|
75
74
|
constructor(type, data = {}, bubble = 'l') {
|
|
76
|
-
// bubble standard = local only, options = any combination of'uld' characters: up to root, local, down
|
|
77
75
|
this.#type = type;
|
|
78
76
|
this.data = data;
|
|
79
77
|
this.bubble = bubble;
|
|
@@ -95,7 +93,6 @@ class McEvent {
|
|
|
95
93
|
this.#immediateStopped = true;
|
|
96
94
|
}
|
|
97
95
|
}
|
|
98
|
-
// get all microcomponents from a list of HTMLElements
|
|
99
96
|
function getMicroComponents(elements, search) {
|
|
100
97
|
let mcValues = [];
|
|
101
98
|
elements.forEach(e => {
|
|
@@ -113,7 +110,6 @@ function getMicroComponents(elements, search) {
|
|
|
113
110
|
});
|
|
114
111
|
return mcValues;
|
|
115
112
|
}
|
|
116
|
-
// get all ancestor DOM nodes up to the document root
|
|
117
113
|
function traverseNodes(node, search, firstonly = true) {
|
|
118
114
|
let mcValues = [];
|
|
119
115
|
while (node) {
|
|
@@ -138,13 +134,11 @@ function traverseNodes(node, search, firstonly = true) {
|
|
|
138
134
|
|
|
139
135
|
var MC_isBrowser = new Function('try {return this===window;}catch(e){ return false;}');
|
|
140
136
|
let MC_nativeEventNames = new Set();
|
|
141
|
-
// HTMLElement native event names
|
|
142
137
|
if (MC_isBrowser()) {
|
|
143
138
|
Object.keys(HTMLElement.prototype)
|
|
144
139
|
.filter((key) => /^on/.test(key))
|
|
145
140
|
.forEach((eventName) => MC_nativeEventNames.add(eventName));
|
|
146
141
|
}
|
|
147
|
-
// get all microcomponents from a list of HTMLElements
|
|
148
142
|
function MC_getMicroComponents(elements, search) {
|
|
149
143
|
let mcValues = [];
|
|
150
144
|
elements.forEach((e) => {
|
|
@@ -162,7 +156,6 @@ function MC_getMicroComponents(elements, search) {
|
|
|
162
156
|
});
|
|
163
157
|
return mcValues;
|
|
164
158
|
}
|
|
165
|
-
// get all ancestor DOM nodes up to the document root
|
|
166
159
|
function MC_traverseNodes(node, search, firstonly = true) {
|
|
167
160
|
let mcValues = [];
|
|
168
161
|
while (node) {
|
|
@@ -191,44 +184,36 @@ function addListener(domNode, eventName, handler, capture = false, once = false)
|
|
|
191
184
|
if (once) {
|
|
192
185
|
options.once = once;
|
|
193
186
|
}
|
|
194
|
-
//console.log( 'addEventListener', eventName, ( handler as Function ).name, options );
|
|
195
187
|
domNode.addEventListener(eventName, handler, options);
|
|
196
188
|
}
|
|
197
189
|
function removeListener(domNode, eventName, handler) {
|
|
198
190
|
domNode.removeEventListener(eventName, handler);
|
|
199
191
|
}
|
|
200
|
-
// add a microcomponent to a target DOM node
|
|
201
192
|
function add(target, key, element = {}) {
|
|
202
193
|
let node = target;
|
|
203
|
-
// create the _mc property if necessary
|
|
204
194
|
if (!node._mc) {
|
|
205
195
|
let debug = DC?.debug;
|
|
206
196
|
DC.debug = false;
|
|
207
197
|
node._mc = new DC(target);
|
|
208
198
|
DC.debug = debug;
|
|
209
|
-
delete node._mc._mc;
|
|
199
|
+
delete node._mc._mc;
|
|
210
200
|
}
|
|
211
201
|
const _mc = node._mc;
|
|
212
|
-
// add the element with the given property key to the _mc property
|
|
213
202
|
if (key.length && !_mc[key]) {
|
|
214
203
|
_mc[key] = element;
|
|
215
|
-
// add attribute if HTMLElement
|
|
216
204
|
if (target instanceof HTMLElement) {
|
|
217
205
|
target.setAttribute('_mc', '');
|
|
218
206
|
}
|
|
219
207
|
}
|
|
220
208
|
return element;
|
|
221
209
|
}
|
|
222
|
-
// remove a micro component from the DOM
|
|
223
210
|
function remove(target, key) {
|
|
224
211
|
if (!key)
|
|
225
|
-
return;
|
|
212
|
+
return;
|
|
226
213
|
const _mc = target?._mc || {};
|
|
227
|
-
// delete the property from the HTMLElement _mc collection
|
|
228
214
|
if (_mc && _mc[key]) {
|
|
229
215
|
delete _mc[key];
|
|
230
216
|
}
|
|
231
|
-
// remove the _mc attribute if the DOM collection is empty
|
|
232
217
|
if (!Object.keys(_mc).length &&
|
|
233
218
|
target instanceof HTMLElement &&
|
|
234
219
|
target.hasAttribute('_mc')) {
|
|
@@ -236,7 +221,6 @@ function remove(target, key) {
|
|
|
236
221
|
}
|
|
237
222
|
return;
|
|
238
223
|
}
|
|
239
|
-
// trigger an event
|
|
240
224
|
function trigger(target, ev, data = {}, bubble = 'l') {
|
|
241
225
|
let _mc = target?._mc;
|
|
242
226
|
if (!_mc)
|
|
@@ -245,7 +229,6 @@ function trigger(target, ev, data = {}, bubble = 'l') {
|
|
|
245
229
|
? new McEvent(ev.type, ev.data, 'l')
|
|
246
230
|
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string' ? ev : new McEvent(ev, data, bubble);
|
|
247
231
|
[...Object.values(_mc)].forEach((mc) => {
|
|
248
|
-
//console.log( 'mc [', mc.constructor.name, ']', mc.constructor.prototype?.oneInit );
|
|
249
232
|
if (mc?.trigger && typeof mc?.trigger === 'function') {
|
|
250
233
|
mc?.trigger(event);
|
|
251
234
|
}
|
|
@@ -255,25 +238,11 @@ function trigger(target, ev, data = {}, bubble = 'l') {
|
|
|
255
238
|
}
|
|
256
239
|
return;
|
|
257
240
|
}
|
|
258
|
-
// run the "init" lifecycle event on the complete _mc structure
|
|
259
241
|
function init(element) {
|
|
260
242
|
if (element.constructor === DC)
|
|
261
243
|
return;
|
|
262
244
|
setTimeout(() => {
|
|
263
245
|
element.trigger('Init');
|
|
264
|
-
/*
|
|
265
|
-
let keys = Object.keys( ( element as any)?._mc );
|
|
266
|
-
if ( keys.length ){
|
|
267
|
-
//console.log( 'inner Inits on [', mc.constructor.name, ']', keys );
|
|
268
|
-
keys?.forEach( (key: string) => {
|
|
269
|
-
let mc = ( element as any)?._mc?.[key];
|
|
270
|
-
//console.log( key, typeof mc?.oneInit, mc );
|
|
271
|
-
if ( ( mc as any )['oneInit'] && typeof ( mc as any ).oneInit == 'function' ){
|
|
272
|
-
( mc as any ).oneInit( new McEvent('Init') );
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
};
|
|
276
|
-
*/
|
|
277
246
|
}, 0);
|
|
278
247
|
}
|
|
279
248
|
function autoAttachListeners(element) {
|
|
@@ -286,46 +255,36 @@ function autoAttachListeners(element) {
|
|
|
286
255
|
.filter((key) => /^on[A-Z]|one[A-Z]/.test(key) &&
|
|
287
256
|
typeof that.constructor.prototype[key] === 'function')
|
|
288
257
|
.forEach((key) => {
|
|
289
|
-
let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''),
|
|
290
|
-
nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
258
|
+
let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
291
259
|
that.trigger(withoutOnOne, ev);
|
|
292
260
|
};
|
|
293
261
|
if (once) {
|
|
294
|
-
// console.log( '...is only called once', that.constructor.prototype[key] );
|
|
295
262
|
Object.defineProperty(element, 'on' + withoutOnOne, {
|
|
296
263
|
configurable: true,
|
|
297
264
|
enumerable: false,
|
|
298
265
|
writable: true,
|
|
299
266
|
value: (ev) => {
|
|
300
|
-
// console.log( 'onceHandler execute:', that.constructor.prototype[key] );
|
|
301
267
|
that.constructor.prototype[key].bind(that)(ev);
|
|
302
268
|
},
|
|
303
269
|
});
|
|
304
270
|
}
|
|
305
271
|
if (MC_nativeEventNames.has('on' + nativeEventName)) {
|
|
306
|
-
// native event defined in HTMLElement
|
|
307
|
-
// console.log('added as native listener', target, nativeEventName );
|
|
308
272
|
addListener(target, nativeEventName, listener, false, once);
|
|
309
273
|
}
|
|
310
274
|
});
|
|
311
275
|
}
|
|
312
276
|
}
|
|
313
277
|
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
278
|
if (/[ud]/.test(ev.bubble)) {
|
|
317
279
|
setTimeout(() => {
|
|
318
|
-
// bubbling must include 'l' for local, or else no handlers are executed'
|
|
319
280
|
if (ev.bubble.indexOf('l') === -1) {
|
|
320
281
|
ev.bubble += 'l';
|
|
321
282
|
}
|
|
322
|
-
// bubble up towards root
|
|
323
283
|
if (ev.bubble.indexOf('u') > -1) {
|
|
324
284
|
let parent = MC_traverseNodes(target, '', true)?.[0].target;
|
|
325
285
|
if (parent)
|
|
326
286
|
DC.trigger(parent, ev);
|
|
327
287
|
}
|
|
328
|
-
// bubble down
|
|
329
288
|
if (ev.bubble.indexOf('d') > -1) {
|
|
330
289
|
let targets = new Set(target._mc
|
|
331
290
|
.children()
|
|
@@ -339,11 +298,11 @@ function bubbleEvent(target, ev) {
|
|
|
339
298
|
}
|
|
340
299
|
}
|
|
341
300
|
class McBase {
|
|
342
|
-
#target;
|
|
301
|
+
#target;
|
|
343
302
|
constructor(target, debug = false) {
|
|
344
303
|
let that = this, element = that;
|
|
345
304
|
this.#target = new WeakRef(target || {});
|
|
346
|
-
init(element);
|
|
305
|
+
init(element);
|
|
347
306
|
autoAttachListeners(element);
|
|
348
307
|
}
|
|
349
308
|
get target() {
|
|
@@ -358,8 +317,6 @@ class MC extends McBase {
|
|
|
358
317
|
static trigger = trigger;
|
|
359
318
|
trigger(ev, data = {}, bubble = 'l') {
|
|
360
319
|
let that = this;
|
|
361
|
-
//console.log( that, '.trigger(', ev, data, bubble, ')' );
|
|
362
|
-
// run all triggers
|
|
363
320
|
if (that.constructor === MC || that.constructor === DC) {
|
|
364
321
|
let event = ev instanceof McEvent
|
|
365
322
|
? new McEvent(ev.type, ev.data, 'l')
|
|
@@ -375,30 +332,24 @@ class MC extends McBase {
|
|
|
375
332
|
if (/[ud]/.test(mcEvent.bubble)) {
|
|
376
333
|
bubbleEvent(that.target, mcEvent);
|
|
377
334
|
}
|
|
378
|
-
return;
|
|
335
|
+
return;
|
|
379
336
|
}
|
|
380
|
-
// only this instance
|
|
381
337
|
if (that instanceof MC || that instanceof DC) {
|
|
382
338
|
const that = this, mcEvent = typeof ev !== 'string'
|
|
383
339
|
? ev
|
|
384
340
|
: new McEvent(ev, data, bubble), handlerName = 'on' + mcEvent.type[0].toUpperCase() + mcEvent.type.slice(1);
|
|
385
|
-
// console.log('trigger', handlerName, mcEvent, data, bubble );
|
|
386
341
|
if (mcEvent.bubble.indexOf('l') > -1) {
|
|
387
342
|
if (!mcEvent.immediateStopped &&
|
|
388
343
|
typeof that[handlerName] === 'function') {
|
|
389
|
-
// console.log( 'execute handler:', handlerName );
|
|
390
344
|
that[handlerName](mcEvent);
|
|
391
345
|
if (that.hasOwnProperty(handlerName)) {
|
|
392
|
-
|
|
393
|
-
delete that[handlerName]; // remove after first execution
|
|
346
|
+
delete that[handlerName];
|
|
394
347
|
}
|
|
395
348
|
}
|
|
396
349
|
}
|
|
397
|
-
// if event stopped or local only, handling is cancelled
|
|
398
350
|
if (mcEvent.stopped || mcEvent.bubble === 'l') {
|
|
399
351
|
return that;
|
|
400
352
|
}
|
|
401
|
-
//console.log('bubble', mcEvent);
|
|
402
353
|
if (/[ud]/.test(mcEvent.bubble)) {
|
|
403
354
|
bubbleEvent(that.target, mcEvent);
|
|
404
355
|
}
|
package/public/McEvent.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var isBrowser = new Function("try {return this===window;}catch(e){ return false;}");
|
|
3
3
|
let nativeEventNames = new Set();
|
|
4
|
-
// HTMLElement native event names
|
|
5
4
|
if (isBrowser()) {
|
|
6
5
|
Object.keys(HTMLElement.prototype).filter(key => /^on/.test(key)).forEach(eventName => nativeEventNames.add(eventName));
|
|
7
6
|
}
|
|
@@ -13,7 +12,6 @@ class McEvent {
|
|
|
13
12
|
#stopped = false;
|
|
14
13
|
#immediateStopped = false;
|
|
15
14
|
constructor(type, data = {}, bubble = 'l') {
|
|
16
|
-
// bubble standard = local only, options = any combination of'uld' characters: up to root, local, down
|
|
17
15
|
this.#type = type;
|
|
18
16
|
this.data = data;
|
|
19
17
|
this.bubble = bubble;
|
|
@@ -35,7 +33,6 @@ class McEvent {
|
|
|
35
33
|
this.#immediateStopped = true;
|
|
36
34
|
}
|
|
37
35
|
}
|
|
38
|
-
// get all microcomponents from a list of HTMLElements
|
|
39
36
|
function getMicroComponents(elements, search) {
|
|
40
37
|
let mcValues = [];
|
|
41
38
|
elements.forEach(e => {
|
|
@@ -53,7 +50,6 @@ function getMicroComponents(elements, search) {
|
|
|
53
50
|
});
|
|
54
51
|
return mcValues;
|
|
55
52
|
}
|
|
56
|
-
// get all ancestor DOM nodes up to the document root
|
|
57
53
|
function traverseNodes(node, search, firstonly = true) {
|
|
58
54
|
let mcValues = [];
|
|
59
55
|
while (node) {
|
package/public/McEvent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McEvent.js","sourceRoot":"","sources":["../src/McEvent.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,IAAI,SAAS,GAAC,IAAI,QAAQ,CAAC,qDAAqD,CAAC,CAAC;AAElF,IAAI,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"McEvent.js","sourceRoot":"","sources":["../src/McEvent.ts"],"names":[],"mappings":"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"}
|