@twobirds/microcomponents 0.0.82 → 0.0.84

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