@twobirds/microcomponents 0.0.48 → 0.0.51

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 (130) hide show
  1. package/assets/Grandparent.css +13 -0
  2. package/assets/documentation/MC.md +380 -166
  3. package/assets/test.html +5 -1
  4. package/dist/MC.d.ts +1 -0
  5. package/dist/MC.d.ts.map +1 -1
  6. package/dist/MC.min.js +44 -0
  7. package/dist/MC.ts +65 -0
  8. package/dist/elements.min.js +1 -1
  9. package/dist/elements.ts +10 -10
  10. package/dist/formValues.d.ts +3 -2
  11. package/dist/formValues.d.ts.map +1 -1
  12. package/dist/formValues.ts +205 -203
  13. package/dist/formvValues.min.js +1 -1
  14. package/dist/helpers.d.ts +1 -0
  15. package/dist/helpers.d.ts.map +1 -1
  16. package/dist/helpers.ts +9 -0
  17. package/dist/microcomponents.min.js +1 -1
  18. package/dist/observables.d.ts +1 -1
  19. package/dist/observables.d.ts.map +1 -1
  20. package/dist/observables.min.js +1 -1
  21. package/dist/observables.ts +64 -31
  22. package/dist/selectors.min.js +1 -1
  23. package/dist/test.ts +8 -5
  24. package/package.json +1 -1
  25. package/public/assets/search.js +1 -1
  26. package/public/classes/MC.DC.html +13 -13
  27. package/public/classes/MC.MC.html +7 -7
  28. package/public/classes/MC.McBase.html +4 -4
  29. package/public/classes/MC.McEvent.html +13 -13
  30. package/public/classes/formValues.FormValues.html +86 -0
  31. package/public/functions/MC.addListener.html +2 -1
  32. package/public/functions/{formValues.formValues.html → MC.autoload.html} +18 -17
  33. package/public/functions/MC.removeListener.html +2 -1
  34. package/public/functions/elements.defineCE.html +1 -1
  35. package/public/functions/elements.getCE.html +1 -1
  36. package/public/functions/observables.observe.html +3 -3
  37. package/public/functions/selectors._d.html +1 -1
  38. package/public/functions/selectors._t.html +1 -1
  39. package/public/interfaces/MC.HTMLMcElement.html +2 -2
  40. package/public/interfaces/selectors.DSelector.html +55 -55
  41. package/public/interfaces/selectors.TSelector.html +37 -37
  42. package/public/modules/MC.html +3 -1
  43. package/public/modules/elements.html +1 -1
  44. package/public/modules/formValues.html +4 -4
  45. package/public/modules/observables.html +1 -1
  46. package/public/modules/selectors.html +1 -1
  47. package/public/types/observables.Observable.html +1 -1
  48. package/public/types/selectors.selection.html +1 -1
  49. package/public/types/selectors.singleSelector.html +1 -1
  50. package/src/MC.ts +65 -0
  51. package/src/elements.ts +10 -10
  52. package/src/formValues.ts +205 -203
  53. package/src/helpers.ts +9 -0
  54. package/src/observables.ts +64 -31
  55. package/src/test/Child.ts +21 -0
  56. package/src/test/Grandchild.ts +21 -0
  57. package/src/test/Grandparent.css +11 -0
  58. package/src/test/Grandparent.ts +21 -0
  59. package/src/test/Greatgrandchild.ts +42 -0
  60. package/src/test/Parent.ts +21 -0
  61. package/src/test/Testform.css +47 -0
  62. package/src/test/Testform.html +56 -0
  63. package/src/test/Testform.json +27 -0
  64. package/src/test/Testform.ts +159 -0
  65. package/src/test.ts +8 -5
  66. package/webpack.config.js +135 -61
  67. package/public/3d.html +0 -42
  68. package/public/MC.js +0 -271
  69. package/public/MC.js.map +0 -1
  70. package/public/MC.min.js +0 -407
  71. package/public/McEvent.js +0 -71
  72. package/public/McEvent.js.map +0 -1
  73. package/public/MicroComponents.svg +0 -15
  74. package/public/autoloader.js +0 -53
  75. package/public/autoloader.js.map +0 -1
  76. package/public/documentation/MC.md +0 -256
  77. package/public/documentation/ajaxian-1.png +0 -0
  78. package/public/documentation/ajaxian-2.png +0 -0
  79. package/public/documentation/ajaxian-3.png +0 -0
  80. package/public/documentation/comparision.md +0 -0
  81. package/public/documentation/elements.md +0 -276
  82. package/public/documentation/functional_requirements.md +0 -8
  83. package/public/documentation/history.md +0 -436
  84. package/public/documentation/how_tos.md +0 -0
  85. package/public/documentation/introduction.md +0 -0
  86. package/public/documentation/magic.md +0 -29
  87. package/public/documentation/proposal_draft.md +0 -37
  88. package/public/documentation/rnd0023-1.jpg +0 -0
  89. package/public/documentation/rnd0023-2.jpg +0 -0
  90. package/public/documentation/rnd0023-3.jpg +0 -0
  91. package/public/documentation/tB_react.md +0 -207
  92. package/public/documentation/usage.md +0 -142
  93. package/public/documentation/why.md +0 -25
  94. package/public/elements.js +0 -48
  95. package/public/elements.js.map +0 -1
  96. package/public/elements.min.js +0 -1
  97. package/public/fiddle/MicroComponents.svg +0 -15
  98. package/public/fiddle/fiddle.css +0 -0
  99. package/public/fiddle/fiddle.js +0 -0
  100. package/public/fiddle/index.html +0 -0
  101. package/public/formValues.js +0 -196
  102. package/public/formValues.js.map +0 -1
  103. package/public/formvValues.min.js +0 -1
  104. package/public/helpers.js +0 -105
  105. package/public/helpers.js.map +0 -1
  106. package/public/microcomponents.es3.js +0 -303
  107. package/public/microcomponents.es3.js.map +0 -1
  108. package/public/microcomponents.js +0 -9
  109. package/public/microcomponents.js.map +0 -1
  110. package/public/microcomponents.min.js +0 -1
  111. package/public/my-tag.css +0 -19
  112. package/public/observables.js +0 -239
  113. package/public/observables.js.map +0 -1
  114. package/public/observables.min.js +0 -1
  115. package/public/selectors.js +0 -971
  116. package/public/selectors.js.map +0 -1
  117. package/public/selectors.min.js +0 -1
  118. package/public/src/MC.ts +0 -413
  119. package/public/src/McEvent.ts +0 -96
  120. package/public/src/autoloader.ts +0 -98
  121. package/public/src/elements.ts +0 -76
  122. package/public/src/formValues.ts +0 -275
  123. package/public/src/helpers.ts +0 -140
  124. package/public/src/microcomponents.ts +0 -8
  125. package/public/src/observables.ts +0 -372
  126. package/public/src/selectors.ts +0 -1634
  127. package/public/src/test.ts +0 -174
  128. package/public/test.html +0 -23
  129. package/public/test.js +0 -79
  130. package/public/test.js.map +0 -1
