@startinblox/core 0.17.18 → 0.17.21-beta.2

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 (262) 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 -25
  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.js +0 -14066
  34. package/dist/_snowpack/pkg/leaflet.js.map +0 -1
  35. package/dist/_snowpack/pkg/leaflet.js.map.proxy.js +0 -1
  36. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css +0 -60
  37. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css.proxy.js +0 -10
  38. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css +0 -14
  39. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js +0 -10
  40. package/dist/_snowpack/pkg/leaflet.markercluster.js +0 -2697
  41. package/dist/_snowpack/pkg/leaflet.markercluster.js.map +0 -1
  42. package/dist/_snowpack/pkg/leaflet.markercluster.js.map.proxy.js +0 -1
  43. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js +0 -40
  44. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map +0 -1
  45. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map.proxy.js +0 -1
  46. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js +0 -46
  47. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map +0 -1
  48. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map.proxy.js +0 -1
  49. package/dist/_snowpack/pkg/lit-html/directives/until.js +0 -88
  50. package/dist/_snowpack/pkg/lit-html/directives/until.js.map +0 -1
  51. package/dist/_snowpack/pkg/lit-html/directives/until.js.map.proxy.js +0 -1
  52. package/dist/_snowpack/pkg/lit-html.js +0 -92
  53. package/dist/_snowpack/pkg/lit-html.js.map +0 -1
  54. package/dist/_snowpack/pkg/lit-html.js.map.proxy.js +0 -1
  55. package/dist/_snowpack/pkg/markdown-it.js +0 -11860
  56. package/dist/_snowpack/pkg/markdown-it.js.map +0 -1
  57. package/dist/_snowpack/pkg/markdown-it.js.map.proxy.js +0 -1
  58. package/dist/_snowpack/pkg/quill/dist/quill.snow.css +0 -945
  59. package/dist/_snowpack/pkg/quill/dist/quill.snow.css.proxy.js +0 -10
  60. package/dist/_snowpack/pkg/quill-delta-to-markdown.js +0 -1029
  61. package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map +0 -1
  62. package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map.proxy.js +0 -1
  63. package/dist/_snowpack/pkg/quill.js +0 -13382
  64. package/dist/_snowpack/pkg/quill.js.map +0 -1
  65. package/dist/_snowpack/pkg/quill.js.map.proxy.js +0 -1
  66. package/dist/_snowpack/pkg/slim-select.js +0 -4
  67. package/dist/_snowpack/pkg/slim-select.js.map +0 -1
  68. package/dist/_snowpack/pkg/slim-select.js.map.proxy.js +0 -1
  69. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css +0 -1164
  70. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css.proxy.js +0 -10
  71. package/dist/_snowpack/pkg/tui-calendar.js +0 -42285
  72. package/dist/_snowpack/pkg/tui-calendar.js.map +0 -1
  73. package/dist/_snowpack/pkg/tui-calendar.js.map.proxy.js +0 -1
  74. package/dist/components/solid-ac-checker.js +0 -58
  75. package/dist/components/solid-ac-checker.js.map +0 -1
  76. package/dist/components/solid-calendar.js +0 -87
  77. package/dist/components/solid-calendar.js.map +0 -1
  78. package/dist/components/solid-delete.js +0 -111
  79. package/dist/components/solid-delete.js.map +0 -1
  80. package/dist/components/solid-display.js +0 -194
  81. package/dist/components/solid-display.js.map +0 -1
  82. package/dist/components/solid-form-search.js +0 -226
  83. package/dist/components/solid-form-search.js.map +0 -1
  84. package/dist/components/solid-form.js +0 -354
  85. package/dist/components/solid-form.js.map +0 -1
  86. package/dist/components/solid-lang.js +0 -46
  87. package/dist/components/solid-lang.js.map +0 -1
  88. package/dist/components/solid-map.js +0 -239
  89. package/dist/components/solid-map.js.map +0 -1
  90. package/dist/components/solid-table.js +0 -263
  91. package/dist/components/solid-table.js.map +0 -1
  92. package/dist/components/solid-widget.js +0 -94
  93. package/dist/components/solid-widget.js.map +0 -1
  94. package/dist/import.css +0 -4
  95. package/dist/index.js +0 -43
  96. package/dist/index.js.map +0 -1
  97. package/dist/libs/Component.js +0 -19
  98. package/dist/libs/Component.js.map +0 -1
  99. package/dist/libs/ComponentFactory.js +0 -196
  100. package/dist/libs/ComponentFactory.js.map +0 -1
  101. package/dist/libs/Compositor.js +0 -103
  102. package/dist/libs/Compositor.js.map +0 -1
  103. package/dist/libs/Sib.js +0 -58
  104. package/dist/libs/Sib.js.map +0 -1
  105. package/dist/libs/helpers.js +0 -219
  106. package/dist/libs/helpers.js.map +0 -1
  107. package/dist/libs/interfaces.js +0 -6
  108. package/dist/libs/interfaces.js.map +0 -1
  109. package/dist/libs/lit-helpers.js +0 -169
  110. package/dist/libs/lit-helpers.js.map +0 -1
  111. package/dist/libs/polyfills.js +0 -40
  112. package/dist/libs/polyfills.js.map +0 -1
  113. package/dist/libs/store/store.js +0 -768
  114. package/dist/libs/store/store.js.map +0 -1
  115. package/dist/locales/en.json +0 -10
  116. package/dist/locales/en.json.proxy.js +0 -2
  117. package/dist/locales/fr.json +0 -10
  118. package/dist/locales/fr.json.proxy.js +0 -2
  119. package/dist/mixins/attributeBinderMixin.js +0 -124
  120. package/dist/mixins/attributeBinderMixin.js.map +0 -1
  121. package/dist/mixins/contextMixin.js +0 -28
  122. package/dist/mixins/contextMixin.js.map +0 -1
  123. package/dist/mixins/counterMixin.js +0 -75
  124. package/dist/mixins/counterMixin.js.map +0 -1
  125. package/dist/mixins/federationMixin.js +0 -63
  126. package/dist/mixins/federationMixin.js.map +0 -1
  127. package/dist/mixins/filterMixin.js +0 -195
  128. package/dist/mixins/filterMixin.js.map +0 -1
  129. package/dist/mixins/grouperMixin.js +0 -80
  130. package/dist/mixins/grouperMixin.js.map +0 -1
  131. package/dist/mixins/highlighterMixin.js +0 -42
  132. package/dist/mixins/highlighterMixin.js.map +0 -1
  133. package/dist/mixins/interfaces.js +0 -8
  134. package/dist/mixins/interfaces.js.map +0 -1
  135. package/dist/mixins/listMixin.js +0 -136
  136. package/dist/mixins/listMixin.js.map +0 -1
  137. package/dist/mixins/nextMixin.js +0 -26
  138. package/dist/mixins/nextMixin.js.map +0 -1
  139. package/dist/mixins/paginateMixin.js +0 -110
  140. package/dist/mixins/paginateMixin.js.map +0 -1
  141. package/dist/mixins/requiredMixin.js +0 -34
  142. package/dist/mixins/requiredMixin.js.map +0 -1
  143. package/dist/mixins/sorterMixin.js +0 -149
  144. package/dist/mixins/sorterMixin.js.map +0 -1
  145. package/dist/mixins/storeMixin.js +0 -102
  146. package/dist/mixins/storeMixin.js.map +0 -1
  147. package/dist/mixins/translationMixin.js +0 -68
  148. package/dist/mixins/translationMixin.js.map +0 -1
  149. package/dist/mixins/validationMixin.js +0 -113
  150. package/dist/mixins/validationMixin.js.map +0 -1
  151. package/dist/mixins/widgetMixin.js +0 -447
  152. package/dist/mixins/widgetMixin.js.map +0 -1
  153. package/dist/new-widgets/attributeMixins/actionMixin.js +0 -14
  154. package/dist/new-widgets/attributeMixins/actionMixin.js.map +0 -1
  155. package/dist/new-widgets/attributeMixins/blankMixin.js +0 -10
  156. package/dist/new-widgets/attributeMixins/blankMixin.js.map +0 -1
  157. package/dist/new-widgets/attributeMixins/booleanMixin.js +0 -10
  158. package/dist/new-widgets/attributeMixins/booleanMixin.js.map +0 -1
  159. package/dist/new-widgets/attributeMixins/index.js +0 -20
  160. package/dist/new-widgets/attributeMixins/index.js.map +0 -1
  161. package/dist/new-widgets/attributeMixins/mailtoMixin.js +0 -10
  162. package/dist/new-widgets/attributeMixins/mailtoMixin.js.map +0 -1
  163. package/dist/new-widgets/attributeMixins/multipleMixin.js +0 -28
  164. package/dist/new-widgets/attributeMixins/multipleMixin.js.map +0 -1
  165. package/dist/new-widgets/attributeMixins/numberMixin.js +0 -10
  166. package/dist/new-widgets/attributeMixins/numberMixin.js.map +0 -1
  167. package/dist/new-widgets/attributeMixins/placeholderMixin.js +0 -19
  168. package/dist/new-widgets/attributeMixins/placeholderMixin.js.map +0 -1
  169. package/dist/new-widgets/attributeMixins/telMixin.js +0 -10
  170. package/dist/new-widgets/attributeMixins/telMixin.js.map +0 -1
  171. package/dist/new-widgets/baseWidgetMixin.js +0 -122
  172. package/dist/new-widgets/baseWidgetMixin.js.map +0 -1
  173. package/dist/new-widgets/callbackMixins/autocompletionMixin.js +0 -104
  174. package/dist/new-widgets/callbackMixins/autocompletionMixin.js.map +0 -1
  175. package/dist/new-widgets/callbackMixins/index.js +0 -8
  176. package/dist/new-widgets/callbackMixins/index.js.map +0 -1
  177. package/dist/new-widgets/callbackMixins/richtextMixin.js +0 -42
  178. package/dist/new-widgets/callbackMixins/richtextMixin.js.map +0 -1
  179. package/dist/new-widgets/callbackMixins/slimselect.css +0 -2
  180. package/dist/new-widgets/callbackMixins/slimselect.css.proxy.js +0 -10
  181. package/dist/new-widgets/new-widget-factory.js +0 -96
  182. package/dist/new-widgets/new-widget-factory.js.map +0 -1
  183. package/dist/new-widgets/templateAdditionMixins/addableMixin.js +0 -41
  184. package/dist/new-widgets/templateAdditionMixins/addableMixin.js.map +0 -1
  185. package/dist/new-widgets/templateAdditionMixins/index.js +0 -14
  186. package/dist/new-widgets/templateAdditionMixins/index.js.map +0 -1
  187. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js +0 -29
  188. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js.map +0 -1
  189. package/dist/new-widgets/templateAdditionMixins/labelMixin.js +0 -31
  190. package/dist/new-widgets/templateAdditionMixins/labelMixin.js.map +0 -1
  191. package/dist/new-widgets/templates/defaultTemplatesDirectory.js +0 -35
  192. package/dist/new-widgets/templates/defaultTemplatesDirectory.js.map +0 -1
  193. package/dist/new-widgets/templates/displayTemplatesDirectory.js +0 -89
  194. package/dist/new-widgets/templates/displayTemplatesDirectory.js.map +0 -1
  195. package/dist/new-widgets/templates/formTemplatesDirectory.js +0 -397
  196. package/dist/new-widgets/templates/formTemplatesDirectory.js.map +0 -1
  197. package/dist/new-widgets/templates/groupTemplatesDirectory.js +0 -21
  198. package/dist/new-widgets/templates/groupTemplatesDirectory.js.map +0 -1
  199. package/dist/new-widgets/templates/index.js +0 -7
  200. package/dist/new-widgets/templates/index.js.map +0 -1
  201. package/dist/new-widgets/templates/setTemplatesDirectory.js +0 -49
  202. package/dist/new-widgets/templates/setTemplatesDirectory.js.map +0 -1
  203. package/dist/new-widgets/templatesDependencies/altMixin.js +0 -13
  204. package/dist/new-widgets/templatesDependencies/altMixin.js.map +0 -1
  205. package/dist/new-widgets/templatesDependencies/editableMixin.js +0 -77
  206. package/dist/new-widgets/templatesDependencies/editableMixin.js.map +0 -1
  207. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js +0 -38
  208. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js.map +0 -1
  209. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js +0 -14
  210. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js.map +0 -1
  211. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js +0 -51
  212. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js.map +0 -1
  213. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js +0 -66
  214. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js.map +0 -1
  215. package/dist/new-widgets/templatesDependencies/formFileMixin.js +0 -81
  216. package/dist/new-widgets/templatesDependencies/formFileMixin.js.map +0 -1
  217. package/dist/new-widgets/templatesDependencies/formLengthMixin.js +0 -19
  218. package/dist/new-widgets/templatesDependencies/formLengthMixin.js.map +0 -1
  219. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js +0 -19
  220. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js.map +0 -1
  221. package/dist/new-widgets/templatesDependencies/formMixin.js +0 -66
  222. package/dist/new-widgets/templatesDependencies/formMixin.js.map +0 -1
  223. package/dist/new-widgets/templatesDependencies/formNumberMixin.js +0 -14
  224. package/dist/new-widgets/templatesDependencies/formNumberMixin.js.map +0 -1
  225. package/dist/new-widgets/templatesDependencies/formRadioMixin.js +0 -16
  226. package/dist/new-widgets/templatesDependencies/formRadioMixin.js.map +0 -1
  227. package/dist/new-widgets/templatesDependencies/formStepMixin.js +0 -13
  228. package/dist/new-widgets/templatesDependencies/formStepMixin.js.map +0 -1
  229. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js +0 -107
  230. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js.map +0 -1
  231. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js +0 -74
  232. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js.map +0 -1
  233. package/dist/new-widgets/templatesDependencies/patternMixin.js +0 -19
  234. package/dist/new-widgets/templatesDependencies/patternMixin.js.map +0 -1
  235. package/dist/new-widgets/templatesDependencies/rangeMixin.js +0 -110
  236. package/dist/new-widgets/templatesDependencies/rangeMixin.js.map +0 -1
  237. package/dist/new-widgets/templatesDependencies/setMixin.js +0 -12
  238. package/dist/new-widgets/templatesDependencies/setMixin.js.map +0 -1
  239. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js +0 -12
  240. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js.map +0 -1
  241. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js +0 -18
  242. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js.map +0 -1
  243. package/dist/new-widgets/valueTransformationMixins/dateMixin.js +0 -35
  244. package/dist/new-widgets/valueTransformationMixins/dateMixin.js.map +0 -1
  245. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js +0 -16
  246. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js.map +0 -1
  247. package/dist/new-widgets/valueTransformationMixins/index.js +0 -16
  248. package/dist/new-widgets/valueTransformationMixins/index.js.map +0 -1
  249. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js +0 -25
  250. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js.map +0 -1
  251. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js +0 -17
  252. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js.map +0 -1
  253. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js +0 -27
  254. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js.map +0 -1
  255. package/dist/solid-template-element.js +0 -164
  256. package/dist/solid-template-element.js.map +0 -1
  257. package/dist/style/default-theme.css +0 -24
  258. package/dist/style/default-theme.css.proxy.js +0 -10
  259. package/dist/widgets/baseWidget.js +0 -332
  260. package/dist/widgets/baseWidget.js.map +0 -1
  261. package/dist/widgets/widget-factory.js +0 -24
  262. package/dist/widgets/widget-factory.js.map +0 -1
