@startinblox/core 0.17.21-beta.7 → 0.17.22

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 (258) hide show
  1. package/package.json +2 -2
  2. package/dist/_snowpack/env.js +0 -3
  3. package/dist/_snowpack/pkg/autolinker.js +0 -4281
  4. package/dist/_snowpack/pkg/autolinker.js.map +0 -1
  5. package/dist/_snowpack/pkg/autolinker.js.map.proxy.js +0 -1
  6. package/dist/_snowpack/pkg/common/_baseUnary-217dffb2.js +0 -377
  7. package/dist/_snowpack/pkg/common/_baseUnary-217dffb2.js.map +0 -1
  8. package/dist/_snowpack/pkg/common/_baseUnary-217dffb2.js.map.proxy.js +0 -1
  9. package/dist/_snowpack/pkg/common/_commonjsHelpers-8c19dec8.js +0 -22
  10. package/dist/_snowpack/pkg/common/_commonjsHelpers-8c19dec8.js.map +0 -1
  11. package/dist/_snowpack/pkg/common/_commonjsHelpers-8c19dec8.js.map.proxy.js +0 -1
  12. package/dist/_snowpack/pkg/common/decode-a4c334cf.js +0 -216
  13. package/dist/_snowpack/pkg/common/decode-a4c334cf.js.map +0 -1
  14. package/dist/_snowpack/pkg/common/decode-a4c334cf.js.map.proxy.js +0 -1
  15. package/dist/_snowpack/pkg/common/lit-html-babd44cd.js +0 -1119
  16. package/dist/_snowpack/pkg/common/lit-html-babd44cd.js.map +0 -1
  17. package/dist/_snowpack/pkg/common/lit-html-babd44cd.js.map.proxy.js +0 -1
  18. package/dist/_snowpack/pkg/delta-markdown-for-quill.js +0 -25677
  19. package/dist/_snowpack/pkg/delta-markdown-for-quill.js.map +0 -1
  20. package/dist/_snowpack/pkg/delta-markdown-for-quill.js.map.proxy.js +0 -1
  21. package/dist/_snowpack/pkg/dialog-polyfill.js +0 -859
  22. package/dist/_snowpack/pkg/dialog-polyfill.js.map +0 -1
  23. package/dist/_snowpack/pkg/dialog-polyfill.js.map.proxy.js +0 -1
  24. package/dist/_snowpack/pkg/fusejs.js +0 -1783
  25. package/dist/_snowpack/pkg/fusejs.js.map +0 -1
  26. package/dist/_snowpack/pkg/fusejs.js.map.proxy.js +0 -1
  27. package/dist/_snowpack/pkg/import-map.json +0 -23
  28. package/dist/_snowpack/pkg/jsonld-context-parser.js +0 -804
  29. package/dist/_snowpack/pkg/jsonld-context-parser.js.map +0 -1
  30. package/dist/_snowpack/pkg/jsonld-context-parser.js.map.proxy.js +0 -1
  31. package/dist/_snowpack/pkg/leaflet/dist/leaflet.css +0 -640
  32. package/dist/_snowpack/pkg/leaflet/dist/leaflet.css.proxy.js +0 -10
  33. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css +0 -60
  34. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css.proxy.js +0 -10
  35. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css +0 -14
  36. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js +0 -10
  37. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js +0 -40
  38. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map +0 -1
  39. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map.proxy.js +0 -1
  40. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js +0 -46
  41. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map +0 -1
  42. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map.proxy.js +0 -1
  43. package/dist/_snowpack/pkg/lit-html/directives/until.js +0 -88
  44. package/dist/_snowpack/pkg/lit-html/directives/until.js.map +0 -1
  45. package/dist/_snowpack/pkg/lit-html/directives/until.js.map.proxy.js +0 -1
  46. package/dist/_snowpack/pkg/lit-html.js +0 -92
  47. package/dist/_snowpack/pkg/lit-html.js.map +0 -1
  48. package/dist/_snowpack/pkg/lit-html.js.map.proxy.js +0 -1
  49. package/dist/_snowpack/pkg/markdown-it.js +0 -11860
  50. package/dist/_snowpack/pkg/markdown-it.js.map +0 -1
  51. package/dist/_snowpack/pkg/markdown-it.js.map.proxy.js +0 -1
  52. package/dist/_snowpack/pkg/quill/dist/quill.snow.css +0 -945
  53. package/dist/_snowpack/pkg/quill/dist/quill.snow.css.proxy.js +0 -10
  54. package/dist/_snowpack/pkg/quill-delta-to-markdown.js +0 -1029
  55. package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map +0 -1
  56. package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map.proxy.js +0 -1
  57. package/dist/_snowpack/pkg/quill.js +0 -13382
  58. package/dist/_snowpack/pkg/quill.js.map +0 -1
  59. package/dist/_snowpack/pkg/quill.js.map.proxy.js +0 -1
  60. package/dist/_snowpack/pkg/slim-select.js +0 -4
  61. package/dist/_snowpack/pkg/slim-select.js.map +0 -1
  62. package/dist/_snowpack/pkg/slim-select.js.map.proxy.js +0 -1
  63. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css +0 -1164
  64. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css.proxy.js +0 -10
  65. package/dist/_snowpack/pkg/tui-calendar.js +0 -42285
  66. package/dist/_snowpack/pkg/tui-calendar.js.map +0 -1
  67. package/dist/_snowpack/pkg/tui-calendar.js.map.proxy.js +0 -1
  68. package/dist/components/solid-ac-checker.js +0 -51
  69. package/dist/components/solid-ac-checker.js.map +0 -1
  70. package/dist/components/solid-calendar.js +0 -87
  71. package/dist/components/solid-calendar.js.map +0 -1
  72. package/dist/components/solid-delete.js +0 -111
  73. package/dist/components/solid-delete.js.map +0 -1
  74. package/dist/components/solid-display.js +0 -194
  75. package/dist/components/solid-display.js.map +0 -1
  76. package/dist/components/solid-form-search.js +0 -226
  77. package/dist/components/solid-form-search.js.map +0 -1
  78. package/dist/components/solid-form.js +0 -354
  79. package/dist/components/solid-form.js.map +0 -1
  80. package/dist/components/solid-lang.js +0 -46
  81. package/dist/components/solid-lang.js.map +0 -1
  82. package/dist/components/solid-map.js +0 -242
  83. package/dist/components/solid-map.js.map +0 -1
  84. package/dist/components/solid-table.js +0 -263
  85. package/dist/components/solid-table.js.map +0 -1
  86. package/dist/components/solid-widget.js +0 -94
  87. package/dist/components/solid-widget.js.map +0 -1
  88. package/dist/import.css +0 -4
  89. package/dist/index.js +0 -43
  90. package/dist/index.js.map +0 -1
  91. package/dist/libs/Component.js +0 -19
  92. package/dist/libs/Component.js.map +0 -1
  93. package/dist/libs/ComponentFactory.js +0 -196
  94. package/dist/libs/ComponentFactory.js.map +0 -1
  95. package/dist/libs/Compositor.js +0 -103
  96. package/dist/libs/Compositor.js.map +0 -1
  97. package/dist/libs/Sib.js +0 -58
  98. package/dist/libs/Sib.js.map +0 -1
  99. package/dist/libs/helpers.js +0 -219
  100. package/dist/libs/helpers.js.map +0 -1
  101. package/dist/libs/interfaces.js +0 -6
  102. package/dist/libs/interfaces.js.map +0 -1
  103. package/dist/libs/lit-helpers.js +0 -169
  104. package/dist/libs/lit-helpers.js.map +0 -1
  105. package/dist/libs/polyfills.js +0 -40
  106. package/dist/libs/polyfills.js.map +0 -1
  107. package/dist/libs/store/store.js +0 -862
  108. package/dist/libs/store/store.js.map +0 -1
  109. package/dist/locales/en.json +0 -10
  110. package/dist/locales/en.json.proxy.js +0 -2
  111. package/dist/locales/fr.json +0 -10
  112. package/dist/locales/fr.json.proxy.js +0 -2
  113. package/dist/mixins/attributeBinderMixin.js +0 -124
  114. package/dist/mixins/attributeBinderMixin.js.map +0 -1
  115. package/dist/mixins/contextMixin.js +0 -28
  116. package/dist/mixins/contextMixin.js.map +0 -1
  117. package/dist/mixins/counterMixin.js +0 -75
  118. package/dist/mixins/counterMixin.js.map +0 -1
  119. package/dist/mixins/federationMixin.js +0 -63
  120. package/dist/mixins/federationMixin.js.map +0 -1
  121. package/dist/mixins/filterMixin.js +0 -195
  122. package/dist/mixins/filterMixin.js.map +0 -1
  123. package/dist/mixins/grouperMixin.js +0 -80
  124. package/dist/mixins/grouperMixin.js.map +0 -1
  125. package/dist/mixins/highlighterMixin.js +0 -42
  126. package/dist/mixins/highlighterMixin.js.map +0 -1
  127. package/dist/mixins/interfaces.js +0 -8
  128. package/dist/mixins/interfaces.js.map +0 -1
  129. package/dist/mixins/listMixin.js +0 -136
  130. package/dist/mixins/listMixin.js.map +0 -1
  131. package/dist/mixins/nextMixin.js +0 -26
  132. package/dist/mixins/nextMixin.js.map +0 -1
  133. package/dist/mixins/paginateMixin.js +0 -110
  134. package/dist/mixins/paginateMixin.js.map +0 -1
  135. package/dist/mixins/requiredMixin.js +0 -34
  136. package/dist/mixins/requiredMixin.js.map +0 -1
  137. package/dist/mixins/sorterMixin.js +0 -149
  138. package/dist/mixins/sorterMixin.js.map +0 -1
  139. package/dist/mixins/storeMixin.js +0 -102
  140. package/dist/mixins/storeMixin.js.map +0 -1
  141. package/dist/mixins/translationMixin.js +0 -68
  142. package/dist/mixins/translationMixin.js.map +0 -1
  143. package/dist/mixins/validationMixin.js +0 -113
  144. package/dist/mixins/validationMixin.js.map +0 -1
  145. package/dist/mixins/widgetMixin.js +0 -447
  146. package/dist/mixins/widgetMixin.js.map +0 -1
  147. package/dist/new-widgets/attributeMixins/actionMixin.js +0 -14
  148. package/dist/new-widgets/attributeMixins/actionMixin.js.map +0 -1
  149. package/dist/new-widgets/attributeMixins/blankMixin.js +0 -10
  150. package/dist/new-widgets/attributeMixins/blankMixin.js.map +0 -1
  151. package/dist/new-widgets/attributeMixins/booleanMixin.js +0 -10
  152. package/dist/new-widgets/attributeMixins/booleanMixin.js.map +0 -1
  153. package/dist/new-widgets/attributeMixins/index.js +0 -20
  154. package/dist/new-widgets/attributeMixins/index.js.map +0 -1
  155. package/dist/new-widgets/attributeMixins/mailtoMixin.js +0 -10
  156. package/dist/new-widgets/attributeMixins/mailtoMixin.js.map +0 -1
  157. package/dist/new-widgets/attributeMixins/multipleMixin.js +0 -28
  158. package/dist/new-widgets/attributeMixins/multipleMixin.js.map +0 -1
  159. package/dist/new-widgets/attributeMixins/numberMixin.js +0 -10
  160. package/dist/new-widgets/attributeMixins/numberMixin.js.map +0 -1
  161. package/dist/new-widgets/attributeMixins/placeholderMixin.js +0 -19
  162. package/dist/new-widgets/attributeMixins/placeholderMixin.js.map +0 -1
  163. package/dist/new-widgets/attributeMixins/telMixin.js +0 -10
  164. package/dist/new-widgets/attributeMixins/telMixin.js.map +0 -1
  165. package/dist/new-widgets/baseWidgetMixin.js +0 -122
  166. package/dist/new-widgets/baseWidgetMixin.js.map +0 -1
  167. package/dist/new-widgets/callbackMixins/autocompletionMixin.js +0 -104
  168. package/dist/new-widgets/callbackMixins/autocompletionMixin.js.map +0 -1
  169. package/dist/new-widgets/callbackMixins/index.js +0 -8
  170. package/dist/new-widgets/callbackMixins/index.js.map +0 -1
  171. package/dist/new-widgets/callbackMixins/richtextMixin.js +0 -42
  172. package/dist/new-widgets/callbackMixins/richtextMixin.js.map +0 -1
  173. package/dist/new-widgets/callbackMixins/slimselect.css +0 -2
  174. package/dist/new-widgets/callbackMixins/slimselect.css.proxy.js +0 -10
  175. package/dist/new-widgets/new-widget-factory.js +0 -96
  176. package/dist/new-widgets/new-widget-factory.js.map +0 -1
  177. package/dist/new-widgets/templateAdditionMixins/addableMixin.js +0 -41
  178. package/dist/new-widgets/templateAdditionMixins/addableMixin.js.map +0 -1
  179. package/dist/new-widgets/templateAdditionMixins/index.js +0 -14
  180. package/dist/new-widgets/templateAdditionMixins/index.js.map +0 -1
  181. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js +0 -29
  182. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js.map +0 -1
  183. package/dist/new-widgets/templateAdditionMixins/labelMixin.js +0 -31
  184. package/dist/new-widgets/templateAdditionMixins/labelMixin.js.map +0 -1
  185. package/dist/new-widgets/templates/defaultTemplatesDirectory.js +0 -36
  186. package/dist/new-widgets/templates/defaultTemplatesDirectory.js.map +0 -1
  187. package/dist/new-widgets/templates/displayTemplatesDirectory.js +0 -90
  188. package/dist/new-widgets/templates/displayTemplatesDirectory.js.map +0 -1
  189. package/dist/new-widgets/templates/formTemplatesDirectory.js +0 -397
  190. package/dist/new-widgets/templates/formTemplatesDirectory.js.map +0 -1
  191. package/dist/new-widgets/templates/groupTemplatesDirectory.js +0 -21
  192. package/dist/new-widgets/templates/groupTemplatesDirectory.js.map +0 -1
  193. package/dist/new-widgets/templates/index.js +0 -7
  194. package/dist/new-widgets/templates/index.js.map +0 -1
  195. package/dist/new-widgets/templates/setTemplatesDirectory.js +0 -49
  196. package/dist/new-widgets/templates/setTemplatesDirectory.js.map +0 -1
  197. package/dist/new-widgets/templatesDependencies/altMixin.js +0 -13
  198. package/dist/new-widgets/templatesDependencies/altMixin.js.map +0 -1
  199. package/dist/new-widgets/templatesDependencies/editableMixin.js +0 -77
  200. package/dist/new-widgets/templatesDependencies/editableMixin.js.map +0 -1
  201. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js +0 -38
  202. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js.map +0 -1
  203. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js +0 -14
  204. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js.map +0 -1
  205. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js +0 -51
  206. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js.map +0 -1
  207. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js +0 -66
  208. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js.map +0 -1
  209. package/dist/new-widgets/templatesDependencies/formFileMixin.js +0 -81
  210. package/dist/new-widgets/templatesDependencies/formFileMixin.js.map +0 -1
  211. package/dist/new-widgets/templatesDependencies/formLengthMixin.js +0 -19
  212. package/dist/new-widgets/templatesDependencies/formLengthMixin.js.map +0 -1
  213. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js +0 -19
  214. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js.map +0 -1
  215. package/dist/new-widgets/templatesDependencies/formMixin.js +0 -66
  216. package/dist/new-widgets/templatesDependencies/formMixin.js.map +0 -1
  217. package/dist/new-widgets/templatesDependencies/formNumberMixin.js +0 -14
  218. package/dist/new-widgets/templatesDependencies/formNumberMixin.js.map +0 -1
  219. package/dist/new-widgets/templatesDependencies/formRadioMixin.js +0 -16
  220. package/dist/new-widgets/templatesDependencies/formRadioMixin.js.map +0 -1
  221. package/dist/new-widgets/templatesDependencies/formStepMixin.js +0 -13
  222. package/dist/new-widgets/templatesDependencies/formStepMixin.js.map +0 -1
  223. package/dist/new-widgets/templatesDependencies/linkTextMixin.js +0 -14
  224. package/dist/new-widgets/templatesDependencies/linkTextMixin.js.map +0 -1
  225. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js +0 -125
  226. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js.map +0 -1
  227. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js +0 -74
  228. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js.map +0 -1
  229. package/dist/new-widgets/templatesDependencies/patternMixin.js +0 -19
  230. package/dist/new-widgets/templatesDependencies/patternMixin.js.map +0 -1
  231. package/dist/new-widgets/templatesDependencies/rangeMixin.js +0 -110
  232. package/dist/new-widgets/templatesDependencies/rangeMixin.js.map +0 -1
  233. package/dist/new-widgets/templatesDependencies/setMixin.js +0 -12
  234. package/dist/new-widgets/templatesDependencies/setMixin.js.map +0 -1
  235. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js +0 -12
  236. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js.map +0 -1
  237. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js +0 -18
  238. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js.map +0 -1
  239. package/dist/new-widgets/valueTransformationMixins/dateMixin.js +0 -35
  240. package/dist/new-widgets/valueTransformationMixins/dateMixin.js.map +0 -1
  241. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js +0 -16
  242. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js.map +0 -1
  243. package/dist/new-widgets/valueTransformationMixins/index.js +0 -16
  244. package/dist/new-widgets/valueTransformationMixins/index.js.map +0 -1
  245. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js +0 -25
  246. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js.map +0 -1
  247. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js +0 -17
  248. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js.map +0 -1
  249. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js +0 -27
  250. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js.map +0 -1
  251. package/dist/solid-template-element.js +0 -164
  252. package/dist/solid-template-element.js.map +0 -1
  253. package/dist/style/default-theme.css +0 -24
  254. package/dist/style/default-theme.css.proxy.js +0 -10
  255. package/dist/widgets/baseWidget.js +0 -332
  256. package/dist/widgets/baseWidget.js.map +0 -1
  257. package/dist/widgets/widget-factory.js +0 -24
  258. package/dist/widgets/widget-factory.js.map +0 -1