@@ -1,174 +0,0 @@
1
- 'use strict';
2
-
3
- import {
4
- LooseObject,
5
- DC,
6
- McEvent,
7
- defineCE,
8
- getCE,
9
- observe,
10
- Observable,
11
- } from './microcomponents.js';
12
-
13
- class Translator extends DC {
14
- #translations: LooseObject = {};
15
-
16
- Language: unknown = 'en';
17
- Translation: unknown = {};
18
-
19
- constructor(
20
- target: HTMLElement | ShadowRoot | DocumentFragment,
21
- translations: LooseObject,
22
- translationTargetObject: HTMLElement
23
- ) {
24
- super(target as HTMLElement);
25
- let that = this; // minifier help
26
-
27
- // state
28
- that.Language = 'en';
29
- that.Translation = {};
30
-
31
- observe(that);
32
-
33
- // setup
34
- that.#translations = translations;
35
-
36
- // state
37
- (that.Language as Observable).observe((lang) => {
38
- if (that.#translations.hasOwnProperty(lang)) {
39
- that.Translation = { lang: that.#translations[lang] }; // set translation
40
- }
41
- });
42
-
43
- (that.Translation as Observable).bind(translationTargetObject);
44
-
45
- that.target.setAttribute('language', 'en');
46
-
47
- (that.Language as Observable).notify();
48
-
49
- delete that._mc; // cleanup, not needed
50
- }
51
-
52
- onAttributeChanged(ev: McEvent) {
53
- if (!ev.data.newValue) return;
54
- switch (ev.data.name) {
55
- case 'language':
56
- this.Language = ev.data.newValue;
57
- break;
58
- }
59
- }
60
- }
61
-
62
- defineCE(
63
- // equivalent to custom element registry .define()
64
- 'my-tag',
65
- class MyTag extends DC {
66
- #template: string = '<button>{lang.click} {counter}</button>';
67
-
68
- #languages = {
69
- en: {
70
- click: 'click me',
71
- },
72
- de: {
73
- click: 'klick mich',
74
- },
75
- };
76
-
77
- Dom: LooseObject = {};
78
-
79
- constructor(target: HTMLElement) {
80
- super(target);
81
-
82
- let that = this; // minifier help
83
-
84
- // render
85
- target.innerHTML = this.#template;
86
-
87
- // add translator
88
- DC.add(
89
- target,
90
- 'translator',
91
- new Translator(target, that.#languages, target)
92
- );
93
-
94
- delete that._mc; // cleanup, not needed
95
- }
96
-
97
- oneInit(ev: McEvent) {
98
- let that = this;
99
-
100
- // state
101
- that.Dom = { counter: 0 };
102
-
103
- // state: convert all props defined so far into observables
104
- observe(that);
105
-
106
- // bind Dom to target
107
- (that.Dom as Observable).bind(that.target);
108
- }
109
-
110
- onClick(ev: McEvent) {
111
- const that = this,
112
- c = that.Dom.counter++;
113
- (ev.data as PointerEvent).stopPropagation();
114
- (that.target as HTMLElement).classList.remove('clicked');
115
- (that.target as HTMLElement).classList.add(
116
- that.Dom.counter > 9 ? 'overClicked' : 'clicked'
117
- );
118
- }
119
- },
120
- ['language']
121
- );
122
-
123
- let MyTag: CustomElementConstructor = getCE('my-tag')!,
124
- fragment = new DocumentFragment();
125
-
126
- /*
127
- stress test
128
- */
129
-
130
- let start = new Date().getTime();
131
-
132
- // create 100 elements
133
- for (let x = 0; x < 1000; x++) {
134
- fragment.append(new MyTag());
135
- }
136
-
137
- let end = new Date().getTime();
138
-
139
- // and put them into the DOM
140
- document.body.appendChild(fragment);
141
-
142
- //document.querySelectorAll('my-tag').forEach((e) => e.remove());
143
-
144
- /*
145
- console test
146
- */
147
-
148
- setTimeout(() => {
149
- // console.clear();
150
-
151
- console.log(
152
- '%c \n\nStress Test:\n\n %cInstancing 1000 web components (3000 classes): %c %s ms.',
153
- 'font-weight: bold; color: black;',
154
- 'font-weight: normal;',
155
- 'font-weight: bold; color: blue;',
156
- end - start
157
- );
158
-
159
- document.body.appendChild(new MyTag());
160
-
161
- let element = document.querySelector('my-tag');
162
-
163
- console.log(
164
- "\n\n%cInspect this tag:%c \n( ...to see the inner structure in the '._mc' property )\n\n %O %c %s",
165
- 'font-weight: bold;',
166
- 'font-weight: normal;',
167
- element,
168
- 'font-weight: bold;',
169
- '\n\nLook up code in the debugger: test.js\n\n'
170
- );
171
-
172
- // will trigger the event on all micro components contained in <my-tag>
173
- DC.trigger(element, 'doSomething');
174
- }, 500);
package/public/test.html DELETED
@@ -1,23 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>Micro Components Manual Test</title>
7
- <link
8
- rel="icon"
9
- type="image/svg+xml"
10
- sizes="any"
11
- href="MicroComponents.svg"
12
- />
13
- <link href="./my-tag.css" rel="stylesheet" />
14
- <script src="./microcomponents.min.js"></script>
15
- <script>
16
- Object.assign(window, microcomponents); // make global
17
- </script>
18
- <script type="module" src="./test.js"></script>
19
- </head>
20
- <body>
21
- Open the debugger, read console, then:<br />
22
- </body>
23
- </html>
package/public/test.js DELETED
@@ -1,79 +0,0 @@
1
- 'use strict';
2
- import { DC, defineCE, getCE, observe, } from './microcomponents.js';
3
- class Translator extends DC {
4
- #translations = {};
5
- Language = 'en';
6
- Translation = {};
7
- constructor(target, translations, translationTargetObject) {
8
- super(target);
9
- let that = this;
10
- that.Language = 'en';
11
- that.Translation = {};
12
- observe(that);
13
- that.#translations = translations;
14
- that.Language.observe((lang) => {
15
- if (that.#translations.hasOwnProperty(lang)) {
16
- that.Translation = { lang: that.#translations[lang] };
17
- }
18
- });
19
- that.Translation.bind(translationTargetObject);
20
- that.target.setAttribute('language', 'en');
21
- that.Language.notify();
22
- delete that._mc;
23
- }
24
- onAttributeChanged(ev) {
25
- if (!ev.data.newValue)
26
- return;
27
- switch (ev.data.name) {
28
- case 'language':
29
- this.Language = ev.data.newValue;
30
- break;
31
- }
32
- }
33
- }
34
- defineCE('my-tag', class MyTag extends DC {
35
- #template = '<button>{lang.click} {counter}</button>';
36
- #languages = {
37
- en: {
38
- click: 'click me',
39
- },
40
- de: {
41
- click: 'klick mich',
42
- },
43
- };
44
- Dom = {};
45
- constructor(target) {
46
- super(target);
47
- let that = this;
48
- target.innerHTML = this.#template;
49
- DC.add(target, 'translator', new Translator(target, that.#languages, target));
50
- delete that._mc;
51
- }
52
- oneInit(ev) {
53
- let that = this;
54
- that.Dom = { counter: 0 };
55
- observe(that);
56
- that.Dom.bind(that.target);
57
- }
58
- onClick(ev) {
59
- const that = this, c = that.Dom.counter++;
60
- ev.data.stopPropagation();
61
- that.target.classList.remove('clicked');
62
- that.target.classList.add(that.Dom.counter > 9 ? 'overClicked' : 'clicked');
63
- }
64
- }, ['language']);
65
- let MyTag = getCE('my-tag'), fragment = new DocumentFragment();
66
- let start = new Date().getTime();
67
- for (let x = 0; x < 1000; x++) {
68
- fragment.append(new MyTag());
69
- }
70
- let end = new Date().getTime();
71
- document.body.appendChild(fragment);
72
- setTimeout(() => {
73
- console.log('%c \n\nStress Test:\n\n %cInstancing 1000 web components (3000 classes): %c %s ms.', 'font-weight: bold; color: black;', 'font-weight: normal;', 'font-weight: bold; color: blue;', end - start);
74
- document.body.appendChild(new MyTag());
75
- let element = document.querySelector('my-tag');
76
- console.log("\n\n%cInspect this tag:%c \n( ...to see the inner structure in the '._mc' property )\n\n %O %c %s", 'font-weight: bold;', 'font-weight: normal;', element, 'font-weight: bold;', '\n\nLook up code in the debugger: test.js\n\n');
77
- DC.trigger(element, 'doSomething');
78
- }, 500);
79
- //# sourceMappingURL=test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}