@@ -1,27 +0,0 @@
1
- import { unsafeHTML } from '../../_snowpack/pkg/lit-html/directives/unsafe-html.js';
2
- const OembedMixin = {
3
- name: 'oembed-mixin',
4
- initialState: {
5
- existingOembed: null
6
- },
7
-
8
- created() {
9
- this.listValueTransformations.push(this.transformValue.bind(this));
10
- },
11
-
12
- async transformValue(value, listValueTransformations) {
13
- if (!value) return;
14
-
15
- if (this.existingOembed == null) {
16
- const response = await fetch(this.value);
17
- this.existingOembed = await response.json();
18
- }
19
-
20
- const newValue = unsafeHTML(this.existingOembed.html);
21
- const nextProcessor = listValueTransformations.shift();
22
- if (nextProcessor) nextProcessor(newValue, listValueTransformations);
23
- }
24
-
25
- };
26
- export { OembedMixin };
27
- //# sourceMappingURL=oembedMixin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["oembedMixin.ts"],"names":["unsafeHTML","OembedMixin","name","initialState","existingOembed","created","listValueTransformations","push","transformValue","bind","value","response","fetch","json","newValue","html","nextProcessor","shift"],"mappings":"AAAA,SAASA,UAAT,QAA2B,iCAA3B;AAEA,MAAMC,WAAW,GAAG;AAClBC,EAAAA,IAAI,EAAE,cADY;AAElBC,EAAAA,YAAY,EAAG;AACbC,IAAAA,cAAc,EAAE;AADH,GAFG;;AAKlBC,EAAAA,OAAO,GAAS;AACd,SAAKC,wBAAL,CAA8BC,IAA9B,CAAmC,KAAKC,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAAnC;AACD,GAPiB;;AAQlB,QAAMD,cAAN,CAAqBE,KAArB,EAAoCJ,wBAApC,EAA0E;AACxE,QAAI,CAACI,KAAL,EAAY;;AACZ,QAAI,KAAKN,cAAL,IAAuB,IAA3B,EAAiC;AAC/B,YAAMO,QAAQ,GAAG,MAAMC,KAAK,CAAC,KAAKF,KAAN,CAA5B;AACA,WAAKN,cAAL,GAAsB,MAAMO,QAAQ,CAACE,IAAT,EAA5B;AACD;;AACD,UAAMC,QAAQ,GAAGd,UAAU,CAAC,KAAKI,cAAL,CAAoBW,IAArB,CAA3B;AAEA,UAAMC,aAAa,GAAGV,wBAAwB,CAACW,KAAzB,EAAtB;AACA,QAAGD,aAAH,EAAkBA,aAAa,CAACF,QAAD,EAAWR,wBAAX,CAAb;AACnB;;AAlBiB,CAApB;AAqBA,SACEL,WADF","sourcesContent":["import { unsafeHTML } from 'lit-html/directives/unsafe-html';\n\nconst OembedMixin = {\n name: 'oembed-mixin',\n initialState : {\n existingOembed: null,\n },\n created(): void {\n this.listValueTransformations.push(this.transformValue.bind(this));\n },\n async transformValue(value: string, listValueTransformations: Function[]) {\n if (!value) return;\n if (this.existingOembed == null) {\n const response = await fetch(this.value);\n this.existingOembed = await response.json();\n }\n const newValue = unsafeHTML(this.existingOembed.html);\n \n const nextProcessor = listValueTransformations.shift();\n if(nextProcessor) nextProcessor(newValue, listValueTransformations);\n }\n}\n\nexport {\n OembedMixin\n}"]}
@@ -1,164 +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
- ///@ts-nocheck
4
- export default class SolidTemplateElement extends HTMLElement {
5
- constructor() {
6
- super();
7
-
8
- _defineProperty(this, "renderPlanned", false);
9
-
10
- _defineProperty(this, "strings", {});
11
-
12
- _defineProperty(this, "translationsPath", null);
13
-
14
- _defineProperty(this, "translationsFetched", false);
15
-
16
- _defineProperty(this, "props", {});
17
-
18
- this.initProps();
19
- }
20
-
21
- static get observedAttributes() {
22
- return Object.values(this.propsDefinition);
23
- }
24
-
25
- static get propsDefinition() {
26
- return {};
27
- }
28
-
29
- initProps() {
30
- this.props = {};
31
-
32
- for (let key in this.constructor.propsDefinition) {
33
- this.props[key] = undefined;
34
- }
35
- }
36
-
37
- updateProps() {
38
- const declaredAttributes = []; // Get props values
39
-
40
- for (let key in this.constructor.propsDefinition) {
41
- const def = this.constructor.propsDefinition[key];
42
-
43
- if (typeof def === "string") {
44
- this.props[key] = this.hasAttribute(def) ? this.getAttribute(def) : undefined;
45
- declaredAttributes.push(def);
46
- } else if (typeof def === "object" && def.attribute && typeof def.attribute === "string") {
47
- this.props[key] = this.hasAttribute(def.attribute) ? this.getAttribute(def.attribute) : def.default || undefined;
48
- declaredAttributes.push(def.attribute);
49
- }
50
- } // Add attributes to props
51
-
52
-
53
- for (let attr of this.attributes) {
54
- if (!declaredAttributes.includes(attr.name)) {
55
- // if attribute not in propsDefinition
56
- this.props[this._camelize(attr.name)] = attr.value || undefined; // add it to props
57
- }
58
- }
59
- }
60
- /**
61
- * Define the path folder of translations files
62
- * @param path
63
- */
64
-
65
-
66
- setTranslationsPath(path) {
67
- this.translationsPath = path;
68
- }
69
- /**
70
- * Fetch all localized strings
71
- */
72
-
73
-
74
- async fetchLocaleStrings() {
75
- if (this.translationsFetched) return;
76
- const filesToFetch = [];
77
- if (this.translationsPath) // fetch component translations
78
- filesToFetch.push(this.fetchTranslationFile(this.translationsPath));
79
- const extraTranslationsPath = this.getAttribute('extra-translations-path');
80
- if (extraTranslationsPath) // fetch developer translations
81
- filesToFetch.push(this.fetchTranslationFile(extraTranslationsPath)); // merge all translations
82
-
83
- return Promise.all(filesToFetch).then(res => {
84
- this.translationsFetched = true;
85
- this.strings = Object.assign({}, ...res);
86
- });
87
- }
88
- /**
89
- * Fetch the translation file from [path]
90
- */
91
-
92
-
93
- async fetchTranslationFile(path) {
94
- const ln = this.getLocale();
95
- const fullPath = "".concat(path, "/").concat(ln, ".json");
96
- return fetch(fullPath).then(result => {
97
- if (result.ok) {
98
- return result.json() // parse content
99
- .catch(e => console.error("Error while parsing the translation file: ".concat(fullPath)));
100
- }
101
- }).catch(e => console.error("Error while retrieving the translation file: ".concat(fullPath)));
102
- }
103
- /**
104
- * Returns current locale of app
105
- */
106
-
107
-
108
- getLocale() {
109
- return localStorage.getItem('language') || window.navigator.language.slice(0, 2);
110
- }
111
- /**
112
- * Return localized string for [key]
113
- * @param key
114
- */
115
-
116
-
117
- localize(key) {
118
- return this.strings[key] || key;
119
- }
120
-
121
- attributeChangedCallback() {
122
- this.updateProps();
123
- this.planRender();
124
- }
125
-
126
- connectedCallback() {
127
- this.updateProps();
128
- this.planRender();
129
- }
130
- /**
131
- * Plan a render if none is already waiting to prevent multi re-renders
132
- */
133
-
134
-
135
- planRender() {
136
- if (!this.renderPlanned) {
137
- this.renderPlanned = true;
138
- setTimeout(() => {
139
- this.render();
140
- this.renderPlanned = false;
141
- });
142
- }
143
- }
144
-
145
- renderCallback() {}
146
-
147
- render() {
148
- this.fetchLocaleStrings().finally(() => {
149
- // render even if some errors occurred
150
- this.innerHTML = this.template(this.props);
151
- this.renderCallback();
152
- });
153
- }
154
-
155
- template() {
156
- return '';
157
- }
158
-
159
- _camelize(str) {
160
- return str.replace(/\W+(.)/g, (match, chr) => chr.toUpperCase());
161
- }
162
-
163
- }
164
- //# sourceMappingURL=solid-template-element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["solid-template-element.ts"],"names":["SolidTemplateElement","HTMLElement","constructor","initProps","observedAttributes","Object","values","propsDefinition","props","key","undefined","updateProps","declaredAttributes","def","hasAttribute","getAttribute","push","attribute","default","attr","attributes","includes","name","_camelize","value","setTranslationsPath","path","translationsPath","fetchLocaleStrings","translationsFetched","filesToFetch","fetchTranslationFile","extraTranslationsPath","Promise","all","then","res","strings","assign","ln","getLocale","fullPath","fetch","result","ok","json","catch","e","console","error","localStorage","getItem","window","navigator","language","slice","localize","attributeChangedCallback","planRender","connectedCallback","renderPlanned","setTimeout","render","renderCallback","finally","innerHTML","template","str","replace","match","chr","toUpperCase"],"mappings":"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","sourcesContent":["///@ts-nocheck\n\nexport default class SolidTemplateElement extends HTMLElement {\n renderPlanned = false;\n strings = {};\n translationsPath = null;\n translationsFetched = false;\n props : {[key:string]:any} = {}\n constructor() {\n super();\n this.initProps();\n }\n static get observedAttributes() {\n return Object.values(this.propsDefinition);\n }\n\n static get propsDefinition():{[key:string]:any} {\n return {\n };\n }\n\n initProps() {\n this.props = {}\n for(let key in this.constructor.propsDefinition) {\n this.props[key] = undefined;\n }\n }\n\n updateProps() {\n const declaredAttributes: string[] = [];\n\n // Get props values\n for(let key in this.constructor.propsDefinition) {\n const def = this.constructor.propsDefinition[key];\n if (typeof def === \"string\") {\n this.props[key] = this.hasAttribute(def) ? this.getAttribute(def) : undefined;\n declaredAttributes.push(def);\n } else if (typeof def === \"object\" && def.attribute && typeof def.attribute === \"string\") {\n this.props[key] = this.hasAttribute(def.attribute) ? this.getAttribute(def.attribute) : def.default || undefined;\n declaredAttributes.push(def.attribute);\n }\n }\n\n // Add attributes to props\n for (let attr of this.attributes) {\n if (!declaredAttributes.includes(attr.name)) { // if attribute not in propsDefinition\n this.props[this._camelize(attr.name)] = attr.value || undefined; // add it to props\n }\n }\n }\n\n /**\n * Define the path folder of translations files\n * @param path\n */\n setTranslationsPath(path) {\n this.translationsPath = path;\n }\n\n /**\n * Fetch all localized strings\n */\n async fetchLocaleStrings() {\n if (this.translationsFetched) return;\n const filesToFetch:any[] = [];\n if (this.translationsPath) // fetch component translations\n filesToFetch.push(this.fetchTranslationFile(this.translationsPath));\n\n const extraTranslationsPath = this.getAttribute('extra-translations-path');\n if (extraTranslationsPath) // fetch developer translations\n filesToFetch.push(this.fetchTranslationFile(extraTranslationsPath));\n\n // merge all translations\n return Promise.all(filesToFetch).then(res => {\n this.translationsFetched = true;\n this.strings = Object.assign({}, ...res);\n })\n }\n\n /**\n * Fetch the translation file from [path]\n */\n async fetchTranslationFile(path) {\n const ln = this.getLocale();\n const fullPath = `${path}/${ln}.json`;\n return fetch(fullPath)\n .then((result) => {\n if (result.ok) {\n return result.json() // parse content\n .catch(e => console.error(`Error while parsing the translation file: ${fullPath}`));\n }\n }).catch(e => console.error(`Error while retrieving the translation file: ${fullPath}`));\n }\n\n /**\n * Returns current locale of app\n */\n getLocale() {\n return localStorage.getItem('language') || window.navigator.language.slice(0, 2);\n }\n\n /**\n * Return localized string for [key]\n * @param key\n */\n localize(key) {\n return this.strings[key] || key;\n }\n\n attributeChangedCallback()\n {\n this.updateProps();\n this.planRender();\n }\n\n connectedCallback() {\n this.updateProps();\n this.planRender();\n }\n\n /**\n * Plan a render if none is already waiting to prevent multi re-renders\n */\n planRender() {\n if (!this.renderPlanned) {\n this.renderPlanned = true;\n setTimeout(() => {\n this.render();\n this.renderPlanned = false;\n });\n }\n }\n\n renderCallback() { }\n\n render() {\n this.fetchLocaleStrings().finally(() => { // render even if some errors occurred\n this.innerHTML = this.template(this.props);\n this.renderCallback();\n });\n }\n\n template() {\n return '';\n }\n\n _camelize(str) {\n return str.replace(/\\W+(.)/g, (match, chr) => chr.toUpperCase());\n }\n}\n"]}
@@ -1,24 +0,0 @@
1
- /*==== SOLID-MAP ====*/
2
- /* map custom marker */
3
- .sib-custom-marker {
4
- position: absolute;
5
- top: 40%;
6
- left: 50%;
7
- margin-left: 115px;
8
- border-radius: 50%;
9
- border: 8px solid #1c78c9;
10
- width: 8px;
11
- height: 8px;
12
- }
13
- .sib-custom-marker::after {
14
- position: absolute;
15
- content: '';
16
- width: 0px;
17
- height: 0px;
18
- bottom: -30px;
19
- left: -6px;
20
- border: 10px solid transparent;
21
- border-top-width: 17px;
22
- border-top-style: solid;
23
- border-top-color: inherit;
24
- }
@@ -1,10 +0,0 @@
1
- // [snowpack] add styles to the page (skip if no document exists)
2
- if (typeof document !== 'undefined') {
3
- const code = "/*==== SOLID-MAP ====*/\n/* map custom marker */\n.sib-custom-marker {\n position: absolute;\n top: 40%;\n left: 50%;\n margin-left: 115px;\n border-radius: 50%;\n border: 8px solid #1c78c9;\n width: 8px;\n height: 8px;\n}\n.sib-custom-marker::after {\n position: absolute;\n content: '';\n width: 0px;\n height: 0px;\n bottom: -30px;\n left: -6px;\n border: 10px solid transparent;\n border-top-width: 17px;\n border-top-style: solid;\n border-top-color: inherit;\n}";
4
-
5
- const styleEl = document.createElement("style");
6
- const codeEl = document.createTextNode(code);
7
- styleEl.type = 'text/css';
8
- styleEl.appendChild(codeEl);
9
- document.head.appendChild(styleEl);
10
- }
@@ -1,332 +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 { evalTemplateString } from '../libs/helpers.js';
4
- import { store } from '../libs/store/store.js';
5
- export class BaseWidget extends HTMLElement {
6
- constructor(...args) {
7
- super(...args);
8
-
9
- _defineProperty(this, "src", void 0);
10
-
11
- _defineProperty(this, "multiple", void 0);
12
-
13
- _defineProperty(this, "editable", void 0);
14
-
15
- _defineProperty(this, "required", void 0);
16
-
17
- _defineProperty(this, "resourceId", void 0);
18
-
19
- _defineProperty(this, "_value", void 0);
20
-
21
- _defineProperty(this, "_range", void 0);
22
-
23
- _defineProperty(this, "_context", void 0);
24
-
25
- _defineProperty(this, "_subscriptions", new Map());
26
- }
27
-
28
- connectedCallback() {
29
- this.render();
30
- }
31
-
32
- disconnectedCallback() {
33
- this._subscriptions.forEach(subscription => {
34
- PubSub.unsubscribe(subscription);
35
- });
36
- }
37
-
38
- async render() {
39
- this.innerHTML = await evalTemplateString(this.template, {
40
- src: this.src,
41
- name: this.name,
42
- label: this.label,
43
- placeholder: this.placeholder,
44
- value: this.value,
45
- id: this._value && this._value['@id'] || '',
46
- escapedValue: this.escapedValue,
47
- range: await this.htmlRange,
48
- multiple: this.multiple,
49
- editable: this.editable === '' ? true : false,
50
- required: this.required === '' ? true : false
51
- });
52
- this.addEditButtons();
53
- this.initChangeEvents();
54
- }
55
-
56
- get label() {
57
- return this.hasAttribute('label') ? this.getAttribute('label') : this.name;
58
- }
59
-
60
- set label(label) {
61
- if (label != null) this.setAttribute('label', label);
62
- this.render();
63
- }
64
-
65
- get placeholder() {
66
- return this.hasAttribute('placeholder') ? this.getAttribute('placeholder') : this.label;
67
- }
68
-
69
- set placeholder(placeholder) {
70
- if (placeholder != null) this.setAttribute('placeholder', placeholder);
71
- this.render();
72
- }
73
-
74
- get name() {
75
- return this.getAttribute('name');
76
- }
77
-
78
- set name(name) {
79
- if (name) this.setAttribute('name', name);
80
- this.render();
81
- }
82
-
83
- get value() {
84
- if (this.dataHolder) {
85
- let values = this.dataHolder.map(element => {
86
- if (element instanceof HTMLInputElement && element.type == "checkbox") return element.checked; // if value is defined, push it in the array
87
-
88
- return this.getValueHolder(element).value;
89
- }); // If only one value, do not return an array
90
-
91
- return values.length === 1 ? values[0] : values;
92
- }
93
-
94
- return this._value || '';
95
- }
96
-
97
- set value(value) {
98
- this._value = value; // ... store `value` in the widget
99
-
100
- if (this._value == null || this._value == undefined) return;
101
-
102
- if (this.dataHolder && this.dataHolder.length === 1) {
103
- // if one dataHolder in the widget...
104
- const element = this.getValueHolder(this.dataHolder[0]);
105
-
106
- if (element.type == "checkbox") {
107
- element.checked = value;
108
- } else {
109
- element.value = value; // ... set `value` to the dataHolder element
110
- } // remove when https://git.happy-dev.fr/startinblox/framework/sib-core/issues/426 fixed
111
-
112
-
113
- if (element.dispatchEvent) element.dispatchEvent(new Event('change')); // trigger change manually
114
- } else if (this.dataHolder && this.dataHolder.length > 1) {
115
- // if multiple dataHolder in the widget ...
116
- this.dataHolder.forEach((el, index) => {
117
- const element = this.getValueHolder(el);
118
-
119
- if (element.type == "checkbox") {
120
- element.checked = value ? value[index] : '';
121
- } else {
122
- element.value = value ? value[index] : '';
123
- }
124
-
125
- element.dispatchEvent(new Event('change')); // trigger change manually
126
- }); // ... set each `value` to each dataHolder element
127
- }
128
-
129
- this.render();
130
- }
131
-
132
- get ['each-label']() {
133
- return this.getAttribute('each-label') || '';
134
- }
135
-
136
- set ['each-label'](label) {
137
- this.setAttribute('each-label', label);
138
- }
139
-
140
- set ['add-label'](label) {
141
- this.setAttribute('add-label', label);
142
- }
143
-
144
- set ['remove-label'](label) {
145
- this.setAttribute('remove-label', label);
146
- }
147
-
148
- get dataHolder() {
149
- const widgetDataHolders = Array.from(this.querySelectorAll('[data-holder]')).filter(element => {
150
- const dataHolderAncestor = element.parentElement ? element.parentElement.closest('[data-holder]') : null; // get the dataHolder of the widget only if no dataHolder ancestor in the current widget
151
-
152
- return dataHolderAncestor === this || !dataHolderAncestor || !this.contains(dataHolderAncestor);
153
- });
154
- return widgetDataHolders.length ? widgetDataHolders : null;
155
- }
156
-
157
- get template() {
158
- return '';
159
- }
160
-
161
- get childTemplate() {
162
- return '';
163
- }
164
-
165
- get escapedValue() {
166
- return ('' + this.value).replace(/&/g, '&').replace(/'/g, ''').replace(/"/g, '"');
167
- }
168
-
169
- set context(value) {
170
- this._context = value;
171
- }
172
-
173
- get context() {
174
- return this._context || {};
175
- }
176
-
177
- get range() {
178
- return this.fetchSources(this._range);
179
- }
180
-
181
- set range(range) {
182
- (async () => {
183
- this._listen(range, async () => this._range = await store.getData(range, this.context));
184
-
185
- this._range = await store.getData(range, this.context);
186
- this.render();
187
- })();
188
- }
189
-
190
- async fetchSources(resource) {
191
- if (!resource || !resource['ldp:contains']) return null;
192
- let resources = [];
193
- let index = 0;
194
-
195
- for (let res of resource['ldp:contains']) {
196
- if (!res) {
197
- // child not in cache yet
198
- try {
199
- const resourceId = resource.getChildren()[index]['@id'];
200
- res = await store.getData(resourceId, this.context);
201
- } catch (e) {
202
- continue;
203
- }
204
- }
205
-
206
- if (res.isContainer()) {
207
- // if nested container
208
- let resourcesFromContainer = await store.getData(res['@id'], this.context); // fetch the datas
209
-
210
- this._listen(res['@id']);
211
-
212
- if (resourcesFromContainer) resources.push(...resourcesFromContainer['ldp:contains']);
213
- } else {
214
- resources.push(res);
215
- }
216
-
217
- index++;
218
- }
219
-
220
- return resources;
221
- }
222
-
223
- get htmlRange() {
224
- return (async () => {
225
- let htmlRange = '';
226
- const rangeResources = await this.range;
227
- if (!rangeResources) return;
228
-
229
- for await (let element of rangeResources) {
230
- element = await store.getData(element['@id'], this.context); // fetch the resource to display the name
231
-
232
- this._listen(element['@id']);
233
-
234
- let selected;
235
-
236
- if (this._value && this._value.isContainer && this._value.isContainer()) {
237
- // selected options for multiple select
238
- selected = false;
239
-
240
- for await (let value of this._value["ldp:contains"]) {
241
- if (value['@id'] == element['@id']) {
242
- selected = true;
243
- break;
244
- }
245
- }
246
- } else {
247
- // selected options for simple dropdowns
248
- selected = this._value ? this._value['@id'] == element['@id'] : false;
249
- }
250
-
251
- htmlRange += await evalTemplateString(this.childTemplate, {
252
- name: await element.name,
253
- id: element['@id'],
254
- selected: selected
255
- });
256
- }
257
-
258
- return htmlRange || '';
259
- })();
260
- }
261
-
262
- getValueHolder(element) {
263
- return element.component ? element.component : element;
264
- }
265
-
266
- subscribe(event) {
267
- this._listen(event);
268
- }
269
-
270
- _listen(id, callback = () => {}) {
271
- if (!this._subscriptions.get(id)) {
272
- this._subscriptions.set(id, PubSub.subscribe(id, async () => {
273
- await callback();
274
- this.render();
275
- }));
276
- }
277
- } // Editable widgets
278
-
279
-
280
- addEditButtons() {
281
- const editableField = this.querySelector('[data-editable]');
282
-
283
- if (editableField) {
284
- // Add edit button
285
- const editButton = document.createElement('button');
286
- editButton.innerText = "Modifier";
287
-
288
- editButton.onclick = () => this.activateEditableField(editableField, editButton);
289
-
290
- editableField.insertAdjacentElement('afterend', editButton); // Save on focusout
291
-
292
- editableField.addEventListener('focusout', () => this.save(editableField, editButton));
293
- }
294
- }
295
-
296
- activateEditableField(editableField, editButton) {
297
- editableField.setAttribute('contenteditable', 'true');
298
- editableField.focus();
299
- editButton.setAttribute("disabled", "disabled");
300
- }
301
- /**
302
- * Dispatch change events of data holders from the current widget
303
- */
304
-
305
-
306
- initChangeEvents() {
307
- if (this.dataHolder) {
308
- const event = new Event('change', {
309
- bubbles: true
310
- });
311
- this.dataHolder.forEach(element => {
312
- element.addEventListener('change', e => {
313
- e.preventDefault();
314
- e.stopPropagation();
315
- this.dispatchEvent(event);
316
- });
317
- });
318
- }
319
- }
320
-
321
- save(editableField, editButton) {
322
- editableField.setAttribute('contenteditable', 'false');
323
- editButton.removeAttribute("disabled");
324
- if (!this.name) return;
325
- const resource = {};
326
- resource[this.name] = editableField.innerText;
327
- resource['@context'] = this.context;
328
- if (this.resourceId && resource) store.patch(resource, this.resourceId);
329
- }
330
-
331
- }
332
- //# sourceMappingURL=baseWidget.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["baseWidget.ts"],"names":["evalTemplateString","store","BaseWidget","HTMLElement","Map","connectedCallback","render","disconnectedCallback","_subscriptions","forEach","subscription","PubSub","unsubscribe","innerHTML","template","src","name","label","placeholder","value","id","_value","escapedValue","range","htmlRange","multiple","editable","required","addEditButtons","initChangeEvents","hasAttribute","getAttribute","setAttribute","dataHolder","values","map","element","HTMLInputElement","type","checked","getValueHolder","length","undefined","dispatchEvent","Event","el","index","widgetDataHolders","Array","from","querySelectorAll","filter","dataHolderAncestor","parentElement","closest","contains","childTemplate","replace","context","_context","fetchSources","_range","_listen","getData","resource","resources","res","resourceId","getChildren","e","isContainer","resourcesFromContainer","push","rangeResources","selected","component","subscribe","event","callback","get","set","editableField","querySelector","editButton","document","createElement","innerText","onclick","activateEditableField","insertAdjacentElement","addEventListener","save","focus","bubbles","preventDefault","stopPropagation","removeAttribute","patch"],"mappings":"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","sourcesContent":["import { evalTemplateString } from '../libs/helpers';\nimport { store } from '../libs/store/store';\n\nexport class BaseWidget extends HTMLElement {\n private src: string | undefined;\n private multiple: string | undefined;\n private editable: string | undefined;\n private required: string | undefined;\n private resourceId: string | undefined;\n public _value: any | undefined;\n private _range: any | undefined;\n private _context: object | undefined;\n private _subscriptions = new Map();\n\n connectedCallback(): void {\n this.render();\n }\n disconnectedCallback(): void {\n this._subscriptions.forEach((subscription) => {\n PubSub.unsubscribe(subscription);\n })\n }\n async render() {\n this.innerHTML = await evalTemplateString(this.template, {\n src: this.src,\n name: this.name,\n label: this.label,\n placeholder: this.placeholder,\n value: this.value,\n id: (this._value && this._value['@id']) || '',\n escapedValue: this.escapedValue,\n range: await this.htmlRange,\n multiple: this.multiple,\n editable: this.editable === '' ? true : false,\n required: this.required === '' ? true : false\n });\n\n this.addEditButtons();\n this.initChangeEvents();\n }\n get label(): string | null {\n return this.hasAttribute('label') ? this.getAttribute('label') : this.name;\n }\n set label(label: string | null) {\n if(label != null) this.setAttribute('label', label);\n this.render();\n }\n get placeholder(): string | null {\n return this.hasAttribute('placeholder') ? this.getAttribute('placeholder') : this.label;\n }\n set placeholder(placeholder: string | null) {\n if(placeholder != null) this.setAttribute('placeholder', placeholder);\n this.render();\n }\n get name(): string | null {\n return this.getAttribute('name');\n }\n set name(name: string | null) {\n if(name) this.setAttribute('name', name);\n this.render();\n }\n get value() {\n if (this.dataHolder) {\n let values = this.dataHolder.map(element => {\n if (element instanceof HTMLInputElement && element.type == \"checkbox\") return element.checked;\n // if value is defined, push it in the array\n return this.getValueHolder(element).value;\n });\n // If only one value, do not return an array\n return values.length === 1 ? values[0] : values;\n }\n return this._value || '';\n }\n set value(value) {\n this._value = value; // ... store `value` in the widget\n if (this._value == null || this._value == undefined) return;\n\n if (this.dataHolder && this.dataHolder.length === 1) {\n // if one dataHolder in the widget...\n const element = this.getValueHolder(this.dataHolder[0]);\n if (element.type == \"checkbox\") {\n element.checked = value;\n } else {\n element.value = value; // ... set `value` to the dataHolder element\n }\n // remove when https://git.happy-dev.fr/startinblox/framework/sib-core/issues/426 fixed\n if (element.dispatchEvent) element.dispatchEvent(new Event('change')); // trigger change manually\n } else if (this.dataHolder && this.dataHolder.length > 1) {\n // if multiple dataHolder in the widget ...\n this.dataHolder.forEach(\n (el, index) => {\n const element = this.getValueHolder(el);\n if (element.type == \"checkbox\") {\n element.checked = value ? value[index] : ''\n } else {\n element.value = value ? value[index] : ''\n }\n element.dispatchEvent(new Event('change')); // trigger change manually\n },\n ); // ... set each `value` to each dataHolder element\n }\n\n this.render();\n }\n get ['each-label'](): string{\n return this.getAttribute('each-label') || '';\n }\n set ['each-label'](label: string) {\n this.setAttribute('each-label', label);\n }\n set ['add-label'](label: string) {\n this.setAttribute('add-label', label);\n }\n set ['remove-label'](label: string) {\n this.setAttribute('remove-label', label);\n }\n get dataHolder(): Element[] | null {\n const widgetDataHolders = Array.from(this.querySelectorAll('[data-holder]')).filter(element => {\n const dataHolderAncestor = element.parentElement ? element.parentElement.closest('[data-holder]') : null;\n // get the dataHolder of the widget only if no dataHolder ancestor in the current widget\n return dataHolderAncestor === this || !dataHolderAncestor || !this.contains(dataHolderAncestor)\n });\n\n return widgetDataHolders.length ? widgetDataHolders : null;\n }\n get template(): string {\n return '';\n }\n get childTemplate(): string {\n return '';\n }\n get escapedValue(): string {\n return ('' + this.value)\n .replace(/&/g, '&amp;')\n .replace(/'/g, '&apos;')\n .replace(/\"/g, '&quot;');\n }\n set context(value) {\n this._context = value;\n }\n get context() {\n return this._context || {};\n }\n\n get range(): any {\n return this.fetchSources(this._range);\n }\n set range(range) {\n (async () => {\n this._listen(range, async () => this._range = await store.getData(range, this.context));\n this._range = await store.getData(range, this.context);\n this.render();\n })();\n }\n async fetchSources(resource: any) {\n if (!resource || !resource['ldp:contains']) return null;\n let resources: any[] = [];\n let index = 0;\n for (let res of resource['ldp:contains']) {\n if (!res) { // child not in cache yet\n try {\n const resourceId = resource.getChildren()[index]['@id'];\n res = await store.getData(resourceId, this.context)\n } catch (e) { continue; }\n }\n if (res.isContainer()) { // if nested container\n let resourcesFromContainer = await store.getData(res['@id'], this.context); // fetch the datas\n this._listen(res['@id']);\n if (resourcesFromContainer) resources.push(...resourcesFromContainer['ldp:contains']);\n } else {\n resources.push(res);\n }\n index++;\n }\n return resources;\n }\n\n get htmlRange(): Promise<string | undefined> {\n return (async () => {\n let htmlRange = '';\n const rangeResources = await this.range;\n if (!rangeResources) return;\n for await (let element of rangeResources) {\n element = await store.getData(element['@id'], this.context); // fetch the resource to display the name\n this._listen(element['@id']);\n\n let selected: boolean;\n if (this._value && this._value.isContainer && this._value.isContainer()) { // selected options for multiple select\n selected = false;\n for await (let value of this._value[\"ldp:contains\"]) {\n if (value['@id'] == element['@id']) {\n selected = true;\n break;\n }\n }\n } else { // selected options for simple dropdowns\n selected = this._value ? this._value['@id'] == element['@id'] : false;\n }\n htmlRange += await evalTemplateString(this.childTemplate, {\n name: await element.name,\n id: element['@id'],\n selected: selected\n });\n }\n return htmlRange || '';\n })();\n }\n getValueHolder(element) {\n return element.component ? element.component : element;\n }\n\n subscribe(event: string) {\n this._listen(event);\n }\n\n _listen(id: string, callback: Function = () => {}) {\n if (!this._subscriptions.get(id)) {\n this._subscriptions.set(id, PubSub.subscribe(id, async () => {\n await callback();\n this.render();\n }))\n }\n }\n\n // Editable widgets\n addEditButtons(): void {\n const editableField = this.querySelector('[data-editable]') as HTMLElement;\n\n if (editableField) {\n // Add edit button\n const editButton = document.createElement('button');\n editButton.innerText = \"Modifier\";\n editButton.onclick = () => this.activateEditableField(editableField, editButton);\n editableField.insertAdjacentElement('afterend', editButton);\n\n // Save on focusout\n editableField.addEventListener('focusout', () => this.save(editableField, editButton));\n }\n }\n activateEditableField(editableField: HTMLElement, editButton: HTMLButtonElement): void {\n editableField.setAttribute('contenteditable', 'true');\n editableField.focus();\n editButton.setAttribute(\"disabled\", \"disabled\");\n }\n /**\n * Dispatch change events of data holders from the current widget\n */\n initChangeEvents(): void {\n if (this.dataHolder) {\n const event = new Event('change', { bubbles: true });\n this.dataHolder.forEach(element => {\n element.addEventListener('change', e => {\n e.preventDefault();\n e.stopPropagation();\n this.dispatchEvent(event);\n });\n });\n }\n }\n save(editableField: HTMLElement, editButton: HTMLButtonElement): void {\n editableField.setAttribute('contenteditable', 'false');\n editButton.removeAttribute(\"disabled\");\n\n if (!this.name) return;\n const resource = {};\n resource[this.name] = editableField.innerText;\n resource['@context'] = this.context;\n\n if(this.resourceId && resource) store.patch(resource, this.resourceId)\n }\n}\n"]}
@@ -1,24 +0,0 @@
1
- import { BaseWidget } from './baseWidget.js';
2
- import { defineComponent } from '../libs/helpers.js';
3
- export const widgetFactory = (tagName, customTemplate, childTemplate = '', callback) => {
4
- const registered = customElements.get(tagName);
5
- if (registered) return registered;
6
- const cls = class extends BaseWidget {
7
- async render() {
8
- await super.render();
9
- if (callback) callback(this);
10
- }
11
-
12
- get template() {
13
- return customTemplate;
14
- }
15
-
16
- get childTemplate() {
17
- return childTemplate;
18
- }
19
-
20
- };
21
- defineComponent(tagName, cls);
22
- return cls;
23
- };
24
- //# sourceMappingURL=widget-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["widget-factory.ts"],"names":["BaseWidget","defineComponent","widgetFactory","tagName","customTemplate","childTemplate","callback","registered","customElements","get","cls","render","template"],"mappings":"AAAA,SAASA,UAAT,QAA2B,cAA3B;AACA,SAASC,eAAT,QAAgC,iBAAhC;AAEA,OAAO,MAAMC,aAAa,GAAG,CAC3BC,OAD2B,EAE3BC,cAF2B,EAG3BC,aAAqB,GAAG,EAHG,EAI3BC,QAJ2B,KAKxB;AACH,QAAMC,UAAU,GAAGC,cAAc,CAACC,GAAf,CAAmBN,OAAnB,CAAnB;AACA,MAAII,UAAJ,EAAgB,OAAOA,UAAP;AAChB,QAAMG,GAAG,GAAG,cAAcV,UAAd,CAAyB;AACnC,UAAMW,MAAN,GAAe;AACb,YAAM,MAAMA,MAAN,EAAN;AACA,UAAIL,QAAJ,EAAcA,QAAQ,CAAC,IAAD,CAAR;AACf;;AACD,QAAIM,QAAJ,GAAuB;AACrB,aAAOR,cAAP;AACD;;AACD,QAAIC,aAAJ,GAA4B;AAC1B,aAAOA,aAAP;AACD;;AAVkC,GAArC;AAYAJ,EAAAA,eAAe,CAACE,OAAD,EAAUO,GAAV,CAAf;AACA,SAAOA,GAAP;AACD,CAtBM","sourcesContent":["import { BaseWidget } from './baseWidget';\nimport { defineComponent } from '../libs/helpers';\n\nexport const widgetFactory = (\n tagName: string,\n customTemplate: string,\n childTemplate: string = '',\n callback?: (element: Element) => void,\n) => {\n const registered = customElements.get(tagName);\n if (registered) return registered;\n const cls = class extends BaseWidget {\n async render() {\n await super.render();\n if (callback) callback(this);\n }\n get template(): string {\n return customTemplate;\n }\n get childTemplate(): string {\n return childTemplate;\n }\n };\n defineComponent(tagName, cls);\n return cls;\n};\n"]}