@@ -1,94 +0,0 @@
1
- function _templateObject() {
2
- const data = _taggedTemplateLiteral(["", ""]);
3
-
4
- _templateObject = function () {
5
- return data;
6
- };
7
-
8
- return data;
9
- }
10
-
11
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
12
-
13
- import { Sib } from '../libs/Sib.js';
14
- import { StoreMixin } from '../mixins/storeMixin.js';
15
- import { BaseWidgetMixin } from '../new-widgets/baseWidgetMixin.js';
16
- import { FormMixin } from '../new-widgets/templatesDependencies/formMixin.js';
17
- import { ActionMixin } from '../new-widgets/attributeMixins/actionMixin.js';
18
- import { evalTemplateString } from '../libs/helpers.js';
19
- import { html, render } from '../_snowpack/pkg/lit-html.js';
20
- import { unsafeHTML } from '../_snowpack/pkg/lit-html/directives/unsafe-html.js';
21
- export const SolidWidget = {
22
- name: 'solid-widget',
23
- use: [],
24
- attributes: {
25
- name: {
26
- type: String,
27
- default: "",
28
- required: true
29
- }
30
- },
31
-
32
- attached() {
33
- if (!this.name) return;
34
- const template = this.template;
35
- const newWidget = {
36
- name: this.name,
37
- use: [BaseWidgetMixin, StoreMixin, FormMixin, ActionMixin],
38
- attributes: {
39
- label: {
40
- type: String,
41
- default: '',
42
- callback: function (newValue) {
43
- this.addToAttributes(newValue, 'label');
44
- }
45
- }
46
- },
47
-
48
- get template() {
49
- return () => this.evalTemplate(template).then(tpl => html(_templateObject(), unsafeHTML(tpl)));
50
- },
51
-
52
- evalTemplate(template) {
53
- const tpl = evalTemplateString(template, {
54
- name: this.name,
55
- value: this.value || this.resource || '',
56
- src: this.src,
57
- label: this.label
58
- });
59
- return tpl;
60
- },
61
-
62
- async templateToDOM(template) {
63
- render(await template, this.element);
64
- },
65
-
66
- // For form widgets, handle nested solid-form
67
- getValueFromElement(element) {
68
- if (element.tagName === "SOLID-FORM") return element.component.value; // nested solid-form
69
- else if (element.component) return element.component.getValue(); // form widget
70
-
71
- return element.value; // input
72
- },
73
-
74
- updateDOM() {
75
- // override StoreMixin method to launch render when resource fetched
76
- this.planRender();
77
- }
78
-
79
- };
80
- Sib.register(newWidget); // and register component
81
- },
82
-
83
- get template() {
84
- return this.element.querySelector('template:not([data-range])').innerHTML;
85
- },
86
-
87
- get childTemplate() {
88
- const child = this.element.querySelector('template[data-range]');
89
- return child ? child.innerHTML : null;
90
- }
91
-
92
- };
93
- Sib.register(SolidWidget);
94
- //# sourceMappingURL=solid-widget.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["solid-widget.ts"],"names":["Sib","StoreMixin","BaseWidgetMixin","FormMixin","ActionMixin","evalTemplateString","html","render","unsafeHTML","SolidWidget","name","use","attributes","type","String","default","required","attached","template","newWidget","label","callback","newValue","addToAttributes","evalTemplate","then","tpl","value","resource","src","templateToDOM","element","getValueFromElement","tagName","component","getValue","updateDOM","planRender","register","querySelector","innerHTML","childTemplate","child"],"mappings":"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","sourcesContent":["import { Sib } from '../libs/Sib';\nimport { StoreMixin } from '../mixins/storeMixin';\nimport { BaseWidgetMixin } from '../new-widgets/baseWidgetMixin';\nimport { FormMixin } from '../new-widgets/templatesDependencies/formMixin';\nimport { ActionMixin } from '../new-widgets/attributeMixins/actionMixin';\nimport { evalTemplateString } from '../libs/helpers';\nimport { html, render } from 'lit-html';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html';\n\nexport const SolidWidget = {\n name: 'solid-widget',\n use: [],\n attributes: {\n name: {\n type: String,\n default: \"\",\n required: true\n }\n },\n attached(): void {\n if (!this.name) return;\n const template = this.template;\n const newWidget = {\n name: this.name,\n use: [\n BaseWidgetMixin,\n StoreMixin,\n FormMixin,\n ActionMixin\n ],\n attributes: {\n label: {\n type: String,\n default: '',\n callback: function (newValue: string) {\n this.addToAttributes(newValue, 'label');\n }\n },\n },\n get template() {\n return () => this.evalTemplate(template).then((tpl: string) => html`${unsafeHTML(tpl)}`)\n },\n evalTemplate(template: string) {\n const tpl = evalTemplateString(template, {\n name: this.name,\n value: this.value || this.resource || '',\n src: this.src,\n label: this.label,\n });\n return tpl;\n },\n async templateToDOM(template) {\n render(await template, this.element);\n },\n // For form widgets, handle nested solid-form\n getValueFromElement(element: any) {\n if (element.tagName === \"SOLID-FORM\") return element.component.value; // nested solid-form\n else if (element.component) return element.component.getValue(); // form widget\n return element.value; // input\n },\n updateDOM() { // override StoreMixin method to launch render when resource fetched\n this.planRender();\n }\n };\n\n Sib.register(newWidget); // and register component\n },\n get template() {\n return this.element.querySelector('template:not([data-range])').innerHTML;\n },\n get childTemplate(): string | null {\n const child = this.element.querySelector('template[data-range]');\n return child ? child.innerHTML : null;\n }\n};\n\nSib.register(SolidWidget);"]}
package/dist/import.css DELETED
@@ -1,4 +0,0 @@
1
- /* @ import 'slim-select/dist/slimselect.css'; */
2
- @import "./_snowpack/pkg/leaflet/dist/leaflet.css";
3
- @import "./_snowpack/pkg/quill/dist/quill.snow.css";
4
- @import "./_snowpack/pkg/tui-calendar/dist/tui-calendar.css";
package/dist/index.js DELETED
@@ -1,43 +0,0 @@
1
- import "./libs/polyfills.js"; // Components
2
-
3
- import { SolidDisplay } from './components/solid-display.js';
4
- import { SolidForm } from './components/solid-form.js';
5
- import { SolidFormSearch } from './components/solid-form-search.js';
6
- import { SolidWidget } from './components/solid-widget.js';
7
- import { SolidAcChecker } from './components/solid-ac-checker.js';
8
- import { SolidDelete } from './components/solid-delete.js';
9
- import { SolidLang } from './components/solid-lang.js';
10
- import { SolidTable } from './components/solid-table.js';
11
- import { SolidMap } from './components/solid-map.js'; // Mixins
12
-
13
- import { CounterMixin } from './mixins/counterMixin.js';
14
- import { FederationMixin } from './mixins/federationMixin.js';
15
- import { FilterMixin } from './mixins/filterMixin.js';
16
- import { GrouperMixin } from './mixins/grouperMixin.js';
17
- import { HighlighterMixin } from './mixins/highlighterMixin.js';
18
- import { ListMixin } from './mixins/listMixin.js';
19
- import { NextMixin } from './mixins/nextMixin.js';
20
- import { PaginateMixin } from './mixins/paginateMixin.js';
21
- import { RequiredMixin } from './mixins/requiredMixin.js';
22
- import { SorterMixin } from './mixins/sorterMixin.js';
23
- import { StoreMixin } from './mixins/storeMixin.js';
24
- import { TranslationMixin } from './mixins/translationMixin.js';
25
- import { ValidationMixin } from './mixins/validationMixin.js';
26
- import { WidgetMixin } from './mixins/widgetMixin.js'; // Libs
27
-
28
- import { store } from './libs/store/store.js';
29
- import { Sib } from './libs/Sib.js';
30
- import SolidTemplateElement from './solid-template-element.js';
31
- import { widgetFactory } from './widgets/widget-factory.js';
32
- import * as Helpers from './libs/helpers.js'; // lit-html
33
-
34
- import { html, render } from './_snowpack/pkg/lit-html.js';
35
- import { ifDefined } from './_snowpack/pkg/lit-html/directives/if-defined.js';
36
- import { until } from './_snowpack/pkg/lit-html/directives/until.js';
37
- import { unsafeHTML } from './_snowpack/pkg/lit-html/directives/unsafe-html.js';
38
- export { // Components
39
- SolidDisplay, SolidForm, SolidFormSearch, SolidWidget, SolidAcChecker, SolidDelete, SolidLang, SolidTable, SolidMap // Mixins
40
- , CounterMixin, FederationMixin, FilterMixin, GrouperMixin, HighlighterMixin, ListMixin, NextMixin, PaginateMixin, RequiredMixin, SorterMixin, StoreMixin, TranslationMixin, ValidationMixin, WidgetMixin // Libs
41
- , store, Sib, SolidTemplateElement, widgetFactory, Helpers // lit-html
42
- , html, render, ifDefined, until, unsafeHTML };
43
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["SolidDisplay","SolidForm","SolidFormSearch","SolidWidget","SolidAcChecker","SolidDelete","SolidLang","SolidTable","SolidMap","CounterMixin","FederationMixin","FilterMixin","GrouperMixin","HighlighterMixin","ListMixin","NextMixin","PaginateMixin","RequiredMixin","SorterMixin","StoreMixin","TranslationMixin","ValidationMixin","WidgetMixin","store","Sib","SolidTemplateElement","widgetFactory","Helpers","html","render","ifDefined","until","unsafeHTML"],"mappings":"AAAA,OAAO,qBAAP,C,CACA;;AACA,SAASA,YAAT,QAA6B,4BAA7B;AACA,SAASC,SAAT,QAA0B,yBAA1B;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,WAAT,QAA4B,2BAA5B;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,WAAT,QAA4B,2BAA5B;AACA,SAASC,SAAT,QAA0B,yBAA1B;AACA,SAASC,UAAT,QAA2B,0BAA3B;AACA,SAASC,QAAT,QAAyB,wBAAzB,C,CAEA;;AACA,SAASC,YAAT,QAA6B,uBAA7B;AACA,SAASC,eAAT,QAAgC,0BAAhC;AACA,SAASC,WAAT,QAA4B,sBAA5B;AACA,SAASC,YAAT,QAA6B,uBAA7B;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,SAASC,WAAT,QAA4B,sBAA5B;AACA,SAASC,UAAT,QAA2B,qBAA3B;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AACA,SAASC,eAAT,QAAgC,0BAAhC;AACA,SAASC,WAAT,QAA4B,sBAA5B,C,CAEA;;AACA,SAASC,KAAT,QAAsB,oBAAtB;AACA,SAASC,GAAT,QAAoB,YAApB;AACA,OAAOC,oBAAP,MAAiC,0BAAjC;AACA,SAASC,aAAT,QAA8B,0BAA9B;AACA,OAAO,KAAKC,OAAZ,MAAyB,gBAAzB,C,CAEA;;AACA,SAASC,IAAT,EAAeC,MAAf,QAA6B,UAA7B;AACA,SAASC,SAAT,QAA0B,gCAA1B;AACA,SAASC,KAAT,QAAsB,2BAAtB;AACA,SAASC,UAAT,QAA2B,iCAA3B;AAEA,SACE;AACAhC,YAFF,EAGEC,SAHF,EAIEC,eAJF,EAKEC,WALF,EAMEC,cANF,EAOEC,WAPF,EAQEC,SARF,EASEC,UATF,EAUEC,QAVF,CAYE;AAZF,EAaEC,YAbF,EAcEC,eAdF,EAeEC,WAfF,EAgBEC,YAhBF,EAiBEC,gBAjBF,EAkBEC,SAlBF,EAmBEC,SAnBF,EAoBEC,aApBF,EAqBEC,aArBF,EAsBEC,WAtBF,EAuBEC,UAvBF,EAwBEC,gBAxBF,EAyBEC,eAzBF,EA0BEC,WA1BF,CA4BE;AA5BF,EA6BEC,KA7BF,EA8BEC,GA9BF,EA+BEC,oBA/BF,EAgCEC,aAhCF,EAiCEC,OAjCF,CAmCE;AAnCF,EAoCEC,IApCF,EAqCEC,MArCF,EAsCEC,SAtCF,EAuCEC,KAvCF,EAwCEC,UAxCF","sourcesContent":["import \"./libs/polyfills.js\";\n// Components\nimport { SolidDisplay } from './components/solid-display';\nimport { SolidForm } from './components/solid-form';\nimport { SolidFormSearch } from './components/solid-form-search';\nimport { SolidWidget } from './components/solid-widget';\nimport { SolidAcChecker } from './components/solid-ac-checker';\nimport { SolidDelete } from './components/solid-delete';\nimport { SolidLang } from './components/solid-lang';\nimport { SolidTable } from './components/solid-table';\nimport { SolidMap } from './components/solid-map';\n\n// Mixins\nimport { CounterMixin } from './mixins/counterMixin';\nimport { FederationMixin } from './mixins/federationMixin';\nimport { FilterMixin } from './mixins/filterMixin';\nimport { GrouperMixin } from './mixins/grouperMixin';\nimport { HighlighterMixin } from './mixins/highlighterMixin';\nimport { ListMixin } from './mixins/listMixin';\nimport { NextMixin } from './mixins/nextMixin';\nimport { PaginateMixin } from './mixins/paginateMixin';\nimport { RequiredMixin } from './mixins/requiredMixin';\nimport { SorterMixin } from './mixins/sorterMixin';\nimport { StoreMixin } from './mixins/storeMixin';\nimport { TranslationMixin } from './mixins/translationMixin';\nimport { ValidationMixin } from './mixins/validationMixin';\nimport { WidgetMixin } from './mixins/widgetMixin';\n\n// Libs\nimport { store } from './libs/store/store';\nimport { Sib } from './libs/Sib';\nimport SolidTemplateElement from './solid-template-element';\nimport { widgetFactory } from './widgets/widget-factory';\nimport * as Helpers from './libs/helpers';\n\n// lit-html\nimport { html, render } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { until } from 'lit-html/directives/until';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html';\n\nexport {\n // Components\n SolidDisplay,\n SolidForm,\n SolidFormSearch,\n SolidWidget,\n SolidAcChecker,\n SolidDelete,\n SolidLang,\n SolidTable,\n SolidMap,\n\n // Mixins\n CounterMixin,\n FederationMixin,\n FilterMixin,\n GrouperMixin,\n HighlighterMixin,\n ListMixin,\n NextMixin,\n PaginateMixin,\n RequiredMixin,\n SorterMixin,\n StoreMixin,\n TranslationMixin,\n ValidationMixin,\n WidgetMixin,\n\n // Libs\n store,\n Sib,\n SolidTemplateElement,\n widgetFactory,\n Helpers,\n\n // lit-html\n html,\n render,\n ifDefined,\n until,\n unsafeHTML\n}"]}
@@ -1,19 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- export class Component {
4
- constructor(element) {
5
- _defineProperty(this, "element", void 0);
6
-
7
- this.element = element;
8
- }
9
-
10
- created() {}
11
-
12
- attached() {}
13
-
14
- detached() {}
15
-
16
- attributesCallback(_key, _value, _oldValue) {}
17
-
18
- }
19
- //# sourceMappingURL=Component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["Component.ts"],"names":["Component","constructor","element","created","attached","detached","attributesCallback","_key","_value","_oldValue"],"mappings":";;AAEA,OAAO,MAAeA,SAAf,CAAuD;AAG5DC,EAAAA,WAAW,CAACC,OAAD,EAAuB;AAAA;;AAChC,SAAKA,OAAL,GAAeA,OAAf;AACD;;AAEDC,EAAAA,OAAO,GAAG,CAAE;;AACZC,EAAAA,QAAQ,GAAG,CAAE;;AACbC,EAAAA,QAAQ,GAAG,CAAE;;AAEbC,EAAAA,kBAAkB,CAACC,IAAD,EAAeC,MAAf,EAA4BC,SAA5B,EAAiD,CAAE;;AAXT","sourcesContent":["import type { ComponentInterface } from \"./interfaces.js\";\n\nexport abstract class Component implements ComponentInterface {\n public element: HTMLElement;\n\n constructor(element: HTMLElement) {\n this.element = element;\n }\n\n created() {}\n attached() {}\n detached() {}\n\n attributesCallback(_key: string, _value: any, _oldValue: any):void {}\n}\n"]}
@@ -1,196 +0,0 @@
1
- import { Compositor } from './Compositor.js';
2
- import { Component } from './Component.js';
3
- export class ComponentFactory {
4
- static build(component) {
5
- const {
6
- initialState,
7
- attributes,
8
- methods,
9
- hooks,
10
- accessors,
11
- name
12
- } = Compositor.merge(component, Compositor.mergeMixin(component));
13
- let componentConstructor = class extends Component {};
14
- componentConstructor = ComponentFactory.bindInitialState(componentConstructor, initialState);
15
- componentConstructor = ComponentFactory.bindAttributes(componentConstructor, attributes);
16
- componentConstructor = ComponentFactory.bindMethods(componentConstructor, methods);
17
- componentConstructor = ComponentFactory.bindAccessors(componentConstructor, accessors);
18
- componentConstructor = ComponentFactory.bindHooks(componentConstructor, hooks);
19
- Reflect.defineProperty(componentConstructor, 'name', {
20
- value: name
21
- });
22
- return componentConstructor;
23
- }
24
-
25
- static bindInitialState(componentConstructor, initialState) {
26
- if (initialState) {
27
- Reflect.ownKeys(initialState).forEach(key => {
28
- Reflect.defineProperty(componentConstructor.prototype, key, {
29
- enumerable: true,
30
- writable: true,
31
- value: initialState[key]
32
- });
33
- });
34
- }
35
-
36
- return componentConstructor;
37
- }
38
-
39
- static bindAttributes(componentConstructor, attributes) {
40
- if (attributes) {
41
- const attributesList = Reflect.ownKeys(attributes).map(key => String(key));
42
- const attributesCallback = {};
43
- attributesList.forEach(key => {
44
- const {
45
- default: def,
46
- type,
47
- required,
48
- callback
49
- } = attributes[key];
50
- let fromType;
51
- let toType;
52
-
53
- switch (type) {
54
- case String:
55
- fromType = value => String(value);
56
-
57
- toType = value => value;
58
-
59
- break;
60
-
61
- case Object:
62
- fromType = value => JSON.parse(value);
63
-
64
- toType = value => JSON.stringify(value);
65
-
66
- break;
67
-
68
- case Number:
69
- fromType = value => Number(value);
70
-
71
- toType = value => Number(value).toString();
72
-
73
- break;
74
-
75
- case Boolean:
76
- fromType = value => Boolean(value);
77
-
78
- toType = value => value;
79
-
80
- break;
81
-
82
- default:
83
- fromType = value => value;
84
-
85
- toType = value => value;
86
-
87
- break;
88
- }
89
-
90
- const attribute = key.replace(/([a-z0-9])([A-Z0-9])/g, '$1-$2').toLowerCase();
91
- Reflect.defineProperty(componentConstructor.prototype, key, {
92
- enumerable: true,
93
- configurable: false,
94
- get: function () {
95
- const element = this.element;
96
-
97
- if (!element.hasAttribute(attribute)) {
98
- if (required && type !== Boolean) {
99
- throw new Error("Attribute ".concat(key, " is required"));
100
- }
101
-
102
- return def;
103
- }
104
-
105
- return fromType(element.getAttribute(attribute));
106
- },
107
- set: function (value) {
108
- const element = this.element;
109
-
110
- if (type === Boolean) {
111
- if (!value) {
112
- element.removeAttribute(attribute);
113
- } else {
114
- element.setAttribute(attribute, '');
115
- }
116
- } else {
117
- element.setAttribute(attribute, toType(value));
118
- }
119
- }
120
- });
121
-
122
- if (callback && typeof callback === 'function') {
123
- attributesCallback[key] = callback;
124
- }
125
- });
126
- Reflect.defineProperty(componentConstructor, 'observedAttributes', {
127
- get: () => attributesList.map(attr => attr.replace(/([a-z0-9])([A-Z0-9])/g, '$1-$2').toLowerCase())
128
- });
129
- Reflect.defineProperty(componentConstructor.prototype, 'attributesCallback', {
130
- value: function (key, newValue, oldValue) {
131
- if (key in attributesCallback) {
132
- Reflect.apply(attributesCallback[key], this, [newValue, oldValue]);
133
- }
134
- }
135
- });
136
- Reflect.defineProperty(componentConstructor.prototype, 'attributesCallback', attributesCallback);
137
- }
138
-
139
- return componentConstructor;
140
- }
141
-
142
- static bindAccessors(componentConstructor, accessors) {
143
- if (accessors) {
144
- Object.keys(accessors).forEach(property => {
145
- Reflect.defineProperty(componentConstructor.prototype, property, {
146
- get: function () {
147
- return Reflect.apply(accessors[property].get, this, []);
148
- },
149
- set: function (value) {
150
- return Reflect.apply(accessors[property].set, this, [value]);
151
- }
152
- });
153
- });
154
- }
155
-
156
- return componentConstructor;
157
- }
158
-
159
- static bindMethods(componentConstructor, methods) {
160
- methods.forEach((method, methodName) => {
161
- Reflect.defineProperty(componentConstructor.prototype, methodName, {
162
- value: function (...args) {
163
- return Reflect.apply(method, this, args);
164
- }
165
- });
166
- });
167
- return componentConstructor;
168
- }
169
-
170
- static bindHooks(componentConstructor, hooks) {
171
- Reflect.defineProperty(componentConstructor.prototype, 'created', {
172
- value: function () {
173
- hooks.created.forEach(hook => {
174
- Reflect.apply(hook, this, []);
175
- });
176
- }
177
- });
178
- Reflect.defineProperty(componentConstructor.prototype, 'attached', {
179
- value: function () {
180
- hooks.attached.forEach(hook => {
181
- Reflect.apply(hook, this, []);
182
- });
183
- }
184
- });
185
- Reflect.defineProperty(componentConstructor.prototype, 'detached', {
186
- value: function () {
187
- hooks.detached.forEach(hook => {
188
- Reflect.apply(hook, this, []);
189
- });
190
- }
191
- });
192
- return componentConstructor;
193
- }
194
-
195
- }
196
- //# sourceMappingURL=ComponentFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ComponentFactory.ts"],"names":["Compositor","Component","ComponentFactory","build","component","initialState","attributes","methods","hooks","accessors","name","merge","mergeMixin","componentConstructor","bindInitialState","bindAttributes","bindMethods","bindAccessors","bindHooks","Reflect","defineProperty","value","ownKeys","forEach","key","prototype","enumerable","writable","attributesList","map","String","attributesCallback","default","def","type","required","callback","fromType","toType","Object","JSON","parse","stringify","Number","toString","Boolean","attribute","replace","toLowerCase","configurable","get","element","hasAttribute","Error","getAttribute","set","removeAttribute","setAttribute","attr","newValue","oldValue","apply","keys","property","method","methodName","args","created","hook","attached","detached"],"mappings":"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","sourcesContent":["import { Compositor } from './Compositor';\nimport { Component } from './Component';\nimport type {\n MixinStaticInterface,\n AttributesDefinitionInterface,\n ComponentConstructorInterface,\n ArrayOfHooksInterface,\n AccessorStaticInterface\n} from './interfaces';\n\nexport class ComponentFactory {\n public static build(component: MixinStaticInterface): ComponentConstructorInterface {\n const { initialState, attributes, methods, hooks, accessors, name } = Compositor.merge(component, Compositor.mergeMixin(component));\n\n let componentConstructor = class extends Component {};\n\n componentConstructor = ComponentFactory.bindInitialState(componentConstructor, initialState);\n componentConstructor = ComponentFactory.bindAttributes(componentConstructor, attributes);\n componentConstructor = ComponentFactory.bindMethods(componentConstructor, methods);\n componentConstructor = ComponentFactory.bindAccessors(componentConstructor, accessors);\n componentConstructor = ComponentFactory.bindHooks(componentConstructor, hooks);\n\n Reflect.defineProperty(componentConstructor, 'name', {\n value: name,\n });\n\n return componentConstructor;\n }\n\n protected static bindInitialState(componentConstructor: ComponentConstructorInterface, initialState: object | undefined):any {\n if (initialState) {\n Reflect.ownKeys(initialState).forEach(key => {\n Reflect.defineProperty(componentConstructor.prototype, key, {\n enumerable: true,\n writable: true,\n value: initialState[key],\n });\n });\n }\n\n return componentConstructor;\n }\n\n protected static bindAttributes(componentConstructor: ComponentConstructorInterface, attributes: AttributesDefinitionInterface | undefined): ComponentConstructorInterface {\n if (attributes) {\n const attributesList = Reflect.ownKeys(attributes).map(key => String(key));\n const attributesCallback = {};\n\n attributesList.forEach(key => {\n const { default: def, type, required, callback } = attributes[key];\n\n let fromType;\n let toType;\n\n switch (type) {\n case String:\n fromType = value => String(value);\n toType = value => value;\n break;\n case Object:\n fromType = value => JSON.parse(value);\n toType = value => JSON.stringify(value);\n break;\n case Number:\n fromType = value => Number(value);\n toType = value => Number(value).toString();\n break;\n case Boolean:\n fromType = value => Boolean(value);\n toType = value => value;\n break;\n default:\n fromType = value => value;\n toType = value => value;\n break;\n }\n\n const attribute = key.replace(/([a-z0-9])([A-Z0-9])/g, '$1-$2').toLowerCase();\n\n Reflect.defineProperty(componentConstructor.prototype, key, {\n enumerable: true,\n configurable: false,\n get: function () {\n const element = this.element;\n if (!element.hasAttribute(attribute)) {\n if (required && type !== Boolean) {\n throw new Error(`Attribute ${key} is required`);\n }\n return def;\n }\n return fromType(element.getAttribute(attribute));\n },\n set: function (value) {\n const element = this.element;\n if (type === Boolean) {\n if (!value) {\n element.removeAttribute(attribute);\n } else {\n element.setAttribute(attribute, '');\n }\n } else {\n element.setAttribute(attribute, toType(value));\n }\n },\n });\n\n if (callback && typeof callback === 'function') {\n attributesCallback[key] = callback;\n }\n });\n\n Reflect.defineProperty(componentConstructor, 'observedAttributes', {\n get: () => attributesList.map(attr => attr.replace(/([a-z0-9])([A-Z0-9])/g, '$1-$2').toLowerCase()),\n });\n\n Reflect.defineProperty(componentConstructor.prototype, 'attributesCallback', {\n value: function(key, newValue, oldValue) {\n if (key in attributesCallback) {\n Reflect.apply(attributesCallback[key], this, [newValue, oldValue]);\n }\n }\n });\n\n Reflect.defineProperty(componentConstructor.prototype, 'attributesCallback', attributesCallback);\n }\n return componentConstructor;\n }\n\n protected static bindAccessors(componentConstructor: ComponentConstructorInterface, accessors: AccessorStaticInterface): ComponentConstructorInterface {\n if (accessors) {\n Object.keys(accessors).forEach(property => {\n Reflect.defineProperty(componentConstructor.prototype, property, {\n get: function () {\n return Reflect.apply(accessors[property].get, this, [])\n },\n set: function (value) {\n return Reflect.apply(accessors[property].set, this, [value])\n }\n });\n });\n }\n return componentConstructor;\n }\n\n protected static bindMethods(componentConstructor: ComponentConstructorInterface, methods: Map<string, Function>): ComponentConstructorInterface {\n methods.forEach((method, methodName: string) => {\n Reflect.defineProperty(componentConstructor.prototype, methodName, {\n value: function (...args) {\n return Reflect.apply(method, this, args);\n },\n });\n });\n return componentConstructor;\n }\n\n protected static bindHooks(componentConstructor: ComponentConstructorInterface, hooks: ArrayOfHooksInterface): ComponentConstructorInterface {\n Reflect.defineProperty(componentConstructor.prototype, 'created', {\n value: function() {\n hooks.created.forEach(hook => {\n Reflect.apply(hook, this, []);\n });\n },\n });\n\n Reflect.defineProperty(componentConstructor.prototype, 'attached', {\n value: function() {\n hooks.attached.forEach(hook => {\n Reflect.apply(hook, this, []);\n });\n },\n });\n\n Reflect.defineProperty(componentConstructor.prototype, 'detached', {\n value: function() {\n hooks.detached.forEach(hook => {\n Reflect.apply(hook, this, []);\n });\n },\n });\n return componentConstructor;\n }\n}\n"]}
@@ -1,103 +0,0 @@
1
- const HOOKS = ['created', 'attached', 'detached'];
2
- const API = ['name', 'use', 'attributes', 'initialState', ...HOOKS];
3
- export class Compositor {
4
- static merge(component, mixins) {
5
- return {
6
- name: component.name,
7
- attributes: Compositor.mergeAttributes([component, ...mixins]),
8
- initialState: Compositor.mergeInitialState([component, ...mixins]),
9
- methods: Compositor.mergeMethods([component, ...mixins]),
10
- accessors: Compositor.mergeAccessors([component, ...mixins]),
11
- hooks: Compositor.mergeHooks([component, ...mixins])
12
- };
13
- }
14
-
15
- static mergeMixin(component) {
16
- function deepMergeMixin(mixinAccumulator, currentMixin) {
17
- const {
18
- use: currentMixins
19
- } = currentMixin;
20
-
21
- if (currentMixins) {
22
- currentMixins.forEach(mix => {
23
- if (!mixinAccumulator.has(mix)) {
24
- mixinAccumulator.set(mix, mix);
25
- deepMergeMixin(mixinAccumulator, mix);
26
- } else {
27
- console.warn("Duplicate mixin import (".concat(mix.name, ")"));
28
- }
29
- });
30
- }
31
- }
32
-
33
- const mixins = new Map();
34
- deepMergeMixin(mixins, component);
35
- return Array.from(mixins.values());
36
- }
37
-
38
- static mergeAttributes(mixins) {
39
- let attributes = {};
40
- mixins.forEach(mixin => {
41
- if (!!mixin.attributes) {
42
- attributes = { ...mixin.attributes,
43
- ...attributes
44
- };
45
- }
46
- });
47
- return attributes;
48
- }
49
-
50
- static mergeInitialState(mixins) {
51
- let initialState = {};
52
- mixins.forEach(mixin => {
53
- if (!!mixin.initialState) {
54
- initialState = { ...mixin.initialState,
55
- ...initialState
56
- };
57
- }
58
- });
59
- return initialState;
60
- }
61
-
62
- static mergeHooks(mixins) {
63
- const hooks = {
64
- created: [],
65
- attached: [],
66
- detached: []
67
- };
68
- mixins.reverse().forEach(mixin => {
69
- HOOKS.forEach(hookName => {
70
- if (!!mixin[hookName] && typeof mixin[hookName] === 'function') {
71
- hooks[hookName].push(mixin[hookName]);
72
- }
73
- });
74
- });
75
- return hooks;
76
- }
77
-
78
- static mergeMethods(mixins) {
79
- const methods = new Map();
80
- mixins.reverse().forEach(mixin => {
81
- const keys = Reflect.ownKeys(mixin).filter(key => typeof key === 'string' && API.indexOf(key) < 0 && !Object.getOwnPropertyDescriptor(mixin, key).get && !Object.getOwnPropertyDescriptor(mixin, key).set && typeof mixin[key] === 'function');
82
- keys.forEach(key => {
83
- methods.set(key, mixin[key]);
84
- });
85
- });
86
- return methods;
87
- }
88
-
89
- static mergeAccessors(mixins) {
90
- const accessors = {};
91
- mixins.reverse().forEach(mixin => {
92
- Reflect.ownKeys(mixin).filter(key => typeof key === 'string' && API.indexOf(key) < 0 && (Object.getOwnPropertyDescriptor(mixin, key).get || Object.getOwnPropertyDescriptor(mixin, key).set)).forEach(prop => {
93
- accessors[prop] = { ...accessors[prop]
94
- };
95
- if (Reflect.getOwnPropertyDescriptor(mixin, prop).get) accessors[prop].get = Reflect.getOwnPropertyDescriptor(mixin, prop).get;
96
- if (Reflect.getOwnPropertyDescriptor(mixin, prop).set) accessors[prop].set = Reflect.getOwnPropertyDescriptor(mixin, prop).set;
97
- });
98
- });
99
- return accessors;
100
- }
101
-
102
- }
103
- //# sourceMappingURL=Compositor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["Compositor.ts"],"names":["HOOKS","API","Compositor","merge","component","mixins","name","attributes","mergeAttributes","initialState","mergeInitialState","methods","mergeMethods","accessors","mergeAccessors","hooks","mergeHooks","mergeMixin","deepMergeMixin","mixinAccumulator","currentMixin","use","currentMixins","forEach","mix","has","set","console","warn","Map","Array","from","values","mixin","created","attached","detached","reverse","hookName","push","keys","Reflect","ownKeys","filter","key","indexOf","Object","getOwnPropertyDescriptor","get","prop"],"mappings":"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","sourcesContent":["import type {\n MixinStaticInterface,\n ComponentStaticInterface,\n AttributesDefinitionInterface,\n ArrayOfHooksInterface,\n AccessorStaticInterface\n} from './interfaces';\n\nconst HOOKS = ['created', 'attached', 'detached'];\nconst API = [\n 'name',\n 'use',\n 'attributes',\n 'initialState',\n ...HOOKS,\n];\n\nexport class Compositor {\n public static merge(component: MixinStaticInterface, mixins: MixinStaticInterface[]): ComponentStaticInterface {\n return {\n name: component.name,\n attributes: Compositor.mergeAttributes([ component, ...mixins ]),\n initialState: Compositor.mergeInitialState([ component, ...mixins ]),\n methods: Compositor.mergeMethods([ component, ...mixins]),\n accessors: Compositor.mergeAccessors([ component, ...mixins]),\n hooks: Compositor.mergeHooks([ component, ...mixins ]),\n };\n }\n\n public static mergeMixin(component: MixinStaticInterface): MixinStaticInterface[] {\n function deepMergeMixin(mixinAccumulator: Map<MixinStaticInterface, MixinStaticInterface>, currentMixin: MixinStaticInterface) {\n const { use: currentMixins } = currentMixin;\n if (currentMixins) {\n currentMixins.forEach(mix => {\n if (!mixinAccumulator.has(mix)) {\n mixinAccumulator.set(mix, mix);\n deepMergeMixin(mixinAccumulator, mix);\n } else {\n console.warn(`Duplicate mixin import (${mix.name})`);\n }\n });\n }\n }\n\n const mixins = new Map();\n deepMergeMixin(mixins, component);\n\n return Array.from(mixins.values());\n }\n\n public static mergeAttributes(mixins: MixinStaticInterface[]): AttributesDefinitionInterface {\n let attributes = {};\n\n mixins.forEach(mixin => {\n if (!!mixin.attributes) {\n attributes = {...mixin.attributes, ...attributes };\n }\n });\n\n return attributes;\n }\n\n public static mergeInitialState(mixins: MixinStaticInterface[]): any {\n let initialState = {};\n\n mixins.forEach(mixin => {\n if (!!mixin.initialState) {\n initialState = {...mixin.initialState, ...initialState };\n }\n });\n\n return initialState;\n }\n\n public static mergeHooks(mixins: MixinStaticInterface[]): ArrayOfHooksInterface {\n const hooks = {\n created: [],\n attached: [],\n detached: [],\n };\n mixins\n .reverse()\n .forEach(mixin => {\n HOOKS.forEach(hookName => {\n if(!!mixin[hookName] && typeof mixin[hookName] === 'function') {\n hooks[hookName].push(mixin[hookName]);\n }\n });\n });\n \n\n return hooks;\n }\n\n public static mergeMethods(mixins: MixinStaticInterface[]): Map<any, any> {\n const methods = new Map();\n\n mixins.reverse().forEach(mixin => {\n const keys = Reflect\n .ownKeys(mixin)\n .filter(key => (\n typeof key === 'string' &&\n API.indexOf(key) < 0 &&\n !Object.getOwnPropertyDescriptor(mixin, key)!.get &&\n !Object.getOwnPropertyDescriptor(mixin, key)!.set &&\n typeof mixin[key] === 'function'));\n\n keys.forEach(key => {\n methods.set(key, mixin[key]);\n });\n });\n return methods;\n }\n\n public static mergeAccessors(mixins: MixinStaticInterface[]): AccessorStaticInterface {\n const accessors = {};\n mixins.reverse().forEach(mixin => {\n Reflect\n .ownKeys(mixin)\n .filter(key => (\n typeof key === 'string' &&\n API.indexOf(key) < 0 &&\n (Object.getOwnPropertyDescriptor(mixin, key)!.get || Object.getOwnPropertyDescriptor(mixin, key)!.set)\n ))\n .forEach(prop => {\n accessors[prop] = { ...accessors[prop] };\n if (Reflect.getOwnPropertyDescriptor(mixin, prop)!.get) accessors[prop].get = Reflect.getOwnPropertyDescriptor(mixin, prop)!.get;\n if (Reflect.getOwnPropertyDescriptor(mixin, prop)!.set) accessors[prop].set = Reflect.getOwnPropertyDescriptor(mixin, prop)!.set;\n });\n });\n return accessors;\n }\n}\n"]}
package/dist/libs/Sib.js DELETED
@@ -1,58 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { ComponentFactory } from "./ComponentFactory.js";
4
- import { defineComponent } from "./helpers.js";
5
- export class Sib {
6
- static register(componentDefinition) {
7
- const component = ComponentFactory.build(componentDefinition);
8
- const cls = this.toElement(component);
9
- defineComponent(component.name, cls);
10
- }
11
-
12
- static toElement(component) {
13
- var _temp;
14
-
15
- return _temp = class extends HTMLElement {
16
- constructor() {
17
- super();
18
-
19
- _defineProperty(this, "_component", null);
20
-
21
- this.component = new component(this);
22
- this.component.created();
23
- }
24
-
25
- get component() {
26
- if (this._component === null) {
27
- throw new Error('No component found');
28
- }
29
-
30
- return this._component;
31
- }
32
-
33
- set component(component) {
34
- this._component = component;
35
- }
36
-
37
- static get observedAttributes() {
38
- return component.observedAttributes;
39
- }
40
-
41
- attributeChangedCallback(name, oldValue, newValue) {
42
- const attr = name.replace(/([a-z0-9])-([a-z0-9])/g, (_c, p1, p2) => "".concat(p1).concat(p2.toUpperCase()));
43
- this.component.attributesCallback(attr, newValue, oldValue);
44
- }
45
-
46
- connectedCallback() {
47
- this.component.attached();
48
- }
49
-
50
- disconnectedCallback() {
51
- this.component.detached();
52
- }
53
-
54
- }, _temp;
55
- }
56
-
57
- }
58
- //# sourceMappingURL=Sib.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["Sib.ts"],"names":["ComponentFactory","defineComponent","Sib","register","componentDefinition","component","build","cls","toElement","name","HTMLElement","constructor","created","_component","Error","observedAttributes","attributeChangedCallback","oldValue","newValue","attr","replace","_c","p1","p2","toUpperCase","attributesCallback","connectedCallback","attached","disconnectedCallback","detached"],"mappings":";;AAAA,SAASA,gBAAT,QAAiC,uBAAjC;AACA,SAASC,eAAT,QAAgC,cAAhC;AAOA,OAAO,MAAMC,GAAN,CAAU;AACb,SAAcC,QAAd,CAAuBC,mBAAvB,EAAuE;AACnE,UAAMC,SAAS,GAAGL,gBAAgB,CAACM,KAAjB,CAAuBF,mBAAvB,CAAlB;AACA,UAAMG,GAAG,GAAG,KAAKC,SAAL,CAAeH,SAAf,CAAZ;AACAJ,IAAAA,eAAe,CAACI,SAAS,CAACI,IAAX,EAAiBF,GAAjB,CAAf;AACH;;AAED,SAAiBC,SAAjB,CAA2BH,SAA3B,EAAyF;AAAA;;AACrF,mBAAO,cAAcK,WAAd,CAA0B;AAG7BC,MAAAA,WAAW,GAAG;AACV;;AADU,4CAFkC,IAElC;;AAEV,aAAKN,SAAL,GAAiB,IAAIA,SAAJ,CAAc,IAAd,CAAjB;AACA,aAAKA,SAAL,CAAeO,OAAf;AACH;;AAED,UAAIP,SAAJ,GAAoC;AAChC,YAAI,KAAKQ,UAAL,KAAoB,IAAxB,EAA8B;AAC1B,gBAAM,IAAIC,KAAJ,CAAU,oBAAV,CAAN;AACH;;AACD,eAAO,KAAKD,UAAZ;AACH;;AACD,UAAIR,SAAJ,CAAcA,SAAd,EAA6C;AACzC,aAAKQ,UAAL,GAAkBR,SAAlB;AACH;;AAED,iBAAWU,kBAAX,GAAgC;AAC5B,eAAaV,SAAN,CAAiBU,kBAAxB;AACH;;AAEDC,MAAAA,wBAAwB,CAACP,IAAD,EAAOQ,QAAP,EAAiBC,QAAjB,EAA2B;AAC/C,cAAMC,IAAI,GAAGV,IAAI,CAACW,OAAL,CAAa,wBAAb,EAAuC,CAACC,EAAD,EAAKC,EAAL,EAASC,EAAT,eAAmBD,EAAnB,SAAwBC,EAAE,CAACC,WAAH,EAAxB,CAAvC,CAAb;AACA,aAAKnB,SAAL,CAAeoB,kBAAf,CAAkCN,IAAlC,EAAwCD,QAAxC,EAAkDD,QAAlD;AACH;;AAEDS,MAAAA,iBAAiB,GAAG;AAChB,aAAKrB,SAAL,CAAesB,QAAf;AACH;;AAEDC,MAAAA,oBAAoB,GAAG;AACnB,aAAKvB,SAAL,CAAewB,QAAf;AACH;;AAlC4B,KAAjC;AAoCH;;AA5CY","sourcesContent":["import { ComponentFactory } from \"./ComponentFactory.js\";\nimport { defineComponent } from \"./helpers.js\";\nimport type {\n ComponentConstructorInterface,\n ComponentInterface,\n MixinStaticInterface\n} from \"./interfaces.js\";\n\nexport class Sib {\n public static register(componentDefinition: MixinStaticInterface):void {\n const component = ComponentFactory.build(componentDefinition);\n const cls = this.toElement(component);\n defineComponent(component.name, cls);\n }\n\n protected static toElement(component: ComponentConstructorInterface): typeof HTMLElement {\n return class extends HTMLElement {\n private _component: ComponentInterface | null = null;\n\n constructor() {\n super();\n this.component = new component(this);\n this.component.created();\n }\n\n get component(): ComponentInterface {\n if (this._component === null) {\n throw new Error('No component found');\n }\n return this._component;\n }\n set component(component: ComponentInterface) {\n this._component = component;\n }\n\n static get observedAttributes() {\n return (<any>component).observedAttributes;\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n const attr = name.replace(/([a-z0-9])-([a-z0-9])/g, (_c, p1, p2) => `${p1}${p2.toUpperCase()}`);\n this.component.attributesCallback(attr, newValue, oldValue);\n }\n\n connectedCallback() {\n this.component.attached();\n }\n\n disconnectedCallback() {\n this.component.detached();\n }\n }\n }\n}\n"]}