@twobirds/microcomponents 0.0.72 → 0.0.75
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 +35 -24
- package/assets/documentation/MC.md +2 -2
- package/assets/documentation/MicroComponents.svg +15 -0
- package/assets/documentation/elements.md +18 -16
- package/assets/documentation/formvalues.md +5 -26
- package/assets/documentation/observables.md +18 -24
- package/assets/test/test.html +5 -4
- package/assets/test/testform.json +27 -0
- package/dist/MC.d.ts +2 -2
- package/dist/MC.d.ts.map +1 -1
- package/dist/MC.min.js +2 -1
- package/dist/MC.ts +6 -3
- package/dist/elements.min.js +1 -1
- package/dist/formValues.d.ts.map +1 -1
- package/dist/formValues.ts +0 -14
- package/dist/formvValues.min.js +1 -1
- 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 +177 -169
- package/dist/selectors.min.js +1 -1
- package/package.json +1 -1
- package/public/MC.d.ts +2 -2
- package/public/MC.d.ts.map +1 -1
- package/public/MC.js +4 -3
- package/public/MC.js.map +1 -1
- package/public/MC.min.js +2 -1
- package/public/MC.ts +6 -3
- package/public/documentation/MC.md +2 -2
- package/public/documentation/MicroComponents.svg +15 -0
- package/public/documentation/elements.md +18 -16
- package/public/documentation/formvalues.md +5 -26
- package/public/documentation/klemmstein.png +0 -0
- package/public/documentation/observables.md +18 -24
- package/public/elements.min.js +1 -1
- package/public/formValues.d.ts.map +1 -1
- package/public/formValues.js.map +1 -1
- package/public/formValues.ts +0 -14
- package/public/formvValues.min.js +1 -1
- package/public/microcomponents.min.js +1 -1
- package/public/observables.d.ts.map +1 -1
- package/public/observables.js +111 -118
- package/public/observables.js.map +1 -1
- package/public/observables.min.js +1 -1
- package/public/observables.ts +177 -169
- package/public/selectors.min.js +1 -1
- package/public/src/MC.ts +6 -3
- package/public/src/formValues.ts +0 -14
- package/public/src/observables.ts +177 -169
- package/public/test/MC.d.ts +2 -2
- package/public/test/MC.d.ts.map +1 -1
- package/public/test/MC.js +4 -3
- package/public/test/MC.js.map +1 -1
- package/public/test/MC.ts +6 -3
- package/public/test/formValues.d.ts.map +1 -1
- package/public/test/formValues.js.map +1 -1
- package/public/test/formValues.ts +0 -14
- package/public/test/microcomponents.min.js +1 -1
- package/public/test/observables.d.ts.map +1 -1
- package/public/test/observables.js +111 -118
- package/public/test/observables.js.map +1 -1
- package/public/test/observables.ts +177 -169
- package/public/test/test/grandparent.js +1 -1
- package/public/test/test/testform.js +1 -1
- package/public/test/test/testform.js.map +1 -1
- package/public/test/test.d.ts.map +1 -1
- package/public/test/test.html +5 -4
- package/public/test/test.js +5 -6
- package/public/test/test.js.map +1 -1
- package/public/test/testform.json +27 -0
- package/public/typedoc/assets/navigation.js +1 -1
- package/public/typedoc/assets/search.js +1 -1
- package/public/typedoc/classes/MC.DC.html +2 -2
- package/public/typedoc/classes/MC.MC.html +2 -2
- package/public/typedoc/classes/MC.McBase.html +2 -2
- package/public/typedoc/classes/MC.McEvent.html +2 -2
- package/public/typedoc/functions/MC.addListener.html +1 -1
- package/public/typedoc/functions/MC.autoload.html +1 -1
- package/public/typedoc/functions/MC.removeListener.html +1 -1
- package/public/typedoc/functions/elements.defineCE.html +1 -1
- package/public/typedoc/functions/elements.getCE.html +1 -1
- package/public/typedoc/functions/formValues.formValues.html +1 -1
- package/public/typedoc/functions/observables.observe.html +1 -1
- package/public/typedoc/index.html +40 -23
- package/public/typedoc/interfaces/MC.HTMLMcElement.html +2 -2
- package/public/typedoc/modules/MC.html +1 -1
- package/public/typedoc/modules/elements.html +1 -1
- package/public/typedoc/modules/formValues.html +1 -1
- package/public/typedoc/modules/observables.html +1 -1
- package/public/typedoc/modules.html +0 -1
- package/public/typedoc/types/observables.Observable.html +1 -1
- package/src/MC.ts +6 -3
- package/src/formValues.ts +0 -14
- package/src/observables.ts +177 -169
- package/src/test/test/testform.ts +10 -2
- package/src/{test.ts → test/test.ts} +32 -26
- package/tsconfig.json +2 -2
- package/typedoc.json +1 -1
- package/checklist.md +0 -93
- package/dist/microcomponents.es3.d.ts +0 -2
- package/dist/microcomponents.es3.d.ts.map +0 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.ts +0 -194
- package/public/microcomponents.es3.d.ts +0 -2
- package/public/microcomponents.es3.d.ts.map +0 -1
- package/public/microcomponents.es3.js +0 -303
- package/public/microcomponents.es3.js.map +0 -1
- package/public/src/test.ts +0 -194
- package/public/test/microcomponents.es3.d.ts +0 -2
- package/public/test/microcomponents.es3.d.ts.map +0 -1
- package/public/test/microcomponents.es3.js +0 -303
- package/public/test/microcomponents.es3.js.map +0 -1
- package/public/test/test.ts +0 -194
- package/public/typedoc/functions/selectors._d.html +0 -1
- package/public/typedoc/functions/selectors._t.html +0 -1
- package/public/typedoc/interfaces/selectors.DSelector.html +0 -50
- package/public/typedoc/interfaces/selectors.TSelector.html +0 -34
- package/public/typedoc/modules/selectors.html +0 -7
- package/public/typedoc/types/selectors.selection.html +0 -1
- package/public/typedoc/types/selectors.singleSelector.html +0 -1
- package/src/microcomponents.es3.js +0 -377
- /package/{klemmstein.png → assets/documentation/klemmstein.png} +0 -0
package/public/src/test.ts
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
LooseObject,
|
|
5
|
-
DC,
|
|
6
|
-
McEvent,
|
|
7
|
-
defineCE,
|
|
8
|
-
getCE,
|
|
9
|
-
observe,
|
|
10
|
-
Observable,
|
|
11
|
-
} from './microcomponents.js';
|
|
12
|
-
|
|
13
|
-
class Translator extends DC {
|
|
14
|
-
#translations: LooseObject = {};
|
|
15
|
-
|
|
16
|
-
Language: unknown = 'en';
|
|
17
|
-
Translation: unknown = {};
|
|
18
|
-
|
|
19
|
-
constructor(
|
|
20
|
-
target: HTMLElement | ShadowRoot | DocumentFragment,
|
|
21
|
-
translations: LooseObject,
|
|
22
|
-
translationTargetObject: HTMLElement
|
|
23
|
-
) {
|
|
24
|
-
super(target as HTMLElement);
|
|
25
|
-
let that = this; // minifier help
|
|
26
|
-
|
|
27
|
-
// state
|
|
28
|
-
that.Language = 'en';
|
|
29
|
-
that.Translation = {};
|
|
30
|
-
|
|
31
|
-
observe(that);
|
|
32
|
-
|
|
33
|
-
// setup
|
|
34
|
-
that.#translations = translations;
|
|
35
|
-
|
|
36
|
-
// state
|
|
37
|
-
(that.Language as Observable).observe((lang) => {
|
|
38
|
-
if (that.#translations.hasOwnProperty(lang)) {
|
|
39
|
-
that.Translation = { lang: that.#translations[lang] }; // set translation
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
(that.Translation as Observable).bind(translationTargetObject);
|
|
44
|
-
|
|
45
|
-
that.target.setAttribute('language', 'en');
|
|
46
|
-
|
|
47
|
-
(that.Language as Observable).notify();
|
|
48
|
-
|
|
49
|
-
delete that._mc; // cleanup, not needed
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
onAttributeChanged(ev: McEvent) {
|
|
53
|
-
if (!ev.data.newValue) return;
|
|
54
|
-
switch (ev.data.name) {
|
|
55
|
-
case 'language':
|
|
56
|
-
this.Language = ev.data.newValue;
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
defineCE(
|
|
63
|
-
// equivalent to custom element registry .define()
|
|
64
|
-
'my-tag',
|
|
65
|
-
class MyTag extends DC {
|
|
66
|
-
#template: string = '<button>{lang.click} {counter}</button>';
|
|
67
|
-
|
|
68
|
-
#languages = {
|
|
69
|
-
en: {
|
|
70
|
-
click: 'click me',
|
|
71
|
-
},
|
|
72
|
-
de: {
|
|
73
|
-
click: 'klick mich',
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
Dom: LooseObject = {};
|
|
78
|
-
|
|
79
|
-
constructor(target: HTMLElement) {
|
|
80
|
-
super(target);
|
|
81
|
-
|
|
82
|
-
let that = this; // minifier help
|
|
83
|
-
|
|
84
|
-
// render
|
|
85
|
-
target.innerHTML = this.#template;
|
|
86
|
-
|
|
87
|
-
// add translator
|
|
88
|
-
DC.add(
|
|
89
|
-
target,
|
|
90
|
-
'translator',
|
|
91
|
-
new Translator(target, that.#languages, target)
|
|
92
|
-
);
|
|
93
|
-
|
|
94
|
-
delete that._mc; // cleanup, not needed
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
oneInit(ev: McEvent) {
|
|
98
|
-
let that = this;
|
|
99
|
-
|
|
100
|
-
// state
|
|
101
|
-
that.Dom = { counter: 0 };
|
|
102
|
-
|
|
103
|
-
// state: convert all props defined so far into observables
|
|
104
|
-
observe(that);
|
|
105
|
-
|
|
106
|
-
// bind Dom to target
|
|
107
|
-
(that.Dom as Observable).bind(that.target);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
onClick(ev: McEvent) {
|
|
111
|
-
const that = this,
|
|
112
|
-
c = that.Dom.counter++;
|
|
113
|
-
(ev.data as PointerEvent).stopPropagation();
|
|
114
|
-
(that.target as HTMLElement).classList.remove('clicked');
|
|
115
|
-
(that.target as HTMLElement).classList.add(
|
|
116
|
-
that.Dom.counter > 9 ? 'overClicked' : 'clicked'
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
['language']
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
let MyTag: CustomElementConstructor = getCE('my-tag')!,
|
|
124
|
-
fragment = new DocumentFragment();
|
|
125
|
-
|
|
126
|
-
/*
|
|
127
|
-
stress test
|
|
128
|
-
*/
|
|
129
|
-
|
|
130
|
-
let start = new Date().getTime(),
|
|
131
|
-
max = 1000;
|
|
132
|
-
|
|
133
|
-
// create 1000 elements
|
|
134
|
-
for (let x = 0; x < max; x++) {
|
|
135
|
-
fragment.append(new MyTag());
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
let end = new Date().getTime();
|
|
139
|
-
|
|
140
|
-
// and put them into the DOM
|
|
141
|
-
document.body.appendChild(fragment);
|
|
142
|
-
|
|
143
|
-
//document.querySelectorAll('my-tag').forEach((e) => e.remove());
|
|
144
|
-
|
|
145
|
-
/*
|
|
146
|
-
console test
|
|
147
|
-
*/
|
|
148
|
-
|
|
149
|
-
setTimeout(() => {
|
|
150
|
-
// console.clear();
|
|
151
|
-
|
|
152
|
-
console.log(
|
|
153
|
-
'%c \n\nStress Test:\n\n %cInstancing %s web components (%s classes): %c %s ms.',
|
|
154
|
-
'font-weight: bold; color: black;',
|
|
155
|
-
'font-weight: normal;',
|
|
156
|
-
max,
|
|
157
|
-
max * 3,
|
|
158
|
-
'font-weight: bold; color: blue;',
|
|
159
|
-
end - start
|
|
160
|
-
);
|
|
161
|
-
|
|
162
|
-
//document.body.appendChild(new MyTag());
|
|
163
|
-
|
|
164
|
-
let element = document.querySelector('my-tag');
|
|
165
|
-
|
|
166
|
-
console.log(
|
|
167
|
-
"\n\n%cInspect this tag:%c \n( ...to see the inner structure in the '._mc' property )\n\n %O %c %s",
|
|
168
|
-
'font-weight: bold;',
|
|
169
|
-
'font-weight: normal;',
|
|
170
|
-
element,
|
|
171
|
-
'font-weight: bold;',
|
|
172
|
-
'\n\nLook up code in the debugger: test.js\n'
|
|
173
|
-
);
|
|
174
|
-
|
|
175
|
-
let form = ( document.querySelector('test-testform') as any);
|
|
176
|
-
let formInstance = form._mc.TestTestform;
|
|
177
|
-
|
|
178
|
-
(window as any).form = formInstance;
|
|
179
|
-
console.log(
|
|
180
|
-
"\n\n%cAttached a global variable 'form':%c \n\n %O %c %s %c %s %c %s",
|
|
181
|
-
'font-weight: bold;',
|
|
182
|
-
'font-weight: normal;',
|
|
183
|
-
formInstance,
|
|
184
|
-
'font-weight: bold;',
|
|
185
|
-
'\n\nYou can use it to change input values, e.g. \n\n',
|
|
186
|
-
'font-weight: normal;',
|
|
187
|
-
' form.data.textInput="other value"',
|
|
188
|
-
'font-weight: bold;',
|
|
189
|
-
'\n\nChanges will be reflected in the form contents, same as vice versa.\n'
|
|
190
|
-
);
|
|
191
|
-
|
|
192
|
-
// will trigger the event on all micro components contained in <my-tag>
|
|
193
|
-
DC.trigger(element, 'doSomething');
|
|
194
|
-
}, 500);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microcomponents.es3.d.ts","sourceRoot":"","sources":["../src/microcomponents.es3.js"],"names":[],"mappings":"AAgWA,mFAwBC"}
|
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
(function () {
|
|
3
|
-
if (!String.prototype.trim) {
|
|
4
|
-
String.prototype.trim = function () {
|
|
5
|
-
return this.replace(/^\s+|\s+$/g, "");
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
function unique(elements) {
|
|
9
|
-
var uniqueElements = [];
|
|
10
|
-
for (var i = 0; i < elements.length; i++) {
|
|
11
|
-
if (uniqueElements.indexOf(elements[i]) === -1) {
|
|
12
|
-
uniqueElements.push(elements[i]);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return uniqueElements;
|
|
16
|
-
}
|
|
17
|
-
function matchesAttribute(element, attrSelector) {
|
|
18
|
-
var match = attrSelector.match(/^\[([^\]=~^$*]+)([~^$*|]?=)?(['"]?)(.*?)\3\]$/);
|
|
19
|
-
if (!match)
|
|
20
|
-
return false;
|
|
21
|
-
var attrName = match[1];
|
|
22
|
-
var operator = match[2] || null;
|
|
23
|
-
var attrValue = match[4] || null;
|
|
24
|
-
var actualValue = element.getAttribute(attrName);
|
|
25
|
-
if (actualValue === null)
|
|
26
|
-
return false;
|
|
27
|
-
switch (operator) {
|
|
28
|
-
case null:
|
|
29
|
-
return true;
|
|
30
|
-
case "=":
|
|
31
|
-
return actualValue === attrValue;
|
|
32
|
-
case "~=":
|
|
33
|
-
return (" " + actualValue + " ").indexOf(" " + attrValue + " ") !== -1;
|
|
34
|
-
case "^=":
|
|
35
|
-
return actualValue.indexOf(attrValue) === 0;
|
|
36
|
-
case "$=":
|
|
37
|
-
return actualValue.slice(-attrValue.length) === attrValue;
|
|
38
|
-
case "*=":
|
|
39
|
-
return actualValue.indexOf(attrValue) !== -1;
|
|
40
|
-
default:
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
function matchesSelector(element, selector) {
|
|
45
|
-
var regex = /(\w+)?(?:\.([\w\-]+))?(?:\[.*?\])?/g;
|
|
46
|
-
var match, tagMatch, classMatch, attrMatch;
|
|
47
|
-
while ((match = regex.exec(selector))) {
|
|
48
|
-
tagMatch = match[1];
|
|
49
|
-
classMatch = match[2] ? match[2].split(".") : null;
|
|
50
|
-
attrMatch = selector.match(/\[.*?\]/g);
|
|
51
|
-
if (tagMatch &&
|
|
52
|
-
element.tagName.toLowerCase() !== tagMatch.toLowerCase()) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
if (classMatch) {
|
|
56
|
-
for (var i = 0; i < classMatch.length; i++) {
|
|
57
|
-
if ((" " + element.className + " ").indexOf(" " + classMatch[i] + " ") === -1) {
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (attrMatch) {
|
|
63
|
-
for (var j = 0; j < attrMatch.length; j++) {
|
|
64
|
-
if (!matchesAttribute(element, attrMatch[j])) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
if (!document.querySelectorAll) {
|
|
73
|
-
document.querySelectorAll = function (selectors) {
|
|
74
|
-
var simpleSelectors = selectors.split(",");
|
|
75
|
-
var results = [];
|
|
76
|
-
for (var i = 0; i < simpleSelectors.length; i++) {
|
|
77
|
-
var selector = simpleSelectors[i].trim();
|
|
78
|
-
if (!selector)
|
|
79
|
-
continue;
|
|
80
|
-
var allElements = document.getElementsByTagName("*");
|
|
81
|
-
for (var j = 0; j < allElements.length; j++) {
|
|
82
|
-
if (matchesSelector(allElements[j], selector)) {
|
|
83
|
-
results.push(allElements[j]);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return unique(results);
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
if (!document.querySelector) {
|
|
91
|
-
document.querySelector = function (selectors) {
|
|
92
|
-
var elements = document.querySelectorAll(selectors);
|
|
93
|
-
return elements.length ? elements[0] : null;
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
if (typeof HTMLElement !== "undefined" &&
|
|
97
|
-
!HTMLElement.prototype.querySelectorAll) {
|
|
98
|
-
HTMLElement.prototype.querySelectorAll = function (selectors) {
|
|
99
|
-
var simpleSelectors = selectors.split(",");
|
|
100
|
-
var results = [];
|
|
101
|
-
for (var i = 0; i < simpleSelectors.length; i++) {
|
|
102
|
-
var selector = simpleSelectors[i].trim();
|
|
103
|
-
if (!selector)
|
|
104
|
-
continue;
|
|
105
|
-
var allElements = this.getElementsByTagName("*");
|
|
106
|
-
for (var j = 0; j < allElements.length; j++) {
|
|
107
|
-
if (matchesSelector(allElements[j], selector)) {
|
|
108
|
-
results.push(allElements[j]);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return unique(results);
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
if (typeof HTMLElement !== "undefined" &&
|
|
116
|
-
!HTMLElement.prototype.querySelector) {
|
|
117
|
-
HTMLElement.prototype.querySelector = function (selectors) {
|
|
118
|
-
var elements = this.querySelectorAll(selectors);
|
|
119
|
-
return elements.length ? elements[0] : null;
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
if (!Object.values) {
|
|
123
|
-
Object.values = function (obj) {
|
|
124
|
-
if (obj === null ||
|
|
125
|
-
(typeof obj !== "object" && typeof obj !== "function")) {
|
|
126
|
-
throw new TypeError("Object.values called on a non-object");
|
|
127
|
-
}
|
|
128
|
-
var values = [];
|
|
129
|
-
for (var key in obj) {
|
|
130
|
-
if (obj.hasOwnProperty(key)) {
|
|
131
|
-
values.push(obj[key]);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return values;
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
})();
|
|
138
|
-
window.MC = (function () {
|
|
139
|
-
function getMicroComponents(elements, search) {
|
|
140
|
-
let mcValues = [];
|
|
141
|
-
elements.forEach((e) => {
|
|
142
|
-
if (e) {
|
|
143
|
-
if (e instanceof HTMLElement) {
|
|
144
|
-
const _mc = e?._mc;
|
|
145
|
-
if (!search && _mc) {
|
|
146
|
-
mcValues = mcValues.concat(Object.values(e._mc));
|
|
147
|
-
}
|
|
148
|
-
else if (search && _mc && _mc[search]) {
|
|
149
|
-
mcValues.push(_mc[search]);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
return mcValues;
|
|
155
|
-
}
|
|
156
|
-
function traverseNodes(node, search, firstonly = true) {
|
|
157
|
-
let mcValues = [];
|
|
158
|
-
while (node) {
|
|
159
|
-
if (node._mc) {
|
|
160
|
-
if (!search) {
|
|
161
|
-
mcValues = mcValues.concat(Object.values(node._mc));
|
|
162
|
-
}
|
|
163
|
-
else if (search && node._mc[search]) {
|
|
164
|
-
mcValues.push(node._mc[search]);
|
|
165
|
-
}
|
|
166
|
-
if (firstonly)
|
|
167
|
-
return mcValues;
|
|
168
|
-
}
|
|
169
|
-
node = node.parentNode;
|
|
170
|
-
}
|
|
171
|
-
return mcValues;
|
|
172
|
-
}
|
|
173
|
-
function isDOM(element) {
|
|
174
|
-
return element && element instanceof HTMLElement;
|
|
175
|
-
}
|
|
176
|
-
var MC = function () { };
|
|
177
|
-
class MC {
|
|
178
|
-
#target = {};
|
|
179
|
-
#_mc = {};
|
|
180
|
-
static debug = false;
|
|
181
|
-
constructor(target) {
|
|
182
|
-
this.#target = target;
|
|
183
|
-
this.#_mc = {};
|
|
184
|
-
}
|
|
185
|
-
get _mc() {
|
|
186
|
-
if (!MC.debug)
|
|
187
|
-
return undefined;
|
|
188
|
-
return this.#_mc;
|
|
189
|
-
}
|
|
190
|
-
get target() {
|
|
191
|
-
return this.#target;
|
|
192
|
-
}
|
|
193
|
-
static siblings(target, search = "") {
|
|
194
|
-
const mc = target;
|
|
195
|
-
if (!mc._mc) {
|
|
196
|
-
return [];
|
|
197
|
-
}
|
|
198
|
-
const _mc = mc._mc;
|
|
199
|
-
if (search.length) {
|
|
200
|
-
return _mc?.[search] || [];
|
|
201
|
-
}
|
|
202
|
-
return [...Object.values(_mc)];
|
|
203
|
-
}
|
|
204
|
-
static add(target, key, element = {}) {
|
|
205
|
-
let node = target;
|
|
206
|
-
if (!node._mc) {
|
|
207
|
-
node._mc = new MC(target);
|
|
208
|
-
}
|
|
209
|
-
const _mc = node._mc;
|
|
210
|
-
if (key.length && !_mc[key]) {
|
|
211
|
-
_mc[key] = element;
|
|
212
|
-
if (target instanceof HTMLElement) {
|
|
213
|
-
target.setAttribute("_mc", "");
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
return element;
|
|
217
|
-
}
|
|
218
|
-
static remove(target, key) {
|
|
219
|
-
if (!key)
|
|
220
|
-
return;
|
|
221
|
-
const _mc = target?._mc || {};
|
|
222
|
-
if (_mc && _mc[key]) {
|
|
223
|
-
delete _mc[key];
|
|
224
|
-
}
|
|
225
|
-
if (!Object.keys(_mc).length &&
|
|
226
|
-
target instanceof HTMLElement &&
|
|
227
|
-
target.hasAttribute("_mc")) {
|
|
228
|
-
target.removeAttribute("_mc");
|
|
229
|
-
}
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
add(key, element, target) {
|
|
233
|
-
if (this.#_mc[key])
|
|
234
|
-
return;
|
|
235
|
-
if (target) {
|
|
236
|
-
MC.add(target, key, element);
|
|
237
|
-
}
|
|
238
|
-
this.#_mc[key] = element;
|
|
239
|
-
return element;
|
|
240
|
-
}
|
|
241
|
-
remove(key, target) {
|
|
242
|
-
const _mc = this.#_mc;
|
|
243
|
-
const t = target;
|
|
244
|
-
if (target) {
|
|
245
|
-
MC.remove(t, key);
|
|
246
|
-
}
|
|
247
|
-
delete _mc?.[key];
|
|
248
|
-
}
|
|
249
|
-
siblings(search = "") {
|
|
250
|
-
const _mc = this.#_mc;
|
|
251
|
-
if (!_mc)
|
|
252
|
-
return [];
|
|
253
|
-
const result = _mc[search || ""];
|
|
254
|
-
return search && result ? [result] : [...Object.values(_mc)];
|
|
255
|
-
}
|
|
256
|
-
parent(search = "") {
|
|
257
|
-
if (!isDOM(this.#target))
|
|
258
|
-
return [];
|
|
259
|
-
return traverseNodes(this.#target.parentNode, search, true);
|
|
260
|
-
}
|
|
261
|
-
parents(search = "") {
|
|
262
|
-
if (!isDOM(this.#target))
|
|
263
|
-
return [];
|
|
264
|
-
return traverseNodes(this.#target.parentNode, search, false);
|
|
265
|
-
}
|
|
266
|
-
children(search = "") {
|
|
267
|
-
if (!isDOM(this.#target))
|
|
268
|
-
return [];
|
|
269
|
-
const id = Math.random().toString().replace(".", "");
|
|
270
|
-
const selector = '[_mc]:not([temp_id="' + id + '"] [_mc] [_mc])';
|
|
271
|
-
this.#target.setAttribute("temp_id", id);
|
|
272
|
-
const myDomElements = this.#target.querySelectorAll(selector);
|
|
273
|
-
const mcValues = getMicroComponents([...myDomElements], search);
|
|
274
|
-
this.#target.removeAttribute("temp_id");
|
|
275
|
-
return mcValues;
|
|
276
|
-
}
|
|
277
|
-
descendants(search = "") {
|
|
278
|
-
if (!isDOM(this.#target))
|
|
279
|
-
return [];
|
|
280
|
-
const myDomElements = this.#target.querySelectorAll("*[_mc]");
|
|
281
|
-
return getMicroComponents([...myDomElements], search);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
return MC;
|
|
285
|
-
})();
|
|
286
|
-
function findNodesWithMcAttribute(rootNode, childrenOnly) {
|
|
287
|
-
var result = [];
|
|
288
|
-
var getChildren = childrenOnly === undefined ? true : childrenOnly;
|
|
289
|
-
function walk(node) {
|
|
290
|
-
if (node.nodeType === 1 && node.getAttribute("_mc") !== null) {
|
|
291
|
-
result.push(node);
|
|
292
|
-
return;
|
|
293
|
-
}
|
|
294
|
-
var child = node.firstChild;
|
|
295
|
-
while (child) {
|
|
296
|
-
walk(child);
|
|
297
|
-
child = child.nextSibling;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
walk(rootNode);
|
|
301
|
-
return result;
|
|
302
|
-
}
|
|
303
|
-
//# sourceMappingURL=microcomponents.es3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microcomponents.es3.js","sourceRoot":"","sources":["../src/microcomponents.es3.js"],"names":[],"mappings":"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"}
|