@twobirds/microcomponents 0.0.33 → 0.0.37

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 (118) hide show
  1. package/README.md +40 -27
  2. package/assets/documentation/{MicroComponents.md → MC.md} +17 -17
  3. package/assets/documentation/comparision.md +0 -0
  4. package/assets/documentation/elements.md +276 -0
  5. package/assets/documentation/magic.md +10 -68
  6. package/dist/MC.d.ts +2 -3
  7. package/dist/MC.d.ts.map +1 -1
  8. package/dist/MC.min.js +45 -43
  9. package/dist/MC.ts +173 -175
  10. package/dist/autoloader.ts +1 -1
  11. package/dist/{customElements.d.ts → elements.d.ts} +1 -1
  12. package/dist/elements.d.ts.map +1 -0
  13. package/dist/elements.min.js +1 -0
  14. package/dist/{customElements.ts → elements.ts} +23 -14
  15. package/dist/helpers.d.ts +6 -4
  16. package/dist/helpers.d.ts.map +1 -1
  17. package/dist/helpers.ts +95 -128
  18. package/dist/microcomponents.d.ts +3 -3
  19. package/dist/microcomponents.d.ts.map +1 -1
  20. package/dist/microcomponents.min.js +1 -1
  21. package/dist/microcomponents.ts +3 -3
  22. package/dist/{customObservables.d.ts → observables.d.ts} +3 -3
  23. package/dist/observables.d.ts.map +1 -0
  24. package/dist/observables.min.js +1 -0
  25. package/dist/observables.ts +354 -0
  26. package/dist/{customSelectors.d.ts → selectors.d.ts} +1 -1
  27. package/dist/selectors.d.ts.map +1 -0
  28. package/dist/selectors.min.js +1 -0
  29. package/dist/test.ts +133 -157
  30. package/klemmstein.png +0 -0
  31. package/package.json +52 -52
  32. package/public/MC.js +46 -44
  33. package/public/MC.js.map +1 -1
  34. package/public/MC.min.js +45 -43
  35. package/public/assets/search.js +1 -1
  36. package/public/autoloader.js +1 -1
  37. package/public/autoloader.js.map +1 -1
  38. package/public/classes/{DC.html → MC.DC.html} +60 -59
  39. package/public/classes/{MC.html → MC.MC.html} +41 -35
  40. package/public/classes/{McBase.html → MC.McBase.html} +28 -20
  41. package/public/classes/{McEvent.html → MC.McEvent.html} +48 -42
  42. package/public/documentation/{MicroComponents.md → MC.md} +17 -17
  43. package/public/documentation/comparision.md +0 -0
  44. package/public/documentation/elements.md +276 -0
  45. package/public/documentation/magic.md +10 -68
  46. package/public/{customElements.js → elements.js} +9 -10
  47. package/public/elements.js.map +1 -0
  48. package/public/elements.min.js +1 -0
  49. package/public/functions/{addListener.html → MC.addListener.html} +18 -12
  50. package/public/functions/{removeListener.html → MC.removeListener.html} +18 -12
  51. package/public/functions/elements.defineCE.html +78 -0
  52. package/public/functions/elements.getCE.html +63 -0
  53. package/public/functions/formValues.formValues.html +68 -0
  54. package/public/functions/observables.observe.html +65 -0
  55. package/public/functions/selectors._d.html +69 -0
  56. package/public/functions/selectors._t.html +69 -0
  57. package/public/helpers.js +66 -89
  58. package/public/helpers.js.map +1 -1
  59. package/public/index.html +48 -33
  60. package/public/interfaces/{HTMLMcElement.html → MC.HTMLMcElement.html} +601 -595
  61. package/public/interfaces/selectors.DSelector.html +1013 -0
  62. package/public/interfaces/selectors.TSelector.html +712 -0
  63. package/public/microcomponents.js +3 -3
  64. package/public/microcomponents.js.map +1 -1
  65. package/public/microcomponents.min.js +1 -1
  66. package/public/modules/MC.html +78 -0
  67. package/public/modules/elements.html +62 -0
  68. package/public/modules/formValues.html +60 -0
  69. package/public/modules/observables.html +65 -0
  70. package/public/modules/selectors.html +76 -0
  71. package/public/modules.html +11 -23
  72. package/public/observables.js +255 -0
  73. package/public/observables.js.map +1 -0
  74. package/public/observables.min.js +1 -0
  75. package/public/{customSelectors.js → selectors.js} +1 -1
  76. package/public/selectors.js.map +1 -0
  77. package/public/selectors.min.js +1 -0
  78. package/public/src/MC.ts +376 -0
  79. package/public/src/McEvent.ts +96 -0
  80. package/public/src/autoloader.ts +98 -0
  81. package/{src/customElements.ts → public/src/elements.ts} +23 -14
  82. package/public/src/formValues.ts +275 -0
  83. package/public/src/helpers.ts +140 -0
  84. package/public/src/microcomponents.ts +8 -0
  85. package/public/src/observables.ts +354 -0
  86. package/public/src/test.ts +187 -0
  87. package/public/test.js +99 -115
  88. package/public/test.js.map +1 -1
  89. package/public/types/observables.Observable.html +91 -0
  90. package/public/types/selectors.selection.html +58 -0
  91. package/public/types/selectors.singleSelector.html +58 -0
  92. package/src/MC.ts +173 -175
  93. package/src/autoloader.ts +1 -1
  94. package/src/elements.ts +76 -0
  95. package/src/helpers.ts +95 -128
  96. package/src/microcomponents.ts +3 -3
  97. package/src/observables.ts +354 -0
  98. package/src/selectors.ts +1634 -0
  99. package/src/test.ts +133 -157
  100. package/typedoc.json +1 -1
  101. package/webpack.config.js +9 -9
  102. package/dist/customElements.d.ts.map +0 -1
  103. package/dist/customElements.min.js +0 -1
  104. package/dist/customObservables.d.ts.map +0 -1
  105. package/dist/customObservables.min.js +0 -1
  106. package/dist/customObservables.ts +0 -348
  107. package/dist/customSelectors.d.ts.map +0 -1
  108. package/dist/customSelectors.min.js +0 -1
  109. package/public/customElements.js.map +0 -1
  110. package/public/customElements.min.js +0 -1
  111. package/public/customObservables.js +0 -256
  112. package/public/customObservables.js.map +0 -1
  113. package/public/customObservables.min.js +0 -1
  114. package/public/customSelectors.js.map +0 -1
  115. package/public/customSelectors.min.js +0 -1
  116. package/src/customObservables.ts +0 -348
  117. /package/dist/{customSelectors.ts → selectors.ts} +0 -0
  118. /package/{src/customSelectors.ts → public/src/selectors.ts} +0 -0
