@startinblox/core 0.17.21-beta.9 → 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 (260) 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/filter.js +0 -214
  100. package/dist/libs/filter.js.map +0 -1
  101. package/dist/libs/helpers.js +0 -219
  102. package/dist/libs/helpers.js.map +0 -1
  103. package/dist/libs/interfaces.js +0 -6
  104. package/dist/libs/interfaces.js.map +0 -1
  105. package/dist/libs/lit-helpers.js +0 -169
  106. package/dist/libs/lit-helpers.js.map +0 -1
  107. package/dist/libs/polyfills.js +0 -40
  108. package/dist/libs/polyfills.js.map +0 -1
  109. package/dist/libs/store/store.js +0 -863
  110. package/dist/libs/store/store.js.map +0 -1
  111. package/dist/locales/en.json +0 -10
  112. package/dist/locales/en.json.proxy.js +0 -2
  113. package/dist/locales/fr.json +0 -10
  114. package/dist/locales/fr.json.proxy.js +0 -2
  115. package/dist/mixins/attributeBinderMixin.js +0 -124
  116. package/dist/mixins/attributeBinderMixin.js.map +0 -1
  117. package/dist/mixins/contextMixin.js +0 -28
  118. package/dist/mixins/contextMixin.js.map +0 -1
  119. package/dist/mixins/counterMixin.js +0 -75
  120. package/dist/mixins/counterMixin.js.map +0 -1
  121. package/dist/mixins/federationMixin.js +0 -63
  122. package/dist/mixins/federationMixin.js.map +0 -1
  123. package/dist/mixins/filterMixin.js +0 -136
  124. package/dist/mixins/filterMixin.js.map +0 -1
  125. package/dist/mixins/grouperMixin.js +0 -80
  126. package/dist/mixins/grouperMixin.js.map +0 -1
  127. package/dist/mixins/highlighterMixin.js +0 -42
  128. package/dist/mixins/highlighterMixin.js.map +0 -1
  129. package/dist/mixins/interfaces.js +0 -8
  130. package/dist/mixins/interfaces.js.map +0 -1
  131. package/dist/mixins/listMixin.js +0 -136
  132. package/dist/mixins/listMixin.js.map +0 -1
  133. package/dist/mixins/nextMixin.js +0 -26
  134. package/dist/mixins/nextMixin.js.map +0 -1
  135. package/dist/mixins/paginateMixin.js +0 -110
  136. package/dist/mixins/paginateMixin.js.map +0 -1
  137. package/dist/mixins/requiredMixin.js +0 -34
  138. package/dist/mixins/requiredMixin.js.map +0 -1
  139. package/dist/mixins/sorterMixin.js +0 -149
  140. package/dist/mixins/sorterMixin.js.map +0 -1
  141. package/dist/mixins/storeMixin.js +0 -102
  142. package/dist/mixins/storeMixin.js.map +0 -1
  143. package/dist/mixins/translationMixin.js +0 -68
  144. package/dist/mixins/translationMixin.js.map +0 -1
  145. package/dist/mixins/validationMixin.js +0 -113
  146. package/dist/mixins/validationMixin.js.map +0 -1
  147. package/dist/mixins/widgetMixin.js +0 -447
  148. package/dist/mixins/widgetMixin.js.map +0 -1
  149. package/dist/new-widgets/attributeMixins/actionMixin.js +0 -14
  150. package/dist/new-widgets/attributeMixins/actionMixin.js.map +0 -1
  151. package/dist/new-widgets/attributeMixins/blankMixin.js +0 -10
  152. package/dist/new-widgets/attributeMixins/blankMixin.js.map +0 -1
  153. package/dist/new-widgets/attributeMixins/booleanMixin.js +0 -10
  154. package/dist/new-widgets/attributeMixins/booleanMixin.js.map +0 -1
  155. package/dist/new-widgets/attributeMixins/index.js +0 -20
  156. package/dist/new-widgets/attributeMixins/index.js.map +0 -1
  157. package/dist/new-widgets/attributeMixins/mailtoMixin.js +0 -10
  158. package/dist/new-widgets/attributeMixins/mailtoMixin.js.map +0 -1
  159. package/dist/new-widgets/attributeMixins/multipleMixin.js +0 -28
  160. package/dist/new-widgets/attributeMixins/multipleMixin.js.map +0 -1
  161. package/dist/new-widgets/attributeMixins/numberMixin.js +0 -10
  162. package/dist/new-widgets/attributeMixins/numberMixin.js.map +0 -1
  163. package/dist/new-widgets/attributeMixins/placeholderMixin.js +0 -19
  164. package/dist/new-widgets/attributeMixins/placeholderMixin.js.map +0 -1
  165. package/dist/new-widgets/attributeMixins/telMixin.js +0 -10
  166. package/dist/new-widgets/attributeMixins/telMixin.js.map +0 -1
  167. package/dist/new-widgets/baseWidgetMixin.js +0 -122
  168. package/dist/new-widgets/baseWidgetMixin.js.map +0 -1
  169. package/dist/new-widgets/callbackMixins/autocompletionMixin.js +0 -104
  170. package/dist/new-widgets/callbackMixins/autocompletionMixin.js.map +0 -1
  171. package/dist/new-widgets/callbackMixins/index.js +0 -8
  172. package/dist/new-widgets/callbackMixins/index.js.map +0 -1
  173. package/dist/new-widgets/callbackMixins/richtextMixin.js +0 -42
  174. package/dist/new-widgets/callbackMixins/richtextMixin.js.map +0 -1
  175. package/dist/new-widgets/callbackMixins/slimselect.css +0 -2
  176. package/dist/new-widgets/callbackMixins/slimselect.css.proxy.js +0 -10
  177. package/dist/new-widgets/new-widget-factory.js +0 -96
  178. package/dist/new-widgets/new-widget-factory.js.map +0 -1
  179. package/dist/new-widgets/templateAdditionMixins/addableMixin.js +0 -41
  180. package/dist/new-widgets/templateAdditionMixins/addableMixin.js.map +0 -1
  181. package/dist/new-widgets/templateAdditionMixins/index.js +0 -14
  182. package/dist/new-widgets/templateAdditionMixins/index.js.map +0 -1
  183. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js +0 -29
  184. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js.map +0 -1
  185. package/dist/new-widgets/templateAdditionMixins/labelMixin.js +0 -31
  186. package/dist/new-widgets/templateAdditionMixins/labelMixin.js.map +0 -1
  187. package/dist/new-widgets/templates/defaultTemplatesDirectory.js +0 -36
  188. package/dist/new-widgets/templates/defaultTemplatesDirectory.js.map +0 -1
  189. package/dist/new-widgets/templates/displayTemplatesDirectory.js +0 -90
  190. package/dist/new-widgets/templates/displayTemplatesDirectory.js.map +0 -1
  191. package/dist/new-widgets/templates/formTemplatesDirectory.js +0 -397
  192. package/dist/new-widgets/templates/formTemplatesDirectory.js.map +0 -1
  193. package/dist/new-widgets/templates/groupTemplatesDirectory.js +0 -21
  194. package/dist/new-widgets/templates/groupTemplatesDirectory.js.map +0 -1
  195. package/dist/new-widgets/templates/index.js +0 -7
  196. package/dist/new-widgets/templates/index.js.map +0 -1
  197. package/dist/new-widgets/templates/setTemplatesDirectory.js +0 -49
  198. package/dist/new-widgets/templates/setTemplatesDirectory.js.map +0 -1
  199. package/dist/new-widgets/templatesDependencies/altMixin.js +0 -13
  200. package/dist/new-widgets/templatesDependencies/altMixin.js.map +0 -1
  201. package/dist/new-widgets/templatesDependencies/editableMixin.js +0 -77
  202. package/dist/new-widgets/templatesDependencies/editableMixin.js.map +0 -1
  203. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js +0 -38
  204. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js.map +0 -1
  205. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js +0 -14
  206. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js.map +0 -1
  207. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js +0 -51
  208. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js.map +0 -1
  209. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js +0 -66
  210. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js.map +0 -1
  211. package/dist/new-widgets/templatesDependencies/formFileMixin.js +0 -81
  212. package/dist/new-widgets/templatesDependencies/formFileMixin.js.map +0 -1
  213. package/dist/new-widgets/templatesDependencies/formLengthMixin.js +0 -19
  214. package/dist/new-widgets/templatesDependencies/formLengthMixin.js.map +0 -1
  215. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js +0 -19
  216. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js.map +0 -1
  217. package/dist/new-widgets/templatesDependencies/formMixin.js +0 -66
  218. package/dist/new-widgets/templatesDependencies/formMixin.js.map +0 -1
  219. package/dist/new-widgets/templatesDependencies/formNumberMixin.js +0 -14
  220. package/dist/new-widgets/templatesDependencies/formNumberMixin.js.map +0 -1
  221. package/dist/new-widgets/templatesDependencies/formRadioMixin.js +0 -16
  222. package/dist/new-widgets/templatesDependencies/formRadioMixin.js.map +0 -1
  223. package/dist/new-widgets/templatesDependencies/formStepMixin.js +0 -13
  224. package/dist/new-widgets/templatesDependencies/formStepMixin.js.map +0 -1
  225. package/dist/new-widgets/templatesDependencies/linkTextMixin.js +0 -14
  226. package/dist/new-widgets/templatesDependencies/linkTextMixin.js.map +0 -1
  227. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js +0 -125
  228. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js.map +0 -1
  229. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js +0 -74
  230. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js.map +0 -1
  231. package/dist/new-widgets/templatesDependencies/patternMixin.js +0 -19
  232. package/dist/new-widgets/templatesDependencies/patternMixin.js.map +0 -1
  233. package/dist/new-widgets/templatesDependencies/rangeMixin.js +0 -110
  234. package/dist/new-widgets/templatesDependencies/rangeMixin.js.map +0 -1
  235. package/dist/new-widgets/templatesDependencies/setMixin.js +0 -12
  236. package/dist/new-widgets/templatesDependencies/setMixin.js.map +0 -1
  237. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js +0 -12
  238. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js.map +0 -1
  239. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js +0 -18
  240. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js.map +0 -1
  241. package/dist/new-widgets/valueTransformationMixins/dateMixin.js +0 -35
  242. package/dist/new-widgets/valueTransformationMixins/dateMixin.js.map +0 -1
  243. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js +0 -16
  244. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js.map +0 -1
  245. package/dist/new-widgets/valueTransformationMixins/index.js +0 -16
  246. package/dist/new-widgets/valueTransformationMixins/index.js.map +0 -1
  247. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js +0 -25
  248. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js.map +0 -1
  249. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js +0 -17
  250. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js.map +0 -1
  251. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js +0 -27
  252. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js.map +0 -1
  253. package/dist/solid-template-element.js +0 -164
  254. package/dist/solid-template-element.js.map +0 -1
  255. package/dist/style/default-theme.css +0 -24
  256. package/dist/style/default-theme.css.proxy.js +0 -10
  257. package/dist/widgets/baseWidget.js +0 -332
  258. package/dist/widgets/baseWidget.js.map +0 -1
  259. package/dist/widgets/widget-factory.js +0 -24
  260. package/dist/widgets/widget-factory.js.map +0 -1
