@twobirds/microcomponents 0.0.83 → 0.0.85

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.
Files changed (202) hide show
  1. package/README.md +22 -6
  2. package/assets/documentation/MC.md +60 -81
  3. package/assets/documentation/elements.md +6 -9
  4. package/assets/documentation/observables.md +97 -11
  5. package/assets/test/test.html +1 -1
  6. package/dist/MC.d.ts +14 -16
  7. package/dist/MC.d.ts.map +1 -1
  8. package/dist/MC.js +150 -218
  9. package/dist/MC.min.js +164 -308
  10. package/dist/MC.ts +213 -319
  11. package/dist/elements.d.ts.map +1 -1
  12. package/dist/elements.js +10 -4
  13. package/dist/elements.min.js +1 -1
  14. package/dist/elements.ts +17 -4
  15. package/dist/formValues.js +2 -2
  16. package/dist/formValues.min.js +1 -1
  17. package/dist/formValues.ts +3 -3
  18. package/dist/microcomponents.d.ts +0 -1
  19. package/dist/microcomponents.d.ts.map +1 -1
  20. package/dist/microcomponents.js +0 -1
  21. package/dist/microcomponents.min.js +1 -1
  22. package/dist/microcomponents.ts +1 -1
  23. package/dist/observables.d.ts.map +1 -1
  24. package/dist/observables.js +14 -12
  25. package/dist/observables.min.js +1 -1
  26. package/dist/observables.ts +32 -32
  27. package/package.json +1 -1
  28. package/public/MC.d.ts +14 -16
  29. package/public/MC.d.ts.map +1 -1
  30. package/public/MC.js +150 -218
  31. package/public/MC.js.map +1 -1
  32. package/public/MC.min.js +164 -308
  33. package/public/MC.ts +213 -319
  34. package/public/documentation/MC.md +60 -81
  35. package/public/documentation/elements.md +6 -9
  36. package/public/documentation/observables.md +97 -11
  37. package/public/elements.d.ts.map +1 -1
  38. package/public/elements.js +10 -4
  39. package/public/elements.js.map +1 -1
  40. package/public/elements.min.js +1 -1
  41. package/public/elements.ts +17 -4
  42. package/public/formValues.js +2 -2
  43. package/public/formValues.js.map +1 -1
  44. package/public/formValues.min.js +1 -1
  45. package/public/formValues.ts +3 -3
  46. package/public/microcomponents.d.ts +0 -1
  47. package/public/microcomponents.d.ts.map +1 -1
  48. package/public/microcomponents.js +0 -1
  49. package/public/microcomponents.js.map +1 -1
  50. package/public/microcomponents.min.js +1 -1
  51. package/public/microcomponents.ts +1 -1
  52. package/public/observables.d.ts.map +1 -1
  53. package/public/observables.js +14 -12
  54. package/public/observables.js.map +1 -1
  55. package/public/observables.min.js +1 -1
  56. package/public/observables.ts +32 -32
  57. package/public/src/MC.d.ts +14 -16
  58. package/public/src/MC.d.ts.map +1 -1
  59. package/public/src/MC.js +150 -218
  60. package/public/src/MC.js.map +1 -1
  61. package/public/src/MC.ts +213 -319
  62. package/public/src/elements.d.ts.map +1 -1
  63. package/public/src/elements.js +10 -4
  64. package/public/src/elements.js.map +1 -1
  65. package/public/src/elements.ts +17 -4
  66. package/public/src/formValues.js +2 -2
  67. package/public/src/formValues.js.map +1 -1
  68. package/public/src/formValues.ts +3 -3
  69. package/public/src/microcomponents.d.ts +0 -1
  70. package/public/src/microcomponents.d.ts.map +1 -1
  71. package/public/src/microcomponents.js +0 -1
  72. package/public/src/microcomponents.js.map +1 -1
  73. package/public/src/microcomponents.ts +1 -1
  74. package/public/src/observables.d.ts.map +1 -1
  75. package/public/src/observables.js +14 -12
  76. package/public/src/observables.js.map +1 -1
  77. package/public/src/observables.ts +32 -32
  78. package/public/src/test/test/grandparent.d.ts.map +1 -1
  79. package/public/src/test/test/grandparent.js +1 -1
  80. package/public/src/test/test/grandparent.js.map +1 -1
  81. package/public/src/test/test/grandparent.ts +12 -4
  82. package/public/src/test/test/testform.js +1 -1
  83. package/public/src/test/test/testform.js.map +1 -1
  84. package/public/src/test/test/testform.ts +6 -8
  85. package/public/src/test/test.js +6 -5
  86. package/public/src/test/test.js.map +1 -1
  87. package/public/src/test/test.ts +10 -9
  88. package/public/test/MC.d.ts +14 -16
  89. package/public/test/MC.d.ts.map +1 -1
  90. package/public/test/MC.js +150 -218
  91. package/public/test/MC.min.js +164 -308
  92. package/public/test/MC.ts +213 -319
  93. package/public/test/elements.d.ts.map +1 -1
  94. package/public/test/elements.js +10 -4
  95. package/public/test/elements.min.js +1 -1
  96. package/public/test/elements.ts +17 -4
  97. package/public/test/formValues.js +2 -2
  98. package/public/test/formValues.min.js +1 -1
  99. package/public/test/formValues.ts +3 -3
  100. package/public/test/microcomponents.d.ts +0 -1
  101. package/public/test/microcomponents.d.ts.map +1 -1
  102. package/public/test/microcomponents.js +0 -1
  103. package/public/test/microcomponents.min.js +1 -1
  104. package/public/test/microcomponents.ts +1 -1
  105. package/public/test/observables.d.ts.map +1 -1
  106. package/public/test/observables.js +14 -12
  107. package/public/test/observables.min.js +1 -1
  108. package/public/test/observables.ts +32 -32
  109. package/public/test/test/grandparent.d.ts.map +1 -1
  110. package/public/test/test/grandparent.js +1 -1
  111. package/public/test/test/grandparent.js.map +1 -1
  112. package/public/test/test/grandparent.ts +12 -4
  113. package/public/test/test/testform.js +1 -1
  114. package/public/test/test/testform.js.map +1 -1
  115. package/public/test/test/testform.ts +6 -8
  116. package/public/test/test.html +1 -1
  117. package/public/test/test.js +6 -5
  118. package/public/test/test.js.map +1 -1
  119. package/public/test/test.ts +10 -9
  120. package/public/typedoc/assets/navigation.js +1 -1
  121. package/public/typedoc/assets/search.js +1 -1
  122. package/public/typedoc/classes/MC.DC.html +7 -6
  123. package/public/typedoc/classes/MC.MC.html +3 -6
  124. package/public/typedoc/classes/MC.McBase.html +3 -4
  125. package/public/typedoc/functions/MC.autoload.html +1 -1
  126. package/public/typedoc/functions/MC.off.html +1 -0
  127. package/public/typedoc/functions/{selectors._d.html → MC.on.html} +1 -1
  128. package/public/typedoc/functions/MC.one.html +1 -0
  129. package/public/typedoc/functions/MC.trigger.html +1 -0
  130. package/public/typedoc/functions/elements.defineCE.html +1 -1
  131. package/public/typedoc/functions/elements.getCE.html +1 -1
  132. package/public/typedoc/functions/formValues.formValues.html +1 -1
  133. package/public/typedoc/functions/observables.observe.html +1 -1
  134. package/public/typedoc/index.html +21 -10
  135. package/public/typedoc/interfaces/MC.HTMLMcElement.html +2 -2
  136. package/public/typedoc/modules/MC.html +6 -5
  137. package/public/typedoc/modules/elements.html +1 -1
  138. package/public/typedoc/modules/formValues.html +1 -1
  139. package/public/typedoc/modules/observables.html +1 -1
  140. package/public/typedoc/modules.html +0 -1
  141. package/public/typedoc/types/observables.Observable.html +1 -1
  142. package/src/MC.ts +213 -319
  143. package/src/elements.ts +17 -4
  144. package/src/formValues.ts +3 -3
  145. package/src/microcomponents.ts +1 -1
  146. package/src/observables.ts +32 -32
  147. package/src/test/test/grandparent.ts +12 -4
  148. package/src/test/test/testform.ts +6 -8
  149. package/src/test/test.ts +10 -9
  150. package/tsconfig.json +2 -2
  151. package/typedoc.json +1 -1
  152. package/webpack.config.js +2 -2
  153. package/dist/McEvent.d.ts +0 -15
  154. package/dist/McEvent.d.ts.map +0 -1
  155. package/dist/McEvent.js +0 -71
  156. package/dist/selectors.d.ts +0 -106
  157. package/dist/selectors.d.ts.map +0 -1
  158. package/dist/selectors.js +0 -759
  159. package/dist/selectors.min.js +0 -1
  160. package/public/McEvent.d.ts +0 -15
  161. package/public/McEvent.d.ts.map +0 -1
  162. package/public/McEvent.js +0 -71
  163. package/public/McEvent.js.map +0 -1
  164. package/public/selectors.d.ts +0 -106
  165. package/public/selectors.d.ts.map +0 -1
  166. package/public/selectors.js +0 -759
  167. package/public/selectors.js.map +0 -1
  168. package/public/selectors.min.js +0 -1
  169. package/public/src/McEvent.d.ts +0 -15
  170. package/public/src/McEvent.d.ts.map +0 -1
  171. package/public/src/McEvent.js +0 -71
  172. package/public/src/McEvent.js.map +0 -1
  173. package/public/src/selectors.d.ts +0 -106
  174. package/public/src/selectors.d.ts.map +0 -1
  175. package/public/src/selectors.js +0 -759
  176. package/public/src/selectors.js.map +0 -1
  177. package/public/test/McEvent.d.ts +0 -15
  178. package/public/test/McEvent.d.ts.map +0 -1
  179. package/public/test/McEvent.js +0 -71
  180. package/public/test/McEvent.ts +0 -96
  181. package/public/test/selectors.d.ts +0 -106
  182. package/public/test/selectors.d.ts.map +0 -1
  183. package/public/test/selectors.js +0 -759
  184. package/public/test/selectors.min.js +0 -1
  185. package/public/test/selectors.ts +0 -1269
  186. package/public/typedoc/classes/MC.McEvent.html +0 -9
  187. package/public/typedoc/functions/MC.addListener.html +0 -1
  188. package/public/typedoc/functions/MC.removeListener.html +0 -1
  189. package/public/typedoc/functions/selectors._t.html +0 -1
  190. package/public/typedoc/interfaces/selectors.DSelector.html +0 -48
  191. package/public/typedoc/interfaces/selectors.TSelector.html +0 -34
  192. package/public/typedoc/modules/selectors.html +0 -7
  193. package/public/typedoc/types/selectors.selection.html +0 -1
  194. package/public/typedoc/types/selectors.singleSelector.html +0 -1
  195. package/src/McEvent.ts +0 -96
  196. package/src/selectors.ts +0 -1269
  197. /package/{dist/McEvent.ts → public/McEvent._ts} +0 -0
  198. /package/{dist/selectors.ts → public/selectors._ts} +0 -0
  199. /package/public/{McEvent.ts → src/McEvent._ts} +0 -0
  200. /package/public/{selectors.ts → src/selectors._ts} +0 -0
  201. /package/{public/src/McEvent.ts → src/McEvent._ts} +0 -0
  202. /package/{public/src/selectors.ts → src/selectors._ts} +0 -0
