@twobirds/microcomponents 0.0.51 → 0.0.52
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/formValues.d.ts.map +1 -1
- package/dist/formValues.ts +17 -44
- package/dist/formvValues.min.js +1 -1
- package/dist/microcomponents.min.js +1 -1
- package/package.json +1 -1
- package/public/3d.html +42 -0
- package/public/Grandparent.css +13 -0
- package/public/MC.js +314 -0
- package/public/MC.js.map +1 -0
- package/public/MC.min.js +451 -0
- package/public/McEvent.js +71 -0
- package/public/McEvent.js.map +1 -0
- package/public/MicroComponents.svg +15 -0
- package/public/autoloader.js +53 -0
- package/public/autoloader.js.map +1 -0
- package/public/documentation/MC.md +470 -0
- package/public/documentation/ajaxian-1.png +0 -0
- package/public/documentation/ajaxian-2.png +0 -0
- package/public/documentation/ajaxian-3.png +0 -0
- package/public/documentation/comparision.md +0 -0
- package/public/documentation/elements.md +276 -0
- package/public/documentation/functional_requirements.md +8 -0
- package/public/documentation/history.md +436 -0
- package/public/documentation/how_tos.md +0 -0
- package/public/documentation/introduction.md +0 -0
- package/public/documentation/magic.md +29 -0
- package/public/documentation/proposal_draft.md +37 -0
- package/public/documentation/rnd0023-1.jpg +0 -0
- package/public/documentation/rnd0023-2.jpg +0 -0
- package/public/documentation/rnd0023-3.jpg +0 -0
- package/public/documentation/tB_react.md +207 -0
- package/public/documentation/usage.md +142 -0
- package/public/documentation/why.md +25 -0
- package/public/elements.js +48 -0
- package/public/elements.js.map +1 -0
- package/public/elements.min.js +1 -0
- package/public/fiddle/MicroComponents.svg +15 -0
- package/public/fiddle/fiddle.css +0 -0
- package/public/fiddle/fiddle.js +0 -0
- package/public/fiddle/index.html +0 -0
- package/public/formValues.js +179 -0
- package/public/formValues.js.map +1 -0
- package/public/formvValues.min.js +1 -0
- package/public/helpers.js +113 -0
- package/public/helpers.js.map +1 -0
- package/public/microcomponents.es3.js +303 -0
- package/public/microcomponents.es3.js.map +1 -0
- package/public/microcomponents.js +9 -0
- package/public/microcomponents.js.map +1 -0
- package/public/microcomponents.min.js +1 -0
- package/public/my-tag.css +19 -0
- package/public/observables.js +251 -0
- package/public/observables.js.map +1 -0
- package/public/observables.min.js +1 -0
- package/public/selectors.js +971 -0
- package/public/selectors.js.map +1 -0
- package/public/selectors.min.js +1 -0
- package/public/src/MC.ts +478 -0
- package/public/src/McEvent.ts +96 -0
- package/public/src/autoloader.ts +98 -0
- package/public/src/elements.ts +76 -0
- package/public/src/formValues.ts +250 -0
- package/public/src/helpers.ts +149 -0
- package/public/src/microcomponents.ts +8 -0
- package/public/src/observables.ts +405 -0
- package/public/src/selectors.ts +1634 -0
- package/public/src/test.ts +177 -0
- package/public/test/Grandparent.js +1 -0
- package/public/test/Testform.js +1 -0
- package/public/test.html +27 -0
- package/public/test.js +78 -0
- package/public/test.js.map +1 -0
- package/src/formValues.ts +17 -44
package/public/MC.min.js
ADDED
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
|
5
|
+
define([], factory);
|
|
6
|
+
else if(typeof exports === 'object')
|
|
7
|
+
exports["MC"] = factory();
|
|
8
|
+
else
|
|
9
|
+
root["MC"] = factory();
|
|
10
|
+
})(this, () => {
|
|
11
|
+
return /******/ (() => { // webpackBootstrap
|
|
12
|
+
/******/ "use strict";
|
|
13
|
+
/******/ // The require scope
|
|
14
|
+
/******/ var __webpack_require__ = {};
|
|
15
|
+
/******/
|
|
16
|
+
/************************************************************************/
|
|
17
|
+
/******/ /* webpack/runtime/define property getters */
|
|
18
|
+
/******/ (() => {
|
|
19
|
+
/******/ // define getter functions for harmony exports
|
|
20
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
21
|
+
/******/ for(var key in definition) {
|
|
22
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
23
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
24
|
+
/******/ }
|
|
25
|
+
/******/ }
|
|
26
|
+
/******/ };
|
|
27
|
+
/******/ })();
|
|
28
|
+
/******/
|
|
29
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
30
|
+
/******/ (() => {
|
|
31
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
32
|
+
/******/ })();
|
|
33
|
+
/******/
|
|
34
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
35
|
+
/******/ (() => {
|
|
36
|
+
/******/ // define __esModule on exports
|
|
37
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
38
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
39
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
40
|
+
/******/ }
|
|
41
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
42
|
+
/******/ };
|
|
43
|
+
/******/ })();
|
|
44
|
+
/******/
|
|
45
|
+
/************************************************************************/
|
|
46
|
+
var __webpack_exports__ = {};
|
|
47
|
+
// ESM COMPAT FLAG
|
|
48
|
+
__webpack_require__.r(__webpack_exports__);
|
|
49
|
+
|
|
50
|
+
// EXPORTS
|
|
51
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
52
|
+
DC: () => (/* binding */ DC),
|
|
53
|
+
MC: () => (/* binding */ MC),
|
|
54
|
+
McBase: () => (/* binding */ McBase),
|
|
55
|
+
McEvent: () => (/* reexport */ McEvent),
|
|
56
|
+
addListener: () => (/* binding */ addListener),
|
|
57
|
+
autoload: () => (/* binding */ autoload),
|
|
58
|
+
removeListener: () => (/* binding */ removeListener)
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
;// ./build/McEvent.js
|
|
62
|
+
|
|
63
|
+
var isBrowser = new Function("try {return this===window;}catch(e){ return false;}");
|
|
64
|
+
let nativeEventNames = new Set();
|
|
65
|
+
if (isBrowser()) {
|
|
66
|
+
Object.keys(HTMLElement.prototype).filter(key => /^on/.test(key)).forEach(eventName => nativeEventNames.add(eventName));
|
|
67
|
+
}
|
|
68
|
+
function isDOM(element) {
|
|
69
|
+
return element && element instanceof HTMLElement;
|
|
70
|
+
}
|
|
71
|
+
class McEvent {
|
|
72
|
+
#type;
|
|
73
|
+
#stopped = false;
|
|
74
|
+
#immediateStopped = false;
|
|
75
|
+
constructor(type, data = {}, bubble = 'l') {
|
|
76
|
+
this.#type = type;
|
|
77
|
+
this.data = data;
|
|
78
|
+
this.bubble = bubble;
|
|
79
|
+
}
|
|
80
|
+
get type() {
|
|
81
|
+
return this.#type;
|
|
82
|
+
}
|
|
83
|
+
get stopped() {
|
|
84
|
+
return this.#stopped;
|
|
85
|
+
}
|
|
86
|
+
get immediateStopped() {
|
|
87
|
+
return this.#immediateStopped;
|
|
88
|
+
}
|
|
89
|
+
stopPropagation() {
|
|
90
|
+
this.#stopped = true;
|
|
91
|
+
}
|
|
92
|
+
stopImmediatePropagation() {
|
|
93
|
+
this.stopPropagation();
|
|
94
|
+
this.#immediateStopped = true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function getMicroComponents(elements, search) {
|
|
98
|
+
let mcValues = [];
|
|
99
|
+
elements.forEach(e => {
|
|
100
|
+
if (e) {
|
|
101
|
+
if (e instanceof HTMLElement) {
|
|
102
|
+
const _mc = e?._mc;
|
|
103
|
+
if (!search && _mc) {
|
|
104
|
+
mcValues = mcValues.concat(Object.values(e._mc));
|
|
105
|
+
}
|
|
106
|
+
else if (search && _mc && _mc[search]) {
|
|
107
|
+
mcValues.push(_mc[search]);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return mcValues;
|
|
113
|
+
}
|
|
114
|
+
function traverseNodes(node, search, firstonly = true) {
|
|
115
|
+
let mcValues = [];
|
|
116
|
+
while (node) {
|
|
117
|
+
if (node._mc) {
|
|
118
|
+
if (!search) {
|
|
119
|
+
mcValues = mcValues.concat(Object.values(node._mc));
|
|
120
|
+
}
|
|
121
|
+
else if (search && node._mc[search]) {
|
|
122
|
+
mcValues.push(node._mc[search]);
|
|
123
|
+
}
|
|
124
|
+
if (firstonly)
|
|
125
|
+
return mcValues;
|
|
126
|
+
}
|
|
127
|
+
node = node.parentNode;
|
|
128
|
+
}
|
|
129
|
+
return mcValues;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
;// ./build/MC.js
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
var MC_isBrowser = new Function('try {return this===window;}catch(e){ return false;}');
|
|
137
|
+
let MC_nativeEventNames = new Set();
|
|
138
|
+
if (MC_isBrowser()) {
|
|
139
|
+
Object.keys(HTMLElement.prototype)
|
|
140
|
+
.filter((key) => /^on/.test(key))
|
|
141
|
+
.forEach((eventName) => MC_nativeEventNames.add(eventName));
|
|
142
|
+
}
|
|
143
|
+
function MC_getMicroComponents(elements, search) {
|
|
144
|
+
let mcValues = [];
|
|
145
|
+
elements.forEach((e) => {
|
|
146
|
+
if (e) {
|
|
147
|
+
if (e instanceof HTMLElement) {
|
|
148
|
+
const _mc = e?._mc;
|
|
149
|
+
if (!search && _mc) {
|
|
150
|
+
mcValues = mcValues.concat(Object.values(e._mc));
|
|
151
|
+
}
|
|
152
|
+
else if (search && _mc && _mc[search]) {
|
|
153
|
+
mcValues.push(_mc[search]);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
return mcValues;
|
|
159
|
+
}
|
|
160
|
+
function MC_traverseNodes(node, search, firstonly = true) {
|
|
161
|
+
let mcValues = [];
|
|
162
|
+
while (node) {
|
|
163
|
+
if (node._mc) {
|
|
164
|
+
if (!search) {
|
|
165
|
+
mcValues = mcValues.concat(Object.values(node._mc));
|
|
166
|
+
}
|
|
167
|
+
else if (search && node._mc[search]) {
|
|
168
|
+
mcValues.push(node._mc[search]);
|
|
169
|
+
}
|
|
170
|
+
if (firstonly)
|
|
171
|
+
return mcValues;
|
|
172
|
+
}
|
|
173
|
+
node = node.parentNode;
|
|
174
|
+
}
|
|
175
|
+
return mcValues;
|
|
176
|
+
}
|
|
177
|
+
function MC_isDOM(element) {
|
|
178
|
+
return element && element instanceof HTMLElement;
|
|
179
|
+
}
|
|
180
|
+
function addListener(domNode, eventName, handler, capture = false, once = false) {
|
|
181
|
+
let options = { once: false };
|
|
182
|
+
if (capture) {
|
|
183
|
+
options.capture = capture;
|
|
184
|
+
}
|
|
185
|
+
if (once) {
|
|
186
|
+
options.once = once;
|
|
187
|
+
}
|
|
188
|
+
domNode.addEventListener(eventName, handler, options);
|
|
189
|
+
}
|
|
190
|
+
function removeListener(domNode, eventName, handler) {
|
|
191
|
+
domNode.removeEventListener(eventName, handler);
|
|
192
|
+
}
|
|
193
|
+
function add(target, key, element = {}) {
|
|
194
|
+
let node = target;
|
|
195
|
+
if (!node._mc) {
|
|
196
|
+
let debug = DC?.debug;
|
|
197
|
+
DC.debug = false;
|
|
198
|
+
node._mc = new DC(target);
|
|
199
|
+
DC.debug = debug;
|
|
200
|
+
delete node._mc._mc;
|
|
201
|
+
}
|
|
202
|
+
const _mc = node._mc;
|
|
203
|
+
if (key.length && !_mc[key]) {
|
|
204
|
+
_mc[key] = element;
|
|
205
|
+
if (target instanceof HTMLElement) {
|
|
206
|
+
target.setAttribute('_mc', '');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return element;
|
|
210
|
+
}
|
|
211
|
+
function remove(target, key) {
|
|
212
|
+
if (!key)
|
|
213
|
+
return;
|
|
214
|
+
const _mc = target?._mc || {};
|
|
215
|
+
if (_mc && _mc[key]) {
|
|
216
|
+
delete _mc[key];
|
|
217
|
+
}
|
|
218
|
+
if (!Object.keys(_mc).length &&
|
|
219
|
+
target instanceof HTMLElement &&
|
|
220
|
+
target.hasAttribute('_mc')) {
|
|
221
|
+
target.removeAttribute('_mc');
|
|
222
|
+
}
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
function trigger(target, ev, data = {}, bubble = 'l') {
|
|
226
|
+
let _mc = target?._mc;
|
|
227
|
+
if (!_mc)
|
|
228
|
+
return;
|
|
229
|
+
let event = ev instanceof McEvent
|
|
230
|
+
? new McEvent(ev.type, ev.data, 'l')
|
|
231
|
+
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string' ? ev : new McEvent(ev, data, bubble);
|
|
232
|
+
[...Object.values(_mc)].forEach((mc) => {
|
|
233
|
+
if (mc?.trigger && typeof mc?.trigger === 'function') {
|
|
234
|
+
mc?.trigger(event);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
238
|
+
bubbleEvent(target, mcEvent);
|
|
239
|
+
}
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
function init(element) {
|
|
243
|
+
if (element.constructor === DC)
|
|
244
|
+
return;
|
|
245
|
+
setTimeout(() => {
|
|
246
|
+
element.trigger('Init');
|
|
247
|
+
}, 0);
|
|
248
|
+
}
|
|
249
|
+
function autoAttachListeners(element) {
|
|
250
|
+
if (!MC_isBrowser() || element.constructor === DC)
|
|
251
|
+
return;
|
|
252
|
+
const target = element.target;
|
|
253
|
+
if (target instanceof HTMLElement) {
|
|
254
|
+
let that = element;
|
|
255
|
+
Object.getOwnPropertyNames(that.constructor.prototype)
|
|
256
|
+
.filter((key) => /^on[A-Z]|one[A-Z]/.test(key) &&
|
|
257
|
+
typeof that.constructor.prototype[key] === 'function')
|
|
258
|
+
.forEach((key) => {
|
|
259
|
+
let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
|
|
260
|
+
that.trigger(withoutOnOne, ev);
|
|
261
|
+
};
|
|
262
|
+
if (once) {
|
|
263
|
+
Object.defineProperty(element, 'on' + withoutOnOne, {
|
|
264
|
+
configurable: true,
|
|
265
|
+
enumerable: false,
|
|
266
|
+
writable: true,
|
|
267
|
+
value: (ev) => {
|
|
268
|
+
that.constructor.prototype[key].bind(that)(ev);
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
if (MC_nativeEventNames.has('on' + nativeEventName)) {
|
|
273
|
+
addListener(target, nativeEventName, listener, false, once);
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
function bubbleEvent(target, ev) {
|
|
279
|
+
if (/[ud]/.test(ev.bubble)) {
|
|
280
|
+
setTimeout(() => {
|
|
281
|
+
if (ev.bubble.indexOf('l') === -1) {
|
|
282
|
+
ev.bubble += 'l';
|
|
283
|
+
}
|
|
284
|
+
if (ev.bubble.indexOf('u') > -1) {
|
|
285
|
+
let parent = MC_traverseNodes(target, '', true)?.[0].target;
|
|
286
|
+
if (parent)
|
|
287
|
+
DC.trigger(parent, ev);
|
|
288
|
+
}
|
|
289
|
+
if (ev.bubble.indexOf('d') > -1) {
|
|
290
|
+
let targets = new Set(target._mc
|
|
291
|
+
.children()
|
|
292
|
+
.map((c) => c?.target));
|
|
293
|
+
targets.forEach((target) => {
|
|
294
|
+
if (target)
|
|
295
|
+
DC.trigger(target, ev);
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
}, 0);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
class McBase {
|
|
302
|
+
#target;
|
|
303
|
+
constructor(target, debug = false) {
|
|
304
|
+
let that = this, element = that;
|
|
305
|
+
this.#target = new WeakRef(target || {});
|
|
306
|
+
init(element);
|
|
307
|
+
autoAttachListeners(element);
|
|
308
|
+
}
|
|
309
|
+
get target() {
|
|
310
|
+
return this.#target.deref();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
class MC extends McBase {
|
|
314
|
+
_mc = {};
|
|
315
|
+
constructor(target) {
|
|
316
|
+
super(target);
|
|
317
|
+
}
|
|
318
|
+
static trigger = trigger;
|
|
319
|
+
trigger(ev, data = {}, bubble = 'l') {
|
|
320
|
+
let that = this;
|
|
321
|
+
if (that.constructor === MC || that.constructor === DC) {
|
|
322
|
+
let event = ev instanceof McEvent
|
|
323
|
+
? new McEvent(ev.type, ev.data, 'l')
|
|
324
|
+
: new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string'
|
|
325
|
+
? ev
|
|
326
|
+
: new McEvent(ev, data, bubble);
|
|
327
|
+
[...Object.getOwnPropertyNames(that)].forEach((mc) => {
|
|
328
|
+
if (that[mc]?.trigger &&
|
|
329
|
+
typeof that[mc]?.trigger === 'function') {
|
|
330
|
+
that[mc]?.trigger(event);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
334
|
+
bubbleEvent(that.target, mcEvent);
|
|
335
|
+
}
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
if (that instanceof MC || that instanceof DC) {
|
|
339
|
+
const that = this, mcEvent = typeof ev !== 'string'
|
|
340
|
+
? ev
|
|
341
|
+
: new McEvent(ev, data, bubble), handlerName = 'on' + mcEvent.type[0].toUpperCase() + mcEvent.type.slice(1);
|
|
342
|
+
if (mcEvent.bubble.indexOf('l') > -1) {
|
|
343
|
+
if (!mcEvent.immediateStopped &&
|
|
344
|
+
typeof that[handlerName] === 'function') {
|
|
345
|
+
that[handlerName](mcEvent);
|
|
346
|
+
if (that.hasOwnProperty(handlerName)) {
|
|
347
|
+
delete that[handlerName];
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
if (mcEvent.stopped || mcEvent.bubble === 'l') {
|
|
352
|
+
return that;
|
|
353
|
+
}
|
|
354
|
+
if (/[ud]/.test(mcEvent.bubble)) {
|
|
355
|
+
bubbleEvent(that.target, mcEvent);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
class DC extends McBase {
|
|
361
|
+
_mc = {};
|
|
362
|
+
constructor(target, debug = false) {
|
|
363
|
+
super(target);
|
|
364
|
+
}
|
|
365
|
+
static add = add;
|
|
366
|
+
static remove = remove;
|
|
367
|
+
static trigger = trigger;
|
|
368
|
+
trigger(ev, data = {}, bubble) {
|
|
369
|
+
MC.prototype.trigger.call(this, ev, data, bubble);
|
|
370
|
+
}
|
|
371
|
+
parent(search = '') {
|
|
372
|
+
let target = this.target;
|
|
373
|
+
if (!MC_isDOM(target))
|
|
374
|
+
return [];
|
|
375
|
+
return MC_traverseNodes(target.parentNode, search, true);
|
|
376
|
+
}
|
|
377
|
+
ancestors(search = '') {
|
|
378
|
+
let target = this?.target;
|
|
379
|
+
if (!MC_isDOM(target))
|
|
380
|
+
return [];
|
|
381
|
+
return MC_traverseNodes(this.target.parentNode, search, false);
|
|
382
|
+
}
|
|
383
|
+
children(search = '') {
|
|
384
|
+
let target = this?.target;
|
|
385
|
+
if (!MC_isDOM(target))
|
|
386
|
+
return [];
|
|
387
|
+
const id = Math.random().toString().replace('.', '');
|
|
388
|
+
const selector = '[_mc]:not([temp_id="' + id + '"] [_mc] [_mc])';
|
|
389
|
+
target.setAttribute('temp_id', id);
|
|
390
|
+
const myDomElements = target.querySelectorAll(selector);
|
|
391
|
+
const mcValues = MC_getMicroComponents([...myDomElements], search);
|
|
392
|
+
target.removeAttribute('temp_id');
|
|
393
|
+
return mcValues;
|
|
394
|
+
}
|
|
395
|
+
descendants(search = '') {
|
|
396
|
+
let target = this?.target;
|
|
397
|
+
if (!MC_isDOM(target))
|
|
398
|
+
return [];
|
|
399
|
+
const myDomElements = target.querySelectorAll('*[_mc]');
|
|
400
|
+
return MC_getMicroComponents([...myDomElements], search);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
let observer = null;
|
|
405
|
+
const unresolved = new Map();
|
|
406
|
+
function loadit() {
|
|
407
|
+
document
|
|
408
|
+
.querySelectorAll(':not(:defined),[_mc]:not([_mc=""])')
|
|
409
|
+
.forEach((el) => {
|
|
410
|
+
const load = el.tagName.includes('-')
|
|
411
|
+
? [el.tagName.toLowerCase()]
|
|
412
|
+
: el.getAttribute('_mc').trim().split(' ');
|
|
413
|
+
load.forEach((elementName) => {
|
|
414
|
+
let fileName = elementName.toLowerCase().split('-'), lastElement = fileName[fileName.length - 1], renameLastElement = lastElement[0].toUpperCase() + lastElement.slice(1);
|
|
415
|
+
fileName[fileName.length - 1] = renameLastElement;
|
|
416
|
+
fileName = fileName.join('/') + '.js';
|
|
417
|
+
if (el.tagName.includes('-') &&
|
|
418
|
+
!unresolved.has(el.tagName.toLowerCase())) {
|
|
419
|
+
const se = document.createElement('script');
|
|
420
|
+
unresolved.set(elementName, fileName);
|
|
421
|
+
se.setAttribute('src', fileName);
|
|
422
|
+
se.setAttribute('blocking', 'render');
|
|
423
|
+
se.setAttribute('type', 'module');
|
|
424
|
+
se.onload = () => {
|
|
425
|
+
unresolved.delete(elementName);
|
|
426
|
+
};
|
|
427
|
+
document.head.append(se);
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
let autoloadEnabled = false;
|
|
433
|
+
function autoload(enable = true) {
|
|
434
|
+
if (!enable) {
|
|
435
|
+
observer?.disconnect();
|
|
436
|
+
observer = null;
|
|
437
|
+
return autoloadEnabled;
|
|
438
|
+
}
|
|
439
|
+
autoloadEnabled = enable;
|
|
440
|
+
observer = new MutationObserver(loadit);
|
|
441
|
+
setTimeout(() => {
|
|
442
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
443
|
+
loadit();
|
|
444
|
+
}, 5);
|
|
445
|
+
return autoloadEnabled;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/******/ return __webpack_exports__;
|
|
449
|
+
/******/ })()
|
|
450
|
+
;
|
|
451
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var isBrowser = new Function("try {return this===window;}catch(e){ return false;}");
|
|
3
|
+
let nativeEventNames = new Set();
|
|
4
|
+
if (isBrowser()) {
|
|
5
|
+
Object.keys(HTMLElement.prototype).filter(key => /^on/.test(key)).forEach(eventName => nativeEventNames.add(eventName));
|
|
6
|
+
}
|
|
7
|
+
function isDOM(element) {
|
|
8
|
+
return element && element instanceof HTMLElement;
|
|
9
|
+
}
|
|
10
|
+
class McEvent {
|
|
11
|
+
#type;
|
|
12
|
+
#stopped = false;
|
|
13
|
+
#immediateStopped = false;
|
|
14
|
+
constructor(type, data = {}, bubble = 'l') {
|
|
15
|
+
this.#type = type;
|
|
16
|
+
this.data = data;
|
|
17
|
+
this.bubble = bubble;
|
|
18
|
+
}
|
|
19
|
+
get type() {
|
|
20
|
+
return this.#type;
|
|
21
|
+
}
|
|
22
|
+
get stopped() {
|
|
23
|
+
return this.#stopped;
|
|
24
|
+
}
|
|
25
|
+
get immediateStopped() {
|
|
26
|
+
return this.#immediateStopped;
|
|
27
|
+
}
|
|
28
|
+
stopPropagation() {
|
|
29
|
+
this.#stopped = true;
|
|
30
|
+
}
|
|
31
|
+
stopImmediatePropagation() {
|
|
32
|
+
this.stopPropagation();
|
|
33
|
+
this.#immediateStopped = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function getMicroComponents(elements, search) {
|
|
37
|
+
let mcValues = [];
|
|
38
|
+
elements.forEach(e => {
|
|
39
|
+
if (e) {
|
|
40
|
+
if (e instanceof HTMLElement) {
|
|
41
|
+
const _mc = e?._mc;
|
|
42
|
+
if (!search && _mc) {
|
|
43
|
+
mcValues = mcValues.concat(Object.values(e._mc));
|
|
44
|
+
}
|
|
45
|
+
else if (search && _mc && _mc[search]) {
|
|
46
|
+
mcValues.push(_mc[search]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return mcValues;
|
|
52
|
+
}
|
|
53
|
+
function traverseNodes(node, search, firstonly = true) {
|
|
54
|
+
let mcValues = [];
|
|
55
|
+
while (node) {
|
|
56
|
+
if (node._mc) {
|
|
57
|
+
if (!search) {
|
|
58
|
+
mcValues = mcValues.concat(Object.values(node._mc));
|
|
59
|
+
}
|
|
60
|
+
else if (search && node._mc[search]) {
|
|
61
|
+
mcValues.push(node._mc[search]);
|
|
62
|
+
}
|
|
63
|
+
if (firstonly)
|
|
64
|
+
return mcValues;
|
|
65
|
+
}
|
|
66
|
+
node = node.parentNode;
|
|
67
|
+
}
|
|
68
|
+
return mcValues;
|
|
69
|
+
}
|
|
70
|
+
export { McEvent };
|
|
71
|
+
//# sourceMappingURL=McEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"McEvent.js","sourceRoot":"","sources":["../src/McEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
|
3
|
+
<title>test</title>
|
|
4
|
+
<rect fill="transparent" x="0" y="0" width="200" height="200" fill-opacity="1"/>
|
|
5
|
+
<g style="fill:transparent">
|
|
6
|
+
<title>first bird</title>
|
|
7
|
+
<path fill="#18829c" d="
|
|
8
|
+
m15,160
|
|
9
|
+
a30,75 45 1 0 160,-150
|
|
10
|
+
a20,50 225 1 1 -110,100
|
|
11
|
+
a12,25 45 1 1 60,-50
|
|
12
|
+
a20,50 225 1 0 -110,100
|
|
13
|
+
" />
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { getCE } from './elements.js';
|
|
3
|
+
const loadingScripts = new Set();
|
|
4
|
+
const _makeLoadData = (e) => {
|
|
5
|
+
let tagName = e?.localName ?? '', isAttribute = e.getAttribute?.('is') || '', isUBE = isAttribute ? true : false, isCE = tagName.indexOf('-') !== -1 ? true : false, ubeSelector = isUBE ? `${tagName}[is=\"${isAttribute}\"]:defined` : '', ceSelector = isCE ? tagName + ':defined' : '', fileBaseName = isUBE
|
|
6
|
+
? isAttribute
|
|
7
|
+
: isCE
|
|
8
|
+
? tagName
|
|
9
|
+
: '', fileName = fileBaseName.length ? '/' + fileBaseName.split('-').join('/') + '.js' : '', selector = isUBE
|
|
10
|
+
? ubeSelector
|
|
11
|
+
: isCE
|
|
12
|
+
? ceSelector
|
|
13
|
+
: '';
|
|
14
|
+
return (isUBE || isCE) ? [e, selector, fileName, fileBaseName] : false;
|
|
15
|
+
};
|
|
16
|
+
const _loadRequirements = (node) => {
|
|
17
|
+
let undefinedSet = new Set(), element = node instanceof HTMLTemplateElement ? node.content : node, head = document.head, allPromises = [], e;
|
|
18
|
+
;
|
|
19
|
+
if (element instanceof HTMLTemplateElement === false) {
|
|
20
|
+
let data = _makeLoadData(element);
|
|
21
|
+
if (data && !data[0].matches(data[1])) {
|
|
22
|
+
undefinedSet.add(data);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
Array.from(element.childNodes).forEach((node) => {
|
|
26
|
+
let data = _makeLoadData(node);
|
|
27
|
+
if (data && !data[0].matches(data[1])) {
|
|
28
|
+
undefinedSet.add(data);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
if (!!undefinedSet.size) {
|
|
32
|
+
undefinedSet.forEach((data) => {
|
|
33
|
+
if (!getCE(data[3]) && !loadingScripts.has(data[2])) {
|
|
34
|
+
loadingScripts.add(data[2]);
|
|
35
|
+
const se = document.createElement('script');
|
|
36
|
+
se.setAttribute('src', data[2]);
|
|
37
|
+
se.setAttribute('blocking', 'render');
|
|
38
|
+
se.setAttribute('type', 'module');
|
|
39
|
+
let s = data[2];
|
|
40
|
+
se.onload = () => {
|
|
41
|
+
loadingScripts.delete(s);
|
|
42
|
+
};
|
|
43
|
+
head.append(se);
|
|
44
|
+
let e = data[0];
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return Promise.all(allPromises);
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=autoloader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoloader.js","sourceRoot":"","sources":["../src/autoloader.ts"],"names":[],"mappings":"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"}
|