@twobirds/microcomponents 0.0.27 → 0.0.28
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/assets/3d.html +42 -0
- package/assets/test.html +0 -1
- package/dist/MC.d.ts +6 -2
- package/dist/MC.d.ts.map +1 -1
- package/dist/MC.min.js +61 -85
- package/dist/MC.ts +85 -112
- package/dist/customElements.min.js +1 -1
- package/dist/microcomponents.min.js +1 -1
- package/dist/test.ts +21 -4
- package/package.json +3 -3
- package/public/3d.html +42 -0
- package/public/MC.js +61 -85
- package/public/MC.js.map +1 -1
- package/public/MC.min.js +61 -85
- package/public/assets/search.js +1 -1
- package/public/classes/DC.html +26 -37
- package/public/classes/MC.html +19 -30
- package/public/classes/McBase.html +5 -17
- package/public/classes/McEvent.html +13 -13
- package/public/customElements.min.js +1 -1
- package/public/functions/addListener.html +1 -1
- package/public/functions/removeListener.html +1 -1
- package/public/interfaces/HTMLMcElement.html +2 -2
- package/public/microcomponents.min.js +1 -1
- package/public/test.html +0 -1
- package/public/test.js +15 -4
- package/public/test.js.map +1 -1
- package/src/MC.ts +85 -112
- package/src/test.ts +21 -4
package/public/test.html
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
<link rel="icon" type="image/svg+xml" sizes="any" href="MicroComponents.svg" />
|
|
8
8
|
<link href="./my-tag.css" rel="stylesheet" />
|
|
9
9
|
<script type="module" src="./test.js"></script>
|
|
10
|
-
<script src="./customSelectors.min.js"></script>
|
|
11
10
|
</head>
|
|
12
11
|
<body>
|
|
13
12
|
Open the debugger, read console, then:
|
package/public/test.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
import { MC, DC } from "./
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { MC, DC, defineCE, getCE, makeCO } from "./microcomponents.js";
|
|
3
|
+
//import { MC, DC, McEvent } from "./MC.js";
|
|
4
|
+
//import { defineCE, getCE } from "./customElements.js";
|
|
5
|
+
//import { makeCO } from "./customObservables.js";
|
|
5
6
|
//MC.debug = true;
|
|
6
7
|
class Adder {
|
|
7
8
|
constructor() { }
|
|
@@ -9,6 +10,15 @@ class Adder {
|
|
|
9
10
|
return numbers.reduce((acc, curr) => acc + curr, 0);
|
|
10
11
|
}
|
|
11
12
|
}
|
|
13
|
+
class DeeplyNestedEvTarget extends MC {
|
|
14
|
+
constructor(target) {
|
|
15
|
+
super(target);
|
|
16
|
+
}
|
|
17
|
+
oneInit(ev) {
|
|
18
|
+
let logger = this.target?.target?.target?._mc?.logger;
|
|
19
|
+
logger?.warn("DeeplyNestedEvTarget .oneInit(ev)", ev);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
12
22
|
class EvTarget extends MC {
|
|
13
23
|
constructor(target) {
|
|
14
24
|
super(target);
|
|
@@ -18,8 +28,9 @@ class EvTarget extends MC {
|
|
|
18
28
|
logger?.log("onCustomEvent", ev);
|
|
19
29
|
}
|
|
20
30
|
oneInit(ev) {
|
|
21
|
-
let logger = this.target?.target?._mc?.logger;
|
|
31
|
+
let that = this, _mc = that._mc, logger = this.target?.target?._mc?.logger;
|
|
22
32
|
logger?.warn("EvTarget .oneInit(ev)", ev);
|
|
33
|
+
_mc.deeplyNestedEvTarget = new DeeplyNestedEvTarget(that);
|
|
23
34
|
}
|
|
24
35
|
}
|
|
25
36
|
class Logger extends DC {
|
package/public/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,EAAE,EAAE,EAAE,EAAW,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|
package/src/MC.ts
CHANGED
|
@@ -137,22 +137,94 @@ function trigger( target: unknown, ev: McEvent | string, data: any = {}) {
|
|
|
137
137
|
return;
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
// run the "init" lifecycle event on the completemcr structure
|
|
141
|
+
function init( element: MC | DC ){
|
|
142
|
+
let isDomMcInstance = element.constructor === DC;
|
|
143
|
+
|
|
144
|
+
setTimeout(
|
|
145
|
+
() => {
|
|
146
|
+
element.trigger('Init');
|
|
147
|
+
if ( !isDomMcInstance ) {
|
|
148
|
+
setTimeout(
|
|
149
|
+
() => {
|
|
150
|
+
let keys = Object.keys( element?._mc );
|
|
151
|
+
if ( keys.length ){
|
|
152
|
+
//console.log( 'inner Inits on [', mc.constructor.name, ']', keys );
|
|
153
|
+
keys?.forEach( (key: string) => {
|
|
154
|
+
let mc = element?._mc?.[key];
|
|
155
|
+
//console.log( key, typeof mc?.oneInit, mc );
|
|
156
|
+
if ( ( mc as any )['oneInit'] && typeof ( mc as any ).oneInit == 'function' ){
|
|
157
|
+
( mc as any ).oneInit( new McEvent('Init') );
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
, 0
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
, 0
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function autoAttachListeners( element: MC | DC ){
|
|
172
|
+
if ( !isBrowser() || element.constructor === DC ) return;
|
|
173
|
+
|
|
174
|
+
const target = element.target;
|
|
175
|
+
|
|
176
|
+
if ( target instanceof HTMLElement ){
|
|
177
|
+
let that: LooseObject = element;
|
|
178
|
+
Object
|
|
179
|
+
.getOwnPropertyNames( that.constructor.prototype )
|
|
180
|
+
.filter( key => /^on[A-Z]|one[A-Z]/.test(key) && typeof that.constructor.prototype[key] === 'function' )
|
|
181
|
+
.forEach( key => {
|
|
182
|
+
let
|
|
183
|
+
once = /^one/.test(key),
|
|
184
|
+
withoutOnOne = key.replace( /^on[e]{0,1}/, '' ), // preserves upper/lowercase for non-native events
|
|
185
|
+
nativeEventName = withoutOnOne.toLowerCase(),
|
|
186
|
+
listener = ( ev: McEvent | Event | CustomEvent ) => { that.trigger( withoutOnOne, ev ); };
|
|
187
|
+
;
|
|
188
|
+
|
|
189
|
+
if ( once ){
|
|
190
|
+
// console.log( '...is only called once', that.constructor.prototype[key] );
|
|
191
|
+
Object.defineProperty(
|
|
192
|
+
element,
|
|
193
|
+
'on' + withoutOnOne,
|
|
194
|
+
{
|
|
195
|
+
configurable: true,
|
|
196
|
+
enumerable: false,
|
|
197
|
+
writable: true,
|
|
198
|
+
value: (ev: any) => {
|
|
199
|
+
// console.log( 'onceHandler execute:', that.constructor.prototype[key] );
|
|
200
|
+
( that.constructor.prototype[key] ).bind(that)(ev);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if ( nativeEventNames.has( 'on' + nativeEventName ) ){ // native event defined in HTMLElement
|
|
207
|
+
// console.log('added as native listener', target, nativeEventName );
|
|
208
|
+
addListener( target, nativeEventName, listener, false, once );
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
140
214
|
class McBase {
|
|
141
215
|
|
|
142
216
|
#target: WeakRef<any>; // avoid circular reference
|
|
143
217
|
|
|
144
|
-
#_mc: { [key:string]: any } = {};
|
|
145
|
-
|
|
146
218
|
constructor( target: { [key:string]: any } ) {
|
|
147
|
-
let that = this
|
|
219
|
+
let that: unknown = this,
|
|
220
|
+
element = (that as MC | DC );
|
|
148
221
|
|
|
149
222
|
this.#target = new WeakRef( target );
|
|
150
223
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
};
|
|
224
|
+
|
|
225
|
+
init( element ); // async lifecycle event
|
|
226
|
+
|
|
227
|
+
autoAttachListeners( element );
|
|
156
228
|
}
|
|
157
229
|
|
|
158
230
|
get target(): any {
|
|
@@ -163,34 +235,10 @@ class McBase {
|
|
|
163
235
|
|
|
164
236
|
class MC extends McBase {
|
|
165
237
|
|
|
238
|
+
_mc: { [key:string]: any } = {};
|
|
239
|
+
|
|
166
240
|
constructor(target: any) {
|
|
167
241
|
super(target);
|
|
168
|
-
let that = this;
|
|
169
|
-
|
|
170
|
-
setTimeout(
|
|
171
|
-
() => {
|
|
172
|
-
that.trigger('Init');
|
|
173
|
-
setTimeout(
|
|
174
|
-
() => {
|
|
175
|
-
let keys = Object.keys( (that as any)?._mc );
|
|
176
|
-
if ( keys.length ){
|
|
177
|
-
//console.log( 'inner Inits on [', that.constructor.name, ']', keys );
|
|
178
|
-
keys?.forEach( (key: string) => {
|
|
179
|
-
let mc = (that as any)?._mc?.[key];
|
|
180
|
-
//console.log( key, typeof mc?.oneInit, mc );
|
|
181
|
-
if ( mc?.oneInit && typeof mc?.oneInit == 'function' ){
|
|
182
|
-
mc.oneInit( new McEvent('Init') );
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
, 0
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
,0
|
|
191
|
-
);
|
|
192
|
-
|
|
193
|
-
this.autoAttachListeners();
|
|
194
242
|
}
|
|
195
243
|
|
|
196
244
|
static trigger = trigger;
|
|
@@ -276,85 +324,14 @@ class MC extends McBase {
|
|
|
276
324
|
|
|
277
325
|
}
|
|
278
326
|
|
|
279
|
-
autoAttachListeners(){
|
|
280
|
-
if ( !isBrowser() ) return;
|
|
281
|
-
|
|
282
|
-
const target = this.target;
|
|
283
|
-
|
|
284
|
-
if ( target instanceof HTMLElement ){
|
|
285
|
-
let that: LooseObject = this;
|
|
286
|
-
Object
|
|
287
|
-
.getOwnPropertyNames( that.constructor.prototype )
|
|
288
|
-
.filter( key => /^on[A-Z]|one[A-Z]/.test(key) && typeof that.constructor.prototype[key] === 'function' )
|
|
289
|
-
.forEach( key => {
|
|
290
|
-
let
|
|
291
|
-
once = /^one/.test(key),
|
|
292
|
-
withoutOnOne = key.replace( /^on[e]{0,1}/, '' ), // preserves upper/lowercase for non-native events
|
|
293
|
-
nativeEventName = withoutOnOne.toLowerCase(),
|
|
294
|
-
listener = ( ev: McEvent | Event | CustomEvent ) => { that.trigger( withoutOnOne, ev ); };
|
|
295
|
-
;
|
|
296
|
-
|
|
297
|
-
if ( once ){
|
|
298
|
-
// console.log( '...is only called once', that.constructor.prototype[key] );
|
|
299
|
-
Object.defineProperty(
|
|
300
|
-
this,
|
|
301
|
-
'on' + withoutOnOne,
|
|
302
|
-
{
|
|
303
|
-
configurable: true,
|
|
304
|
-
enumerable: false,
|
|
305
|
-
writable: true,
|
|
306
|
-
value: (ev: any) => {
|
|
307
|
-
// console.log( 'onceHandler execute:', that.constructor.prototype[key] );
|
|
308
|
-
( that.constructor.prototype[key] ).bind(that)(ev);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
if ( nativeEventNames.has( 'on' + nativeEventName ) ){ // native event defined in HTMLElement
|
|
315
|
-
// console.log('added as native listener', target, nativeEventName );
|
|
316
|
-
addListener( target, nativeEventName, listener, false, once );
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
|
|
322
327
|
};
|
|
323
328
|
|
|
324
329
|
class DC extends McBase {
|
|
325
330
|
|
|
331
|
+
protected __mc: { [key:string]: any } = {};
|
|
332
|
+
|
|
326
333
|
constructor(target: HTMLElement ) {
|
|
327
334
|
super(target);
|
|
328
|
-
|
|
329
|
-
let that = this,
|
|
330
|
-
isDomMcInstance = that.constructor === DC;
|
|
331
|
-
|
|
332
|
-
setTimeout(
|
|
333
|
-
() => {
|
|
334
|
-
that.trigger('Init');
|
|
335
|
-
if ( !isDomMcInstance ) {
|
|
336
|
-
setTimeout(
|
|
337
|
-
() => {
|
|
338
|
-
let keys = Object.keys( (that as any)?._mc );
|
|
339
|
-
if ( keys.length ){
|
|
340
|
-
//console.log( 'inner Inits on [', that.constructor.name, ']', keys );
|
|
341
|
-
keys?.forEach( (key: string) => {
|
|
342
|
-
let mc = (that as any)?._mc?.[key];
|
|
343
|
-
//console.log( key, typeof mc?.oneInit, mc );
|
|
344
|
-
if ( mc?.oneInit && typeof mc?.oneInit == 'function' ){
|
|
345
|
-
mc.oneInit( new McEvent('Init') );
|
|
346
|
-
}
|
|
347
|
-
});
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
, 0
|
|
351
|
-
);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
, 0
|
|
355
|
-
);
|
|
356
|
-
|
|
357
|
-
this.autoAttachListeners();
|
|
358
335
|
}
|
|
359
336
|
|
|
360
337
|
static debug: boolean = false;
|
|
@@ -364,17 +341,13 @@ class DC extends McBase {
|
|
|
364
341
|
static trigger: Function = trigger;
|
|
365
342
|
|
|
366
343
|
get _mc(): { [key:string]: any } {
|
|
367
|
-
return this.
|
|
344
|
+
return this.__mc;
|
|
368
345
|
}
|
|
369
346
|
|
|
370
347
|
trigger( ev: McEvent | string, data: any = {}, bubble?: string ) {
|
|
371
348
|
MC.prototype.trigger.call( this, ev, data, bubble );
|
|
372
349
|
};
|
|
373
350
|
|
|
374
|
-
autoAttachListeners() {
|
|
375
|
-
MC.prototype.autoAttachListeners.call( this );
|
|
376
|
-
};
|
|
377
|
-
|
|
378
351
|
parent(search: string = ''): any[] {
|
|
379
352
|
let target: HTMLElement = (this as any).target;
|
|
380
353
|
if (!isDOM(target)) return [];
|
package/src/test.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { MC, DC, McEvent } from "./
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { MC, DC, McEvent, defineCE, getCE, makeCO } from "./microcomponents.js";
|
|
4
|
+
//import { MC, DC, McEvent } from "./MC.js";
|
|
5
|
+
//import { defineCE, getCE } from "./customElements.js";
|
|
6
|
+
//import { makeCO } from "./customObservables.js";
|
|
6
7
|
|
|
7
8
|
//MC.debug = true;
|
|
8
9
|
|
|
@@ -14,6 +15,17 @@ class Adder {
|
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
|
|
18
|
+
class DeeplyNestedEvTarget extends MC {
|
|
19
|
+
constructor(target: any) {
|
|
20
|
+
super(target);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
oneInit(ev: McEvent) {
|
|
24
|
+
let logger = this.target?.target?.target?._mc?.logger;
|
|
25
|
+
logger?.warn("DeeplyNestedEvTarget .oneInit(ev)", ev);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
17
29
|
class EvTarget extends MC {
|
|
18
30
|
constructor(target: any) {
|
|
19
31
|
super(target);
|
|
@@ -25,8 +37,13 @@ class EvTarget extends MC {
|
|
|
25
37
|
}
|
|
26
38
|
|
|
27
39
|
oneInit(ev: McEvent) {
|
|
28
|
-
let
|
|
40
|
+
let that = this,
|
|
41
|
+
_mc = that._mc!,
|
|
42
|
+
logger = this.target?.target?._mc?.logger;
|
|
43
|
+
|
|
29
44
|
logger?.warn("EvTarget .oneInit(ev)", ev);
|
|
45
|
+
|
|
46
|
+
_mc.deeplyNestedEvTarget = new DeeplyNestedEvTarget( that );
|
|
30
47
|
}
|
|
31
48
|
}
|
|
32
49
|
|