package/public/src/MC.js CHANGED
@@ -1,79 +1,30 @@
1
1
  'use strict';
2
- import { McEvent } from './McEvent.js';
3
- var isBrowser = new Function('try {return this===window;}catch(e){ return false;}');
4
- let nativeEventNames = new Set();
5
- if (isBrowser()) {
6
- Object.keys(HTMLElement.prototype)
7
- .filter((key) => /^on/.test(key))
8
- .forEach((eventName) => nativeEventNames.add(eventName));
9
- }
10
- function getMicroComponents(elements, search) {
11
- let mcValues = [];
12
- elements.forEach((e) => {
13
- if (e) {
14
- if (e instanceof HTMLElement) {
15
- const _mc = e?._mc;
16
- if (!search && _mc) {
17
- mcValues = mcValues.concat(Object.values(e._mc));
18
- }
19
- else if (search && _mc && _mc[search]) {
20
- mcValues.push(_mc[search]);
21
- }
22
- }
23
- }
24
- });
25
- return mcValues;
26
- }
27
- function traverseNodes(node, search, firstonly = true) {
28
- let mcValues = [];
29
- while (node) {
30
- if (node._mc) {
31
- if (!search) {
32
- mcValues = mcValues.concat(Object.values(node._mc));
33
- }
34
- else if (search && node._mc[search]) {
35
- mcValues.push(node._mc[search]);
36
- }
37
- if (firstonly)
38
- return mcValues;
39
- }
40
- node = node.parentNode;
2
+ const isBrowser = new Function('try {return this===window;}catch(e){ return false;}');
3
+ function getNativeEventNames(domNode) {
4
+ let nativeEventNames = [];
5
+ if (isBrowser()) {
6
+ Object.keys(HTMLElement.prototype)
7
+ .filter((key) => /^on/.test(key))
8
+ .forEach((eventName) => nativeEventNames.push(eventName));
41
9
  }
42
- return mcValues;
10
+ return nativeEventNames;
43
11
  }
44
12
  function isDOM(element) {
45
13
  return element && element instanceof HTMLElement;
46
14
  }
47
- function addListener(domNode, eventName, handler, capture = false, once = false) {
48
- let options = { once: false };
49
- if (capture) {
50
- options.capture = capture;
51
- }
52
- if (once) {
53
- options.once = once;
54
- }
55
- domNode.addEventListener(eventName, handler, options);
56
- }
57
- function removeListener(domNode, eventName, handler) {
58
- domNode.removeEventListener(eventName, handler);
59
- }
60
15
  function add(target, key, element = {}) {
61
16
  let node = target;
62
17
  if (!node._mc) {
63
- let debug = DC?.debug;
64
- DC.debug = false;
65
18
  node._mc = new DC(target);
66
- DC.debug = debug;
67
- delete node._mc._mc;
68
19
  }
69
20
  const _mc = node._mc;
70
21
  if (key.length && !_mc[key]) {
71
22
  _mc[key] = element;
72
- if (target instanceof HTMLElement && !target.getAttribute('_mc')) {
73
- target.setAttribute('_mc', '');
23
+ if (target instanceof HTMLElement && !target.getAttribute('data-mc')) {
24
+ target.setAttribute('data-mc', '');
74
25
  }
75
26
  }
76
- return element;
27
+ return node;
77
28
  }
78
29
  function remove(target, key) {
79
30
  if (!key)
@@ -84,35 +35,60 @@ function remove(target, key) {
84
35
  }
85
36
  if (!Object.keys(_mc).length &&
86
37
  target instanceof HTMLElement &&
87
- target.hasAttribute('_mc')) {
88
- target.removeAttribute('_mc');
89
- }
90
- return;
91
- }
92
- function trigger(target, ev, data = {}, bubble = 'l') {
93
- let _mc = target?._mc;
94
- if (!_mc)
95
- return;
96
- let event = ev instanceof McEvent
97
- ? new McEvent(ev.type, ev.data, 'l')
98
- : new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string' ? ev : new McEvent(ev, data, bubble);
99
- [...Object.values(_mc)].forEach((mc) => {
100
- if (mc?.trigger && typeof mc?.trigger === 'function') {
101
- mc?.trigger(event);
102
- }
103
- });
104
- if (/[ud]/.test(mcEvent.bubble)) {
105
- bubbleEvent(target, mcEvent);
38
+ target.hasAttribute('data-mc')) {
39
+ target.removeAttribute('data-mc');
106
40
  }
107
41
  return;
108
42
  }
109
43
  function init(element) {
110
- if (element.constructor === DC)
111
- return;
112
44
  setTimeout(() => {
45
+ if (element.constructor === DC)
46
+ return;
113
47
  element.trigger('Init');
114
48
  }, 0);
115
49
  }
50
+ function getMcEventName(eventName) {
51
+ return '_mc' + eventName[0].toUpperCase() + eventName.substring(1);
52
+ }
53
+ function off(domNode, eventName, handler) {
54
+ domNode.removeEventListener(getMcEventName(eventName), handler);
55
+ }
56
+ function on(domNode, eventName, handler, once = false) {
57
+ domNode.addEventListener(getMcEventName(eventName), handler, { capture: false, once });
58
+ }
59
+ function one(domNode, eventName, handler) {
60
+ on(domNode, eventName, handler, true);
61
+ }
62
+ function trigger(domNode, event, data = {}, bubble = 'l') {
63
+ const ev = typeof event === 'string'
64
+ ? new CustomEvent(getMcEventName(event), { detail: { data, bubble } })
65
+ : event;
66
+ if (bubble.length && bubble.indexOf('l') > -1) {
67
+ domNode.dispatchEvent(ev);
68
+ }
69
+ if (/[u|d]/.test(bubble)) {
70
+ bubbleEvent(domNode, ev);
71
+ }
72
+ }
73
+ function bubbleEvent(domNode, ev) {
74
+ setTimeout(() => {
75
+ if (ev.detail.bubble.indexOf('l') === -1) {
76
+ ev.detail.bubble += 'l';
77
+ }
78
+ if (ev.detail.bubble.indexOf('u') > -1) {
79
+ domNode.closest('[data-mc]')?.dispatchEvent(ev);
80
+ }
81
+ if (ev.detail.bubble.indexOf('d') > -1) {
82
+ let targets = new Set(domNode._mc
83
+ .children()
84
+ .map((c) => c?.target));
85
+ targets.forEach((target) => {
86
+ if (target)
87
+ target._mc.trigger(target, ev);
88
+ });
89
+ }
90
+ }, 0);
91
+ }
116
92
  function autoAttachListeners(element) {
117
93
  if (!isBrowser() || element.constructor === DC)
118
94
  return;
@@ -123,53 +99,33 @@ function autoAttachListeners(element) {
123
99
  .filter((key) => /^on[A-Z]|one[A-Z]/.test(key) &&
124
100
  typeof that.constructor.prototype[key] === 'function')
125
101
  .forEach((key) => {
126
- let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => {
127
- that.trigger(withoutOnOne, ev);
102
+ let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), nativeEventName = withoutOnOne.toLowerCase();
103
+ let listener = (ev) => {
104
+ that[key](ev);
128
105
  };
129
- if (once) {
130
- Object.defineProperty(element, 'on' + withoutOnOne, {
131
- configurable: true,
132
- enumerable: false,
133
- writable: true,
134
- value: (ev) => {
135
- that.constructor.prototype[key].bind(that)(ev);
136
- },
137
- });
106
+ if (!!target['on' + nativeEventName]) {
107
+ target.addEventListener(nativeEventName, listener);
138
108
  }
139
- if (nativeEventNames.has('on' + nativeEventName)) {
140
- addListener(target, nativeEventName, listener, false, once);
109
+ else {
110
+ on(target, withoutOnOne, listener, once);
141
111
  }
142
112
  });
143
113
  }
144
114
  }
145
- function bubbleEvent(target, ev) {
146
- if (/[ud]/.test(ev.bubble)) {
147
- setTimeout(() => {
148
- if (ev.bubble.indexOf('l') === -1) {
149
- ev.bubble += 'l';
150
- }
151
- if (ev.bubble.indexOf('u') > -1) {
152
- let parent = traverseNodes(target, '', true)?.[0].target;
153
- if (parent)
154
- DC.trigger(parent, ev);
155
- }
156
- if (ev.bubble.indexOf('d') > -1) {
157
- let targets = new Set(target._mc
158
- .children()
159
- .map((c) => c?.target));
160
- targets.forEach((target) => {
161
- if (target)
162
- DC.trigger(target, ev);
163
- });
164
- }
165
- }, 0);
166
- }
115
+ function getMcChildNodes(domNode) {
116
+ const id = Math.random().toString().replace('.', '');
117
+ const selector = '[data-mc]:not([temp_id="' + id + '"] [data-mc] [data-mc])';
118
+ domNode.setAttribute('temp_id', id);
119
+ const mcArray = [...domNode.querySelectorAll(selector)]
120
+ .filter((e) => !!e._mc)
121
+ .map(e => e._mc);
122
+ domNode.removeAttribute('temp_id');
123
+ return mcArray.length ? mcArray : null;
167
124
  }
168
125
  class McBase {
169
126
  _target;
170
- __mc = {};
171
- constructor(target, debug = false) {
172
- let that = this, element = that;
127
+ constructor(target) {
128
+ let element = this;
173
129
  this._target = new WeakRef(target || {});
174
130
  init(element);
175
131
  autoAttachListeners(element);
@@ -177,55 +133,11 @@ class McBase {
177
133
  get target() {
178
134
  return this._target.deref();
179
135
  }
180
- get _mc() {
181
- return this.__mc;
182
- }
183
136
  }
184
137
  class MC extends McBase {
185
138
  constructor(target) {
186
139
  super(target);
187
140
  }
188
- static trigger = trigger;
189
- trigger(ev, data = {}, bubble = 'l') {
190
- let that = this;
191
- if (that.constructor === MC || that.constructor === DC) {
192
- let event = ev instanceof McEvent
193
- ? new McEvent(ev.type, ev.data, 'l')
194
- : new McEvent(ev, data, 'l'), mcEvent = typeof ev !== 'string'
195
- ? ev
196
- : new McEvent(ev, data, bubble);
197
- [...Object.getOwnPropertyNames(that)].forEach((mc) => {
198
- if (that[mc]?.trigger &&
199
- typeof that[mc]?.trigger === 'function') {
200
- that[mc]?.trigger(event);
201
- }
202
- });
203
- if (/[ud]/.test(mcEvent.bubble)) {
204
- bubbleEvent(that.target, mcEvent);
205
- }
206
- return;
207
- }
208
- if (that instanceof MC || that instanceof DC) {
209
- const that = this, mcEvent = typeof ev !== 'string'
210
- ? ev
211
- : new McEvent(ev, data, bubble), handlerName = 'on' + mcEvent.type[0].toUpperCase() + mcEvent.type.slice(1);
212
- if (mcEvent.bubble.indexOf('l') > -1) {
213
- if (!mcEvent.immediateStopped &&
214
- typeof that[handlerName] === 'function') {
215
- that[handlerName](mcEvent);
216
- if (that.hasOwnProperty(handlerName)) {
217
- delete that[handlerName];
218
- }
219
- }
220
- }
221
- if (mcEvent.stopped || mcEvent.bubble === 'l') {
222
- return that;
223
- }
224
- if (/[ud]/.test(mcEvent.bubble)) {
225
- bubbleEvent(that.target, mcEvent);
226
- }
227
- }
228
- }
229
141
  }
230
142
  class DC extends McBase {
231
143
  constructor(target, debug = false) {
@@ -233,59 +145,56 @@ class DC extends McBase {
233
145
  }
234
146
  static add = add;
235
147
  static remove = remove;
236
- static trigger = trigger;
237
- trigger(ev, data = {}, bubble) {
238
- MC.prototype.trigger.call(this, ev, data, bubble);
148
+ off(eventName, handler) {
149
+ off(this.target, eventName, handler);
150
+ }
151
+ on(eventName, handler) {
152
+ on(this.target, eventName, handler);
153
+ }
154
+ one(eventName, handler) {
155
+ one(this.target, eventName, handler);
239
156
  }
240
- parent(search = '') {
157
+ trigger(eventName, data = {}, bubble = 'l') {
158
+ trigger(this.target, eventName, data, bubble);
159
+ }
160
+ parent() {
241
161
  let target = this.target;
242
162
  if (!isDOM(target))
243
- return [];
244
- return traverseNodes(target.parentNode, search, true);
163
+ return null;
164
+ return target.closest('[data-mc]')?._mc || null;
245
165
  }
246
- ancestors(search = '') {
247
- let target = this?.target;
248
- if (!isDOM(target))
166
+ ancestors() {
167
+ let currentNode = this?.target, result = [];
168
+ if (!isDOM(currentNode))
249
169
  return [];
250
- return traverseNodes(this.target.parentNode, search, false);
170
+ while (currentNode = (currentNode.closest('[data-mc]'))) {
171
+ if (currentNode?._mc) {
172
+ result.push(currentNode?._mc);
173
+ }
174
+ }
175
+ return result.length ? result : null;
251
176
  }
252
- children(search = '') {
177
+ children() {
253
178
  let target = this?.target;
254
179
  if (!isDOM(target))
255
- return [];
256
- const id = Math.random().toString().replace('.', '');
257
- const selector = '[_mc]:not([temp_id="' + id + '"] [_mc] [_mc])';
258
- target.setAttribute('temp_id', id);
259
- const myDomElements = target.querySelectorAll(selector);
260
- const mcValues = getMicroComponents([...myDomElements], search);
261
- target.removeAttribute('temp_id');
262
- return mcValues;
180
+ return null;
181
+ return getMcChildNodes(target);
263
182
  }
264
- descendants(search = '') {
265
- let target = this?.target;
183
+ descendants() {
184
+ const target = this?.target;
266
185
  if (!isDOM(target))
267
186
  return [];
268
- const myDomElements = target.querySelectorAll('*[_mc]');
269
- return getMicroComponents([...myDomElements], search);
187
+ const mcArray = [...target.querySelectorAll('[data-mc]')]
188
+ .filter((e) => !!e._mc)
189
+ .map(e => e._mc);
190
+ return mcArray.length ? mcArray : null;
270
191
  }
271
192
  }
272
- const loadingMCs = new Set();
273
- function makeLoadScript(element) {
274
- if (loadingMCs.has(element))
275
- return;
276
- loadingMCs.add(element);
277
- const fileName = './' + element.split('-').join('/') + '.js';
278
- const se = document.createElement('script');
279
- se.setAttribute('src', fileName);
280
- se.setAttribute('blocking', 'render');
281
- se.async = true;
282
- se.setAttribute('type', 'module');
283
- se.setAttribute('data-name', element);
284
- se.setAttribute('loading', '');
285
- const loadedPromise = customElements.whenDefined(element);
286
- loadedPromise.then(() => {
193
+ const loadingDCs = new Set();
194
+ function attachDC(element) {
195
+ return () => {
287
196
  const elements = Array
288
- .from(document.querySelectorAll(`[_mc*="${element}"]`))
197
+ .from(document.querySelectorAll(`[data-mc*="${element}"]`))
289
198
  .filter(element => element instanceof HTMLElement);
290
199
  if (elements.length === 0)
291
200
  return;
@@ -293,19 +202,36 @@ function makeLoadScript(element) {
293
202
  elements.forEach((node) => {
294
203
  DC.add(node, klass.name, new klass(node));
295
204
  const new_mc = node
296
- .getAttribute('_mc')
205
+ .getAttribute('data-mc')
297
206
  .split(' ')
298
207
  .filter((name) => name !== element && name !== '')
299
- .join(' ');
300
- node.setAttribute('_mc', new_mc);
208
+ .join(' ')
209
+ .trim();
210
+ node.setAttribute('data-mc', new_mc);
301
211
  });
302
- document.head.querySelector('script[data-name="${elementName}]"')?.remove();
303
- });
304
- addListener(se, 'load', (ev) => {
305
- loadingMCs.delete(element);
212
+ };
213
+ }
214
+ ;
215
+ function makeLoadScript(element) {
216
+ if (loadingDCs.has(element))
217
+ return;
218
+ loadingDCs.add(element);
219
+ const fileName = './' + element.split('-').join('/') + '.js';
220
+ const se = document.createElement('script');
221
+ se.setAttribute('src', fileName);
222
+ se.setAttribute('blocking', 'render');
223
+ se.async = true;
224
+ se.setAttribute('type', 'module');
225
+ se.setAttribute('data-name', element);
226
+ se.setAttribute('loading', '');
227
+ const loadedPromise = customElements.whenDefined(element);
228
+ loadedPromise.then(attachDC(element));
229
+ se.addEventListener('load', (ev) => {
230
+ loadingDCs.delete(element);
231
+ document.head.querySelector(`script[data-name="${element}"]`)?.remove();
306
232
  });
307
- addListener(se, 'error', (ev) => {
308
- console.error('could not load MC code from', fileName);
233
+ se.addEventListener('error', (ev) => {
234
+ console.error('could not load DC code from', fileName);
309
235
  });
310
236
  document.head.append(se);
311
237
  }
@@ -313,16 +239,22 @@ function loadUndefinedMCs() {
313
239
  [...document.querySelectorAll(':not(:defined)')]
314
240
  .filter((element) => !!element
315
241
  && !customElements.get(element.tagName.toLowerCase())
316
- && !loadingMCs.has(element.tagName.toLowerCase()))
242
+ && !loadingDCs.has(element.tagName.toLowerCase()))
317
243
  .forEach((el) => {
318
244
  makeLoadScript(el.tagName.toLowerCase());
319
245
  });
320
- [...document.querySelectorAll('[_mc]:not([_mc=""]')]
246
+ [...document.querySelectorAll('[data-mc]:not([data-mc=""]')]
321
247
  .filter((element) => !!element)
322
248
  .forEach((el) => {
323
- const _mc = el.getAttribute('_mc')?.split(' ').filter(name => name !== '');
324
- _mc?.forEach(dc => {
325
- makeLoadScript(dc);
249
+ const _mc = el.getAttribute('data-mc')?.split(' ').filter(name => name !== '');
250
+ _mc?.forEach(element => {
251
+ const isDefined = customElements.get(element);
252
+ if (!loadingDCs.has(element) && !isDefined) {
253
+ makeLoadScript(element);
254
+ }
255
+ else if (isDefined) {
256
+ attachDC(element)();
257
+ }
326
258
  });
327
259
  });
328
260
  }
@@ -343,6 +275,6 @@ function autoload(enable = true) {
343
275
  window.autoload = window.autoload || autoload;
344
276
  return autoloadEnabled;
345
277
  }
346
- autoload.state = { loadingMCs };
347
- export { addListener, removeListener, McBase, MC, DC, McEvent, autoload };
278
+ autoload.state = loadingDCs;
279
+ export { McBase, MC, DC, autoload, on, one, off, trigger };
348
280
  //# sourceMappingURL=MC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MC.js","sourceRoot":"","sources":["../src/MC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MC.js","sourceRoot":"","sources":["../src/MC.ts"],"names":[],"mappings":"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"}