@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,46 +0,0 @@
1
- function _templateObject() {
2
- const data = _taggedTemplateLiteral(["\n <button\n @click=", "\n >\n ", "\n </button>\n "]);
3
-
4
- _templateObject = function () {
5
- return data;
6
- };
7
-
8
- return data;
9
- }
10
-
11
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
12
-
13
- import { Sib } from '../libs/Sib.js';
14
- import { store } from '../libs/store/store.js';
15
- import { html, render } from '../_snowpack/pkg/lit-html.js';
16
- export const SolidLang = {
17
- name: 'solid-lang',
18
- use: [],
19
- attributes: {
20
- lang: {
21
- type: String,
22
- default: null
23
- },
24
- dataLabel: {
25
- type: String,
26
- default: null
27
- }
28
- },
29
-
30
- created() {
31
- this.render();
32
- },
33
-
34
- languageLoader() {
35
- store.selectLanguage(this.lang);
36
- location.reload();
37
- },
38
-
39
- render() {
40
- let template = html(_templateObject(), this.languageLoader.bind(this), this.dataLabel);
41
- render(template, this.element);
42
- }
43
-
44
- };
45
- Sib.register(SolidLang);
46
- //# sourceMappingURL=solid-lang.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["solid-lang.ts"],"names":["Sib","store","html","render","SolidLang","name","use","attributes","lang","type","String","default","dataLabel","created","languageLoader","selectLanguage","location","reload","template","bind","element","register"],"mappings":";;;;;;;;;;;;AAAA,SAASA,GAAT,QAAoB,aAApB;AACA,SAASC,KAAT,QAAsB,qBAAtB;AAEA,SAASC,IAAT,EAAeC,MAAf,QAA6B,UAA7B;AAEA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,YADiB;AAEvBC,EAAAA,GAAG,EAAE,EAFkB;AAGvBC,EAAAA,UAAU,EAAE;AACVC,IAAAA,IAAI,EAAE;AACJC,MAAAA,IAAI,EAAEC,MADF;AAEJC,MAAAA,OAAO,EAAE;AAFL,KADI;AAKVC,IAAAA,SAAS,EAAE;AACTH,MAAAA,IAAI,EAAEC,MADG;AAETC,MAAAA,OAAO,EAAE;AAFA;AALD,GAHW;;AAcvBE,EAAAA,OAAO,GAAS;AACd,SAAKV,MAAL;AACD,GAhBsB;;AAkBvBW,EAAAA,cAAc,GAAI;AAChBb,IAAAA,KAAK,CAACc,cAAN,CAAqB,KAAKP,IAA1B;AACAQ,IAAAA,QAAQ,CAACC,MAAT;AACD,GArBsB;;AAuBvBd,EAAAA,MAAM,GAAG;AACP,QAAIe,QAAQ,GAAGhB,IAAH,oBAED,KAAKY,cAAL,CAAoBK,IAApB,CAAyB,IAAzB,CAFC,EAIR,KAAKP,SAJG,CAAZ;AAQAT,IAAAA,MAAM,CAACe,QAAD,EAAW,KAAKE,OAAhB,CAAN;AACD;;AAjCsB,CAAlB;AAoCPpB,GAAG,CAACqB,QAAJ,CAAajB,SAAb","sourcesContent":["import { Sib } from '../libs/Sib';\nimport { store } from '../libs/store/store';\n\nimport { html, render } from 'lit-html';\n\nexport const SolidLang = {\n name: 'solid-lang',\n use: [],\n attributes: {\n lang: {\n type: String,\n default: null\n },\n dataLabel: {\n type: String,\n default: null\n }\n },\n\n created(): void {\n this.render();\n },\n\n languageLoader () {\n store.selectLanguage(this.lang);\n location.reload();\n },\n\n render() {\n let template = html`\n <button\n @click=${this.languageLoader.bind(this)}\n >\n ${this.dataLabel}\n </button>\n `;\n\n render(template, this.element);\n }\n};\n\nSib.register(SolidLang);"]}
@@ -1,239 +0,0 @@
1
- function _templateObject2() {
2
- const data = _taggedTemplateLiteral(["\n <solid-display\n fields=\"", "\"\n data-src=\"", "\"\n ...=", "\n ></solid-display>\n "]);
3
-
4
- _templateObject2 = function () {
5
- return data;
6
- };
7
-
8
- return data;
9
- }
10
-
11
- function _templateObject() {
12
- const data = _taggedTemplateLiteral(["\n <div id=", " style=\"width:100%;height:100%;\"></div>\n "]);
13
-
14
- _templateObject = function () {
15
- return data;
16
- };
17
-
18
- return data;
19
- }
20
-
21
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
22
-
23
- import { Sib } from '../libs/Sib.js';
24
- import { ListMixin } from '../mixins/listMixin.js';
25
- import { StoreMixin } from '../mixins/storeMixin.js';
26
- import { WidgetMixin } from '../mixins/widgetMixin.js';
27
- import { CounterMixin } from '../mixins/counterMixin.js';
28
- import { FilterMixin } from '../mixins/filterMixin.js';
29
- import { FederationMixin } from '../mixins/federationMixin.js';
30
- import { GrouperMixin } from '../mixins/grouperMixin.js';
31
- import { NextMixin } from '../mixins/nextMixin.js';
32
- import { store } from '../libs/store/store.js';
33
- import { uniqID } from '../libs/helpers.js';
34
- import { spread } from '../libs/lit-helpers.js';
35
- import L from '../_snowpack/pkg/leaflet.js';
36
- import '../_snowpack/pkg/leaflet.markercluster.js';
37
- import { html, render } from '../_snowpack/pkg/lit-html.js';
38
- import { ifDefined } from '../_snowpack/pkg/lit-html/directives/if-defined.js';
39
- export const SolidMap = {
40
- name: 'solid-map',
41
- use: [WidgetMixin, ListMixin, StoreMixin, GrouperMixin, CounterMixin, FilterMixin, FederationMixin, NextMixin],
42
- attributes: {
43
- clustering: {
44
- type: Boolean,
45
- default: null
46
- }
47
- },
48
- initialState: {
49
- markers: {
50
- default: null
51
- },
52
- subscriptions: null,
53
- resetPlanned: false,
54
- hasBeenResetOnce: false
55
- },
56
-
57
- created() {
58
- //@ts-ignore
59
- import("../_snowpack/pkg/leaflet/dist/leaflet.css.proxy.js"); //@ts-ignore
60
-
61
- import("../style/default-theme.css.proxy.js"); //@ts-ignore
62
-
63
- import("../_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js"); //@ts-ignore
64
-
65
- import("../_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css.proxy.js"); // reset when it becomes visible to prevent bug https://git.startinblox.com/framework/sib-core/issues/661
66
-
67
- document.body.addEventListener('navigate', () => setTimeout(() => this.isVisible && !this.hasBeenResetOnce && this.reset()));
68
- this.markers = [];
69
- this.subscriptions = new Map();
70
- },
71
-
72
- get isVisible() {
73
- return this.element.offsetParent !== null;
74
- },
75
-
76
- attached() {
77
- const id = uniqID();
78
- const template = html(_templateObject(), id);
79
- render(template, this.element);
80
- const div = this.element.querySelector("#".concat(id));
81
- this.map = L.map(div);
82
- L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png').addTo(this.map);
83
-
84
- if (this.clustering !== null) {
85
- this.markersCluster = L.markerClusterGroup();
86
- this.map.addLayer(this.markersCluster);
87
- }
88
- },
89
-
90
- reset() {
91
- if (this.isVisible) {
92
- // reset only if visible
93
- this.map.invalidateSize();
94
-
95
- if (this.markers.length) {
96
- this.map.fitBounds(L.featureGroup(this.markers).getBounds()); // Center map on markers if some available
97
- } else {
98
- this.map.fitWorld(); // ... or on the world if not
99
- }
100
-
101
- this.hasBeenResetOnce = true;
102
- }
103
- },
104
-
105
- /**
106
- * Execute a reset only if none is planned already
107
- */
108
- planReset() {
109
- if (!this.resetPlanned) {
110
- this.resetPlanned = true;
111
- setTimeout(() => {
112
- this.reset();
113
- this.resetPlanned = false;
114
- });
115
- }
116
- },
117
-
118
- dispatchSelect(event) {
119
- const target = event.target;
120
- const resource = target['options'].resource;
121
- this.element.dispatchEvent(new CustomEvent('resourceSelect', {
122
- detail: {
123
- resource: resource
124
- }
125
- }));
126
- this.goToNext(resource);
127
- },
128
-
129
- /**
130
- * Override listMixin method: initialize a marker on the map
131
- * @param resourceId: id of the resource to display
132
- * @param groupClass: class of the group of markers
133
- */
134
- async appendChildElt(resourceId, groupClass) {
135
- const resource = await store.getData(resourceId, this.context);
136
-
137
- if (!this.subscriptions.get(resourceId)) {
138
- this.subscriptions.set(resourceId, PubSub.subscribe(resourceId, () => this.updateDOM()));
139
- }
140
-
141
- if (!resource) return;
142
- const lat = await resource['lat'];
143
- const lng = await resource['lng'];
144
-
145
- if (lat && lng) {
146
- const icon = L.divIcon({
147
- // create the icon, doc here: https://leafletjs.com/reference-1.6.0.html#icon
148
- className: 'sib-custom-marker ' + groupClass,
149
- // default class used for styling
150
- iconSize: [8, 8],
151
- iconAnchor: [12, 34],
152
- popupAnchor: [0, -34]
153
- }); // create a marker, doc here: https://leafletjs.com/reference-1.6.0.html#marker
154
-
155
- const marker = L.marker([lat.toString(), lng.toString()], {
156
- resource,
157
- icon
158
- });
159
- if (this.clustering === null) marker.addTo(this.map);else this.markersCluster.addLayer(marker);
160
- marker.on('click', this.dispatchSelect.bind(this));
161
-
162
- if (this.fields !== null) {
163
- // show popups only if fields attribute
164
- marker.bindPopup(() => this.getPopupContent(resourceId), {
165
- minWidth: 150
166
- }); // re-generate popup solid-display
167
- }
168
-
169
- this.markers.push(marker);
170
- }
171
- },
172
-
173
- /**
174
- * Generate the solid-display of the popup
175
- * @param resourceId: id of the popup clicked
176
- */
177
- getPopupContent(resourceId) {
178
- const attributes = {};
179
-
180
- for (let attr of this.element.attributes) {
181
- //copy widget and value attributes
182
- if (attr.name.startsWith('value-') || attr.name.startsWith('label-') || attr.name.startsWith('widget-') || attr.name.startsWith('class-') || attr.name.startsWith('multiple-') || attr.name.startsWith('editable-') || attr.name.startsWith('action-') || attr.name.startsWith('default-') || attr.name == 'extra-context') attributes[attr.name] = attr.value;
183
- if (attr.name.startsWith('child-')) attributes[attr.name.replace(/^child-/, '')] = attr.value;
184
- }
185
-
186
- const div = document.createElement('div');
187
- const template = html(_templateObject2(), ifDefined(this.fields), resourceId, spread(attributes));
188
- render(template, div);
189
- return div.querySelector('solid-display');
190
- },
191
-
192
- /**
193
- * Override widgetMixin method: empty the map
194
- */
195
- empty() {
196
- if (!this.map) return;
197
- if (this.markersCluster) this.map.removeLayer(this.markersCluster);
198
-
199
- for (let marker of this.markers) this.map.removeLayer(marker);
200
-
201
- if (this.clustering !== null) {
202
- this.markersCluster = L.markerClusterGroup();
203
- this.map.addLayer(this.markersCluster);
204
- }
205
-
206
- this.markers = [];
207
- },
208
-
209
- /**
210
- * Override groupMixin method
211
- * @param groupName: value of the group
212
- */
213
- renderGroup(groupName) {
214
- const sanitizedGroupName = encodeURIComponent(groupName.toLowerCase()).replace(/%[0-9A-F]{2}/gi, '');
215
- const div = document.createElement('div'); // used to pass group info to renderDOM
216
-
217
- div.dataset.groupClass = 'group-' + sanitizedGroupName;
218
- return div;
219
- },
220
-
221
- /**
222
- * Override listMixin method: display all the resources
223
- * @param resources
224
- * @param listPostProcessors
225
- * @param div
226
- * @param context
227
- */
228
- async renderDOM(resources, listPostProcessors, div, context) {
229
- const groupClass = div.dataset.groupClass || ''; // get the group class from the useless div element
230
-
231
- await Promise.all(resources.map(resource => this.appendChildElt(resource['@id'], groupClass)));
232
- this.planReset();
233
- const nextProcessor = listPostProcessors.shift();
234
- if (nextProcessor) await nextProcessor(resources, listPostProcessors, div, context);
235
- }
236
-
237
- };
238
- Sib.register(SolidMap);
239
- //# sourceMappingURL=solid-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["solid-map.ts"],"names":["Sib","ListMixin","StoreMixin","WidgetMixin","CounterMixin","FilterMixin","FederationMixin","GrouperMixin","NextMixin","store","uniqID","spread","L","html","render","ifDefined","SolidMap","name","use","attributes","clustering","type","Boolean","default","initialState","markers","subscriptions","resetPlanned","hasBeenResetOnce","created","document","body","addEventListener","setTimeout","isVisible","reset","Map","element","offsetParent","attached","id","template","div","querySelector","map","tileLayer","addTo","markersCluster","markerClusterGroup","addLayer","invalidateSize","length","fitBounds","featureGroup","getBounds","fitWorld","planReset","dispatchSelect","event","target","resource","dispatchEvent","CustomEvent","detail","goToNext","appendChildElt","resourceId","groupClass","getData","context","get","set","PubSub","subscribe","updateDOM","lat","lng","icon","divIcon","className","iconSize","iconAnchor","popupAnchor","marker","toString","on","bind","fields","bindPopup","getPopupContent","minWidth","push","attr","startsWith","value","replace","createElement","empty","removeLayer","renderGroup","groupName","sanitizedGroupName","encodeURIComponent","toLowerCase","dataset","renderDOM","resources","listPostProcessors","Promise","all","nextProcessor","shift","register"],"mappings":"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","sourcesContent":["import { Sib } from '../libs/Sib';\nimport { ListMixin } from '../mixins/listMixin';\nimport { StoreMixin } from '../mixins/storeMixin';\nimport { WidgetMixin } from '../mixins/widgetMixin';\nimport { CounterMixin } from '../mixins/counterMixin';\nimport { FilterMixin } from '../mixins/filterMixin';\nimport { FederationMixin } from '../mixins/federationMixin';\nimport { GrouperMixin } from '../mixins/grouperMixin';\nimport { NextMixin } from '../mixins/nextMixin';\nimport { store } from '../libs/store/store';\nimport { uniqID } from '../libs/helpers';\nimport { spread } from '../libs/lit-helpers';\n\nimport L, { MarkerOptions } from 'leaflet';\nimport 'leaflet.markercluster';\nimport { html, render } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nexport const SolidMap = {\n name: 'solid-map',\n use: [\n WidgetMixin,\n ListMixin,\n StoreMixin,\n GrouperMixin,\n CounterMixin,\n FilterMixin,\n FederationMixin,\n NextMixin,\n ],\n attributes: {\n clustering: {\n type: Boolean,\n default: null\n }\n },\n initialState: {\n markers: {\n default: null\n },\n subscriptions: null,\n resetPlanned: false,\n hasBeenResetOnce: false\n },\n created(): void {\n //@ts-ignore\n import('leaflet/dist/leaflet.css');\n //@ts-ignore\n import('../style/default-theme.css');\n //@ts-ignore\n import('leaflet.markercluster/dist/MarkerCluster.css');\n //@ts-ignore\n import('leaflet.markercluster/dist/MarkerCluster.Default.css');\n\n // reset when it becomes visible to prevent bug https://git.startinblox.com/framework/sib-core/issues/661\n document.body.addEventListener('navigate', () =>\n setTimeout(() => this.isVisible && !this.hasBeenResetOnce && this.reset())\n );\n this.markers = [];\n this.subscriptions = new Map();\n },\n get isVisible() {\n return this.element.offsetParent !== null\n },\n attached(): void {\n const id = uniqID();\n const template = html`\n <div id=${id} style=\"width:100%;height:100%;\"></div>\n `;\n render(template, this.element);\n\n const div = this.element.querySelector(`#${id}`);\n this.map = L.map(div);\n\n L.tileLayer(\n 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png'\n ).addTo(this.map);\n\n if (this.clustering !== null) {\n this.markersCluster = L.markerClusterGroup();\n this.map.addLayer(this.markersCluster);\n }\n },\n reset() {\n if (this.isVisible) { // reset only if visible\n this.map.invalidateSize();\n\n if (this.markers.length) {\n this.map.fitBounds(L.featureGroup(this.markers).getBounds()); // Center map on markers if some available\n } else {\n this.map.fitWorld(); // ... or on the world if not\n }\n this.hasBeenResetOnce = true;\n }\n },\n /**\n * Execute a reset only if none is planned already\n */\n planReset() {\n if (!this.resetPlanned) {\n this.resetPlanned = true;\n setTimeout(() => {\n this.reset();\n this.resetPlanned = false;\n })\n }\n },\n dispatchSelect(event: CustomEvent): void {\n const target = event.target as Element;\n const resource = target['options'].resource;\n this.element.dispatchEvent(\n new CustomEvent('resourceSelect', { detail: { resource: resource } })\n );\n this.goToNext(resource);\n },\n\n /**\n * Override listMixin method: initialize a marker on the map\n * @param resourceId: id of the resource to display\n * @param groupClass: class of the group of markers\n */\n async appendChildElt(resourceId: string, groupClass: string) {\n const resource = await store.getData(resourceId, this.context);\n if (!this.subscriptions.get(resourceId)) {\n this.subscriptions.set(resourceId, PubSub.subscribe(resourceId, () => this.updateDOM()))\n }\n if (!resource) return;\n const lat = await resource['lat'];\n const lng = await resource['lng'];\n\n if (lat && lng) {\n const icon = L.divIcon({ // create the icon, doc here: https://leafletjs.com/reference-1.6.0.html#icon\n className: 'sib-custom-marker ' + groupClass, // default class used for styling\n iconSize: [8, 8],\n iconAnchor: [12, 34],\n popupAnchor: [0,-34]\n });\n\n // create a marker, doc here: https://leafletjs.com/reference-1.6.0.html#marker\n const marker = L.marker(\n [lat.toString(), lng.toString()], \n {resource, icon} as MarkerOptions\n );\n if(this.clustering === null) marker.addTo(this.map);\n else this.markersCluster.addLayer(marker);\n marker.on('click', this.dispatchSelect.bind(this));\n\n if (this.fields !== null) { // show popups only if fields attribute\n marker.bindPopup(() => this.getPopupContent(resourceId), { minWidth: 150 }) // re-generate popup solid-display\n }\n\n this.markers.push(marker);\n }\n },\n /**\n * Generate the solid-display of the popup\n * @param resourceId: id of the popup clicked\n */\n getPopupContent(resourceId: string) {\n const attributes:{[key:string]: string} = {};\n\n for (let attr of this.element.attributes) {\n //copy widget and value attributes\n if (\n attr.name.startsWith('value-') ||\n attr.name.startsWith('label-') ||\n attr.name.startsWith('widget-') ||\n attr.name.startsWith('class-') ||\n attr.name.startsWith('multiple-') ||\n attr.name.startsWith('editable-') ||\n attr.name.startsWith('action-') ||\n attr.name.startsWith('default-') ||\n attr.name == 'extra-context'\n )\n attributes[attr.name] = attr.value;\n if (attr.name.startsWith('child-'))\n attributes[attr.name.replace(/^child-/, '')] = attr.value;\n }\n\n const div = document.createElement('div');\n const template = html`\n <solid-display\n fields=\"${ifDefined(this.fields)}\"\n data-src=\"${resourceId}\"\n ...=${spread(attributes)}\n ></solid-display>\n `;\n render(template, div);\n return div.querySelector('solid-display');\n },\n /**\n * Override widgetMixin method: empty the map\n */\n empty(): void {\n if (!this.map) return;\n if (this.markersCluster) this.map.removeLayer(this.markersCluster);\n for (let marker of this.markers) this.map.removeLayer(marker);\n if(this.clustering !== null) {\n this.markersCluster = L.markerClusterGroup();\n this.map.addLayer(this.markersCluster);\n }\n this.markers = [];\n },\n /**\n * Override groupMixin method\n * @param groupName: value of the group\n */\n renderGroup(groupName: string) {\n const sanitizedGroupName = encodeURIComponent(groupName.toLowerCase()).replace(/%[0-9A-F]{2}/gi, '');\n const div = document.createElement('div'); // used to pass group info to renderDOM\n div.dataset.groupClass = 'group-' + sanitizedGroupName;\n return div;\n },\n /**\n * Override listMixin method: display all the resources\n * @param resources\n * @param listPostProcessors\n * @param div\n * @param context\n */\n async renderDOM(resources: object[], listPostProcessors: Function[], div: HTMLElement, context: string) {\n const groupClass = div.dataset.groupClass || ''; // get the group class from the useless div element\n await Promise.all(resources.map(resource => this.appendChildElt(resource['@id'], groupClass)))\n this.planReset();\n\n const nextProcessor = listPostProcessors.shift();\n if(nextProcessor) await nextProcessor(resources, listPostProcessors, div, context);\n }\n};\n\nSib.register(SolidMap);"]}
@@ -1,263 +0,0 @@
1
- function _templateObject9() {
2
- const data = _taggedTemplateLiteral(["\n ", "\n ", "\n "]);
3
-
4
- _templateObject9 = function () {
5
- return data;
6
- };
7
-
8
- return data;
9
- }
10
-
11
- function _templateObject8() {
12
- const data = _taggedTemplateLiteral(["\n ", "\n ", "\n "]);
13
-
14
- _templateObject8 = function () {
15
- return data;
16
- };
17
-
18
- return data;
19
- }
20
-
21
- function _templateObject7() {
22
- const data = _taggedTemplateLiteral(["<td>", "</td>"]);
23
-
24
- _templateObject7 = function () {
25
- return data;
26
- };
27
-
28
- return data;
29
- }
30
-
31
- function _templateObject6() {
32
- const data = _taggedTemplateLiteral(["\n <td>\n <input type=\"checkbox\" data-selection />\n </td>"]);
33
-
34
- _templateObject6 = function () {
35
- return data;
36
- };
37
-
38
- return data;
39
- }
40
-
41
- function _templateObject5() {
42
- const data = _taggedTemplateLiteral(["\n <tr data-resource=\"", "\">\n ", "\n ", "\n </tr>\n "]);
43
-
44
- _templateObject5 = function () {
45
- return data;
46
- };
47
-
48
- return data;
49
- }
50
-
51
- function _templateObject4() {
52
- const data = _taggedTemplateLiteral(["\n <th>\n ", "\n </th>"]);
53
-
54
- _templateObject4 = function () {
55
- return data;
56
- };
57
-
58
- return data;
59
- }
60
-
61
- function _templateObject3() {
62
- const data = _taggedTemplateLiteral(["\n <th>\n <input type=\"checkbox\" @change=\"", "\" />\n </th>"]);
63
-
64
- _templateObject3 = function () {
65
- return data;
66
- };
67
-
68
- return data;
69
- }
70
-
71
- function _templateObject2() {
72
- const data = _taggedTemplateLiteral(["\n <tr>\n ", "\n ", "\n </tr>\n "]);
73
-
74
- _templateObject2 = function () {
75
- return data;
76
- };
77
-
78
- return data;
79
- }
80
-
81
- function _templateObject() {
82
- const data = _taggedTemplateLiteral(["\n <solid-form\n data-src=\"", "\"\n fields=\"", "\"\n partial\n autosave\n ...=", "\n ></solid-form>\n "]);
83
-
84
- _templateObject = function () {
85
- return data;
86
- };
87
-
88
- return data;
89
- }
90
-
91
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
92
-
93
- import { Sib } from '../libs/Sib.js';
94
- import { store } from '../libs/store/store.js';
95
- import { WidgetMixin } from '../mixins/widgetMixin.js';
96
- import { ListMixin } from '../mixins/listMixin.js';
97
- import { StoreMixin } from '../mixins/storeMixin.js';
98
- import { PaginateMixin } from '../mixins/paginateMixin.js';
99
- import { FilterMixin } from '../mixins/filterMixin.js';
100
- import { CounterMixin } from '../mixins/counterMixin.js';
101
- import { SorterMixin } from '../mixins/sorterMixin.js';
102
- import { GrouperMixin } from '../mixins/grouperMixin.js';
103
- import { FederationMixin } from '../mixins/federationMixin.js';
104
- import { HighlighterMixin } from '../mixins/highlighterMixin.js';
105
- import { RequiredMixin } from '../mixins/requiredMixin.js';
106
- import { html, render } from '../_snowpack/pkg/lit-html.js';
107
- import { until } from '../_snowpack/pkg/lit-html/directives/until.js';
108
- import { spread } from '../libs/lit-helpers.js';
109
- export const SolidTable = {
110
- name: 'solid-table',
111
- use: [WidgetMixin, ListMixin, StoreMixin, PaginateMixin, GrouperMixin, CounterMixin, HighlighterMixin, FilterMixin, SorterMixin, RequiredMixin, FederationMixin],
112
- attributes: {
113
- defaultWidget: {
114
- type: String,
115
- default: 'solid-display-value'
116
- },
117
- selectable: {
118
- type: String,
119
- default: null
120
- },
121
- header: {
122
- type: String,
123
- default: null
124
- }
125
- },
126
-
127
- get parentElement() {
128
- return 'table';
129
- },
130
-
131
- get defaultMultipleWidget() {
132
- return 'solid-multiple';
133
- },
134
-
135
- get defaultSetWidget() {
136
- return 'solid-set-default';
137
- },
138
-
139
- get selectedLines() {
140
- if (this.selectable === null) return [];
141
- return Array.from(this.element.querySelectorAll('input[data-selection]:checked')).map(e => {
142
- var _e$closest;
143
-
144
- return e === null || e === void 0 ? void 0 : (_e$closest = e.closest('[data-resource]')) === null || _e$closest === void 0 ? void 0 : _e$closest.getAttribute('data-resource');
145
- });
146
- },
147
-
148
- /**
149
- * Select all lines
150
- * @param e - event
151
- */
152
- selectAll(e) {
153
- if (this.selectable === null) return;
154
-
155
- for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]'))) {
156
- checkbox.checked = e.target.checked;
157
- }
158
- },
159
-
160
- /**
161
- * Unselect all lines
162
- */
163
- unselectAll() {
164
- if (this.selectable === null) return;
165
-
166
- for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]'))) {
167
- checkbox.checked = false;
168
- }
169
- },
170
-
171
- /**
172
- * Select specific lines
173
- * @param lines - array of selected lines
174
- */
175
- selectLines(lines) {
176
- if (this.selectable === null || lines.length === 0) return;
177
-
178
- for (const line of lines) {
179
- const checkbox = this.element.querySelector("[data-resource=\"".concat(line, "\"] input[data-selection]"));
180
- if (checkbox) checkbox.checked = true;
181
- }
182
- },
183
-
184
- /**
185
- * Create a widget for the field or a form if it's editable
186
- * @param field
187
- * @param resource
188
- */
189
- async createCellWidget(field, resource) {
190
- // if regular widget
191
- if (!this.element.hasAttribute('editable-' + field)) return this.createWidgetTemplate(field, resource, true); // if editable widget
192
-
193
- const attributes = {};
194
- const formWidgetAttributes = [// attributes to give to the form widget
195
- 'range', 'enum', 'placeholder', 'required', 'autocomplete', 'option-label', 'option-value', 'min', 'max', 'pattern', 'title', 'widget'];
196
-
197
- for (let attr of formWidgetAttributes) this.addToAttributes("".concat(attr, "-").concat(field), "".concat(attr, "-").concat(field), attributes);
198
-
199
- const formAttributes = [// attributes to give to the form
200
- 'class', 'submit-button', 'next'];
201
-
202
- for (let attr of formAttributes) this.addToAttributes("".concat(attr, "-").concat(field), attr, attributes);
203
-
204
- return html(_templateObject(), resource['@id'], field, spread(attributes));
205
- },
206
-
207
- /**
208
- * Creates a header line for the table
209
- * @param fields
210
- */
211
- getHeader(fields) {
212
- let template = html(_templateObject2(), this.selectable !== null ? html(_templateObject3(), this.selectAll.bind(this)) : '', fields.map(field => html(_templateObject4(), this.element.hasAttribute('label-' + field) ? this.element.getAttribute('label-' + field) : field)));
213
- return template;
214
- },
215
-
216
- /**
217
- * Returns template of a child element (resource)
218
- * @param resourceId
219
- * @param attributes
220
- */
221
- async getChildTemplate(resourceId, fields) {
222
- const resource = await store.getData(resourceId, this.context);
223
- let template = html(_templateObject5(), resourceId, this.selectable !== null ? html(_templateObject6()) : '', fields.map(field => html(_templateObject7(), until(this.createCellWidget(field, resource)))));
224
- return template;
225
- },
226
-
227
- /**
228
- * Creates and render the content of a single element (resource)
229
- * @param parent
230
- */
231
- async appendSingleElt(parent) {
232
- const fields = await this.getFields();
233
- const template = html(_templateObject8(), this.header !== null ? this.getHeader(fields) : '', until(this.getChildTemplate(this.resource['@id'], fields)));
234
- render(template, parent);
235
- },
236
-
237
- /**
238
- * @override listMixin method to use litHtml
239
- *
240
- * Render resources from a container
241
- * @param resources
242
- * @param listPostProcessors
243
- * @param div
244
- * @param context
245
- */
246
- async renderDOM(resources, listPostProcessors, div, context) {
247
- const selectedLines = [...this.selectedLines]; // save selected lines before moving them
248
-
249
- const fields = await this.getFields();
250
- const childTemplates = await Promise.all(resources.map(r => r ? this.getChildTemplate(r['@id'], fields) : null));
251
- const template = html(_templateObject9(), this.header !== null ? this.getHeader(fields) : '', childTemplates); // create a child template for each resource
252
-
253
- render(template, div); // Re-select the right lines
254
-
255
- this.unselectAll();
256
- this.selectLines(selectedLines);
257
- const nextProcessor = listPostProcessors.shift();
258
- if (nextProcessor) await nextProcessor(resources, listPostProcessors, div, context);
259
- }
260
-
261
- };
262
- Sib.register(SolidTable);
263
- //# sourceMappingURL=solid-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["solid-table.ts"],"names":["Sib","store","WidgetMixin","ListMixin","StoreMixin","PaginateMixin","FilterMixin","CounterMixin","SorterMixin","GrouperMixin","FederationMixin","HighlighterMixin","RequiredMixin","html","render","until","spread","SolidTable","name","use","attributes","defaultWidget","type","String","default","selectable","header","parentElement","defaultMultipleWidget","defaultSetWidget","selectedLines","Array","from","element","querySelectorAll","map","e","closest","getAttribute","selectAll","checkbox","checked","target","unselectAll","selectLines","lines","length","line","querySelector","createCellWidget","field","resource","hasAttribute","createWidgetTemplate","formWidgetAttributes","attr","addToAttributes","formAttributes","getHeader","fields","template","bind","getChildTemplate","resourceId","getData","context","appendSingleElt","parent","getFields","renderDOM","resources","listPostProcessors","div","childTemplates","Promise","all","r","nextProcessor","shift","register"],"mappings":"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","sourcesContent":["import type { Resource } from '../mixins/interfaces';\nimport { Sib } from '../libs/Sib';\nimport { store } from '../libs/store/store';\nimport { WidgetMixin } from '../mixins/widgetMixin';\nimport { ListMixin } from '../mixins/listMixin';\nimport { StoreMixin } from '../mixins/storeMixin';\nimport { PaginateMixin } from '../mixins/paginateMixin';\nimport { FilterMixin } from '../mixins/filterMixin';\nimport { CounterMixin } from '../mixins/counterMixin';\nimport { SorterMixin } from '../mixins/sorterMixin';\nimport { GrouperMixin } from '../mixins/grouperMixin';\nimport { FederationMixin } from '../mixins/federationMixin';\nimport { HighlighterMixin } from '../mixins/highlighterMixin';\nimport { RequiredMixin } from '../mixins/requiredMixin';\n\nimport { html, render } from 'lit-html';\nimport { until } from 'lit-html/directives/until';\nimport { spread } from '../libs/lit-helpers';\n\nexport const SolidTable = {\n name: 'solid-table',\n use: [\n WidgetMixin,\n ListMixin,\n StoreMixin,\n PaginateMixin,\n GrouperMixin,\n CounterMixin,\n HighlighterMixin,\n FilterMixin,\n SorterMixin,\n RequiredMixin,\n FederationMixin,\n ],\n attributes: {\n defaultWidget: {\n type: String,\n default: 'solid-display-value',\n },\n selectable: {\n type: String,\n default: null,\n },\n header: {\n type: String,\n default: null,\n },\n },\n get parentElement(): string {\n return 'table';\n },\n get defaultMultipleWidget(): string {\n return 'solid-multiple';\n },\n get defaultSetWidget(): string {\n return 'solid-set-default';\n },\n get selectedLines() {\n if (this.selectable === null) return [];\n return (Array.from(this.element.querySelectorAll('input[data-selection]:checked')) as Element[])\n .map(e => e?.closest('[data-resource]')?.getAttribute('data-resource'));\n },\n /**\n * Select all lines\n * @param e - event\n */\n selectAll(e) {\n if (this.selectable === null) return;\n for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]') as HTMLInputElement[])) {\n checkbox.checked = e.target.checked;\n }\n },\n /**\n * Unselect all lines\n */\n unselectAll(): void {\n if (this.selectable === null) return;\n for (const checkbox of Array.from(this.element.querySelectorAll('input[data-selection]') as HTMLInputElement[])) {\n checkbox.checked = false;\n }\n },\n /**\n * Select specific lines\n * @param lines - array of selected lines\n */\n selectLines(lines: string[]) {\n if (this.selectable === null || lines.length === 0) return;\n for (const line of lines) {\n const checkbox = this.element.querySelector(`[data-resource=\"${line}\"] input[data-selection]`);\n if (checkbox) checkbox.checked = true;\n }\n },\n /**\n * Create a widget for the field or a form if it's editable\n * @param field\n * @param resource\n */\n async createCellWidget(field: string, resource: Resource) {\n // if regular widget\n if (!this.element.hasAttribute('editable-' + field)) return this.createWidgetTemplate(field, resource, true);\n\n // if editable widget\n const attributes = {};\n const formWidgetAttributes = [ // attributes to give to the form widget\n 'range',\n 'enum',\n 'placeholder',\n 'required',\n 'autocomplete',\n 'option-label',\n 'option-value',\n 'min',\n 'max',\n 'pattern',\n 'title',\n 'widget'\n ];\n for (let attr of formWidgetAttributes) this.addToAttributes(`${attr}-${field}`, `${attr}-${field}`, attributes)\n\n const formAttributes = [ // attributes to give to the form\n 'class',\n 'submit-button',\n 'next'\n ];\n for (let attr of formAttributes) this.addToAttributes(`${attr}-${field}`, attr, attributes)\n\n return html`\n <solid-form\n data-src=\"${resource['@id']}\"\n fields=\"${field}\"\n partial\n autosave\n ...=${spread(attributes)}\n ></solid-form>\n `;\n },\n /**\n * Creates a header line for the table\n * @param fields\n */\n getHeader(fields: string[]) {\n let template = html`\n <tr>\n ${this.selectable !== null ? html`\n <th>\n <input type=\"checkbox\" @change=\"${this.selectAll.bind(this)}\" />\n </th>` : ''}\n ${fields.map((field: string) => html`\n <th>\n ${this.element.hasAttribute('label-'+field) ? this.element.getAttribute('label-'+field) : field}\n </th>`)}\n </tr>\n `\n return template;\n },\n /**\n * Returns template of a child element (resource)\n * @param resourceId\n * @param attributes\n */\n async getChildTemplate(resourceId: string, fields) {\n const resource = await store.getData(resourceId, this.context);\n let template = html`\n <tr data-resource=\"${resourceId}\">\n ${this.selectable !== null ? html`\n <td>\n <input type=\"checkbox\" data-selection />\n </td>` : ''}\n ${fields.map((field: string) => html`<td>${until(this.createCellWidget(field, resource))}</td>`)}\n </tr>\n `\n return template;\n },\n\n /**\n * Creates and render the content of a single element (resource)\n * @param parent\n */\n async appendSingleElt(parent: HTMLElement): Promise<void> {\n const fields = await this.getFields();\n\n const template = html`\n ${this.header !== null ? this.getHeader(fields) : ''}\n ${until(this.getChildTemplate(this.resource['@id'], fields))}\n `;\n render(template, parent);\n },\n\n /**\n * @override listMixin method to use litHtml\n *\n * Render resources from a container\n * @param resources\n * @param listPostProcessors\n * @param div\n * @param context\n */\n async renderDOM(\n resources: object[],\n listPostProcessors: Function[],\n div: HTMLElement,\n context: string,\n ) {\n const selectedLines = [...this.selectedLines]; // save selected lines before moving them\n const fields = await this.getFields();\n const childTemplates = await Promise.all(\n resources.map(r => r ? this.getChildTemplate(r['@id'], fields) : null)\n );\n const template = html`\n ${this.header !== null ? this.getHeader(fields) : ''}\n ${childTemplates}\n `; // create a child template for each resource\n render(template, div);\n\n // Re-select the right lines\n this.unselectAll();\n this.selectLines(selectedLines);\n\n const nextProcessor = listPostProcessors.shift();\n if (nextProcessor)\n await nextProcessor(\n resources,\n listPostProcessors,\n div,\n context\n );\n },\n};\n\nSib.register(SolidTable);\n"]}