@startinblox/core 0.17.17 → 0.17.21-beta.1

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 -42
  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,226 +0,0 @@
1
- function _templateObject4() {
2
- const data = _taggedTemplateLiteral(["\n <form>\n ", "\n ", "\n </form>\n "]);
3
-
4
- _templateObject4 = function () {
5
- return data;
6
- };
7
-
8
- return data;
9
- }
10
-
11
- function _templateObject3() {
12
- const data = _taggedTemplateLiteral(["\n <input type=\"submit\" value=", ">\n "]);
13
-
14
- _templateObject3 = function () {
15
- return data;
16
- };
17
-
18
- return data;
19
- }
20
-
21
- function _templateObject2() {
22
- const data = _taggedTemplateLiteral(["\n <button type=\"submit\">", "</button>\n "]);
23
-
24
- _templateObject2 = function () {
25
- return data;
26
- };
27
-
28
- return data;
29
- }
30
-
31
- function _templateObject() {
32
- const data = _taggedTemplateLiteral(["\n <div class=", ">\n ", "\n </div>\n "]);
33
-
34
- _templateObject = function () {
35
- return data;
36
- };
37
-
38
- return data;
39
- }
40
-
41
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
42
-
43
- import { Sib } from '../libs/Sib.js';
44
- import { WidgetMixin } from '../mixins/widgetMixin.js';
45
- import { AttributeBinderMixin } from '../mixins/attributeBinderMixin.js';
46
- import { ContextMixin } from '../mixins/contextMixin.js';
47
- import { newWidgetFactory } from '../new-widgets/new-widget-factory.js';
48
- import { html, render } from '../_snowpack/pkg/lit-html.js';
49
- import { ifDefined } from '../_snowpack/pkg/lit-html/directives/if-defined.js';
50
- import { uniqID } from '../libs/helpers.js';
51
- export const SolidFormSearch = {
52
- name: 'solid-form-search',
53
- use: [WidgetMixin, AttributeBinderMixin, ContextMixin],
54
- attributes: {
55
- defaultWidget: {
56
- type: String,
57
- default: 'solid-form-label-text'
58
- },
59
- submitButton: {
60
- type: String,
61
- default: null,
62
- callback: function (newValue, oldValue) {
63
- if (this.noRender == null && newValue !== oldValue) this.populate();
64
- }
65
- },
66
- submitWidget: {
67
- type: String,
68
- default: undefined
69
- },
70
- classSubmitButton: {
71
- type: String,
72
- default: undefined
73
- },
74
- noRender: {
75
- type: String,
76
- default: null,
77
- callback: function (value) {
78
- if (value === null) this.populate();
79
- }
80
- }
81
- },
82
- initialState: {
83
- error: ''
84
- },
85
-
86
- created() {
87
- if (this.element.closest('[no-render]')) this.noRender = ''; // if embedded in no-render, apply no-render to himself
88
-
89
- this.autoRangeValues = {};
90
- this.rangeId = uniqID();
91
- this.attachedElements = new Set();
92
- },
93
-
94
- get defaultMultipleWidget() {
95
- return 'solid-multiple-form';
96
- },
97
-
98
- get defaultSetWidget() {
99
- return 'solid-set-default';
100
- },
101
-
102
- get value() {
103
- const values = {};
104
- this.widgets.forEach(widget => {
105
- const name = (widget.component || widget).name;
106
- if (name == null) return;
107
- let value = widget.component ? widget.component.getValue() : widget.value;
108
-
109
- try {
110
- value = JSON.parse(value);
111
- } catch {}
112
-
113
- value = {
114
- type: widget.component.type,
115
- list: !!widget.component.multiple,
116
- value: value
117
- };
118
- values[name] = value;
119
- });
120
- return values;
121
- },
122
-
123
- getWidget(field, isSet = false) {
124
- let tagName = ''; // If auto-range-[field] exists, create range-[field] and sets its value
125
-
126
- if (this.element.hasAttribute('auto-range-' + field) && !this.element.hasAttribute('range-' + field)) {
127
- const idField = "".concat(this.rangeId, "_").concat(field);
128
- this.element.setAttribute('range-' + field, 'store://local.' + idField);
129
- this.populate();
130
- }
131
-
132
- const widgetAttribute = this.element.getAttribute('widget-' + field); // Choose widget
133
-
134
- if (!widgetAttribute && (this.element.hasAttribute('range-' + field) || this.element.hasAttribute('enum-' + field))) {
135
- tagName = 'solid-form-dropdown';
136
- } else {
137
- tagName = widgetAttribute || (!isSet ? this.defaultWidget : this.defaultSetWidget);
138
- } // Create widget
139
-
140
-
141
- if (!customElements.get(tagName)) {
142
- // component does not exist
143
- if (tagName.startsWith('solid')) newWidgetFactory(tagName); // solid- -> create it
144
- }
145
-
146
- return this.widgetFromTagName(tagName);
147
- },
148
-
149
- async attach(elm) {
150
- if (this.attachedElements.has(elm)) return;
151
- this.attachedElements.add(elm);
152
- await this.updateAutoRanges();
153
- },
154
-
155
- async detach(elm) {
156
- if (!this.attachedElements.has(elm)) return;
157
- this.attachedElements.delete(elm);
158
- await this.updateAutoRanges();
159
- },
160
-
161
- async updateAutoRanges() {
162
- for (const attr of this.element.attributes) {
163
- if (!attr['name'].startsWith('auto-range-')) continue;
164
- const field = attr['name'].replace('auto-range-', '');
165
- const autoRangeValues = new Set();
166
-
167
- for (const elm of this.attachedElements) {
168
- for (const value of await elm.getValuesOfField(field)) {
169
- autoRangeValues.add(value);
170
- }
171
- }
172
-
173
- const idField = "".concat(this.rangeId, "_").concat(field);
174
- const id = "store://local.".concat(idField);
175
- const ldpContains = Array.from(autoRangeValues).map(id => ({
176
- '@id': id
177
- }));
178
- const data = {
179
- "@type": "ldp:Container",
180
- "@context": this.context,
181
- "ldp:contains": ldpContains
182
- };
183
- sibStore.setLocalData(data, id);
184
- }
185
- },
186
-
187
- change(resource) {
188
- this.element.dispatchEvent(new CustomEvent('formChange', {
189
- bubbles: true,
190
- detail: {
191
- resource
192
- }
193
- }));
194
- },
195
-
196
- async inputChange() {
197
- this.change(this.value);
198
- },
199
-
200
- getSubmitTemplate() {
201
- return html(_templateObject(), ifDefined(this.classSubmitButton), this.submitWidget === 'button' ? html(_templateObject2(), this.submitButton || '') : html(_templateObject3(), ifDefined(this.submitButton || undefined)));
202
- },
203
-
204
- empty() {},
205
-
206
- async populate() {
207
- await this.replaceAttributesData();
208
-
209
- if (this.submitButton == null) {
210
- this.element.addEventListener('input', () => this.inputChange());
211
- } else {
212
- this.element.addEventListener('submit', e => {
213
- e.preventDefault();
214
- this.inputChange();
215
- });
216
- }
217
-
218
- const fields = await this.getFields();
219
- const widgetTemplates = await Promise.all(fields.map(field => this.createWidgetTemplate(field)));
220
- const template = html(_templateObject4(), widgetTemplates, this.submitButton == null ? '' : this.getSubmitTemplate());
221
- render(template, this.element);
222
- }
223
-
224
- };
225
- Sib.register(SolidFormSearch);
226
- //# sourceMappingURL=solid-form-search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["solid-form-search.ts"],"names":["Sib","WidgetMixin","AttributeBinderMixin","ContextMixin","newWidgetFactory","html","render","ifDefined","uniqID","SolidFormSearch","name","use","attributes","defaultWidget","type","String","default","submitButton","callback","newValue","oldValue","noRender","populate","submitWidget","undefined","classSubmitButton","value","initialState","error","created","element","closest","autoRangeValues","rangeId","attachedElements","Set","defaultMultipleWidget","defaultSetWidget","values","widgets","forEach","widget","component","getValue","JSON","parse","list","multiple","getWidget","field","isSet","tagName","hasAttribute","idField","setAttribute","widgetAttribute","getAttribute","customElements","get","startsWith","widgetFromTagName","attach","elm","has","add","updateAutoRanges","detach","delete","attr","replace","getValuesOfField","id","ldpContains","Array","from","map","data","context","sibStore","setLocalData","change","resource","dispatchEvent","CustomEvent","bubbles","detail","inputChange","getSubmitTemplate","empty","replaceAttributesData","addEventListener","e","preventDefault","fields","getFields","widgetTemplates","Promise","all","createWidgetTemplate","template","register"],"mappings":"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","sourcesContent":["import { Sib } from '../libs/Sib';\nimport { WidgetMixin } from '../mixins/widgetMixin';\nimport { AttributeBinderMixin } from '../mixins/attributeBinderMixin';\nimport { ContextMixin } from '../mixins/contextMixin';\nimport type { WidgetInterface } from '../mixins/interfaces';\nimport { newWidgetFactory } from '../new-widgets/new-widget-factory';\n\nimport { html, render } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { uniqID } from '../libs/helpers';\n\nexport const SolidFormSearch = {\n name: 'solid-form-search',\n use: [WidgetMixin, AttributeBinderMixin, ContextMixin],\n attributes: {\n defaultWidget: {\n type: String,\n default: 'solid-form-label-text',\n },\n submitButton: {\n type: String,\n default: null,\n callback: function (newValue: string, oldValue: string) {\n if (this.noRender == null && newValue !== oldValue) this.populate();\n },\n },\n submitWidget: {\n type: String,\n default: undefined\n },\n classSubmitButton: {\n type: String,\n default: undefined,\n },\n noRender: {\n type: String,\n default: null,\n callback: function (value: boolean) {\n if (value === null) this.populate()\n }\n },\n },\n initialState: {\n error: '',\n },\n created() {\n if (this.element.closest('[no-render]')) this.noRender = ''; // if embedded in no-render, apply no-render to himself\n this.autoRangeValues = {};\n this.rangeId = uniqID();\n this.attachedElements = new Set();\n },\n get defaultMultipleWidget(): string {\n return 'solid-multiple-form';\n },\n get defaultSetWidget(): string {\n return 'solid-set-default';\n },\n\n get value(): object {\n const values = {};\n this.widgets.forEach((widget) => {\n const name = (widget.component || widget).name;\n if (name == null) return;\n let value = widget.component ? widget.component.getValue() : widget.value;\n try {\n value = JSON.parse(value);\n } catch {}\n value = {\n type: widget.component.type,\n list: !!widget.component.multiple,\n value: value,\n }\n values[name] = value;\n });\n return values;\n },\n getWidget(field: string, isSet: boolean = false): WidgetInterface {\n let tagName = '';\n // If auto-range-[field] exists, create range-[field] and sets its value\n if(this.element.hasAttribute('auto-range-' + field) && !this.element.hasAttribute('range-' + field)) {\n const idField = `${this.rangeId}_${field}`;\n this.element.setAttribute('range-' + field, 'store://local.' + idField);\n this.populate();\n }\n \n const widgetAttribute = this.element.getAttribute('widget-' + field);\n // Choose widget\n if (!widgetAttribute && (this.element.hasAttribute('range-' + field) || this.element.hasAttribute('enum-' + field))) {\n tagName = 'solid-form-dropdown'\n } else {\n tagName = widgetAttribute || (!isSet ? this.defaultWidget : this.defaultSetWidget);\n }\n // Create widget\n if (!customElements.get(tagName)) { // component does not exist\n if (tagName.startsWith('solid')) newWidgetFactory(tagName); // solid- -> create it\n }\n\n return this.widgetFromTagName(tagName);\n },\n async attach(elm: any) {\n if(this.attachedElements.has(elm)) return;\n this.attachedElements.add(elm);\n await this.updateAutoRanges();\n },\n async detach(elm: any) {\n if(!this.attachedElements.has(elm)) return;\n this.attachedElements.delete(elm);\n await this.updateAutoRanges();\n },\n async updateAutoRanges() {\n for(const attr of (this.element as Element).attributes) {\n if(!attr['name'].startsWith('auto-range-')) continue;\n const field = attr['name'].replace('auto-range-', '');\n const autoRangeValues = new Set();\n for(const elm of this.attachedElements) {\n for(const value of await elm.getValuesOfField(field)) {\n autoRangeValues.add(value);\n }\n }\n const idField = `${this.rangeId}_${field}`;\n const id = `store://local.${idField}`;\n const ldpContains = Array.from(autoRangeValues).map(id => ({'@id' : id}));\n const data = {\n \"@type\": \"ldp:Container\",\n \"@context\": this.context,\n \"ldp:contains\" : ldpContains,\n };\n sibStore.setLocalData(data, id);\n }\n },\n change(resource: object): void {\n this.element.dispatchEvent(\n new CustomEvent('formChange', {\n bubbles: true,\n detail: { resource },\n }),\n );\n },\n async inputChange(): Promise<void> {\n this.change(this.value);\n },\n getSubmitTemplate() {\n return html`\n <div class=${ifDefined(this.classSubmitButton)}>\n ${this.submitWidget === 'button' ? html`\n <button type=\"submit\">${this.submitButton || ''}</button>\n ` : html`\n <input type=\"submit\" value=${ifDefined(this.submitButton || undefined)}>\n `}\n </div>\n ` \n },\n empty(): void {},\n async populate(): Promise<void> {\n await this.replaceAttributesData();\n if(this.submitButton == null) {\n this.element.addEventListener('input', () => this.inputChange());\n } else {\n this.element.addEventListener('submit', (e: Event) => {\n e.preventDefault();\n this.inputChange();\n });\n }\n const fields = await this.getFields();\n const widgetTemplates = await Promise.all(fields.map((field: string) => this.createWidgetTemplate(field)));\n const template = html`\n <form>\n ${widgetTemplates}\n ${this.submitButton == null ? '' : this.getSubmitTemplate()}\n </form>\n `;\n render(template, this.element);\n }\n};\n\nSib.register(SolidFormSearch);"]}
@@ -1,354 +0,0 @@
1
- function _templateObject9() {
2
- const data = _taggedTemplateLiteral(["\n ", "\n "]);
3
-
4
- _templateObject9 = function () {
5
- return data;
6
- };
7
-
8
- return data;
9
- }
10
-
11
- function _templateObject8() {
12
- const data = _taggedTemplateLiteral(["<input type=\"reset\" />"]);
13
-
14
- _templateObject8 = function () {
15
- return data;
16
- };
17
-
18
- return data;
19
- }
20
-
21
- function _templateObject7() {
22
- const data = _taggedTemplateLiteral(["\n <form\n @submit=", "\n @reset=", "\n >\n ", "\n ", "\n ", "\n </form>\n "]);
23
-
24
- _templateObject7 = function () {
25
- return data;
26
- };
27
-
28
- return data;
29
- }
30
-
31
- function _templateObject6() {
32
- const data = _taggedTemplateLiteral(["\n <div data-id=\"error\"></div>\n ", "\n ", "\n "]);
33
-
34
- _templateObject6 = function () {
35
- return data;
36
- };
37
-
38
- return data;
39
- }
40
-
41
- function _templateObject5() {
42
- const data = _taggedTemplateLiteral(["\n <input type=\"submit\" value=", ">\n "]);
43
-
44
- _templateObject5 = function () {
45
- return data;
46
- };
47
-
48
- return data;
49
- }
50
-
51
- function _templateObject4() {
52
- const data = _taggedTemplateLiteral(["\n <button type=\"submit\">", "</button>\n "]);
53
-
54
- _templateObject4 = function () {
55
- return data;
56
- };
57
-
58
- return data;
59
- }
60
-
61
- function _templateObject3() {
62
- const data = _taggedTemplateLiteral(["\n <div class=", ">\n ", "\n </div>\n "]);
63
-
64
- _templateObject3 = function () {
65
- return data;
66
- };
67
-
68
- return data;
69
- }
70
-
71
- function _templateObject2() {
72
- const data = _taggedTemplateLiteral(["\n <li>", "</li>\n "]);
73
-
74
- _templateObject2 = function () {
75
- return data;
76
- };
77
-
78
- return data;
79
- }
80
-
81
- function _templateObject() {
82
- const data = _taggedTemplateLiteral(["\n <p>A validation error occurred.</p>\n <ul>\n ", "\n </ul>\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 { WidgetMixin } from '../mixins/widgetMixin.js';
95
- import { StoreMixin } from '../mixins/storeMixin.js';
96
- import { NextMixin } from '../mixins/nextMixin.js';
97
- import { ValidationMixin } from '../mixins/validationMixin.js';
98
- import { store } from '../libs/store/store.js';
99
- import { setDeepProperty, transformArrayToContainer } from '../libs/helpers.js';
100
- import { html, render } from '../_snowpack/pkg/lit-html.js';
101
- import { ifDefined } from '../_snowpack/pkg/lit-html/directives/if-defined.js';
102
- export const SolidForm = {
103
- name: 'solid-form',
104
- use: [WidgetMixin, StoreMixin, NextMixin, ValidationMixin],
105
- attributes: {
106
- defaultWidget: {
107
- type: String,
108
- default: 'solid-form-label-text'
109
- },
110
- naked: {
111
- type: String,
112
- default: null
113
- },
114
- submitButton: {
115
- type: String,
116
- default: undefined,
117
- callback: function (newValue, oldValue) {
118
- if (this.noRender == null && newValue !== oldValue) this.populate();
119
- }
120
- },
121
- submitWidget: {
122
- type: String,
123
- default: null
124
- },
125
- classSubmitButton: {
126
- type: String,
127
- default: undefined
128
- },
129
- partial: {
130
- type: Boolean,
131
- default: null
132
- },
133
- autosave: {
134
- type: Boolean,
135
- default: null
136
- }
137
- },
138
- initialState: {
139
- error: ''
140
- },
141
-
142
- get defaultMultipleWidget() {
143
- return 'solid-multiple-form';
144
- },
145
-
146
- get defaultSetWidget() {
147
- return 'solid-set-default';
148
- },
149
-
150
- get value() {
151
- const values = {};
152
- this.widgets.forEach(widget => {
153
- const name = (widget.component || widget).name;
154
- if (name == null) return;
155
- let value = widget.component ? widget.component.getValue() : widget.value;
156
-
157
- try {
158
- value = JSON.parse(value);
159
- } catch (e) {}
160
-
161
- setDeepProperty(values, name.split('.'), value);
162
- }); // add @id if edition
163
-
164
- if (this.resource && !this.resource.isContainer()) values['@id'] = this.resourceId;
165
- return values;
166
- },
167
-
168
- get isNaked() {
169
- return this.element.hasAttribute('naked');
170
- },
171
-
172
- get isSavingAutomatically() {
173
- return this.autosave !== null;
174
- },
175
-
176
- isCreationForm(formValue) {
177
- return !('@id' in formValue);
178
- },
179
-
180
- async getFormValue() {
181
- let value = this.value;
182
-
183
- if (this.resource && !this.resource.isContainer()) {
184
- for (let predicate of Object.keys(this.value)) {
185
- // add @id for nested resources
186
- const object = await this.resource[predicate];
187
- if (object && object['@id'] && !value[predicate]['@id']) value[predicate]['@id'] = object['@id'];
188
- }
189
- }
190
-
191
- return transformArrayToContainer(value);
192
- },
193
-
194
- getWidget(field, isSet = false) {
195
- let tagName = '';
196
- const widgetAttribute = this.element.getAttribute('widget-' + field); // Choose widget
197
-
198
- if (!widgetAttribute && this.element.hasAttribute('upload-url-' + field)) {
199
- tagName = 'solid-form-file';
200
- } else if (!widgetAttribute && (this.element.hasAttribute('range-' + field) || this.element.hasAttribute('enum-' + field))) {
201
- tagName = 'solid-form-dropdown';
202
- } else {
203
- tagName = widgetAttribute || (!isSet ? this.defaultWidget : this.defaultSetWidget);
204
- } // Create widget
205
-
206
-
207
- return this.widgetFromTagName(tagName);
208
- },
209
-
210
- change(resource) {
211
- this.element.dispatchEvent(new CustomEvent('formChange', {
212
- bubbles: true,
213
- detail: {
214
- resource
215
- }
216
- }));
217
- },
218
-
219
- async save() {
220
- this.toggleLoaderHidden(false);
221
- this.hideError();
222
- const resource = await this.getFormValue();
223
- resource['@context'] = this.context;
224
- let saved;
225
-
226
- try {
227
- if (this.partial == null) {
228
- saved = resource['@id'] ? await store.put(resource, this.resourceId) : await store.post(resource, this.resourceId);
229
- } else {
230
- saved = await store.patch(resource, this.resourceId);
231
- }
232
- } catch (e) {
233
- this.toggleLoaderHidden(true);
234
-
235
- if (e) {
236
- // if server error
237
- e.json().then(error => this.showError(error));
238
- throw e;
239
- } // else, ldpframework error, we continue
240
-
241
- }
242
-
243
- this.element.dispatchEvent(new CustomEvent('save', {
244
- bubbles: true,
245
- detail: {
246
- resource: resource,
247
- id: saved || null
248
- }
249
- }));
250
- this.toggleLoaderHidden(true);
251
- return saved;
252
- },
253
-
254
- async submitForm() {
255
- let id;
256
-
257
- try {
258
- id = (await this.save()) || this.getFormValue()['@id'];
259
- } catch (e) {
260
- return;
261
- }
262
-
263
- this.reset();
264
- this.goToNext({
265
- '@id': id
266
- });
267
- },
268
-
269
- async onInput() {
270
- const formValue = await this.getFormValue();
271
- this.change(formValue);
272
- },
273
-
274
- async onChange() {
275
- const formValue = await this.getFormValue();
276
- if (!this.isCreationForm(formValue) && this.isSavingAutomatically) this.submitForm(); // if autosave, submitForm
277
- },
278
-
279
- findErrorMessage(errors, errorFullName = '') {
280
- let errorsArray = [];
281
- errors.forEach(member => {
282
- let errorNextName = Object.values(member)[0];
283
- let errorAddName = errorFullName === "" ? errorNextName : errorFullName.concat(' - ', errorNextName);
284
-
285
- if (Array.isArray(Object.values(member)[1]) === true) {
286
- let errorMessage = Object.values(member)[1];
287
- let errorGlobal = errorAddName.concat(': ', errorMessage.join(', '));
288
- errorsArray.push(errorGlobal);
289
- } else {
290
- let objectErrors = Object.values(member)[1];
291
- let subErrors = Object.entries(objectErrors);
292
- errorsArray = [...errorsArray, ...this.findErrorMessage(subErrors, errorAddName)];
293
- }
294
- });
295
- return errorsArray;
296
- },
297
-
298
- empty() {},
299
-
300
- showError(e) {
301
- let errors = Object.entries(e).filter(field => !field[0].startsWith('@context'));
302
- const errorTemplate = html(_templateObject(), this.findErrorMessage(errors).map(field => html(_templateObject2(), field))); // If field exists pick its label (unsure if that's easily possible)
303
- // In this.getFields() map with each field and get label
304
- // If it does not just add a notice as we do that it's missing that field
305
- // Validation message in english ?
306
-
307
- const parentElement = this.element.querySelector('[data-id=error]');
308
- if (parentElement) render(errorTemplate, parentElement);
309
- },
310
-
311
- hideError() {
312
- const parentElement = this.element.querySelector('[data-id=error]');
313
- if (parentElement) render('', parentElement);
314
- },
315
-
316
- reset() {
317
- if (!this.isNaked) this.element.querySelector('form').reset();
318
- },
319
-
320
- onSubmit(event) {
321
- if (!this.isNaked) {
322
- event.preventDefault();
323
- this.performAction(); // In validationMixin, method defining what to do according to the present attributes
324
- }
325
- },
326
-
327
- validateModal() {
328
- //send method to validationMixin, used by the dialog modal and performAction method
329
- return this.submitForm();
330
- },
331
-
332
- onReset() {
333
- if (!this.isNaked) setTimeout(() => this.onInput());
334
- },
335
-
336
- getSubmitTemplate() {
337
- return html(_templateObject3(), ifDefined(this.classSubmitButton), this.submitWidget === 'button' ? html(_templateObject4(), this.submitButton || this.t("solid-form.submit-button")) : html(_templateObject5(), this.submitButton || this.t("solid-form.submit-button")));
338
- },
339
-
340
- async populate() {
341
- this.element.oninput = () => this.onInput(); // prevent from firing change multiple times
342
-
343
-
344
- this.element.onchange = () => this.onChange();
345
-
346
- const fields = await this.getFields();
347
- const widgetTemplates = await Promise.all(fields.map(field => this.createWidgetTemplate(field)));
348
- const template = html(_templateObject6(), !this.isNaked ? html(_templateObject7(), this.onSubmit.bind(this), this.onReset.bind(this), widgetTemplates, !this.isSavingAutomatically ? this.getSubmitTemplate() : '', this.element.hasAttribute('reset') ? html(_templateObject8()) : '') : html(_templateObject9(), widgetTemplates), this.getModalDialog());
349
- render(template, this.element);
350
- }
351
-
352
- };
353
- Sib.register(SolidForm);
354
- //# sourceMappingURL=solid-form.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["solid-form.ts"],"names":["Sib","WidgetMixin","StoreMixin","NextMixin","ValidationMixin","store","setDeepProperty","transformArrayToContainer","html","render","ifDefined","SolidForm","name","use","attributes","defaultWidget","type","String","default","naked","submitButton","undefined","callback","newValue","oldValue","noRender","populate","submitWidget","classSubmitButton","partial","Boolean","autosave","initialState","error","defaultMultipleWidget","defaultSetWidget","value","values","widgets","forEach","widget","component","getValue","JSON","parse","e","split","resource","isContainer","resourceId","isNaked","element","hasAttribute","isSavingAutomatically","isCreationForm","formValue","getFormValue","predicate","Object","keys","object","getWidget","field","isSet","tagName","widgetAttribute","getAttribute","widgetFromTagName","change","dispatchEvent","CustomEvent","bubbles","detail","save","toggleLoaderHidden","hideError","context","saved","put","post","patch","json","then","showError","id","submitForm","reset","goToNext","onInput","onChange","findErrorMessage","errors","errorFullName","errorsArray","member","errorNextName","errorAddName","concat","Array","isArray","errorMessage","errorGlobal","join","push","objectErrors","subErrors","entries","empty","filter","startsWith","errorTemplate","map","parentElement","querySelector","onSubmit","event","preventDefault","performAction","validateModal","onReset","setTimeout","getSubmitTemplate","t","oninput","onchange","fields","getFields","widgetTemplates","Promise","all","createWidgetTemplate","template","bind","getModalDialog","register"],"mappings":"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","sourcesContent":["import { Sib } from '../libs/Sib';\nimport { WidgetMixin } from '../mixins/widgetMixin';\nimport { StoreMixin } from '../mixins/storeMixin';\nimport { NextMixin } from '../mixins/nextMixin';\nimport { ValidationMixin } from '../mixins/validationMixin';\nimport { store } from '../libs/store/store';\nimport { setDeepProperty, transformArrayToContainer } from '../libs/helpers';\nimport type { WidgetInterface } from '../mixins/interfaces';\n\nimport { html, render } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nexport const SolidForm = {\n name: 'solid-form',\n use: [WidgetMixin, StoreMixin, NextMixin, ValidationMixin],\n attributes: {\n defaultWidget: {\n type: String,\n default: 'solid-form-label-text'\n },\n naked: {\n type: String,\n default: null\n },\n submitButton: {\n type: String,\n default: undefined,\n callback: function (newValue: string, oldValue: string) {\n if (this.noRender == null && newValue !== oldValue) this.populate();\n },\n },\n submitWidget: {\n type: String,\n default: null\n },\n classSubmitButton: {\n type: String,\n default: undefined,\n },\n partial: {\n type: Boolean,\n default: null\n },\n autosave: {\n type: Boolean,\n default: null\n },\n },\n initialState: {\n error: ''\n },\n get defaultMultipleWidget(): string {\n return 'solid-multiple-form';\n },\n get defaultSetWidget(): string {\n return 'solid-set-default';\n },\n get value(): object {\n const values = {};\n this.widgets.forEach((widget) => {\n const name = (widget.component || widget).name;\n if (name == null) return;\n let value = widget.component ? widget.component.getValue() : widget.value;\n try {\n value = JSON.parse(value);\n } catch (e) {}\n setDeepProperty(values, name.split('.'), value);\n });\n // add @id if edition\n if (this.resource && !this.resource.isContainer()) values['@id'] = this.resourceId;\n return values;\n },\n get isNaked(): boolean {\n return this.element.hasAttribute('naked');\n },\n get isSavingAutomatically(): boolean {\n return this.autosave !== null;\n },\n isCreationForm(formValue: object): boolean {\n return !('@id' in formValue);\n },\n async getFormValue() {\n let value = this.value;\n if (this.resource && !this.resource.isContainer()) {\n for (let predicate of Object.keys(this.value)) { // add @id for nested resources\n const object = await this.resource[predicate];\n if (object && object['@id'] && !value[predicate]['@id']) value[predicate]['@id'] = object['@id'];\n }\n }\n return transformArrayToContainer(value);\n },\n getWidget(field: string, isSet: boolean = false): WidgetInterface {\n let tagName = '';\n const widgetAttribute = this.element.getAttribute('widget-' + field);\n\n // Choose widget\n if (!widgetAttribute && this.element.hasAttribute('upload-url-' + field)) {\n tagName = 'solid-form-file'\n } else if (!widgetAttribute && (this.element.hasAttribute('range-' + field) || this.element.hasAttribute('enum-' + field))) {\n tagName = 'solid-form-dropdown'\n } else {\n tagName = widgetAttribute || (!isSet ? this.defaultWidget : this.defaultSetWidget);\n }\n // Create widget\n return this.widgetFromTagName(tagName);\n },\n change(resource: object): void {\n this.element.dispatchEvent(\n new CustomEvent('formChange', {\n bubbles: true,\n detail: { resource },\n }),\n );\n },\n async save(): Promise<object> {\n this.toggleLoaderHidden(false);\n this.hideError();\n const resource = await this.getFormValue();\n resource['@context'] = this.context;\n let saved;\n try {\n if (this.partial == null) {\n saved = resource['@id'] ?\n await store.put(resource, this.resourceId) :\n await store.post(resource, this.resourceId);\n } else {\n saved = await store.patch(resource, this.resourceId);\n }\n } catch (e) {\n this.toggleLoaderHidden(true);\n if (e) { // if server error\n e.json().then(error => this.showError(error));\n throw e;\n } // else, ldpframework error, we continue\n }\n this.element.dispatchEvent(\n new CustomEvent('save', {\n bubbles: true,\n detail: {\n resource: resource,\n id: saved || null\n },\n }),\n );\n this.toggleLoaderHidden(true);\n return saved;\n },\n async submitForm(): Promise<void> {\n let id: string;\n try {\n id = await this.save() || this.getFormValue()['@id'];\n } catch (e) { return; }\n this.reset();\n this.goToNext({'@id': id})\n },\n async onInput(): Promise<void> {\n const formValue = await this.getFormValue();\n this.change(formValue);\n },\n async onChange(): Promise<void> {\n const formValue = await this.getFormValue();\n if (!this.isCreationForm(formValue) && this.isSavingAutomatically)\n this.submitForm(); // if autosave, submitForm\n },\n findErrorMessage(errors: [string, any][], errorFullName: string = '') {\n let errorsArray: string[] = [];\n errors.forEach((member: [string, any]) => {\n let errorNextName: string = Object.values(member)[0];\n let errorAddName = (errorFullName === \"\" ? errorNextName : errorFullName.concat(' - ', errorNextName));\n if (Array.isArray(Object.values(member)[1]) === true) {\n let errorMessage: string[] = Object.values(member)[1];\n let errorGlobal = errorAddName.concat(': ', errorMessage.join(', '));\n errorsArray.push(errorGlobal);\n } else {\n let objectErrors = Object.values(member)[1];\n let subErrors = Object.entries(objectErrors);\n errorsArray = [...errorsArray, ...this.findErrorMessage(subErrors, errorAddName)];\n }\n });\n return errorsArray;\n },\n empty(): void {},\n showError(e: object) {\n let errors = Object.entries(e).filter(field => !field[0].startsWith('@context'));\n\n const errorTemplate = html`\n <p>A validation error occurred.</p>\n <ul>\n ${this.findErrorMessage(errors).map(field => html`\n <li>${field}</li>\n `)}\n </ul>\n `;\n // If field exists pick its label (unsure if that's easily possible)\n // In this.getFields() map with each field and get label\n // If it does not just add a notice as we do that it's missing that field\n\n // Validation message in english ?\n const parentElement = this.element.querySelector('[data-id=error]');\n if (parentElement) render(errorTemplate, parentElement);\n },\n hideError() {\n const parentElement = this.element.querySelector('[data-id=error]');\n if (parentElement) render('', parentElement);\n },\n reset() {\n if (!this.isNaked) this.element.querySelector('form').reset();\n },\n onSubmit(event: Event) {\n if (!this.isNaked) {\n event.preventDefault();\n this.performAction(); // In validationMixin, method defining what to do according to the present attributes\n }\n },\n validateModal() { //send method to validationMixin, used by the dialog modal and performAction method\n return this.submitForm();\n },\n onReset() {\n if (!this.isNaked) setTimeout(() => this.onInput())\n },\n getSubmitTemplate() {\n return html`\n <div class=${ifDefined(this.classSubmitButton)}>\n ${this.submitWidget === 'button' ? html`\n <button type=\"submit\">${this.submitButton || this.t(\"solid-form.submit-button\")}</button>\n ` : html`\n <input type=\"submit\" value=${this.submitButton || this.t(\"solid-form.submit-button\")}>\n `}\n </div>\n `\n },\n async populate(): Promise<void> {\n this.element.oninput = () => this.onInput(); // prevent from firing change multiple times\n this.element.onchange = () => this.onChange();\n const fields = await this.getFields();\n const widgetTemplates = await Promise.all(fields.map((field: string) => this.createWidgetTemplate(field)));\n const template = html`\n <div data-id=\"error\"></div>\n ${!this.isNaked ? html`\n <form\n @submit=${this.onSubmit.bind(this)}\n @reset=${this.onReset.bind(this)}\n >\n ${widgetTemplates}\n ${!this.isSavingAutomatically ? this.getSubmitTemplate() : ''}\n ${this.element.hasAttribute('reset')\n ? html`<input type=\"reset\" />` : ''}\n </form>\n ` : html`\n ${widgetTemplates}\n `\n }\n ${this.getModalDialog()}\n `;\n render(template, this.element);\n }\n};\n\nSib.register(SolidForm);"]}