package/public/helpers.js CHANGED
@@ -1,115 +1,79 @@
1
- "use strict";
2
- export function isObject(value) {
3
- return value != null && typeof value === 'object';
1
+ 'use strict';
2
+ export function isNativeObject(value) {
3
+ return value && value['constructor'] && value.constructor === Object;
4
4
  }
5
- export function kebabToPascal(str) {
6
- return str
7
- .split('-') // Split by hyphens
8
- .map(word => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize each part
9
- .join(''); // Join without spaces
5
+ export function sortObject(o) {
6
+ let result = {}, keys = [...Object.keys(o)].sort();
7
+ keys.forEach((key) => {
8
+ if (isNativeObject(o[key])) {
9
+ result[key] = sortObject(o[key]);
10
+ }
11
+ else {
12
+ result[key] = o[key];
13
+ }
14
+ });
15
+ return result;
10
16
  }
11
- export function debounce(func, milliseconds) {
12
- let timeout;
13
- return () => {
14
- clearTimeout(timeout);
15
- timeout = setTimeout(function () {
16
- func(...arguments);
17
- }, milliseconds);
18
- };
17
+ export function flattenObject(o, doSort = true) {
18
+ let result = {};
19
+ [...Object.getOwnPropertyNames(o)].forEach((propName) => {
20
+ if (o[propName] &&
21
+ o[propName]['constructor'] &&
22
+ o[propName].constructor === Object) {
23
+ const temp = flattenObject(o[propName], false);
24
+ for (const j in temp) {
25
+ result[propName + '.' + j] = temp[j];
26
+ }
27
+ }
28
+ else {
29
+ result[propName] = o[propName];
30
+ }
31
+ });
32
+ return doSort ? sortObject(result) : result;
19
33
  }
20
- ;
21
34
  export function deepEqual(o1, o2) {
22
- const k1 = Object.keys(o1);
23
- const k2 = Object.keys(o2);
24
- if (k1.length !== k2.length) {
25
- return false;
26
- }
27
- for (const key of k1) {
28
- const v1 = o1[key], v2 = o2[key], recurse = isObject(v1) && isObject(v2);
29
- ;
30
- if ((recurse && !deepEqual(v1, v2))
31
- || (!recurse && v1 !== v2)) {
32
- return false;
33
- }
34
- }
35
- return true;
35
+ return (JSON.stringify(flattenObject(o1)) === JSON.stringify(flattenObject(o2)));
36
36
  }
37
- export function nameSpace(ns, obj, val = null, orig) {
38
- let leftOver = ns.split('.');
39
- if (!orig) {
40
- orig = obj;
41
- }
42
- // console.log( 'start', ns, obj, val, leftOver );
43
- let last = leftOver.shift(), // this property name
44
- lns = leftOver.join('.') // the leftover namespace
45
- ;
46
- if (val !== null && last.length && obj[last] === undefined) { // extend if val given and ns leftover...
47
- // console.log( 'add prop', last );
48
- obj[last] = {};
49
- }
50
- let lob = obj[last] // the leftover value or obj
51
- ;
52
- // console.log( 'lob', lob, 'last:', last, 'lns:', lns, 'obj:', obj );
53
- if (lns.length === 0) { // this should be the value to set or get
54
- if (val !== null) {
55
- obj[last] = val;
56
- return orig;
57
- }
58
- return obj[last];
59
- }
60
- if (isObject(obj[last])) {
61
- return nameSpace(lns, obj[last], val, orig);
37
+ export function nameSpace(ns, obj = {}) {
38
+ let nsa = ns.constructor === String ? ns.split('.') : ns;
39
+ if (!obj || !nsa[0] || !obj[nsa[0]]) {
40
+ console.warn('ns', nsa[0], 'not in', obj);
41
+ return;
62
42
  }
63
- else {
64
- if (val) {
65
- return orig;
66
- }
67
- return lob[last];
43
+ if (obj[nsa[0]].constructor === Object && nsa.length > 1) {
44
+ return nameSpace(nsa.splice(1), obj[nsa[0]]);
68
45
  }
46
+ return obj[nsa[0]];
69
47
  }
70
48
  export function parse(what, parseThis) {
71
49
  var args = Array.from(arguments);
72
- if (!args.length) {
73
- console.error('no arguments give to parse');
74
- return;
75
- }
76
- if (args.length === 1) {
77
- return args[1];
78
- }
79
- else if (args.length > 2) {
50
+ if (args.length > 2) {
80
51
  while (args.length > 1) {
81
52
  args[0] = parse(args[0], args[1]);
82
53
  args.splice(1, 1);
83
54
  }
84
55
  return args[0];
85
56
  }
86
- // implicit else: exactly 2 arguments
87
57
  if (typeof what === 'string') {
88
- var vars = what.match(/\{[^\{\}]*\}/g);
89
- if (!!vars) {
90
- vars
91
- .forEach(function (pPropname) {
92
- var propname = pPropname.substr(1, pPropname.length - 2), value = nameSpace(propname, parseThis);
93
- if (typeof value !== 'undefined') {
94
- what = what.replace(pPropname, value);
95
- }
96
- });
97
- }
58
+ what.match(/\{[^\{\}]*\}/g)?.forEach(function (pPropname) {
59
+ var propname = pPropname.substring(1, pPropname.length - 1), value = nameSpace(propname, parseThis);
60
+ //console.log(propname, value);
61
+ if (typeof value !== 'undefined') {
62
+ what = what.replace(pPropname, value);
63
+ }
64
+ });
98
65
  }
99
- else if (isObject(what)) {
66
+ else if (isNativeObject(what)) {
100
67
  switch (what.constructor) {
101
68
  case Object:
102
- Object
103
- .keys(what)
104
- .forEach(function (pKey) {
69
+ Object.keys(what).forEach(function (pKey) {
105
70
  if (what.hasOwnProperty(pKey)) {
106
71
  what[pKey] = parse(what[pKey], parseThis);
107
72
  }
108
73
  });
109
74
  break;
110
75
  case Array:
111
- what
112
- .forEach(function (pValue, pKey, original) {
76
+ what.forEach(function (pValue, pKey, original) {
113
77
  original[pKey] = parse(what[pKey], parseThis);
114
78
  });
115
79
  break;
@@ -117,11 +81,24 @@ export function parse(what, parseThis) {
117
81
  }
118
82
  return what;
119
83
  }
120
- ;
84
+ export function kebabToPascal(str) {
85
+ return str
86
+ .split('-') // Split by hyphens
87
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize each part
88
+ .join(''); // Join without spaces
89
+ }
90
+ export function debounce(func, milliseconds) {
91
+ let timeout;
92
+ return () => {
93
+ clearTimeout(timeout);
94
+ timeout = setTimeout(function () {
95
+ func(...arguments);
96
+ }, milliseconds);
97
+ };
98
+ }
121
99
  export function htmlToElements(html) {
122
100
  let template = document.createElement('template');
123
- html = html
124
- .replace(/<([A-Za-z0-9\-]*)([^>\/]*)(\/>)/gi, "<$1$2></$1>"); // replace XHTML closing tags by full closing tags
101
+ html = html.replace(/<([A-Za-z0-9\-]*)([^>\/]*)(\/>)/gi, '<$1$2></$1>'); // replace XHTML closing tags by full closing tags
125
102
  template.innerHTML = html;
126
103
  template.content.normalize();
127
104
  return Array.from(template.content.childNodes);
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/public/index.html CHANGED
@@ -12,49 +12,47 @@
12
12
  <div class="col-8 col-content">
13
13
  <div class="tsd-page-title">
14
14
  <h2>Micro Components</h2></div>
15
- <div class="tsd-panel tsd-typography">
15
+ <div class="tsd-panel tsd-typography"><p><img src="./MicroComponents.svg" alt="logo"></p>
16
+
16
17
  <a href="#micro-components" id="micro-components" style="color: inherit; text-decoration: none;">
17
18
  <h2>MICRO COMPONENTS</h2>
18
19
  </a>
19
- <p><img src="https://gitlab.com/twoBirds/microcomponents/-/raw/main/MicroComponents.svg" alt="Micro Components Logo"></p>
20
20
  <p><strong>This code aims at improving Javascript modularity and encapsulation</strong>.</p>
21
21
  <p>Using micro components enforces <strong>DRY, KISS and SOLID</strong> principles in Javascript programming.</p>
22
22
 
23
+ <a href="#think-building-blocks" id="think-building-blocks" style="color: inherit; text-decoration: none;">
24
+ <h2>Think <strong>Building Blocks</strong></h2>
25
+ </a>
26
+ <p>When coding with this system, you create classes that extend either the <strong><a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/MC.md?ref_type=heads#mc-class-extends-mcbase">MC</a></strong> or <strong><a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/MC.md?ref_type=heads#dc-class-extends-mcbase">DC</a></strong> superclasses provided here. These classes provide the structure you need to build your wonderland.</p>
27
+ <p>In an almost literal sense they work like childrens building blocks, where a chest full of unassuming parts lets you compose whatever functionality lies in your imagination.</p>
28
+ <p>This systems <strong>modular</strong> approach gives you full control over your software, without the need to rely on other frameworks. On the other hand, its <strong>minimalistic</strong> stance enables you to use the resulting functionality in any other framework, and makes the <strong>learning curve neglectable</strong>.</p>
29
+
23
30
  <a href="#status" id="status" style="color: inherit; text-decoration: none;">
24
31
  <h2>Status</h2>
25
32
  </a>
26
33
  <p><strong>WIP</strong>. Should be done soon. In <a href="http://twobirds.gitlab.io/microcomponents/test.html">manual testing</a>, also working a lot on the documentation.</p>
27
34
 
28
- <a href="#skippable-disclaimer" id="skippable-disclaimer" style="color: inherit; text-decoration: none;">
29
- <h2>Skippable Disclaimer</h2>
30
- </a>
31
- <p>I decided to extract this functionality from the <a href="https://www.npmjs.com/package/twobirds-core">twoBirds framework</a>, because it is a useful tool in itself and it is framework agnostic. It relies solely on the standard DOM and native javascript or typescript.</p>
32
- <p>Later this will be backported into twoBirds as a dependency, and twoBirds will become completely modularized on the base of MCs.</p>
33
- <p>This is a massive undertaking. MCs are just the foundation of what I do. <strong>I am about to dump</strong> <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/magic.md?ref_type=heads#things-i-already-did-with-this-in-my-own-framework-twobirds-or-in-apps-that-i-developed-with-it">20+ years of javascript programming</a> <strong>into open source libraries</strong>, so feel free to <a href="https://www.gofundme.com/f/nachhaltige-programmierung">fund this</a>. The better this is funded, the faster it will be done. Given enough resources, I will start a crowdfunded company that will develop a new open source ecosystem for javascript/typescript programming. By <strong>&quot;Open Source&quot;</strong> I mean <strong>really free and open</strong>, as <strong>you get all my inner source code with it</strong>. Once you understand the Micro Component principle, you are back in command of your software, no matter what MC functionality you import in your system. Since <strong>Micro Components</strong> are encapsuled, off-shoring and near-shoring is no problem, and reusability is guaranteed. Your external coders do not need to access your code repository or your toolchain. They only need to understand MCs.</p>
34
-
35
35
  <a href="#general" id="general" style="color: inherit; text-decoration: none;">
36
36
  <h2>General</h2>
37
37
  </a>
38
- <p><strong>This is a low-level OOP approach to Javascript programming.</strong></p>
39
- <p>It aims at proving that strict OOP is a valid alternative to other frameworks functional approaches.</p>
40
- <p>You can use it in vanilla JS or Typescript coding environments. It has been used to create very complex single page applications.</p>
41
- <p>Also you can use it in any other framework to enhance it with missing functionality.</p>
42
- <p>This functionality is <strong>portable</strong>, so you can <strong>reuse your MCs</strong> - e.g. originally written in the context of an <strong>Angular</strong> project - in your next <strong>react</strong> project right away.</p>
43
- <p>In its core it consists of a two classes named <strong>MC</strong> and <strong>DC</strong>. Your class code extends from one of these classes.</p>
38
+ <ul>
39
+ <li><strong>This is a low-level OOP approach to Javascript programming.</strong> It aims at proving that strict OOP is a valid alternative to other frameworks functional approaches.</li>
40
+ <li>You can use it in vanilla JS or Typescript coding environments.</li>
41
+ </ul>
44
42
  <p>This repository exports 5 independent functionalities:</p>
45
43
  <ol>
46
- <li><strong><a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/MicroComponents.md?ref_type=heads">Micro Components</a></strong> contains the <strong>MC</strong> and <strong>DC</strong> classes you can use as super classes.</li>
47
- <li><strong>Custom Elements</strong> lets you define and retrieve your own custom elements based on your DC instance code. Uses and re-exports (1).</li>
48
- <li><strong>Convenience Observables</strong> adds observability and run time type safety to object properties.</li>
49
- <li><strong>Form Values</strong> gives you 2-way binding between a HTML form and an observable.</li>
50
- <li>(tbd) <strong>Convenience Selectors</strong> provide jQuery like selectors for both the DOM and micro components.</li>
44
+ <li><strong><a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/MC.md?ref_type=heads">Micro Components</a></strong> contains the <strong>MC</strong> and <strong>DC</strong> classes you can use as super classes.</li>
45
+ <li><strong><a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/elements.md?ref_type=heads">Elements</a></strong> lets you define and use your own native web components. Uses (1).</li>
46
+ <li>(wip) <strong>Observables</strong> add <strong>observability</strong> and <strong>run time type safety</strong> to object properties. Also they provide <strong>1-way binding</strong> to placeholders in your template HTML.</li>
47
+ <li>(wip) <strong>FormValues</strong> gives you <strong>2-way binding</strong> between a HTML form and an observable object. Uses (3).</li>
48
+ <li>(wip) <strong>Selectors</strong> provide chainable jQuery like selectors for both the DOM and micro components.</li>
51
49
  </ol>
52
50
  <p>Also there is a bundle file that contains all of the above.</p>
53
51
  <p>Check the <a href="https://twobirds.gitlab.io/microcomponents/modules.html">typedoc API reference</a> if you want to drill into the source code.</p>
54
52
  <p>To see what can be done, go to <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/magic.md?ref_type=heads">additional concepts</a> which shows what it already has been used for.</p>
55
53
 
56
- <a href="#simple-usage" id="simple-usage" style="color: inherit; text-decoration: none;">
57
- <h2>Simple Usage:</h2>
54
+ <a href="#simple-usage-example" id="simple-usage-example" style="color: inherit; text-decoration: none;">
55
+ <h2>Simple Usage Example</h2>
58
56
  </a>
59
57
  <p><strong>Micro Components</strong> can be added to to a DOM element like this:</p>
60
58
  <p>before:</p>
@@ -66,8 +64,29 @@
66
64
  <p>after:</p>
67
65
  <pre><code class="language-HTML"><span class="hl-0">&lt;</span><span class="hl-1">div</span><span class="hl-4"> </span><span class="hl-10">_mc</span><span class="hl-0">&gt;&lt;/</span><span class="hl-1">div</span><span class="hl-0">&gt;</span>
68
66
  </code></pre>
69
- <p>_mc indicates that this HTML element contains at least one micro component. This is needed for the selectors.</p>
70
- <p>The _mc attribute and properties are the only interference with the DOM, so every other system should be happy to work with this.</p>
67
+ <p>The <code>_mc</code> <strong>attribute</strong> indicates that this <strong>HTML element contains at least one micro component</strong>. This is needed for the selectors.</p>
68
+ <p>The <code>_mc</code> <strong>attribute</strong> and <strong>property</strong> are the only interference with the DOM, so any other system should be happy to work with this.</p>
69
+
70
+ <a href="#disclaimer" id="disclaimer" style="color: inherit; text-decoration: none;">
71
+ <h2>Disclaimer</h2>
72
+ </a>
73
+ <p>I decided to extract this functionality from the <a href="https://www.npmjs.com/package/twobirds-core">twoBirds framework</a>, because it is a useful tool in itself and it is framework agnostic. It relies solely on the standard DOM and native javascript or typescript.</p>
74
+ <p>Later this will be backported into twoBirds as a dependency, and twoBirds will become completely modularized on the base of MCs.</p>
75
+ <p><strong>This is a massive undertaking.</strong> MCs are just the foundation of what I do. I am about to dump <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/main/assets/documentation/magic.md?ref_type=heads#things-i-already-did-with-this-in-my-own-framework-twobirds-or-in-apps-that-i-developed-with-it">20+ years of javascript programming</a> into open source libraries, so feel free to <a href="https://www.gofundme.com/f/nachhaltige-programmierung">fund this</a>. The better this is funded, the faster it will be done. Given enough resources, I will start a crowdfunded company that will develop a new open source ecosystem for javascript/typescript programming. By <strong>&quot;Open Source&quot;</strong> I mean <strong>really free and open</strong>, as <strong>you get all my inner source code with it</strong>. Once you understand the Micro Component principle, you are back in command of your software, no matter what MC functionality you import in your system.</p>
76
+ <p>Since <strong>Micro Components</strong> are encapsuled, off-shoring and near-shoring is no problem, and reusability is guaranteed. Your external coders do not need to access your code repository or your toolchain. They only need to understand MCs.</p>
77
+
78
+ <a href="#distinct-differences-to-other-frameworks" id="distinct-differences-to-other-frameworks" style="color: inherit; text-decoration: none;">
79
+ <h2>Distinct differences to other frameworks</h2>
80
+ </a>
81
+ <p>There are a few potentially unique aspects of this micro components system that might differentiate it from other frameworks:</p>
82
+ <ul>
83
+ <li><strong>Pure OOP Approach</strong>: The system explicitly positions itself as a strict object-oriented alternative to the functional approaches that dominate many modern frameworks.</li>
84
+ <li><strong>Minimal Interference</strong>: The system has minimal DOM interference (only adding _mc attribute and property). This makes it unusually compatible with other frameworks or libraries.</li>
85
+ <li><strong>Hierarchical Component Traversal</strong>: The built-in parent/child/ancestor/descendant traversal methods provide a clean way to navigate component relationships.</li>
86
+ <li><strong>Direct DOM Integration</strong>: Unlike virtual DOM-based frameworks, this approach works directly with the actual DOM while still providing component encapsulation.</li>
87
+ <li><strong>Outsourcing Potential</strong>: Your external coders do not need to access your code repository or your toolchain.</li>
88
+ </ul>
89
+ <p>The strongest argument might be for developers who prefer OOP, want minimal framework lock-in, and need a lightweight solution that works well with existing code or other libraries.</p>
71
90
 
72
91
  <a href="#contact" id="contact" style="color: inherit; text-decoration: none;">
73
92
  <h2>Contact</h2>
@@ -96,16 +115,12 @@
96
115
  <div class="tsd-accordion-details">
97
116
  <ul>
98
117
  <li class="current selected"><a href="modules.html">Micro <wbr/>Components</a>
99
- <ul></ul></li></ul></div></details></nav>
100
- <nav class="tsd-navigation secondary menu-sticky">
101
118
  <ul>
102
- <li class="tsd-kind-class"><a href="classes/DC.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-128-path"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)" id="icon-128-text"></path></svg>DC</a></li>
103
- <li class="tsd-kind-class"><a href="classes/MC.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-128-path"></use><use href="#icon-128-text"></use></svg>MC</a></li>
104
- <li class="tsd-kind-class"><a href="classes/McBase.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-128-path"></use><use href="#icon-128-text"></use></svg>Mc<wbr/>Base</a></li>
105
- <li class="tsd-kind-class"><a href="classes/McEvent.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-128-path"></use><use href="#icon-128-text"></use></svg>Mc<wbr/>Event</a></li>
106
- <li class="tsd-kind-interface"><a href="interfaces/HTMLMcElement.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-256-path"></rect><path d="M9.51 16V15.016H11.298V8.224H9.51V7.24H14.19V8.224H12.402V15.016H14.19V16H9.51Z" fill="var(--color-text)" id="icon-256-text"></path></svg>HTMLMc<wbr/>Element</a></li>
107
- <li class="tsd-kind-function"><a href="functions/addListener.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>add<wbr/>Listener</a></li>
108
- <li class="tsd-kind-function"><a href="functions/removeListener.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>remove<wbr/>Listener</a></li></ul></nav></div></div>
119
+ <li class="tsd-kind-module"><a href="modules/MC.html">MC</a></li>
120
+ <li class="tsd-kind-module"><a href="modules/elements.html">elements</a></li>
121
+ <li class="tsd-kind-module"><a href="modules/formValues.html">form<wbr/>Values</a></li>
122
+ <li class="tsd-kind-module"><a href="modules/observables.html">observables</a></li>
123
+ <li class="tsd-kind-module"><a href="modules/selectors.html">selectors</a></li></ul></li></ul></div></details></nav></div></div>
109
124
  <div class="container tsd-generator">
110
125
  <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
111
126
  <div class="overlay"></div><script src="assets/main.js"></script></body></html>