@twobirds/microcomponents 0.0.82 → 0.0.83
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/documentation/MC.md +0 -1
- package/dist/MC.d.ts +3 -3
- package/dist/MC.d.ts.map +1 -1
- package/dist/MC.js +43 -74
- package/dist/MC.min.js +43 -74
- package/dist/MC.ts +67 -143
- package/dist/elements.d.ts +1 -1
- package/dist/elements.d.ts.map +1 -1
- package/dist/elements.js +16 -2
- package/dist/elements.min.js +1 -1
- package/dist/elements.ts +33 -3
- package/dist/formValues.min.js +1 -1
- package/dist/microcomponents.min.js +1 -1
- package/dist/observables.d.ts.map +1 -1
- package/dist/observables.js +40 -47
- package/dist/observables.min.js +1 -1
- package/dist/observables.ts +54 -59
- package/dist/selectors.d.ts +2 -4
- package/dist/selectors.d.ts.map +1 -1
- package/dist/selectors.js +2 -214
- package/dist/selectors.min.js +1 -1
- package/dist/selectors.ts +2 -367
- package/package.json +6 -5
- package/public/MC.d.ts +3 -3
- package/public/MC.d.ts.map +1 -1
- package/public/MC.js +43 -74
- package/public/MC.js.map +1 -1
- package/public/MC.min.js +43 -74
- package/public/MC.ts +67 -143
- package/public/documentation/MC.md +0 -1
- package/public/elements.d.ts +1 -1
- package/public/elements.d.ts.map +1 -1
- package/public/elements.js +16 -2
- package/public/elements.js.map +1 -1
- package/public/elements.min.js +1 -1
- package/public/elements.ts +33 -3
- package/public/formValues.min.js +1 -1
- package/public/microcomponents.min.js +1 -1
- package/public/observables.d.ts.map +1 -1
- package/public/observables.js +40 -47
- package/public/observables.js.map +1 -1
- package/public/observables.min.js +1 -1
- package/public/observables.ts +54 -59
- package/public/selectors.d.ts +2 -4
- package/public/selectors.d.ts.map +1 -1
- package/public/selectors.js +2 -214
- package/public/selectors.js.map +1 -1
- package/public/selectors.min.js +1 -1
- package/public/selectors.ts +2 -367
- package/public/src/MC.d.ts +36 -0
- package/public/src/MC.d.ts.map +1 -0
- package/public/src/MC.js +348 -0
- package/public/src/MC.js.map +1 -0
- package/public/src/MC.ts +67 -143
- package/public/src/McEvent.d.ts +15 -0
- package/public/src/McEvent.d.ts.map +1 -0
- package/public/src/McEvent.js +71 -0
- package/public/src/elements.d.ts +5 -0
- package/public/src/elements.d.ts.map +1 -0
- package/public/src/elements.js +62 -0
- package/public/src/elements.js.map +1 -0
- package/public/src/elements.ts +33 -3
- package/public/src/formValues.d.ts +3 -0
- package/public/src/formValues.d.ts.map +1 -0
- package/public/src/formValues.js +162 -0
- package/public/src/helpers.d.ts +14 -0
- package/public/src/helpers.d.ts.map +1 -0
- package/public/src/helpers.js +113 -0
- package/public/src/microcomponents.d.ts +7 -0
- package/public/src/microcomponents.d.ts.map +1 -0
- package/public/src/microcomponents.js +8 -0
- package/public/src/observables.d.ts +11 -0
- package/public/src/observables.d.ts.map +1 -0
- package/public/src/observables.js +242 -0
- package/public/src/observables.js.map +1 -0
- package/public/src/observables.ts +54 -59
- package/public/src/selectors.d.ts +106 -0
- package/public/src/selectors.d.ts.map +1 -0
- package/public/src/selectors.js +759 -0
- package/public/src/selectors.js.map +1 -0
- package/public/src/selectors.ts +2 -367
- package/public/src/test/grandparent.css +11 -0
- package/public/src/test/test/child.d.ts +2 -0
- package/public/src/test/test/child.d.ts.map +1 -0
- package/public/src/test/test/child.js +15 -0
- package/public/src/test/test/child.js.map +1 -0
- package/public/src/test/test/child.ts +21 -0
- package/public/src/test/test/grandchild.d.ts +2 -0
- package/public/src/test/test/grandchild.d.ts.map +1 -0
- package/public/src/test/test/grandchild.js +15 -0
- package/public/src/test/test/grandchild.js.map +1 -0
- package/public/src/test/test/grandchild.ts +21 -0
- package/public/src/test/test/grandparent.d.ts +2 -0
- package/public/src/test/test/grandparent.d.ts.map +1 -0
- package/public/src/test/test/grandparent.js +1 -0
- package/public/src/test/test/grandparent.js.map +1 -0
- package/public/src/test/test/grandparent.ts +21 -0
- package/public/src/test/test/greatgrandchild.d.ts +2 -0
- package/public/src/test/test/greatgrandchild.d.ts.map +1 -0
- package/public/src/test/test/greatgrandchild.js +29 -0
- package/public/src/test/test/greatgrandchild.js.map +1 -0
- package/public/src/test/test/greatgrandchild.ts +42 -0
- package/public/src/test/test/parent.d.ts +2 -0
- package/public/src/test/test/parent.d.ts.map +1 -0
- package/public/src/test/test/parent.js +15 -0
- package/public/src/test/test/parent.js.map +1 -0
- package/public/src/test/test/parent.ts +21 -0
- package/public/src/test/test/testform.d.ts +2 -0
- package/public/src/test/test/testform.d.ts.map +1 -0
- package/public/src/test/test/testform.js +1 -0
- package/public/src/test/test/testform.js.map +1 -0
- package/public/src/test/test/testform.ts +155 -0
- package/public/src/test/test/testfunction.d.ts +3 -0
- package/public/src/test/test/testfunction.d.ts.map +1 -0
- package/public/src/test/test/testfunction.js +7 -0
- package/public/src/test/test/testfunction.js.map +1 -0
- package/public/src/test/test/testfunction.ts +12 -0
- package/public/src/test/test/testmc.d.ts +3 -0
- package/public/src/test/test/testmc.d.ts.map +1 -0
- package/public/src/test/test/testmc.js +10 -0
- package/public/src/test/test/testmc.js.map +1 -0
- package/public/src/test/test/testmc.ts +16 -0
- package/public/src/test/test/testsimpleclass.d.ts +3 -0
- package/public/src/test/test/testsimpleclass.d.ts.map +1 -0
- package/public/src/test/test/testsimpleclass.js +9 -0
- package/public/src/test/test/testsimpleclass.js.map +1 -0
- package/public/src/test/test/testsimpleclass.ts +15 -0
- package/public/src/test/test.d.ts +2 -0
- package/public/src/test/test.d.ts.map +1 -0
- package/public/src/test/test.js +79 -0
- package/public/src/test/test.js.map +1 -0
- package/public/src/test/test.ts +188 -0
- package/public/src/test/testform.css +47 -0
- package/public/src/test/testform.html +56 -0
- package/public/src/test/testform.json +27 -0
- package/public/test/MC.d.ts +3 -3
- package/public/test/MC.d.ts.map +1 -1
- package/public/test/MC.js +43 -74
- package/public/test/MC.min.js +485 -0
- package/public/test/MC.ts +67 -143
- package/public/test/elements.d.ts +1 -1
- package/public/test/elements.d.ts.map +1 -1
- package/public/test/elements.js +16 -2
- package/public/test/elements.min.js +1 -0
- package/public/test/elements.ts +33 -3
- package/public/test/formValues.min.js +1 -0
- package/public/test/grandparent.css +1 -3
- package/public/test/microcomponents.min.js +1 -1
- package/public/test/observables.d.ts.map +1 -1
- package/public/test/observables.js +40 -47
- package/public/test/observables.min.js +1 -0
- package/public/test/observables.ts +54 -59
- package/public/test/selectors.d.ts +2 -4
- package/public/test/selectors.d.ts.map +1 -1
- package/public/test/selectors.js +2 -214
- package/public/test/selectors.min.js +1 -0
- package/public/test/selectors.ts +2 -367
- package/public/test/test/child.ts +21 -0
- package/public/test/test/grandchild.ts +21 -0
- package/public/test/test/grandparent.js +1 -1
- package/public/test/test/grandparent.ts +21 -0
- package/public/test/test/greatgrandchild.ts +42 -0
- package/public/test/test/parent.ts +21 -0
- package/public/test/test/testform.js +1 -1
- package/public/test/test/testform.js.map +1 -1
- package/public/test/test/testform.ts +155 -0
- package/public/test/test/testfunction.d.ts +3 -0
- package/public/test/test/testfunction.d.ts.map +1 -0
- package/public/test/test/testfunction.js +7 -0
- package/public/test/test/testfunction.js.map +1 -0
- package/public/test/test/testfunction.ts +12 -0
- package/public/test/test/testmc.d.ts +2 -5
- package/public/test/test/testmc.d.ts.map +1 -1
- package/public/test/test/testmc.js +4 -4
- package/public/test/test/testmc.js.map +1 -1
- package/public/test/test/testmc.ts +16 -0
- package/public/test/test/testsimpleclass.d.ts +3 -0
- package/public/test/test/testsimpleclass.d.ts.map +1 -0
- package/public/test/test/testsimpleclass.js +9 -0
- package/public/test/test/testsimpleclass.js.map +1 -0
- package/public/test/test/testsimpleclass.ts +15 -0
- package/public/test/test.js +0 -2
- package/public/test/test.js.map +1 -1
- package/public/test/test.ts +188 -0
- package/public/test/testform.css +47 -0
- package/public/test/testform.html +56 -0
- package/public/test/testform.json +3 -3
- package/public/typedoc/assets/navigation.js +1 -1
- package/public/typedoc/assets/search.js +1 -1
- package/public/typedoc/classes/MC.DC.html +5 -5
- package/public/typedoc/classes/MC.MC.html +5 -5
- package/public/typedoc/classes/MC.McBase.html +4 -3
- 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/functions/selectors._d.html +1 -0
- package/public/typedoc/functions/selectors._t.html +1 -0
- package/public/typedoc/interfaces/MC.HTMLMcElement.html +2 -2
- package/public/typedoc/interfaces/selectors.DSelector.html +48 -0
- package/public/typedoc/interfaces/selectors.TSelector.html +34 -0
- 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/selectors.html +7 -0
- package/public/typedoc/modules.html +1 -0
- package/public/typedoc/types/observables.Observable.html +1 -1
- package/public/typedoc/types/selectors.selection.html +1 -0
- package/public/typedoc/types/selectors.singleSelector.html +1 -0
- package/src/MC.ts +67 -143
- package/src/elements.ts +33 -3
- package/src/observables.ts +54 -59
- package/src/selectors.ts +2 -367
- package/src/test/test/testform.ts +7 -3
- package/src/test/test/testfunction.ts +12 -0
- package/src/test/test/testmc.ts +13 -9
- package/src/test/test/testsimpleclass.ts +15 -0
- package/src/test/test.ts +0 -12
- package/tasks.md +36 -0
- package/typedoc.json +1 -1
- package/public/test/MC.js.map +0 -1
- package/public/test/elements.js.map +0 -1
- package/public/test/observables.js.map +0 -1
- package/public/test/selectors.js.map +0 -1
- /package/public/{test → src}/McEvent.js.map +0 -0
- /package/public/{test → src}/formValues.js.map +0 -0
- /package/public/{test → src}/helpers.js.map +0 -0
- /package/public/{test → src}/microcomponents.js.map +0 -0
|
@@ -6,12 +6,11 @@ function isObservableObject(value) {
|
|
|
6
6
|
}
|
|
7
7
|
function getPlaceholders(target) {
|
|
8
8
|
let placeholders = new Set(), regEx = /\{[^\{\}]*\}/g;
|
|
9
|
-
target
|
|
10
|
-
.getAttributeNames()
|
|
9
|
+
(!!target.getAttributeNames ? target.getAttributeNames() : [])
|
|
11
10
|
.filter((attr) => target.getAttribute(attr)?.match(regEx))
|
|
12
11
|
.forEach((attr) => {
|
|
13
|
-
let
|
|
14
|
-
|
|
12
|
+
let placeholders = new Set(target.getAttribute(attr)?.match(regEx));
|
|
13
|
+
placeholders.forEach((placeholder) => placeholders.add(placeholder.replace(/[\{\}]/g, '')));
|
|
15
14
|
});
|
|
16
15
|
[...target.childNodes]
|
|
17
16
|
.filter((childNode) => {
|
|
@@ -33,22 +32,19 @@ class Placeholders extends DC {
|
|
|
33
32
|
oldDisplay = '';
|
|
34
33
|
constructor(target) {
|
|
35
34
|
super(target);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
that.#attachCallbacks();
|
|
40
|
-
delete that._mc;
|
|
35
|
+
getPlaceholders(target).forEach((property) => (this.data[property] = ''));
|
|
36
|
+
observe(this);
|
|
37
|
+
this.#attachCallbacks();
|
|
41
38
|
}
|
|
42
39
|
#attachCallbacks() {
|
|
43
|
-
let
|
|
44
|
-
target
|
|
45
|
-
.getAttributeNames()
|
|
40
|
+
let target = this.target, hide = false;
|
|
41
|
+
(!!target.getAttributeNames ? target.getAttributeNames() : [])
|
|
46
42
|
.filter((attr) => target.getAttribute(attr)?.match(/\{[^\{\}]*\}/g))
|
|
47
43
|
.forEach((attr) => {
|
|
48
|
-
let
|
|
49
|
-
|
|
44
|
+
let placeholders = new Set(target.getAttribute(attr)?.match(/\{[^\{\}]*\}/g));
|
|
45
|
+
this.data.observe(((template) => (data) => {
|
|
50
46
|
let result = template;
|
|
51
|
-
|
|
47
|
+
placeholders.forEach((placeholder) => {
|
|
52
48
|
result = result.replace(placeholder, data[placeholder.replace(/[\{\}]/g, '')]);
|
|
53
49
|
});
|
|
54
50
|
target.setAttribute(attr, result);
|
|
@@ -61,26 +57,22 @@ class Placeholders extends DC {
|
|
|
61
57
|
})
|
|
62
58
|
.forEach((childNode) => {
|
|
63
59
|
hide = true;
|
|
64
|
-
let
|
|
65
|
-
|
|
60
|
+
let placeholders = new Set(childNode.nodeValue.match(/\{[^\{\}]*\}/g));
|
|
61
|
+
this.data.observe(((template) => (data) => {
|
|
66
62
|
let result = template;
|
|
67
|
-
|
|
63
|
+
placeholders.forEach((placeholder) => {
|
|
68
64
|
result = result.replace(placeholder, data[placeholder.replace(/[\{\}]/g, '')]);
|
|
69
65
|
});
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
})) {
|
|
73
|
-
if (!!that.oldDisplay) {
|
|
74
|
-
target.style = that.oldDisplay;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
target.removeAttribute('style');
|
|
78
|
-
}
|
|
79
|
-
delete that.oldDisplay;
|
|
66
|
+
if (!!this.oldDisplay) {
|
|
67
|
+
target.style = this.oldDisplay;
|
|
80
68
|
}
|
|
69
|
+
else {
|
|
70
|
+
target.removeAttribute('style');
|
|
71
|
+
}
|
|
72
|
+
delete this.oldDisplay;
|
|
81
73
|
childNode.nodeValue = result;
|
|
82
74
|
})(childNode.nodeValue));
|
|
83
|
-
|
|
75
|
+
this.oldDisplay = target.getAttribute('style)') || '';
|
|
84
76
|
if (hide &&
|
|
85
77
|
!inputs.includes(target.constructor) &&
|
|
86
78
|
target.tagName !== 'FIELDSET') {
|
|
@@ -89,20 +81,21 @@ class Placeholders extends DC {
|
|
|
89
81
|
});
|
|
90
82
|
}
|
|
91
83
|
onData(ev) {
|
|
92
|
-
let
|
|
84
|
+
let data = {};
|
|
93
85
|
Object.keys(ev.data).forEach((key) => {
|
|
94
|
-
if (
|
|
86
|
+
if (this.data.hasOwnProperty(key))
|
|
95
87
|
data[key] = ev.data[key];
|
|
96
88
|
});
|
|
97
|
-
if (JSON.stringify(data) !== JSON.stringify(
|
|
98
|
-
Object.assign(
|
|
89
|
+
if (JSON.stringify(data) !== JSON.stringify(this.data))
|
|
90
|
+
Object.assign(this.data, data);
|
|
99
91
|
}
|
|
100
92
|
}
|
|
101
93
|
function getPlaceholderElements(target) {
|
|
102
|
-
let elements =
|
|
94
|
+
let elements = [target]
|
|
103
95
|
.concat([...target.querySelectorAll('*')])
|
|
104
96
|
.filter((e) => !!getPlaceholders(e).length)
|
|
105
|
-
.filter((e) => e
|
|
97
|
+
.filter((e) => e?.tagName !== 'STYLE')
|
|
98
|
+
.reverse();
|
|
106
99
|
return elements;
|
|
107
100
|
}
|
|
108
101
|
function makePlaceholders(element) {
|
|
@@ -138,11 +131,11 @@ function makeObservable(val) {
|
|
|
138
131
|
return this;
|
|
139
132
|
}
|
|
140
133
|
bind(target) {
|
|
141
|
-
const
|
|
134
|
+
const iso = isObservableObject(this.valueOf());
|
|
142
135
|
if (iso) {
|
|
143
136
|
makePlaceholders(target);
|
|
144
137
|
const placeholders = [
|
|
145
|
-
...target.querySelectorAll('[_mc]'),
|
|
138
|
+
target, ...target.querySelectorAll('[_mc]'),
|
|
146
139
|
].filter((e) => !!e?._mc?._placeholders);
|
|
147
140
|
const func = function callback(data) {
|
|
148
141
|
let d = flattenObject(data);
|
|
@@ -152,26 +145,26 @@ function makeObservable(val) {
|
|
|
152
145
|
e._mc.trigger('data', d);
|
|
153
146
|
});
|
|
154
147
|
};
|
|
155
|
-
|
|
156
|
-
|
|
148
|
+
this.#callbacks.push(func);
|
|
149
|
+
this.notify();
|
|
157
150
|
}
|
|
158
151
|
else {
|
|
159
|
-
console.warn('IGNORED - cannot bind a non-Object to the dom, IS:', typeof
|
|
152
|
+
console.warn('IGNORED - cannot bind a non-Object to the dom, IS:', typeof this.valueOf(), this);
|
|
160
153
|
}
|
|
161
154
|
return this;
|
|
162
155
|
}
|
|
163
156
|
notify(notify) {
|
|
164
|
-
let
|
|
165
|
-
|
|
166
|
-
? structuredClone(Object.assign({},
|
|
167
|
-
:
|
|
157
|
+
let data = isObservableObject(this.valueOf()) &&
|
|
158
|
+
this.valueOf() instanceof Array === false
|
|
159
|
+
? structuredClone(Object.assign({}, this))
|
|
160
|
+
: this.valueOf();
|
|
168
161
|
if (notify !== undefined) {
|
|
169
|
-
|
|
162
|
+
this.#notify = notify;
|
|
170
163
|
}
|
|
171
|
-
|
|
164
|
+
this.#callbacks.forEach((f) => {
|
|
172
165
|
f(data);
|
|
173
166
|
});
|
|
174
|
-
return
|
|
167
|
+
return this;
|
|
175
168
|
}
|
|
176
169
|
};
|
|
177
170
|
classRepo[ConstructorName] = ObservableClass;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.observables=e():t.observables=e()}(this,(()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){let e={};return[...Object.keys(t)].sort().forEach((n=>{var o;(o=t[n])&&o.constructor&&o.constructor===Object?e[n]=r(t[n]):e[n]=t[n]})),e}function n(t,e=!0){let o={};return[...Object.getOwnPropertyNames(t)].forEach((e=>{if(t[e]&&t[e].constructor&&t[e].constructor===Object){const r=n(t[e],!1);for(const t in r)o[e+"."+t]=r[t]}else o[e]=t[e]})),e?r(o):o}function o(t,e){return JSON.stringify(n(t))===JSON.stringify(n(e))}function c(t,e){let r;return()=>{clearTimeout(r),r=setTimeout((function(){t(...arguments)}),e)}}t.r(e),t.d(e,{observe:()=>N});var s=new Function("try {return this===window;}catch(e){ return false;}");let a=new Set;s()&&Object.keys(HTMLElement.prototype).filter((t=>/^on/.test(t))).forEach((t=>a.add(t)));class i{#t;#e=!1;#r=!1;constructor(t,e={},r="l"){this.#t=t,this.data=e,this.bubble=r}get type(){return this.#t}get stopped(){return this.#e}get immediateStopped(){return this.#r}stopPropagation(){this.#e=!0}stopImmediatePropagation(){this.stopPropagation(),this.#r=!0}}var l=new Function("try {return this===window;}catch(e){ return false;}");let u=new Set;function f(t,e){let r=[];return t.forEach((t=>{if(t&&t instanceof HTMLElement){const n=t?._mc;!e&&n?r=r.concat(Object.values(t._mc)):e&&n&&n[e]&&r.push(n[e])}})),r}function p(t,e,r=!0){let n=[];for(;t;){if(t._mc&&(e?e&&t._mc[e]&&n.push(t._mc[e]):n=n.concat(Object.values(t._mc)),r))return n;t=t.parentNode}return n}function d(t){return t&&t instanceof HTMLElement}function b(t,e,r={}){let n=t;if(!n._mc){let e=v?.debug;v.debug=!1,n._mc=new v(t),v.debug=e,delete n._mc._mc}const o=n._mc;return e.length&&!o[e]&&(o[e]=r,t instanceof HTMLElement&&!t.getAttribute("_mc")&&t.setAttribute("_mc","")),r}function g(t,e){if(!e)return;const r=t?._mc||{};r&&r[e]&&delete r[e],!Object.keys(r).length&&t instanceof HTMLElement&&t.hasAttribute("_mc")&&t.removeAttribute("_mc")}function h(t,e,r={},n="l"){let o=t?._mc;if(!o)return;let c=e instanceof i?new i(e.type,e.data,"l"):new i(e,r,"l"),s="string"!=typeof e?e:new i(e,r,n);[...Object.values(o)].forEach((t=>{t?.trigger&&"function"==typeof t?.trigger&&t?.trigger(c)})),/[ud]/.test(s.bubble)&&m(t,s)}function m(t,e){/[ud]/.test(e.bubble)&&setTimeout((()=>{if(-1===e.bubble.indexOf("l")&&(e.bubble+="l"),e.bubble.indexOf("u")>-1){let r=p(t,"",!0)?.[0].target;r&&v.trigger(r,e)}e.bubble.indexOf("d")>-1&&new Set(t._mc.children().map((t=>t?.target))).forEach((t=>{t&&v.trigger(t,e)}))}),0)}l()&&Object.keys(HTMLElement.prototype).filter((t=>/^on/.test(t))).forEach((t=>u.add(t)));class y{_target;__mc={};constructor(t,e=!1){var r;this._target=new WeakRef(t||{}),(r=this).constructor!==v&&setTimeout((()=>{r.trigger("Init")}),0),function(t){if(!l()||t.constructor===v)return;const e=t.target;if(e instanceof HTMLElement){let r=t;Object.getOwnPropertyNames(r.constructor.prototype).filter((t=>/^on[A-Z]|one[A-Z]/.test(t)&&"function"==typeof r.constructor.prototype[t])).forEach((n=>{let o=/^one/.test(n),c=n.replace(/^on[e]{0,1}/,""),s=c.toLowerCase();o&&Object.defineProperty(t,"on"+c,{configurable:!0,enumerable:!1,writable:!0,value:t=>{r.constructor.prototype[n].bind(r)(t)}}),u.has("on"+s)&&function(t,e,r,n=!1,o=!1){let c={once:!1};n&&(c.capture=n),o&&(c.once=o),t.addEventListener(e,r,c)}(e,s,(t=>{r.trigger(c,t)}),!1,o)}))}}(this)}get target(){return this._target.deref()}get _mc(){return this.__mc}}class O extends y{constructor(t){super(t)}static trigger=h;trigger(t,e={},r="l"){let n=this;if(n.constructor===O||n.constructor===v){let o=t instanceof i?new i(t.type,t.data,"l"):new i(t,e,"l"),c="string"!=typeof t?t:new i(t,e,r);return[...Object.getOwnPropertyNames(n)].forEach((t=>{n[t]?.trigger&&"function"==typeof n[t]?.trigger&&n[t]?.trigger(o)})),void(/[ud]/.test(c.bubble)&&m(n.target,c))}if(n instanceof O||n instanceof v){const n=this,o="string"!=typeof t?t:new i(t,e,r),c="on"+o.type[0].toUpperCase()+o.type.slice(1);if(o.bubble.indexOf("l")>-1&&(o.immediateStopped||"function"!=typeof n[c]||(n[c](o),n.hasOwnProperty(c)&&delete n[c])),o.stopped||"l"===o.bubble)return n;/[ud]/.test(o.bubble)&&m(n.target,o)}}}class v extends y{constructor(t,e=!1){super(t)}static add=b;static remove=g;static trigger=h;trigger(t,e={},r){O.prototype.trigger.call(this,t,e,r)}parent(t=""){let e=this.target;return d(e)?p(e.parentNode,t,!0):[]}ancestors(t=""){let e=this?.target;return d(e)?p(this.target.parentNode,t,!1):[]}children(t=""){let e=this?.target;if(!d(e))return[];const r=Math.random().toString().replace(".",""),n='[_mc]:not([temp_id="'+r+'"] [_mc] [_mc])';e.setAttribute("temp_id",r);const o=f([...e.querySelectorAll(n)],t);return e.removeAttribute("temp_id"),o}descendants(t=""){let e=this?.target;return d(e)?f([...e.querySelectorAll("*[_mc]")],t):[]}}function _(t){return null!=t&&"object"==typeof t}function E(t){let e=new Set,r=/\{[^\{\}]*\}/g;return(t.getAttributeNames?t.getAttributeNames():[]).filter((e=>t.getAttribute(e)?.match(r))).forEach((e=>{let n=new Set(t.getAttribute(e)?.match(r));n.forEach((t=>n.add(t.replace(/[\{\}]/g,""))))})),[...t.childNodes].filter((t=>3===t.nodeType&&(t.nodeValue||"").match(r))).forEach((t=>{(t.nodeValue||"").match(r).forEach((t=>{e.add(t.replace(/[\{\}]/g,""))}))})),[...e].map((t=>t.replace(/[\{\}]/g,"")))}new Set;const w=[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement];class j extends v{data={};oldDisplay="";constructor(t){super(t),E(t).forEach((t=>this.data[t]="")),N(this),this.#n()}#n(){let t=this.target,e=!1;(t.getAttributeNames?t.getAttributeNames():[]).filter((e=>t.getAttribute(e)?.match(/\{[^\{\}]*\}/g))).forEach((e=>{let r=new Set(t.getAttribute(e)?.match(/\{[^\{\}]*\}/g));var n;this.data.observe((n=t.getAttribute(e),o=>{let c=n;r.forEach((t=>{c=c.replace(t,o[t.replace(/[\{\}]/g,"")])})),t.setAttribute(e,c)}))})),[...t.childNodes].filter((t=>3===t.nodeType&&(t.nodeValue||"").match(/\{[^\{\}]*\}/g))).forEach((r=>{e=!0;let n=new Set(r.nodeValue.match(/\{[^\{\}]*\}/g));this.data.observe((e=>o=>{let c=e;n.forEach((t=>{c=c.replace(t,o[t.replace(/[\{\}]/g,"")])})),this.oldDisplay?t.style=this.oldDisplay:t.removeAttribute("style"),delete this.oldDisplay,r.nodeValue=c})(r.nodeValue)),this.oldDisplay=t.getAttribute("style)")||"",e&&!w.includes(t.constructor)&&"FIELDSET"!==t.tagName&&(t.style.display="none")}))}onData(t){let e={};Object.keys(t.data).forEach((r=>{this.data.hasOwnProperty(r)&&(e[r]=t.data[r])})),JSON.stringify(e)!==JSON.stringify(this.data)&&Object.assign(this.data,e)}}const S={};function A(t){let e=t.constructor.name;return S[e]||function(t){const e=t.constructor,r=e.name;let o=class extends e{#o=!0;#c=[];constructor(t){super(t),this.constructor.callbacks=[],_(t)&&Object.getOwnPropertyNames(t).forEach((e=>{this[e]=t[e]}))}get callbacks(){return this.#c}set callbacks(t){this.#c=t}observe(t){return this.#c.push(t),this}bind(t){if(_(this.valueOf())){!function(t){var e;(e=t,[e].concat([...e.querySelectorAll("*")]).filter((t=>!!E(t).length)).filter((t=>"STYLE"!==t?.tagName)).reverse()).forEach((t=>{t?._mc?._placeholders||v.add(t,"_placeholders",new j(t))}))}(t);const e=[t,...t.querySelectorAll("[_mc]")].filter((t=>!!t?._mc?._placeholders)),r=function(t){let r=n(t);e.forEach((t=>{t&&t._mc.trigger("data",r)}))};this.#c.push(r),this.notify()}else console.warn("IGNORED - cannot bind a non-Object to the dom, IS:",typeof this.valueOf(),this);return this}notify(t){let e=_(this.valueOf())&&this.valueOf()instanceof Array==0?structuredClone(Object.assign({},this)):this.valueOf();return void 0!==t&&(this.#o=t),this.#c.forEach((t=>{t(e)})),this}};return S[r]=o,o}(t)}const N=(t,e)=>((e?[e]:[...Object.getOwnPropertyNames(t)]).forEach((e=>{if(t.hasOwnProperty(e)&&"function"!=typeof t[e]&&!t?.[e]?.constructor?.prototype?.observe){if("_"===e[0]||void 0===t?.[e])return t;let r=t[e],n=new(A(r))(r);Object.defineProperty(t,e,{enumerable:!0,get(){if(_(n.valueOf())){let t=structuredClone(Object.assign({},n));setTimeout(c((function(){o(structuredClone(Object.assign({},n)),t)||n.notify()}),0),0)}return n},set(t){if(typeof t==typeof n.valueOf())if(_(n.valueOf())&&n.valueOf()instanceof Array==0){let e=structuredClone(Object.assign({},n));void 0===n?.constructor?.prototype?.observe&&(n=new(A(t))(structuredClone(Object.assign({},t))),function(t,e){const r=Object.getOwnPropertyDescriptors(t);for(const[t,n]of Object.entries(r))("get"in n||"set"in n)&&Object.defineProperty(e,t,n)}(t,n),n.seal()),Object.assign(n,t),setTimeout(c((function(){o(structuredClone(Object.assign({},n)),e)||n.notify()}),0),0)}else{let e=n.valueOf(),r=n.callbacks;t!==e&&(n=new(A(t))(t),n.callbacks=r,n.notify())}else console.warn("IGNORED - cannot change observable types, IS:",typeof n.valueOf(),n,"- CANNOT BECOME:",typeof t)}}),t[e]=r}})),t);return e})()));
|
|
@@ -21,12 +21,11 @@ function getPlaceholders(target: HTMLElement): string[] {
|
|
|
21
21
|
regEx = /\{[^\{\}]*\}/g;
|
|
22
22
|
|
|
23
23
|
// scan attributes
|
|
24
|
-
target
|
|
25
|
-
.getAttributeNames()
|
|
24
|
+
( !!target.getAttributeNames ? target.getAttributeNames() : [] )
|
|
26
25
|
.filter((attr) => target.getAttribute(attr)?.match(regEx)) // extract placeholder(s)
|
|
27
26
|
.forEach((attr) => {
|
|
28
|
-
let
|
|
29
|
-
|
|
27
|
+
let placeholders: Set<string> = new Set(target.getAttribute(attr)?.match(regEx));
|
|
28
|
+
placeholders.forEach((placeholder) =>
|
|
30
29
|
placeholders.add(placeholder.replace(/[\{\}]/g, ''))
|
|
31
30
|
);
|
|
32
31
|
});
|
|
@@ -62,35 +61,31 @@ class Placeholders extends DC {
|
|
|
62
61
|
|
|
63
62
|
constructor(target: HTMLElement) {
|
|
64
63
|
super(target);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
that.#attachCallbacks();
|
|
69
|
-
delete that._mc; // cleanup, not needed
|
|
64
|
+
getPlaceholders(target).forEach((property) => (this.data[property] = ''));
|
|
65
|
+
observe(this);
|
|
66
|
+
this.#attachCallbacks();
|
|
70
67
|
}
|
|
71
68
|
|
|
72
69
|
#attachCallbacks() {
|
|
73
|
-
let
|
|
74
|
-
target = that.target,
|
|
70
|
+
let target = this.target,
|
|
75
71
|
hide: boolean = false;
|
|
76
72
|
|
|
77
|
-
//console.log('attachCallbacks',
|
|
73
|
+
//console.log('attachCallbacks', this.target);
|
|
78
74
|
|
|
79
75
|
// scan attributes
|
|
80
|
-
target
|
|
81
|
-
.getAttributeNames()
|
|
76
|
+
( !!target.getAttributeNames ? target.getAttributeNames() : [] )
|
|
82
77
|
.filter((attr: string) =>
|
|
83
78
|
target.getAttribute(attr)?.match(/\{[^\{\}]*\}/g)
|
|
84
79
|
) // extract placeholder(s)
|
|
85
80
|
.forEach((attr: string) => {
|
|
86
|
-
let
|
|
81
|
+
let placeholders: Set<string> = new Set(
|
|
87
82
|
target.getAttribute(attr)?.match(/\{[^\{\}]*\}/g)
|
|
88
83
|
);
|
|
89
84
|
// attach callback
|
|
90
|
-
|
|
85
|
+
this.data.observe(
|
|
91
86
|
((template: string) => (data: LooseObject) => {
|
|
92
87
|
let result: string = template;
|
|
93
|
-
|
|
88
|
+
placeholders.forEach((placeholder) => {
|
|
94
89
|
result = result.replace(
|
|
95
90
|
placeholder,
|
|
96
91
|
data[placeholder.replace(/[\{\}]/g, '')]
|
|
@@ -108,44 +103,48 @@ class Placeholders extends DC {
|
|
|
108
103
|
return (
|
|
109
104
|
// is text node and has placeholders
|
|
110
105
|
childNode.nodeType === 3 &&
|
|
111
|
-
((childNode as
|
|
106
|
+
((childNode as Node).nodeValue || '').match(/\{[^\{\}]*\}/g)
|
|
112
107
|
);
|
|
113
108
|
})
|
|
114
109
|
.forEach((childNode) => {
|
|
115
110
|
hide = true;
|
|
116
|
-
let
|
|
111
|
+
let placeholders: Set<string> = new Set(
|
|
117
112
|
childNode.nodeValue.match(/\{[^\{\}]*\}/g)
|
|
118
113
|
);
|
|
119
114
|
|
|
120
115
|
// attach callback
|
|
121
|
-
|
|
116
|
+
this.data.observe(
|
|
122
117
|
((template: string) => (data: LooseObject) => {
|
|
123
118
|
let result: string = template;
|
|
124
|
-
//console.log('text node "', template, '"
|
|
125
|
-
|
|
119
|
+
//console.log('text node "', template, '" callback data:', data);
|
|
120
|
+
placeholders.forEach((placeholder) => {
|
|
126
121
|
result = result.replace(
|
|
127
122
|
placeholder,
|
|
128
123
|
data[placeholder.replace(/[\{\}]/g, '')]
|
|
129
124
|
);
|
|
130
125
|
});
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
126
|
+
// TODO: find out why this doesnt work correctly ... maybe completely overhaul the whole thing
|
|
127
|
+
// TODO: check overlap with inner web components, possibly firewall them
|
|
128
|
+
// TODO: maybe include convention for plain DOM / ShadowDom handling
|
|
129
|
+
|
|
130
|
+
// if (
|
|
131
|
+
// Object.keys(data).some((key) => {
|
|
132
|
+
// return !!data[key];
|
|
133
|
+
// })
|
|
134
|
+
// ) {
|
|
135
|
+
if (!!this.oldDisplay) {
|
|
136
|
+
target.style = this.oldDisplay;
|
|
138
137
|
} else {
|
|
139
138
|
target.removeAttribute('style');
|
|
140
139
|
}
|
|
141
|
-
delete
|
|
142
|
-
}
|
|
140
|
+
delete this.oldDisplay;
|
|
141
|
+
// }
|
|
143
142
|
childNode.nodeValue = result;
|
|
144
143
|
})(childNode.nodeValue)
|
|
145
144
|
);
|
|
146
145
|
|
|
147
146
|
// hide for now
|
|
148
|
-
|
|
147
|
+
this.oldDisplay = target.getAttribute('style)') || '';
|
|
149
148
|
if (
|
|
150
149
|
hide &&
|
|
151
150
|
!inputs.includes((target as any).constructor) &&
|
|
@@ -157,26 +156,24 @@ class Placeholders extends DC {
|
|
|
157
156
|
}
|
|
158
157
|
|
|
159
158
|
onData(ev: McEvent) {
|
|
160
|
-
let
|
|
161
|
-
data: LooseObject = {};
|
|
159
|
+
let data: LooseObject = {};
|
|
162
160
|
Object.keys(ev.data).forEach((key) => {
|
|
163
|
-
if (
|
|
161
|
+
if (this.data.hasOwnProperty(key)) data[key] = ev.data[key];
|
|
164
162
|
});
|
|
165
|
-
//console.log('onData()', ev, data,
|
|
166
|
-
if (JSON.stringify(data) !== JSON.stringify(
|
|
167
|
-
Object.assign(
|
|
163
|
+
//console.log('onData()', ev, data, this.data);
|
|
164
|
+
if (JSON.stringify(data) !== JSON.stringify(this.data))
|
|
165
|
+
Object.assign(this.data, data); // will trigger callbacks
|
|
168
166
|
}
|
|
169
167
|
}
|
|
170
168
|
|
|
171
169
|
function getPlaceholderElements(
|
|
172
170
|
target: HTMLElement | DocumentFragment | ShadowRoot
|
|
173
171
|
): HTMLElement[] {
|
|
174
|
-
let elements: Array<
|
|
175
|
-
target instanceof HTMLElement ? [target] : []
|
|
176
|
-
)
|
|
172
|
+
let elements: Array<Node> = [target]
|
|
177
173
|
.concat([...(target.querySelectorAll('*') as unknown as HTMLElement[])])
|
|
178
174
|
.filter((e) => !!getPlaceholders(e as HTMLElement).length)
|
|
179
|
-
.filter((e) => e
|
|
175
|
+
.filter((e) => (e as HTMLElement)?.tagName !== 'STYLE')
|
|
176
|
+
.reverse(); // to start with inner elements
|
|
180
177
|
//console.log('getPlaceholderElements', elements);
|
|
181
178
|
return elements as HTMLElement[];
|
|
182
179
|
}
|
|
@@ -239,14 +236,13 @@ function makeObservable(val: any): Class<typeof val>{
|
|
|
239
236
|
}
|
|
240
237
|
|
|
241
238
|
bind(target: HTMLElement | DocumentFragment | ShadowRoot) {
|
|
242
|
-
const
|
|
243
|
-
iso = isObservableObject(that.valueOf());
|
|
239
|
+
const iso = isObservableObject(this.valueOf());
|
|
244
240
|
//console.log('bind', iso, target);
|
|
245
241
|
|
|
246
242
|
if (iso) {
|
|
247
243
|
makePlaceholders(target);
|
|
248
244
|
const placeholders: unknown = [
|
|
249
|
-
...target.querySelectorAll('[_mc]'),
|
|
245
|
+
target, ...target.querySelectorAll('[_mc]'),
|
|
250
246
|
].filter((e) => !!(e as LooseObject)?._mc?._placeholders);
|
|
251
247
|
//console.log('placeholders:', target, placeholders);
|
|
252
248
|
const func = function callback(data: LooseObject) {
|
|
@@ -259,13 +255,13 @@ function makeObservable(val: any): Class<typeof val>{
|
|
|
259
255
|
(e as any)._mc.trigger('data', d);
|
|
260
256
|
});
|
|
261
257
|
};
|
|
262
|
-
(
|
|
263
|
-
|
|
258
|
+
(this as any).#callbacks.push(func);
|
|
259
|
+
this.notify();
|
|
264
260
|
} else {
|
|
265
261
|
console.warn(
|
|
266
262
|
'IGNORED - cannot bind a non-Object to the dom, IS:',
|
|
267
|
-
typeof
|
|
268
|
-
|
|
263
|
+
typeof this.valueOf(),
|
|
264
|
+
this
|
|
269
265
|
);
|
|
270
266
|
}
|
|
271
267
|
|
|
@@ -273,20 +269,19 @@ function makeObservable(val: any): Class<typeof val>{
|
|
|
273
269
|
}
|
|
274
270
|
|
|
275
271
|
notify(notify?: boolean) {
|
|
276
|
-
let
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
: that.valueOf();
|
|
272
|
+
let data =
|
|
273
|
+
isObservableObject(this.valueOf()) &&
|
|
274
|
+
this.valueOf() instanceof Array === false
|
|
275
|
+
? structuredClone(Object.assign({}, this))
|
|
276
|
+
: this.valueOf();
|
|
282
277
|
|
|
283
278
|
if (notify !== undefined) {
|
|
284
|
-
|
|
279
|
+
this.#notify = notify;
|
|
285
280
|
// return;
|
|
286
281
|
}
|
|
287
282
|
|
|
288
|
-
//if (
|
|
289
|
-
(
|
|
283
|
+
//if (this.#notify) console.log('notify', this, data);
|
|
284
|
+
(this as any).#callbacks.forEach((f: Function) => {
|
|
290
285
|
// console.log(
|
|
291
286
|
// (this.constructor as any).callbacks,
|
|
292
287
|
// 'notify: exec callback',
|
|
@@ -296,7 +291,7 @@ function makeObservable(val: any): Class<typeof val>{
|
|
|
296
291
|
f(data);
|
|
297
292
|
});
|
|
298
293
|
|
|
299
|
-
return
|
|
294
|
+
return this;
|
|
300
295
|
}
|
|
301
296
|
};
|
|
302
297
|
|
|
@@ -32,15 +32,13 @@ declare class DomSelector {
|
|
|
32
32
|
on(eventName: string, cb: Function, capture?: boolean, once?: boolean): Function;
|
|
33
33
|
one(eventName: string, cb: Function, capture?: boolean): Function;
|
|
34
34
|
parent(selection?: selection, rootNode?: HTMLElement): DSelector;
|
|
35
|
-
|
|
35
|
+
ancestors(selection?: selection, rootNode?: HTMLElement): DSelector;
|
|
36
36
|
prepend(selection: selection, target?: HTMLElement): DSelector;
|
|
37
37
|
prev(selection?: selection, rootNode?: HTMLElement): DSelector;
|
|
38
38
|
removeClass(...classes: string[]): DSelector;
|
|
39
39
|
text(text?: string): string | DSelector;
|
|
40
40
|
toggleClass(...classes: string[]): DSelector;
|
|
41
41
|
trigger(eventName: string, data?: any, bubbles?: boolean, cancelable?: boolean, composed?: boolean): DSelector;
|
|
42
|
-
val(p1?: any, p2?: any): any;
|
|
43
|
-
values(values?: LooseObject): LooseObject;
|
|
44
42
|
at(index: number): DSelector;
|
|
45
43
|
concat(items: DSelector | any[]): DSelector;
|
|
46
44
|
entries(): IterableIterator<[number, any]>;
|
|
@@ -79,7 +77,7 @@ declare class TbSelector {
|
|
|
79
77
|
on(name: string, cb: Function, once?: boolean): Function;
|
|
80
78
|
one(name: string, cb: Function): Function;
|
|
81
79
|
parent(nameSpace?: string): TSelector;
|
|
82
|
-
|
|
80
|
+
ancestors(nameSpace?: string): TSelector;
|
|
83
81
|
prev(nameSpace?: string): TSelector;
|
|
84
82
|
trigger(ev: string, data?: any, bubble?: string): TSelector;
|
|
85
83
|
at(index: number): TSelector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,EAAE,EAA8C,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
|