@@ -1,17 +0,0 @@
1
- import { unsafeHTML } from '../../_snowpack/pkg/lit-html/directives/unsafe-html.js';
2
- const MultilineMixin = {
3
- name: 'multiline-mixin',
4
-
5
- created() {
6
- this.listValueTransformations.push(this.transformValue.bind(this));
7
- },
8
-
9
- transformValue(value, listValueTransformations) {
10
- const newValue = value ? unsafeHTML(value.replace(/\n/g, "<br/>")) : value;
11
- const nextProcessor = listValueTransformations.shift();
12
- if (nextProcessor) nextProcessor(newValue, listValueTransformations);
13
- }
14
-
15
- };
16
- export { MultilineMixin };
17
- //# sourceMappingURL=multilineMixin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["multilineMixin.ts"],"names":["unsafeHTML","MultilineMixin","name","created","listValueTransformations","push","transformValue","bind","value","newValue","replace","nextProcessor","shift"],"mappings":"AAAA,SAASA,UAAT,QAA2B,iCAA3B;AAEA,MAAMC,cAAc,GAAG;AACrBC,EAAAA,IAAI,EAAE,iBADe;;AAErBC,EAAAA,OAAO,GAAG;AACR,SAAKC,wBAAL,CAA8BC,IAA9B,CAAmC,KAAKC,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAAnC;AACD,GAJoB;;AAKrBD,EAAAA,cAAc,CAACE,KAAD,EAAgBJ,wBAAhB,EAAsD;AAClE,UAAMK,QAAQ,GAAGD,KAAK,GAAGR,UAAU,CAACQ,KAAK,CAACE,OAAN,CAAc,KAAd,EAAqB,OAArB,CAAD,CAAb,GAA+CF,KAArE;AAEA,UAAMG,aAAa,GAAGP,wBAAwB,CAACQ,KAAzB,EAAtB;AACA,QAAGD,aAAH,EAAkBA,aAAa,CAACF,QAAD,EAAWL,wBAAX,CAAb;AACnB;;AAVoB,CAAvB;AAaA,SACEH,cADF","sourcesContent":["import { unsafeHTML } from 'lit-html/directives/unsafe-html';\n\nconst MultilineMixin = {\n name: 'multiline-mixin',\n created() {\n this.listValueTransformations.push(this.transformValue.bind(this));\n },\n transformValue(value: string, listValueTransformations: Function[]) {\n const newValue = value ? unsafeHTML(value.replace(/\\n/g, \"<br/>\")) : value;\n\n const nextProcessor = listValueTransformations.shift();\n if(nextProcessor) nextProcessor(newValue, listValueTransformations);\n }\n}\n\nexport {\n MultilineMixin\n}"]}
@@ -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, '&amp;').replace(/'/g, '&apos;').replace(/"/g, '&quot;');
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"]}