@icure/form 2.0.11 → 3.0.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 (253) hide show
  1. package/.yarn/cache/@babel-runtime-npm-7.26.9-8369ff039f-838492d8a9.zip +0 -0
  2. package/.yarn/cache/@icure-motss-app-datepicker-npm-6.0.0-rc.36-66219db2d1-5f34375d97.zip +0 -0
  3. package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.3.0-6bfa115c08-c2003e8bb6.zip +0 -0
  4. package/.yarn/cache/@lit-reactive-element-npm-1.6.3-4828441e51-79b58631c3.zip +0 -0
  5. package/.yarn/cache/@lit-reactive-element-npm-2.0.4-4836436301-368d788d9e.zip +0 -0
  6. package/.yarn/cache/@material-animation-npm-14.0.0-canary.53b3cad2f.0-06a813cdea-9b5190654c.zip +0 -0
  7. package/.yarn/cache/@material-base-npm-14.0.0-canary.53b3cad2f.0-d195c1fdc4-9f4928d115.zip +0 -0
  8. package/.yarn/cache/@material-button-npm-14.0.0-canary.53b3cad2f.0-d4b070f508-873295c56a.zip +0 -0
  9. package/.yarn/cache/@material-density-npm-14.0.0-canary.53b3cad2f.0-48c1f65059-a23f00edfe.zip +0 -0
  10. package/.yarn/cache/@material-dialog-npm-14.0.0-canary.53b3cad2f.0-96168fa294-c1a498b81a.zip +0 -0
  11. package/.yarn/cache/@material-dom-npm-14.0.0-canary.53b3cad2f.0-ac009dc871-f5817f76dd.zip +0 -0
  12. package/.yarn/cache/@material-elevation-npm-14.0.0-canary.53b3cad2f.0-3312f06793-2f8945c7b6.zip +0 -0
  13. package/.yarn/cache/@material-feature-targeting-npm-14.0.0-canary.53b3cad2f.0-a919042d50-e7a1ed68f9.zip +0 -0
  14. package/.yarn/cache/@material-floating-label-npm-14.0.0-canary.53b3cad2f.0-eb8f330f2f-5295dc481d.zip +0 -0
  15. package/.yarn/cache/@material-focus-ring-npm-14.0.0-canary.53b3cad2f.0-b22f851a2e-92273b1247.zip +0 -0
  16. package/.yarn/cache/@material-icon-button-npm-14.0.0-canary.53b3cad2f.0-e158d26048-19b51665f2.zip +0 -0
  17. package/.yarn/cache/@material-line-ripple-npm-14.0.0-canary.53b3cad2f.0-d089468db9-6518961487.zip +0 -0
  18. package/.yarn/cache/@material-list-npm-14.0.0-canary.53b3cad2f.0-df9ce05084-6c977f518d.zip +0 -0
  19. package/.yarn/cache/@material-menu-npm-14.0.0-canary.53b3cad2f.0-9489b592c8-71b6a1f4dd.zip +0 -0
  20. package/.yarn/cache/@material-menu-surface-npm-14.0.0-canary.53b3cad2f.0-52212f38f4-ad48e168ca.zip +0 -0
  21. package/.yarn/cache/@material-mwc-base-npm-0.27.0-79caf3ef2b-07af17edfc.zip +0 -0
  22. package/.yarn/cache/@material-mwc-button-npm-0.27.0-4b85f2b26f-2ef5cc0951.zip +0 -0
  23. package/.yarn/cache/@material-mwc-checkbox-npm-0.27.0-e837031d8e-ba53a6ea8c.zip +0 -0
  24. package/.yarn/cache/@material-mwc-dialog-npm-0.27.0-77c6071543-ffab528e8e.zip +0 -0
  25. package/.yarn/cache/@material-mwc-floating-label-npm-0.27.0-80e62b22c0-fbbf4f2e42.zip +0 -0
  26. package/.yarn/cache/@material-mwc-icon-button-npm-0.27.0-41f82f135b-7315c0735b.zip +0 -0
  27. package/.yarn/cache/@material-mwc-icon-npm-0.27.0-98c9e8509f-6dfa5115d5.zip +0 -0
  28. package/.yarn/cache/@material-mwc-line-ripple-npm-0.27.0-e6704221e0-6862ede0f4.zip +0 -0
  29. package/.yarn/cache/@material-mwc-list-npm-0.27.0-5344fc9de4-6c2ae4f1c6.zip +0 -0
  30. package/.yarn/cache/@material-mwc-menu-npm-0.27.0-7c2bb47797-126f733659.zip +0 -0
  31. package/.yarn/cache/@material-mwc-notched-outline-npm-0.27.0-0e0d1c4d5f-2739032f76.zip +0 -0
  32. package/.yarn/cache/@material-mwc-radio-npm-0.27.0-aa2098a280-0b0a0a6b99.zip +0 -0
  33. package/.yarn/cache/@material-mwc-ripple-npm-0.27.0-ed37672f08-9cd73fdfe4.zip +0 -0
  34. package/.yarn/cache/@material-mwc-textfield-npm-0.27.0-dabd704f55-978c893aca.zip +0 -0
  35. package/.yarn/cache/@material-notched-outline-npm-14.0.0-canary.53b3cad2f.0-ecacde98db-1a9f8db4d8.zip +0 -0
  36. package/.yarn/cache/@material-radio-npm-14.0.0-canary.53b3cad2f.0-c50de64d41-898554f2b3.zip +0 -0
  37. package/.yarn/cache/@material-ripple-npm-14.0.0-canary.53b3cad2f.0-49060bfe7e-08b71917e2.zip +0 -0
  38. package/.yarn/cache/@material-rtl-npm-14.0.0-canary.53b3cad2f.0-daca794b76-3c1b8b48c6.zip +0 -0
  39. package/.yarn/cache/@material-shape-npm-14.0.0-canary.53b3cad2f.0-5bcff722a6-6ad9b020c0.zip +0 -0
  40. package/.yarn/cache/@material-textfield-npm-14.0.0-canary.53b3cad2f.0-4414808dda-7072e3c9df.zip +0 -0
  41. package/.yarn/cache/@material-theme-npm-14.0.0-canary.53b3cad2f.0-9a24e7b046-fd44e92917.zip +0 -0
  42. package/.yarn/cache/@material-tokens-npm-14.0.0-canary.53b3cad2f.0-f1c87523da-efa909f861.zip +0 -0
  43. package/.yarn/cache/@material-touch-target-npm-14.0.0-canary.53b3cad2f.0-fa6a2d0875-dbc13cbe7a.zip +0 -0
  44. package/.yarn/cache/@material-typography-npm-14.0.0-canary.53b3cad2f.0-f4a58946f1-fa2671df40.zip +0 -0
  45. package/.yarn/cache/@types-trusted-types-npm-2.0.7-a07fc44f59-8e4202766a.zip +0 -0
  46. package/.yarn/cache/@webcomponents-webcomponentsjs-npm-2.8.0-36c07db4d2-186373c030.zip +0 -0
  47. package/.yarn/cache/argparse-npm-2.0.1-faff7999e6-83644b5649.zip +0 -0
  48. package/.yarn/cache/blocking-elements-npm-0.1.1-423f51c76e-9a34084405.zip +0 -0
  49. package/.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip +0 -0
  50. package/.yarn/cache/entities-npm-4.5.0-7cdb83b832-853f8ebd5b.zip +0 -0
  51. package/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip +0 -0
  52. package/.yarn/cache/linkify-it-npm-5.0.0-adb5f9c96f-b0b86cadaf.zip +0 -0
  53. package/.yarn/cache/lit-element-npm-3.3.3-2f9f9e38c0-29a596fa55.zip +0 -0
  54. package/.yarn/cache/lit-element-npm-4.1.1-bb20932b82-74d0f2d6fb.zip +0 -0
  55. package/.yarn/cache/lit-html-npm-2.8.0-82f88d6ebf-2d70df0724.zip +0 -0
  56. package/.yarn/cache/lit-html-npm-3.2.1-1662fc597d-1bacd9f8b2.zip +0 -0
  57. package/.yarn/cache/lit-npm-2.8.0-92bb1333a4-2480e733f7.zip +0 -0
  58. package/.yarn/cache/lit-npm-3.2.1-27cb5b7782-ee22bbc53d.zip +0 -0
  59. package/.yarn/cache/markdown-it-npm-14.1.0-e337d75bfe-07296b45eb.zip +0 -0
  60. package/.yarn/cache/mdurl-npm-2.0.0-3259713daf-880bc289ef.zip +0 -0
  61. package/.yarn/cache/orderedmap-npm-2.1.1-64b8a0684f-082cf970b0.zip +0 -0
  62. package/.yarn/cache/prosemirror-commands-npm-1.5.2-27f8f3fee9-ff65063a8c.zip +0 -0
  63. package/.yarn/cache/prosemirror-history-npm-1.3.2-cc128c8ee6-b85fe6378a.zip +0 -0
  64. package/.yarn/cache/prosemirror-keymap-npm-1.2.2-efb8276b00-85fe4fc303.zip +0 -0
  65. package/.yarn/cache/prosemirror-markdown-npm-1.12.0-28e990f443-d7607ee1a6.zip +0 -0
  66. package/.yarn/cache/prosemirror-model-npm-1.19.4-4fd32211c8-12c277ed30.zip +0 -0
  67. package/.yarn/cache/prosemirror-model-npm-1.24.1-6467e55b40-386076e2ff.zip +0 -0
  68. package/.yarn/cache/prosemirror-schema-basic-npm-1.2.2-def7bf2ec7-1f93f8678c.zip +0 -0
  69. package/.yarn/cache/prosemirror-schema-list-npm-1.3.0-23c1830a7e-03654e37c8.zip +0 -0
  70. package/.yarn/cache/prosemirror-state-npm-1.4.3-d6540e44ad-28857d935c.zip +0 -0
  71. package/.yarn/cache/prosemirror-transform-npm-1.10.2-1c2da9123e-93b0c03aff.zip +0 -0
  72. package/.yarn/cache/prosemirror-transform-npm-1.8.0-ea3ca0411f-6d16ca4f95.zip +0 -0
  73. package/.yarn/cache/prosemirror-view-npm-1.32.7-63c3e4b182-40c9038a52.zip +0 -0
  74. package/.yarn/cache/prosemirror-view-npm-1.38.0-9061dc9cf4-0d0f17c1b2.zip +0 -0
  75. package/.yarn/cache/punycode.js-npm-2.3.1-9084ecbbf5-13466d7ed5.zip +0 -0
  76. package/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-9f57c93277.zip +0 -0
  77. package/.yarn/cache/rope-sequence-npm-1.3.4-3b09587e5f-95cca2f99a.zip +0 -0
  78. package/.yarn/cache/tslib-npm-2.8.1-66590b21b8-e4aba30e63.zip +0 -0
  79. package/.yarn/cache/uc.micro-npm-2.1.0-c45282c865-3719735824.zip +0 -0
  80. package/.yarn/cache/uuid-npm-9.0.1-39a8442bc6-39931f6da7.zip +0 -0
  81. package/.yarn/cache/w3c-keyname-npm-2.2.8-66d7d5317a-95bafa4c04.zip +0 -0
  82. package/.yarn/cache/wicg-inert-npm-3.1.3-38590e83f2-45b3cfec63.zip +0 -0
  83. package/.yarn/install-state.gz +0 -0
  84. package/components/common/field-with-options.js +9 -5
  85. package/components/common/field-with-options.js.map +1 -1
  86. package/components/common/field.js +25 -21
  87. package/components/common/field.js.map +1 -1
  88. package/components/common/index.js +17 -1
  89. package/components/common/index.js.map +1 -1
  90. package/components/common/metadata-buttons-bar.d.ts +1 -1
  91. package/components/common/metadata-buttons-bar.js +58 -65
  92. package/components/common/metadata-buttons-bar.js.map +1 -1
  93. package/components/common/styles/paths.js +13 -10
  94. package/components/common/styles/paths.js.map +1 -1
  95. package/components/common/utils.js +21 -11
  96. package/components/common/utils.js.map +1 -1
  97. package/components/icure-button/index.js +19 -15
  98. package/components/icure-button/index.js.map +1 -1
  99. package/components/icure-button-group/index.js +26 -22
  100. package/components/icure-button-group/index.js.map +1 -1
  101. package/components/icure-date-picker/index.d.ts +2 -2
  102. package/components/icure-date-picker/index.js +31 -27
  103. package/components/icure-date-picker/index.js.map +1 -1
  104. package/components/icure-dropdown-field/index.js +25 -21
  105. package/components/icure-dropdown-field/index.js.map +1 -1
  106. package/components/icure-form/fields/button/button.js +17 -13
  107. package/components/icure-form/fields/button/button.js.map +1 -1
  108. package/components/icure-form/fields/button/index.js +17 -1
  109. package/components/icure-form/fields/button/index.js.map +1 -1
  110. package/components/icure-form/fields/button-group/checkbox.js +14 -10
  111. package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
  112. package/components/icure-form/fields/button-group/index.js +18 -2
  113. package/components/icure-form/fields/button-group/index.js.map +1 -1
  114. package/components/icure-form/fields/button-group/radio-button.js +14 -10
  115. package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
  116. package/components/icure-form/fields/date-picker/date-picker.js +12 -8
  117. package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
  118. package/components/icure-form/fields/date-picker/date-time-picker.js +12 -8
  119. package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
  120. package/components/icure-form/fields/date-picker/index.js +19 -3
  121. package/components/icure-form/fields/date-picker/index.js.map +1 -1
  122. package/components/icure-form/fields/date-picker/time-picker.js +12 -8
  123. package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
  124. package/components/icure-form/fields/dropdown/dropdown-field.js +14 -10
  125. package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
  126. package/components/icure-form/fields/dropdown/index.js +17 -1
  127. package/components/icure-form/fields/dropdown/index.js.map +1 -1
  128. package/components/icure-form/fields/index.js +26 -10
  129. package/components/icure-form/fields/index.js.map +1 -1
  130. package/components/icure-form/fields/items-list-field/index.js +17 -1
  131. package/components/icure-form/fields/items-list-field/index.js.map +1 -1
  132. package/components/icure-form/fields/items-list-field/items-list-field.js +11 -7
  133. package/components/icure-form/fields/items-list-field/items-list-field.js.map +1 -1
  134. package/components/icure-form/fields/label/index.js +17 -1
  135. package/components/icure-form/fields/label/index.js.map +1 -1
  136. package/components/icure-form/fields/label/label.js +15 -11
  137. package/components/icure-form/fields/label/label.js.map +1 -1
  138. package/components/icure-form/fields/measure-field/index.js +17 -1
  139. package/components/icure-form/fields/measure-field/index.js.map +1 -1
  140. package/components/icure-form/fields/measure-field/measure-field.js +12 -8
  141. package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
  142. package/components/icure-form/fields/number-field/index.js +17 -1
  143. package/components/icure-form/fields/number-field/index.js.map +1 -1
  144. package/components/icure-form/fields/number-field/number-field.js +12 -8
  145. package/components/icure-form/fields/number-field/number-field.js.map +1 -1
  146. package/components/icure-form/fields/text-field/index.js +17 -1
  147. package/components/icure-form/fields/text-field/index.js.map +1 -1
  148. package/components/icure-form/fields/text-field/text-field.js +24 -20
  149. package/components/icure-form/fields/text-field/text-field.js.map +1 -1
  150. package/components/icure-form/fields/token-field/index.js +17 -1
  151. package/components/icure-form/fields/token-field/index.js.map +1 -1
  152. package/components/icure-form/fields/token-field/token-field.js +12 -8
  153. package/components/icure-form/fields/token-field/token-field.js.map +1 -1
  154. package/components/icure-form/fields/utils/index.js +13 -5
  155. package/components/icure-form/fields/utils/index.js.map +1 -1
  156. package/components/icure-form/index.js +32 -28
  157. package/components/icure-form/index.js.map +1 -1
  158. package/components/icure-form/renderer/form/form-selection-button.js +19 -15
  159. package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
  160. package/components/icure-form/renderer/form/form.js +127 -123
  161. package/components/icure-form/renderer/form/form.js.map +1 -1
  162. package/components/icure-form/renderer/index.js +2 -1
  163. package/components/icure-label/index.js +17 -13
  164. package/components/icure-label/index.js.map +1 -1
  165. package/components/icure-text-field/index.js +106 -98
  166. package/components/icure-text-field/index.js.map +1 -1
  167. package/components/icure-text-field/plugin/caret-fix-plugin.js +7 -3
  168. package/components/icure-text-field/plugin/caret-fix-plugin.js.map +1 -1
  169. package/components/icure-text-field/plugin/has-content-class-plugin.js +7 -3
  170. package/components/icure-text-field/plugin/has-content-class-plugin.js.map +1 -1
  171. package/components/icure-text-field/plugin/mask-plugin.js +11 -7
  172. package/components/icure-text-field/plugin/mask-plugin.js.map +1 -1
  173. package/components/icure-text-field/plugin/regexp-plugin.js +9 -5
  174. package/components/icure-text-field/plugin/regexp-plugin.js.map +1 -1
  175. package/components/icure-text-field/prosemirror-commands.js +15 -10
  176. package/components/icure-text-field/prosemirror-commands.js.map +1 -1
  177. package/components/icure-text-field/prosemirror-utils.js +5 -1
  178. package/components/icure-text-field/prosemirror-utils.js.map +1 -1
  179. package/components/icure-text-field/schema/common-marks.js +7 -3
  180. package/components/icure-text-field/schema/common-marks.js.map +1 -1
  181. package/components/icure-text-field/schema/date-time-schema.js +9 -3
  182. package/components/icure-text-field/schema/date-time-schema.js.map +1 -1
  183. package/components/icure-text-field/schema/decimal-schema.js +5 -1
  184. package/components/icure-text-field/schema/decimal-schema.js.map +1 -1
  185. package/components/icure-text-field/schema/index.js +21 -17
  186. package/components/icure-text-field/schema/index.js.map +1 -1
  187. package/components/icure-text-field/schema/items-list-schema.js +7 -3
  188. package/components/icure-text-field/schema/items-list-schema.js.map +1 -1
  189. package/components/icure-text-field/schema/markdown-schema.js +9 -5
  190. package/components/icure-text-field/schema/markdown-schema.js.map +1 -1
  191. package/components/icure-text-field/schema/measure-schema.js +12 -6
  192. package/components/icure-text-field/schema/measure-schema.js.map +1 -1
  193. package/components/icure-text-field/schema/token-schema.js +9 -5
  194. package/components/icure-text-field/schema/token-schema.js.map +1 -1
  195. package/components/icure-text-field/schema/utils.js +7 -2
  196. package/components/icure-text-field/schema/utils.js.map +1 -1
  197. package/components/icure-text-field/selection-companion.js +5 -1
  198. package/components/icure-text-field/selection-companion.js.map +1 -1
  199. package/components/icure-text-field/suggestion-palette.js +10 -3
  200. package/components/icure-text-field/suggestion-palette.js.map +1 -1
  201. package/components/index.js +21 -5
  202. package/components/index.js.map +1 -1
  203. package/components/model/index.js +46 -22
  204. package/components/model/index.js.map +1 -1
  205. package/components/themes/default/index.js +32 -30
  206. package/components/themes/default/index.js.map +1 -1
  207. package/components/themes/icure-blue/index.js +47 -45
  208. package/components/themes/icure-blue/index.js.map +1 -1
  209. package/components/themes/kendo/index.js +47 -45
  210. package/components/themes/kendo/index.js.map +1 -1
  211. package/conversion/ckmeans-grouping.js +10 -3
  212. package/conversion/ckmeans-grouping.js.map +1 -1
  213. package/conversion/ckmeans.js +3 -1
  214. package/conversion/ckmeans.js.map +1 -1
  215. package/generic/index.js +17 -1
  216. package/generic/index.js.map +1 -1
  217. package/generic/model.js +2 -1
  218. package/icure/form-values-container.d.ts +14 -14
  219. package/icure/form-values-container.js +45 -37
  220. package/icure/form-values-container.js.map +1 -1
  221. package/icure/icure-utils.d.ts +7 -7
  222. package/icure/icure-utils.js +28 -16
  223. package/icure/icure-utils.js.map +1 -1
  224. package/icure/index.js +18 -2
  225. package/icure/index.js.map +1 -1
  226. package/icure/model.d.ts +1 -1
  227. package/icure/model.js +2 -1
  228. package/icure/model.js.map +1 -1
  229. package/index.js +17 -1
  230. package/index.js.map +1 -1
  231. package/package.json +3 -2
  232. package/utils/code-utils.d.ts +10 -1
  233. package/utils/code-utils.js +59 -11
  234. package/utils/code-utils.js.map +1 -1
  235. package/utils/dates.js +21 -9
  236. package/utils/dates.js.map +1 -1
  237. package/utils/fields-values-provider.js +17 -8
  238. package/utils/fields-values-provider.js.map +1 -1
  239. package/utils/form-value-container.js +7 -3
  240. package/utils/form-value-container.js.map +1 -1
  241. package/utils/interpreter.js +5 -1
  242. package/utils/interpreter.js.map +1 -1
  243. package/utils/languages.js +8 -3
  244. package/utils/languages.js.map +1 -1
  245. package/utils/markdown.js +11 -6
  246. package/utils/markdown.js.map +1 -1
  247. package/utils/no-lodash.js +9 -3
  248. package/utils/no-lodash.js.map +1 -1
  249. package/utils/primitive.js +12 -7
  250. package/utils/primitive.js.map +1 -1
  251. package/conversion/icure-convert.d.ts +0 -3
  252. package/conversion/icure-convert.js +0 -161
  253. package/conversion/icure-convert.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"form-value-container.js","sourceRoot":"","sources":["../../tmp/utils/form-value-container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,mBAAmE,EACnE,IAAW,EACX,QAAiB,EACjB,KAAc,EACkB,EAAE;;IAClC,MAAM,oBAAoB,GAAG,CAAC,GAAmC,EAAE,QAAiB,EAAiC,EAAE,CACtH,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;;QACtB,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,KAAI,MAAA,EAAE,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC9D,CAAC;aAAM,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,MAAA,EAAE,CAAC,kBAAkB,0CAAE,YAAY,EAAE,CAAC;gBACzC,MAAM,KAAK,GAA2B,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC,MAAA,EAAE,CAAC,kBAAkB,0CAAE,YAAY,CAAC,CAAA;gBACvG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAA;oBAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/C,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACxC,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;oBAClD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC,EAAE,EAAmC,CAAC,CAAA;IAExC,OAAO,CACN,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;;QACtC,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,oBAAoB,CAAC,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzE,CAAC,EAAE,EAAmC,CAAC,mCAAI,EAAE,CAC7C,CAAA;AACF,CAAC,CAAA","sourcesContent":["import { Field, FieldMetadata, FieldValue, Form, Group, Subform } from '../components/model'\nimport { makeMetadata } from './fields-values-provider'\nimport { FormValuesContainer } from '../generic'\n\nexport const computeFormDefaultValues = (\n\tformValuesContainer: FormValuesContainer<FieldValue, FieldMetadata>,\n\tform?: Form,\n\tlanguage?: string,\n\towner?: string,\n): [FieldValue, FieldMetadata][] => {\n\tconst extractDefaultValues = (fgs: Array<Field | Group | Subform>, language?: string): [FieldValue, FieldMetadata][] =>\n\t\tfgs.reduce((acc, fg) => {\n\t\t\tif (fg.clazz === 'group' && fg.fields?.length) {\n\t\t\t\treturn [...acc, ...extractDefaultValues(fg.fields, language)]\n\t\t\t} else if (fg.clazz === 'field') {\n\t\t\t\tif (fg.computedProperties?.defaultValue) {\n\t\t\t\t\tconst value: FieldValue | undefined = formValuesContainer?.compute(fg.computedProperties?.defaultValue)\n\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\tconst lng = language ?? 'en'\n\t\t\t\t\t\tif (!value.content[lng] && value.content['*']) {\n\t\t\t\t\t\t\tvalue.content[lng] = value.content['*']\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.content[lng]) {\n\t\t\t\t\t\t\treturn [...acc, [value, makeMetadata(fg, owner)]]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc\n\t\t}, [] as [FieldValue, FieldMetadata][])\n\n\treturn (\n\t\tform?.sections.reduce((acc, section) => {\n\t\t\treturn [...acc, ...extractDefaultValues(section.fields ?? [], language)]\n\t\t}, [] as [FieldValue, FieldMetadata][]) ?? []\n\t)\n}\n"]}
1
+ {"version":3,"file":"form-value-container.js","sourceRoot":"","sources":["../../tmp/utils/form-value-container.ts"],"names":[],"mappings":";;;AACA,qEAAuD;AAGhD,MAAM,wBAAwB,GAAG,CACvC,mBAAmE,EACnE,IAAW,EACX,QAAiB,EACjB,KAAc,EACkB,EAAE;;IAClC,MAAM,oBAAoB,GAAG,CAAC,GAAmC,EAAE,QAAiB,EAAiC,EAAE,CACtH,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;;QACtB,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,KAAI,MAAA,EAAE,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC9D,CAAC;aAAM,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,MAAA,EAAE,CAAC,kBAAkB,0CAAE,YAAY,EAAE,CAAC;gBACzC,MAAM,KAAK,GAA2B,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC,MAAA,EAAE,CAAC,kBAAkB,0CAAE,YAAY,CAAC,CAAA;gBACvG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAA;oBAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/C,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACxC,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,IAAA,qCAAY,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;oBAClD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC,EAAE,EAAmC,CAAC,CAAA;IAExC,OAAO,CACN,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;;QACtC,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,oBAAoB,CAAC,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzE,CAAC,EAAE,EAAmC,CAAC,mCAAI,EAAE,CAC7C,CAAA;AACF,CAAC,CAAA;AAhCY,QAAA,wBAAwB,4BAgCpC","sourcesContent":["import { Field, FieldMetadata, FieldValue, Form, Group, Subform } from '../components/model'\nimport { makeMetadata } from './fields-values-provider'\nimport { FormValuesContainer } from '../generic'\n\nexport const computeFormDefaultValues = (\n\tformValuesContainer: FormValuesContainer<FieldValue, FieldMetadata>,\n\tform?: Form,\n\tlanguage?: string,\n\towner?: string,\n): [FieldValue, FieldMetadata][] => {\n\tconst extractDefaultValues = (fgs: Array<Field | Group | Subform>, language?: string): [FieldValue, FieldMetadata][] =>\n\t\tfgs.reduce((acc, fg) => {\n\t\t\tif (fg.clazz === 'group' && fg.fields?.length) {\n\t\t\t\treturn [...acc, ...extractDefaultValues(fg.fields, language)]\n\t\t\t} else if (fg.clazz === 'field') {\n\t\t\t\tif (fg.computedProperties?.defaultValue) {\n\t\t\t\t\tconst value: FieldValue | undefined = formValuesContainer?.compute(fg.computedProperties?.defaultValue)\n\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\tconst lng = language ?? 'en'\n\t\t\t\t\t\tif (!value.content[lng] && value.content['*']) {\n\t\t\t\t\t\t\tvalue.content[lng] = value.content['*']\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.content[lng]) {\n\t\t\t\t\t\t\treturn [...acc, [value, makeMetadata(fg, owner)]]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc\n\t\t}, [] as [FieldValue, FieldMetadata][])\n\n\treturn (\n\t\tform?.sections.reduce((acc, section) => {\n\t\t\treturn [...acc, ...extractDefaultValues(section.fields ?? [], language)]\n\t\t}, [] as [FieldValue, FieldMetadata][]) ?? []\n\t)\n}\n"]}
@@ -1,4 +1,7 @@
1
- export const makeInterpreter = () => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeInterpreter = void 0;
4
+ const makeInterpreter = () => {
2
5
  const sb = new Map();
3
6
  const cs = new Map();
4
7
  return (formula, sandbox) => {
@@ -44,4 +47,5 @@ export const makeInterpreter = () => {
44
47
  }
45
48
  };
46
49
  };
50
+ exports.makeInterpreter = makeInterpreter;
47
51
  //# sourceMappingURL=interpreter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../tmp/utils/interpreter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,CAAA;IACpB,MAAM,EAAE,GAAqB,IAAI,GAAG,EAAE,CAAA;IAEtC,OAAO,CAAmD,OAAe,EAAE,OAAU,EAAiB,EAAE;QACvG,SAAS,WAAW,CAAC,GAAW;YAC/B,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;YAED,GAAG,GAAG,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAA;YACpC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAEzC,MAAM,OAAO,GAAG,UAAU,OAAU;gBACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtB,MAAM,YAAY,GAAG,IAAI,KAAK,CAAI,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;oBACxD,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;gBAC9B,CAAC;gBACD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YAC7B,CAAC,CAAA;YAED,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAEpB,OAAO,OAAO,CAAA;QACf,CAAC;QAED,SAAS,GAAG;YACX,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,SAAS,GAAG,CAAC,MAAS,EAAE,GAAoB;YAC3C,IAAI,GAAG,KAAK,MAAM,CAAC,WAAW;gBAAE,OAAO,SAAS,CAAA;YAChD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;QAED,IAAI,YAAiB,CAAA;QACrB,IAAI,CAAC;YACJ,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAA;YAC3C,OAAO,SAAS,CAAA;QACjB,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YACpC,OAAO,MAAM,CAAA;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,iCAAiC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;YAC5D,OAAO,SAAS,CAAA;QACjB,CAAC;IACF,CAAC,CAAA;AACF,CAAC,CAAA","sourcesContent":["export const makeInterpreter = () => {\n\tconst sb = new Map()\n\tconst cs: Map<string, any> = new Map()\n\n\treturn <T, S extends { [key: string | symbol]: unknown }>(formula: string, sandbox: S): T | undefined => {\n\t\tfunction compileCode(src: string) {\n\t\t\tif (cs.has(src)) {\n\t\t\t\treturn cs.get(src)\n\t\t\t}\n\n\t\t\tsrc = 'with (sandbox) {' + src + '}'\n\t\t\tconst code = new Function('sandbox', src)\n\n\t\t\tconst wrapper = function (sandbox: S) {\n\t\t\t\tif (!sb.has(sandbox)) {\n\t\t\t\t\tconst sandboxProxy = new Proxy<S>(sandbox, { has, get })\n\t\t\t\t\tsb.set(sandbox, sandboxProxy)\n\t\t\t\t}\n\t\t\t\treturn code(sb.get(sandbox))\n\t\t\t}\n\n\t\t\tcs.set(src, wrapper)\n\n\t\t\treturn wrapper\n\t\t}\n\n\t\tfunction has() {\n\t\t\treturn true\n\t\t}\n\n\t\tfunction get(target: S, key: string | symbol) {\n\t\t\tif (key === Symbol.unscopables) return undefined\n\t\t\treturn target[key]\n\t\t}\n\n\t\tlet compiledCode: any\n\t\ttry {\n\t\t\tcompiledCode = compileCode(formula)\n\t\t} catch (e) {\n\t\t\tconsole.info('Invalid Formula: ' + formula)\n\t\t\treturn undefined\n\t\t}\n\t\ttry {\n\t\t\tconst result = compiledCode(sandbox)\n\t\t\treturn result\n\t\t} catch (e) {\n\t\t\tconsole.info('Error while executing formula: ' + formula, e)\n\t\t\treturn undefined\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../tmp/utils/interpreter.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,CAAA;IACpB,MAAM,EAAE,GAAqB,IAAI,GAAG,EAAE,CAAA;IAEtC,OAAO,CAAmD,OAAe,EAAE,OAAU,EAAiB,EAAE;QACvG,SAAS,WAAW,CAAC,GAAW;YAC/B,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;YAED,GAAG,GAAG,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAA;YACpC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAEzC,MAAM,OAAO,GAAG,UAAU,OAAU;gBACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtB,MAAM,YAAY,GAAG,IAAI,KAAK,CAAI,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;oBACxD,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;gBAC9B,CAAC;gBACD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YAC7B,CAAC,CAAA;YAED,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAEpB,OAAO,OAAO,CAAA;QACf,CAAC;QAED,SAAS,GAAG;YACX,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,SAAS,GAAG,CAAC,MAAS,EAAE,GAAoB;YAC3C,IAAI,GAAG,KAAK,MAAM,CAAC,WAAW;gBAAE,OAAO,SAAS,CAAA;YAChD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;QAED,IAAI,YAAiB,CAAA;QACrB,IAAI,CAAC;YACJ,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,CAAA;YAC3C,OAAO,SAAS,CAAA;QACjB,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YACpC,OAAO,MAAM,CAAA;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,iCAAiC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;YAC5D,OAAO,SAAS,CAAA;QACjB,CAAC;IACF,CAAC,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,eAAe,mBAkD3B","sourcesContent":["export const makeInterpreter = () => {\n\tconst sb = new Map()\n\tconst cs: Map<string, any> = new Map()\n\n\treturn <T, S extends { [key: string | symbol]: unknown }>(formula: string, sandbox: S): T | undefined => {\n\t\tfunction compileCode(src: string) {\n\t\t\tif (cs.has(src)) {\n\t\t\t\treturn cs.get(src)\n\t\t\t}\n\n\t\t\tsrc = 'with (sandbox) {' + src + '}'\n\t\t\tconst code = new Function('sandbox', src)\n\n\t\t\tconst wrapper = function (sandbox: S) {\n\t\t\t\tif (!sb.has(sandbox)) {\n\t\t\t\t\tconst sandboxProxy = new Proxy<S>(sandbox, { has, get })\n\t\t\t\t\tsb.set(sandbox, sandboxProxy)\n\t\t\t\t}\n\t\t\t\treturn code(sb.get(sandbox))\n\t\t\t}\n\n\t\t\tcs.set(src, wrapper)\n\n\t\t\treturn wrapper\n\t\t}\n\n\t\tfunction has() {\n\t\t\treturn true\n\t\t}\n\n\t\tfunction get(target: S, key: string | symbol) {\n\t\t\tif (key === Symbol.unscopables) return undefined\n\t\t\treturn target[key]\n\t\t}\n\n\t\tlet compiledCode: any\n\t\ttry {\n\t\t\tcompiledCode = compileCode(formula)\n\t\t} catch (e) {\n\t\t\tconsole.info('Invalid Formula: ' + formula)\n\t\t\treturn undefined\n\t\t}\n\t\ttry {\n\t\t\tconst result = compiledCode(sandbox)\n\t\t\treturn result\n\t\t} catch (e) {\n\t\t\tconsole.info('Error while executing formula: ' + formula, e)\n\t\t\treturn undefined\n\t\t}\n\t}\n}\n"]}
@@ -1,10 +1,15 @@
1
- export const languages = {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultTranslationProvider = exports.languageName = exports.languages = void 0;
4
+ exports.languages = {
2
5
  en: 'English',
3
6
  fr: 'French',
4
7
  es: 'Spanish',
5
8
  nl: 'Dutch',
6
9
  de: 'German',
7
10
  };
8
- export const languageName = (iso) => languages[iso] || iso;
9
- export const defaultTranslationProvider = (translations) => (language, text) => { var _a, _b, _c; return (_c = (_b = (_a = translations === null || translations === void 0 ? void 0 : translations.find((tt) => tt.language === language)) === null || _a === void 0 ? void 0 : _a.translations) === null || _b === void 0 ? void 0 : _b[text]) !== null && _c !== void 0 ? _c : text; };
11
+ const languageName = (iso) => exports.languages[iso] || iso;
12
+ exports.languageName = languageName;
13
+ const defaultTranslationProvider = (translations) => (language, text) => { var _a, _b, _c; return (_c = (_b = (_a = translations === null || translations === void 0 ? void 0 : translations.find((tt) => tt.language === language)) === null || _a === void 0 ? void 0 : _a.translations) === null || _b === void 0 ? void 0 : _b[text]) !== null && _c !== void 0 ? _c : text; };
14
+ exports.defaultTranslationProvider = defaultTranslationProvider;
10
15
  //# sourceMappingURL=languages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../tmp/utils/languages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,QAAQ;CACiB,CAAA;AAE9B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;AAE1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,YAAgC,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE,mBAClH,OAAA,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,0CAAE,YAAY,0CAAG,IAAI,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAA","sourcesContent":["import { TranslationTable } from '../components/model'\n\nexport const languages = {\n\ten: 'English',\n\tfr: 'French',\n\tes: 'Spanish',\n\tnl: 'Dutch',\n\tde: 'German',\n} as { [key: string]: string }\n\nexport const languageName = (iso: string): string => languages[iso] || iso\n\nexport const defaultTranslationProvider = (translations: TranslationTable[]) => (language: string, text: string) =>\n\ttranslations?.find((tt) => tt.language === language)?.translations?.[text] ?? text\n"]}
1
+ {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../tmp/utils/languages.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAG;IACxB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,QAAQ;CACiB,CAAA;AAEvB,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,iBAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;AAA7D,QAAA,YAAY,gBAAiD;AAEnE,MAAM,0BAA0B,GAAG,CAAC,YAAgC,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE,mBAClH,OAAA,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,0CAAE,YAAY,0CAAG,IAAI,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAA;AADtE,QAAA,0BAA0B,8BAC4C","sourcesContent":["import { TranslationTable } from '../components/model'\n\nexport const languages = {\n\ten: 'English',\n\tfr: 'French',\n\tes: 'Spanish',\n\tnl: 'Dutch',\n\tde: 'German',\n} as { [key: string]: string }\n\nexport const languageName = (iso: string): string => languages[iso] || iso\n\nexport const defaultTranslationProvider = (translations: TranslationTable[]) => (language: string, text: string) =>\n\ttranslations?.find((tt) => tt.language === language)?.translations?.[text] ?? text\n"]}
package/utils/markdown.js CHANGED
@@ -1,5 +1,8 @@
1
- import { Fragment } from 'prosemirror-model';
2
- export class SpacePreservingMarkdownParser {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preprocessEmptyNodes = exports.SpacePreservingMarkdownParser = void 0;
4
+ const prosemirror_model_1 = require("prosemirror-model");
5
+ class SpacePreservingMarkdownParser {
3
6
  constructor(mkdp) {
4
7
  this.mkdp = mkdp;
5
8
  }
@@ -27,14 +30,15 @@ export class SpacePreservingMarkdownParser {
27
30
  return node;
28
31
  }
29
32
  }
30
- export const preprocessEmptyNodes = (node, schema) => {
33
+ exports.SpacePreservingMarkdownParser = SpacePreservingMarkdownParser;
34
+ const preprocessEmptyNodes = (node, schema) => {
31
35
  var _a;
32
36
  const content = node.content;
33
37
  if (node.isText) {
34
38
  return node.withText(((_a = node.text) !== null && _a !== void 0 ? _a : '').replace(/^( +)/g, (x) => x.replace(/ /g, '\u00a0')));
35
39
  }
36
40
  if (node.isBlock && node.type.name === 'paragraph' && content.size === 0) {
37
- return node.copy(Fragment.fromArray([schema.text('\u00a0')]));
41
+ return node.copy(prosemirror_model_1.Fragment.fromArray([schema.text('\u00a0')]));
38
42
  }
39
43
  if (content.childCount === 0) {
40
44
  return node;
@@ -51,7 +55,8 @@ export const preprocessEmptyNodes = (node, schema) => {
51
55
  },
52
56
  };
53
57
  const originals = Array.from(iterate);
54
- const treated = originals.map((n) => preprocessEmptyNodes(n, schema));
55
- return node.copy(Fragment.fromArray(treated));
58
+ const treated = originals.map((n) => (0, exports.preprocessEmptyNodes)(n, schema));
59
+ return node.copy(prosemirror_model_1.Fragment.fromArray(treated));
56
60
  };
61
+ exports.preprocessEmptyNodes = preprocessEmptyNodes;
57
62
  //# sourceMappingURL=markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../tmp/utils/markdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarkdownParser } from 'prosemirror-markdown'\nimport { Fragment, Node as ProsemirrorNode, Schema } from 'prosemirror-model'\nimport { PrimitiveType } from '../components/model'\n\nexport class SpacePreservingMarkdownParser {\n\tconstructor(private mkdp: MarkdownParser) {}\n\n\tparse(primitiveValue: PrimitiveType): ProsemirrorNode | null {\n\t\tif (primitiveValue.type !== 'string') {\n\t\t\treturn null\n\t\t}\n\t\tconst value = primitiveValue.value\n\t\tconst node = this.mkdp.parse(value)\n\t\tconst trailingSpaces = value.match(/([ ]+)$/)?.[1]\n\t\tif (node && trailingSpaces) {\n\t\t\tconst appendTextToLastTextChild = (node: ProsemirrorNode, text: string): ProsemirrorNode => {\n\t\t\t\tif (node.isText) {\n\t\t\t\t\treturn (node as any).withText(node.text + text)\n\t\t\t\t}\n\t\t\t\tconst lastChild = node.lastChild\n\t\t\t\tif (lastChild) {\n\t\t\t\t\treturn node.copy(node.content.replaceChild(node.childCount - 1, appendTextToLastTextChild(lastChild, text)))\n\t\t\t\t}\n\t\t\t\treturn node\n\t\t\t}\n\n\t\t\treturn appendTextToLastTextChild(node, trailingSpaces)\n\t\t}\n\t\treturn node\n\t}\n}\n\nexport const preprocessEmptyNodes = (node: ProsemirrorNode, schema: Schema): ProsemirrorNode => {\n\tconst content = node.content\n\tif (node.isText) {\n\t\treturn (node as any).withText((node.text ?? '').replace(/^( +)/g, (x) => x.replace(/ /g, '\\u00a0')))\n\t}\n\tif (node.isBlock && node.type.name === 'paragraph' && content.size === 0) {\n\t\treturn node.copy(Fragment.fromArray([schema.text('\\u00a0')]))\n\t}\n\tif (content.childCount === 0) {\n\t\treturn node\n\t}\n\tlet idx = 0\n\tconst iterate = {\n\t\tnext: () => {\n\t\t\tif (content.childCount === idx) return { value: content.child(idx - 1), done: true }\n\t\t\treturn { value: content.child(idx++), done: false }\n\t\t},\n\t\t[Symbol.iterator]() {\n\t\t\treturn this\n\t\t},\n\t}\n\tconst originals = Array.from(iterate)\n\tconst treated = originals.map((n) => preprocessEmptyNodes(n, schema))\n\treturn node.copy(Fragment.fromArray(treated))\n}\n"]}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../tmp/utils/markdown.ts"],"names":[],"mappings":";;;AACA,yDAA6E;AAG7E,MAAa,6BAA6B;IACzC,YAAoB,IAAoB;QAApB,SAAI,GAAJ,IAAI,CAAgB;IAAG,CAAC;IAE5C,KAAK,CAAC,cAA6B;;QAClC,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAA;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,cAAc,GAAG,MAAA,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAG,CAAC,CAAC,CAAA;QAClD,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;YAC5B,MAAM,yBAAyB,GAAG,CAAC,IAAqB,EAAE,IAAY,EAAmB,EAAE;gBAC1F,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,OAAQ,IAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;gBAChD,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;gBAChC,IAAI,SAAS,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC7G,CAAC;gBACD,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;YAED,OAAO,yBAAyB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC;CACD;AA1BD,sEA0BC;AAEM,MAAM,oBAAoB,GAAG,CAAC,IAAqB,EAAE,MAAc,EAAmB,EAAE;;IAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAQ,IAAY,CAAC,QAAQ,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrG,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,4BAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,MAAM,OAAO,GAAG;QACf,IAAI,EAAE,GAAG,EAAE;YACV,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG;gBAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YACpF,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;QACpD,CAAC;QACD,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,OAAO,IAAI,CAAA;QACZ,CAAC;KACD,CAAA;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,4BAAoB,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACrE,OAAO,IAAI,CAAC,IAAI,CAAC,4BAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAA;AAxBY,QAAA,oBAAoB,wBAwBhC","sourcesContent":["import { MarkdownParser } from 'prosemirror-markdown'\nimport { Fragment, Node as ProsemirrorNode, Schema } from 'prosemirror-model'\nimport { PrimitiveType } from '../components/model'\n\nexport class SpacePreservingMarkdownParser {\n\tconstructor(private mkdp: MarkdownParser) {}\n\n\tparse(primitiveValue: PrimitiveType): ProsemirrorNode | null {\n\t\tif (primitiveValue.type !== 'string') {\n\t\t\treturn null\n\t\t}\n\t\tconst value = primitiveValue.value\n\t\tconst node = this.mkdp.parse(value)\n\t\tconst trailingSpaces = value.match(/([ ]+)$/)?.[1]\n\t\tif (node && trailingSpaces) {\n\t\t\tconst appendTextToLastTextChild = (node: ProsemirrorNode, text: string): ProsemirrorNode => {\n\t\t\t\tif (node.isText) {\n\t\t\t\t\treturn (node as any).withText(node.text + text)\n\t\t\t\t}\n\t\t\t\tconst lastChild = node.lastChild\n\t\t\t\tif (lastChild) {\n\t\t\t\t\treturn node.copy(node.content.replaceChild(node.childCount - 1, appendTextToLastTextChild(lastChild, text)))\n\t\t\t\t}\n\t\t\t\treturn node\n\t\t\t}\n\n\t\t\treturn appendTextToLastTextChild(node, trailingSpaces)\n\t\t}\n\t\treturn node\n\t}\n}\n\nexport const preprocessEmptyNodes = (node: ProsemirrorNode, schema: Schema): ProsemirrorNode => {\n\tconst content = node.content\n\tif (node.isText) {\n\t\treturn (node as any).withText((node.text ?? '').replace(/^( +)/g, (x) => x.replace(/ /g, '\\u00a0')))\n\t}\n\tif (node.isBlock && node.type.name === 'paragraph' && content.size === 0) {\n\t\treturn node.copy(Fragment.fromArray([schema.text('\\u00a0')]))\n\t}\n\tif (content.childCount === 0) {\n\t\treturn node\n\t}\n\tlet idx = 0\n\tconst iterate = {\n\t\tnext: () => {\n\t\t\tif (content.childCount === idx) return { value: content.child(idx - 1), done: true }\n\t\t\treturn { value: content.child(idx++), done: false }\n\t\t},\n\t\t[Symbol.iterator]() {\n\t\t\treturn this\n\t\t},\n\t}\n\tconst originals = Array.from(iterate)\n\tconst treated = originals.map((n) => preprocessEmptyNodes(n, schema))\n\treturn node.copy(Fragment.fromArray(treated))\n}\n"]}
@@ -1,11 +1,15 @@
1
- export function groupBy(items, grouper) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sorted = exports.sortedBy = exports.groupBy = void 0;
4
+ function groupBy(items, grouper) {
2
5
  return items.reduce((r, v, i, a, k = grouper(v)) => {
3
6
  ;
4
7
  (r[k] || (r[k] = [])).push(v);
5
8
  return r;
6
9
  }, {});
7
10
  }
8
- export function sortedBy(items, key, direction = 'asc') {
11
+ exports.groupBy = groupBy;
12
+ function sortedBy(items, key, direction = 'asc') {
9
13
  if (typeof key === 'function') {
10
14
  return items.concat().sort(direction === 'asc' ? (a, b) => (key(a) > key(b) ? 1 : key(b) > key(a) ? -1 : 0) : (a, b) => (key(a) < key(b) ? 1 : key(b) < key(a) ? -1 : 0));
11
15
  }
@@ -15,7 +19,9 @@ export function sortedBy(items, key, direction = 'asc') {
15
19
  .sort(direction === 'asc' ? (a, b) => (a[key] > b[key] ? 1 : b[key] > a[key] ? -1 : 0) : (a, b) => (a[key] < b[key] ? 1 : b[key] < a[key] ? -1 : 0));
16
20
  }
17
21
  }
18
- export function sorted(items, direction = 'asc') {
22
+ exports.sortedBy = sortedBy;
23
+ function sorted(items, direction = 'asc') {
19
24
  return items.concat().sort(direction === 'asc' ? (a, b) => (a > b ? 1 : b > a ? -1 : 0) : (a, b) => (a < b ? 1 : b < a ? -1 : 0));
20
25
  }
26
+ exports.sorted = sorted;
21
27
  //# sourceMappingURL=no-lodash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-lodash.js","sourceRoot":"","sources":["../../tmp/utils/no-lodash.ts"],"names":[],"mappings":"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","sourcesContent":["export function groupBy<K, I extends string | number>(\n\titems: K[],\n\tgrouper: (item: K) => I,\n): {\n\t// @ts-ignore\n\t[key: I]: K\n} {\n\treturn items.reduce((r, v, i, a, k = grouper(v)) => {\n\t\t;(r[k as string | number] || (r[k as string | number] = [] as any)).push(v)\n\t\treturn r\n\t}, {} as { [key: string | number]: K })\n}\n\nexport function sortedBy<K extends { [key: string]: any }>(items: K[], key: string | ((a: K) => any), direction = 'asc'): K[] {\n\tif (typeof key === 'function') {\n\t\treturn items.concat().sort(direction === 'asc' ? (a, b) => (key(a) > key(b) ? 1 : key(b) > key(a) ? -1 : 0) : (a, b) => (key(a) < key(b) ? 1 : key(b) < key(a) ? -1 : 0))\n\t} else {\n\t\treturn items\n\t\t\t.concat()\n\t\t\t.sort(direction === 'asc' ? (a, b) => (a[key as string] > b[key] ? 1 : b[key] > a[key] ? -1 : 0) : (a, b) => (a[key] < b[key] ? 1 : b[key] < a[key] ? -1 : 0))\n\t}\n}\n\nexport function sorted<K>(items: K[], direction = 'asc'): K[] {\n\treturn items.concat().sort(direction === 'asc' ? (a, b) => (a > b ? 1 : b > a ? -1 : 0) : (a, b) => (a < b ? 1 : b < a ? -1 : 0))\n}\n"]}
1
+ {"version":3,"file":"no-lodash.js","sourceRoot":"","sources":["../../tmp/utils/no-lodash.ts"],"names":[],"mappings":"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","sourcesContent":["export function groupBy<K, I extends string | number>(\n\titems: K[],\n\tgrouper: (item: K) => I,\n): {\n\t// @ts-ignore\n\t[key: I]: K\n} {\n\treturn items.reduce((r, v, i, a, k = grouper(v)) => {\n\t\t;(r[k as string | number] || (r[k as string | number] = [] as any)).push(v)\n\t\treturn r\n\t}, {} as { [key: string | number]: K })\n}\n\nexport function sortedBy<K extends { [key: string]: any }>(items: K[], key: string | ((a: K) => any), direction = 'asc'): K[] {\n\tif (typeof key === 'function') {\n\t\treturn items.concat().sort(direction === 'asc' ? (a, b) => (key(a) > key(b) ? 1 : key(b) > key(a) ? -1 : 0) : (a, b) => (key(a) < key(b) ? 1 : key(b) < key(a) ? -1 : 0))\n\t} else {\n\t\treturn items\n\t\t\t.concat()\n\t\t\t.sort(direction === 'asc' ? (a, b) => (a[key as string] > b[key] ? 1 : b[key] > a[key] ? -1 : 0) : (a, b) => (a[key] < b[key] ? 1 : b[key] < a[key] ? -1 : 0))\n\t}\n}\n\nexport function sorted<K>(items: K[], direction = 'asc'): K[] {\n\treturn items.concat().sort(direction === 'asc' ? (a, b) => (a > b ? 1 : b > a ? -1 : 0) : (a, b) => (a < b ? 1 : b < a ? -1 : 0))\n}\n"]}
@@ -1,5 +1,8 @@
1
- import { anyDateToDate } from './dates';
2
- export const normalizeUnit = (value, unit) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePrimitive = exports.normalizeUnit = void 0;
4
+ const dates_1 = require("./dates");
5
+ const normalizeUnit = (value, unit) => {
3
6
  if (!unit) {
4
7
  return value;
5
8
  }
@@ -39,15 +42,16 @@ export const normalizeUnit = (value, unit) => {
39
42
  }
40
43
  return value;
41
44
  };
42
- export const parsePrimitive = (value) => {
45
+ exports.normalizeUnit = normalizeUnit;
46
+ const parsePrimitive = (value) => {
43
47
  switch (value.type) {
44
48
  case 'measure':
45
- const normalizedValue = value.value ? normalizeUnit(+value.value, value.unit) : undefined;
49
+ const normalizedValue = value.value ? (0, exports.normalizeUnit)(+value.value, value.unit) : undefined;
46
50
  return normalizedValue;
47
51
  case 'datetime':
48
- return anyDateToDate(value.value);
52
+ return (0, dates_1.anyDateToDate)(value.value);
49
53
  case 'timestamp':
50
- return anyDateToDate(value.value);
54
+ return (0, dates_1.anyDateToDate)(value.value);
51
55
  case 'number':
52
56
  return +value.value;
53
57
  case 'boolean':
@@ -56,8 +60,9 @@ export const parsePrimitive = (value) => {
56
60
  return value.value;
57
61
  case 'compound':
58
62
  return Object.values(value.value)
59
- .map(parsePrimitive)
63
+ .map(exports.parsePrimitive)
60
64
  .filter((x) => x !== undefined);
61
65
  }
62
66
  };
67
+ exports.parsePrimitive = parsePrimitive;
63
68
  //# sourceMappingURL=primitive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../tmp/utils/primitive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,IAAa,EAAU,EAAE;IACrE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,KAAK,CAAA;IACb,CAAC;IACD,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,IAAI;YACR,OAAO,KAAK,CAAA;QACb,KAAK,GAAG;YACP,OAAO,KAAK,GAAG,IAAI,CAAA;QACpB,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,OAAO,CAAA;QACvB,KAAK,GAAG;YACP,OAAO,KAAK,CAAA;QACb,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,IAAI,CAAA;QACpB,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,GAAG,CAAA;QACnB,KAAK,GAAG;YACP,OAAO,KAAK,CAAA;QACb,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,GAAG,CAAA;QACnB,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,IAAI,CAAA;QACpB,KAAK,GAAG;YACP,OAAO,KAAK,CAAA;QACb,KAAK,KAAK;YACT,OAAO,KAAK,GAAG,EAAE,CAAA;QAClB,KAAK,GAAG;YACP,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAA;QACvB,KAAK,GAAG;YACP,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAC5B,KAAK,MAAM;YACV,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAChC,KAAK,OAAO;YACX,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QACjC,KAAK,MAAM;YACV,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;IACtC,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAmC,EAAE;IACvF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACb,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACzF,OAAO,eAAe,CAAA;QACvB,KAAK,UAAU;YACd,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAClC,KAAK,WAAW;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAClC,KAAK,QAAQ;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAA;QACpB,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,KAAK,CAAA;QACnB,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC,KAAK,CAAA;QACnB,KAAK,UAAU;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/B,GAAG,CAAC,cAAc,CAAC;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAA0B,CAAA;IAC3D,CAAC;AACF,CAAC,CAAA","sourcesContent":["import { PrimitiveType } from '../components/model'\nimport { anyDateToDate } from './dates'\n\nexport const normalizeUnit = (value: number, unit?: string): number => {\n\tif (!unit) {\n\t\treturn value\n\t}\n\tswitch (unit) {\n\t\tcase 'kg':\n\t\t\treturn value\n\t\tcase 'g':\n\t\t\treturn value / 1000\n\t\tcase 'mg':\n\t\t\treturn value / 1000000\n\t\tcase 'l':\n\t\t\treturn value\n\t\tcase 'ml':\n\t\t\treturn value / 1000\n\t\tcase 'cl':\n\t\t\treturn value / 100\n\t\tcase 'm':\n\t\t\treturn value\n\t\tcase 'cm':\n\t\t\treturn value / 100\n\t\tcase 'mm':\n\t\t\treturn value / 1000\n\t\tcase 's':\n\t\t\treturn value\n\t\tcase 'min':\n\t\t\treturn value * 60\n\t\tcase 'h':\n\t\t\treturn value * 60 * 60\n\t\tcase 'd':\n\t\t\treturn value * 60 * 60 * 24\n\t\tcase 'week':\n\t\t\treturn value * 60 * 60 * 24 * 7\n\t\tcase 'month':\n\t\t\treturn value * 60 * 60 * 24 * 30\n\t\tcase 'year':\n\t\t\treturn value * 60 * 60 * 24 * 365.25\n\t}\n\treturn value\n}\n\nexport type ParsedPrimitiveType = number | string | boolean | Date | ParsedPrimitiveType[]\nexport const parsePrimitive = (value: PrimitiveType): ParsedPrimitiveType | undefined => {\n\tswitch (value.type) {\n\t\tcase 'measure':\n\t\t\tconst normalizedValue = value.value ? normalizeUnit(+value.value, value.unit) : undefined\n\t\t\treturn normalizedValue\n\t\tcase 'datetime':\n\t\t\treturn anyDateToDate(value.value)\n\t\tcase 'timestamp':\n\t\t\treturn anyDateToDate(value.value)\n\t\tcase 'number':\n\t\t\treturn +value.value\n\t\tcase 'boolean':\n\t\t\treturn value.value\n\t\tcase 'string':\n\t\t\treturn value.value\n\t\tcase 'compound':\n\t\t\treturn Object.values(value.value)\n\t\t\t\t.map(parsePrimitive)\n\t\t\t\t.filter((x) => x !== undefined) as ParsedPrimitiveType[]\n\t}\n}\n"]}
1
+ {"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../tmp/utils/primitive.ts"],"names":[],"mappings":";;;AACA,mCAAuC;AAEhC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,IAAa,EAAU,EAAE;IACrE,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,KAAK,CAAA;IACb,CAAC;IACD,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,IAAI;YACR,OAAO,KAAK,CAAA;QACb,KAAK,GAAG;YACP,OAAO,KAAK,GAAG,IAAI,CAAA;QACpB,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,OAAO,CAAA;QACvB,KAAK,GAAG;YACP,OAAO,KAAK,CAAA;QACb,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,IAAI,CAAA;QACpB,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,GAAG,CAAA;QACnB,KAAK,GAAG;YACP,OAAO,KAAK,CAAA;QACb,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,GAAG,CAAA;QACnB,KAAK,IAAI;YACR,OAAO,KAAK,GAAG,IAAI,CAAA;QACpB,KAAK,GAAG;YACP,OAAO,KAAK,CAAA;QACb,KAAK,KAAK;YACT,OAAO,KAAK,GAAG,EAAE,CAAA;QAClB,KAAK,GAAG;YACP,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAA;QACvB,KAAK,GAAG;YACP,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAC5B,KAAK,MAAM;YACV,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAChC,KAAK,OAAO;YACX,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QACjC,KAAK,MAAM;YACV,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;IACtC,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC,CAAA;AAvCY,QAAA,aAAa,iBAuCzB;AAGM,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAmC,EAAE;IACvF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACb,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACzF,OAAO,eAAe,CAAA;QACvB,KAAK,UAAU;YACd,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAClC,KAAK,WAAW;YACf,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAClC,KAAK,QAAQ;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAA;QACpB,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,KAAK,CAAA;QACnB,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC,KAAK,CAAA;QACnB,KAAK,UAAU;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/B,GAAG,CAAC,sBAAc,CAAC;iBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAA0B,CAAA;IAC3D,CAAC;AACF,CAAC,CAAA;AApBY,QAAA,cAAc,kBAoB1B","sourcesContent":["import { PrimitiveType } from '../components/model'\nimport { anyDateToDate } from './dates'\n\nexport const normalizeUnit = (value: number, unit?: string): number => {\n\tif (!unit) {\n\t\treturn value\n\t}\n\tswitch (unit) {\n\t\tcase 'kg':\n\t\t\treturn value\n\t\tcase 'g':\n\t\t\treturn value / 1000\n\t\tcase 'mg':\n\t\t\treturn value / 1000000\n\t\tcase 'l':\n\t\t\treturn value\n\t\tcase 'ml':\n\t\t\treturn value / 1000\n\t\tcase 'cl':\n\t\t\treturn value / 100\n\t\tcase 'm':\n\t\t\treturn value\n\t\tcase 'cm':\n\t\t\treturn value / 100\n\t\tcase 'mm':\n\t\t\treturn value / 1000\n\t\tcase 's':\n\t\t\treturn value\n\t\tcase 'min':\n\t\t\treturn value * 60\n\t\tcase 'h':\n\t\t\treturn value * 60 * 60\n\t\tcase 'd':\n\t\t\treturn value * 60 * 60 * 24\n\t\tcase 'week':\n\t\t\treturn value * 60 * 60 * 24 * 7\n\t\tcase 'month':\n\t\t\treturn value * 60 * 60 * 24 * 30\n\t\tcase 'year':\n\t\t\treturn value * 60 * 60 * 24 * 365.25\n\t}\n\treturn value\n}\n\nexport type ParsedPrimitiveType = number | string | boolean | Date | ParsedPrimitiveType[]\nexport const parsePrimitive = (value: PrimitiveType): ParsedPrimitiveType | undefined => {\n\tswitch (value.type) {\n\t\tcase 'measure':\n\t\t\tconst normalizedValue = value.value ? normalizeUnit(+value.value, value.unit) : undefined\n\t\t\treturn normalizedValue\n\t\tcase 'datetime':\n\t\t\treturn anyDateToDate(value.value)\n\t\tcase 'timestamp':\n\t\t\treturn anyDateToDate(value.value)\n\t\tcase 'number':\n\t\t\treturn +value.value\n\t\tcase 'boolean':\n\t\t\treturn value.value\n\t\tcase 'string':\n\t\t\treturn value.value\n\t\tcase 'compound':\n\t\t\treturn Object.values(value.value)\n\t\t\t\t.map(parsePrimitive)\n\t\t\t\t.filter((x) => x !== undefined) as ParsedPrimitiveType[]\n\t}\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { FormLayout } from '@icure/api';
2
- import { Form } from '../components/model';
3
- export declare function convertLegacy(form: FormLayout, formsLibrary: FormLayout[]): Form;
@@ -1,161 +0,0 @@
1
- import { Button, CheckBox, DatePicker, DateTimePicker, DropdownField, Form, ItemsListField, MeasureField, NumberField, Section, Subform, TextField, TokenField, } from '../components/model';
2
- import { cluster } from './ckmeans-grouping';
3
- export function convertLegacy(form, formsLibrary) {
4
- var _a, _b;
5
- const TOTAL_COLUMNS = 24;
6
- const makeTextField = (formData, width, height) => { var _a; return new TextField((_a = formData.name) !== null && _a !== void 0 ? _a : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined }); };
7
- const makeItemsListField = (formData, width, height) => { var _a; return new ItemsListField((_a = formData.name) !== null && _a !== void 0 ? _a : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined }); };
8
- const makeTokenField = (formData, width, height) => { var _a; return new TokenField((_a = formData.name) !== null && _a !== void 0 ? _a : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined }); };
9
- const makeCheckBox = (formData, width, height) => { var _a, _b; return new CheckBox((_a = formData.name) !== null && _a !== void 0 ? _a : '', { shortLabel: formData.label, options: { [(_b = formData.label) !== null && _b !== void 0 ? _b : '']: formData.label }, span: width, rowSpan: height > 1 ? height : undefined }); };
10
- const makeMeasureField = (formData, width, height) => { var _a; return new MeasureField((_a = formData.name) !== null && _a !== void 0 ? _a : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined }); };
11
- const makeNumberField = (formData, width, height) => { var _a; return new NumberField((_a = formData.name) !== null && _a !== void 0 ? _a : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined }); };
12
- const makeDateTimeField = (formData, width, height) => {
13
- var _a, _b, _c;
14
- return ((_a = formData.editor) === null || _a === void 0 ? void 0 : _a.displayTime)
15
- ? new DateTimePicker((_b = formData.name) !== null && _b !== void 0 ? _b : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })
16
- : new DatePicker((_c = formData.name) !== null && _c !== void 0 ? _c : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined });
17
- };
18
- const makeDropdownField = (formData, width, height) => {
19
- var _a, _b, _c;
20
- return new DropdownField((_a = formData.name) !== null && _a !== void 0 ? _a : '', {
21
- shortLabel: formData.label,
22
- span: width,
23
- options: ((_b = formData.editor) === null || _b === void 0 ? void 0 : _b.menuOptions)
24
- ? (_c = formData.editor) === null || _c === void 0 ? void 0 : _c.menuOptions.reduce((acc, v) => (Object.assign(Object.assign({}, acc), { [`LEGACY|${v}|1`]: v })), {})
25
- : undefined,
26
- });
27
- };
28
- const makeSubForm = (formData, width, height) => {
29
- var _a, _b, _c;
30
- const subForms = (_b = (_a = formData.editor) === null || _a === void 0 ? void 0 : _a.optionalFormGuids) === null || _b === void 0 ? void 0 : _b.map((guid) => {
31
- const subForm = formsLibrary.find((it) => it.guid === guid);
32
- if (!subForm) {
33
- throw new Error(`Cannot find subform ${guid}`);
34
- }
35
- return convertLegacy(subForm, formsLibrary);
36
- });
37
- return new Subform((_c = formData.name) !== null && _c !== void 0 ? _c : '', subForms.reduce((acc, sf) => (Object.assign(Object.assign({}, acc), { [sf.form]: sf })), {}), {
38
- shortLabel: formData.label,
39
- span: width,
40
- rowSpan: height,
41
- });
42
- };
43
- const makeActionButton = (formData, width, height) => { var _a; return new Button((_a = formData.name) !== null && _a !== void 0 ? _a : '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined }); };
44
- // noinspection UnnecessaryLocalVariableJS
45
- const translated = new Form((_a = (form.group ? `${form.group}/${form.name}` : form.name)) !== null && _a !== void 0 ? _a : 'Unknown', ((_b = form.sections) !== null && _b !== void 0 ? _b : []).map((section) => {
46
- var _a, _b, _c, _d, _e, _f, _g;
47
- const fld = ((_a = section.formColumns) !== null && _a !== void 0 ? _a : []).flatMap((column) => { var _a; return (_a = column.formDataList) !== null && _a !== void 0 ? _a : []; });
48
- const sortedList = fld.sort((a, b) => { var _a, _b, _c, _d; return ((_b = (_a = a.editor) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = b.editor) === null || _c === void 0 ? void 0 : _c.top) !== null && _d !== void 0 ? _d : 0); });
49
- const rowClusters = cluster(fld.map((f) => { var _a, _b; return (_b = (_a = f.editor) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 0; }), 5, 16);
50
- const rows = rowClusters.clusters;
51
- const intraCentroids = rowClusters.centroids.map((v, idx, centroids) => (idx > 0 ? v - centroids[idx - 1] : 0)).filter((x) => x > 0);
52
- const meanHeightWithOutliers = intraCentroids.reduce((sum, v) => v + sum, 0) / intraCentroids.length;
53
- const intraCentroidsWithoutOutliers = intraCentroids.filter((x) => x < meanHeightWithOutliers * 2);
54
- const meanHeight = intraCentroidsWithoutOutliers.reduce((sum, v) => v + sum, 0) / intraCentroidsWithoutOutliers.length;
55
- const formDataClusters = sortedList
56
- .reduce((cs, fd) => {
57
- cs[rows.findIndex((c) => { var _a, _b; return c.includes((_b = (_a = fd.editor) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 0); })].push(fd);
58
- return cs;
59
- }, new Array(rows.length).fill(null).map(() => []))
60
- .map((c) => c.sort((a, b) => { var _a, _b, _c, _d; return ((_b = (_a = a.editor) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = b.editor) === null || _c === void 0 ? void 0 : _c.left) !== null && _d !== void 0 ? _d : 0); }));
61
- const leftMostField = sortedList.filter((f) => !f.subForm).reduce((a, b) => { var _a, _b, _c, _d; return (((_b = (_a = a.editor) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0) < ((_d = (_c = b.editor) === null || _c === void 0 ? void 0 : _c.left) !== null && _d !== void 0 ? _d : 0) ? a : b); });
62
- const rightMostField = sortedList
63
- .filter((f) => !f.subForm)
64
- .reduce((a, b) => { var _a, _b, _c, _d, _e, _f, _g, _h; return (((_b = (_a = a.editor) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = a.editor) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : 0) < ((_f = (_e = b.editor) === null || _e === void 0 ? void 0 : _e.left) !== null && _f !== void 0 ? _f : 0) + ((_h = (_g = b.editor) === null || _g === void 0 ? void 0 : _g.width) !== null && _h !== void 0 ? _h : 0) ? b : a); });
65
- const leftSide = (_c = (_b = leftMostField.editor) === null || _b === void 0 ? void 0 : _b.left) !== null && _c !== void 0 ? _c : 0;
66
- const formWidth = ((_e = (_d = rightMostField === null || rightMostField === void 0 ? void 0 : rightMostField.editor) === null || _d === void 0 ? void 0 : _d.left) !== null && _e !== void 0 ? _e : 0) + ((_g = (_f = rightMostField === null || rightMostField === void 0 ? void 0 : rightMostField.editor) === null || _f === void 0 ? void 0 : _f.width) !== null && _g !== void 0 ? _g : 1024) - leftSide;
67
- const interColumnsDistance = formWidth / TOTAL_COLUMNS;
68
- const columns = cluster(fld.map((f) => { var _a, _b, _c, _d; return ((_b = (_a = f.editor) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = f.editor) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : 0) - leftSide; }), formWidth / (TOTAL_COLUMNS * 2), Math.ceil((formWidth !== null && formWidth !== void 0 ? formWidth : 1024) / (TOTAL_COLUMNS * 4)), Math.max(Math.min(TOTAL_COLUMNS, fld.length / 2), 1));
69
- const columnsWidth = columns.centroids.map((v, idx, t) => { var _a; return v - ((_a = t[idx - 1]) !== null && _a !== void 0 ? _a : 0); });
70
- const acc = columnsWidth.map(() => 1);
71
- while (acc.reduce((s, v) => s + v, 0) < TOTAL_COLUMNS) {
72
- const idx = acc.reduce((s, size, idx) => {
73
- const diff = size * interColumnsDistance - columnsWidth[idx];
74
- return diff < 0 && -diff > s[1] ? [idx, -diff] : s;
75
- }, [undefined, 0]);
76
- const selected = idx[0];
77
- if (selected === undefined) {
78
- break;
79
- }
80
- acc[selected]++;
81
- }
82
- // noinspection UnnecessaryLocalVariableJS
83
- const columnsRoundedWidth = acc;
84
- const columnsAccumulatedWidth = columnsRoundedWidth.reduce((acc, v) => { var _a; return [...acc, ((_a = acc[acc.length - 1]) !== null && _a !== void 0 ? _a : 0) + v]; }, []);
85
- const columnsAccumulatedWidthWithInterColumns = columnsAccumulatedWidth.map((v) => v * interColumnsDistance);
86
- return new Section('Main', formDataClusters.flatMap((formDataRow) => {
87
- const cols = formDataRow
88
- .map((formData) => {
89
- return columnsAccumulatedWidth[columnsAccumulatedWidthWithInterColumns.reduce(([idx, min], x, n) => {
90
- var _a, _b, _c, _d;
91
- const right = ((_b = (_a = formData.editor) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = formData.editor) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : 0) - leftSide;
92
- return Math.abs(x - right) < min ? [n, Math.abs(x - right)] : [idx, min];
93
- }, [0, 99999])[0]];
94
- })
95
- .map((x, idx, cols) => {
96
- var _a, _b;
97
- //Try to solve inverted positions in columns by adding or removing one column
98
- const prev = (_a = cols[idx - 1]) !== null && _a !== void 0 ? _a : 0;
99
- const next = (_b = cols[idx + 1]) !== null && _b !== void 0 ? _b : TOTAL_COLUMNS;
100
- return x > prev + 1 && x >= next - 1 ? x - 1 : x === prev ? x + 1 : x;
101
- });
102
- const subRows = cols.reduce((acc, v, idx, cols) => {
103
- var _a;
104
- if (idx === 0) {
105
- return [[[idx, v]]];
106
- }
107
- let row = 0;
108
- while (row < acc.length && acc[row][acc[row].length - 1][1] > v) {
109
- row++;
110
- }
111
- ;
112
- ((_a = acc[row]) !== null && _a !== void 0 ? _a : (acc[row] = [])).push([idx, v]);
113
- return acc;
114
- }, []);
115
- return subRows.flatMap((subRow) => {
116
- const acc = subRow.map((x) => x[1]);
117
- while (acc[acc.length - 1] < TOTAL_COLUMNS) {
118
- const idx = acc.reduce(([minIdx, min], size, idx, columns) => {
119
- const scenario = columns.map((x, cidx) => (cidx === idx ? x + 1 : x));
120
- const penalty = scenario.reduce((acc, v) => {
121
- var _a, _b, _c, _d;
122
- const right = ((_b = (_a = formDataRow[subRow[idx][0]].editor) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = formDataRow[subRow[idx][0]].editor) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : 0) - leftSide;
123
- return acc + Math.abs(v * interColumnsDistance - right);
124
- }, 0);
125
- return penalty < min ? [idx, penalty] : [minIdx, min];
126
- }, [undefined, 999999]);
127
- const selected = idx[0];
128
- if (selected === undefined) {
129
- break;
130
- }
131
- for (let i = selected; i < acc.length; i++) {
132
- acc[i]++;
133
- }
134
- }
135
- const expandedCols = acc;
136
- let idx = 0;
137
- return subRow
138
- .map(([idx]) => formDataRow[idx])
139
- .map((formData, index) => {
140
- var _a, _b, _c, _d, _e, _f;
141
- const width = expandedCols[index] - idx;
142
- idx += width;
143
- return (_d = (_a = {
144
- StringEditor: makeTextField,
145
- CheckBoxEditor: makeCheckBox,
146
- MeasureEditor: makeMeasureField,
147
- NumberEditor: makeNumberField,
148
- PopupMenuEditor: makeDropdownField,
149
- DateTimeEditor: makeDateTimeField,
150
- StringTableEditor: makeItemsListField,
151
- TokenFieldEditor: makeTokenField,
152
- SubFormEditor: makeSubForm,
153
- ActionButton: makeActionButton,
154
- })[(_c = (_b = formData.editor) === null || _b === void 0 ? void 0 : _b.key) !== null && _c !== void 0 ? _c : '']) === null || _d === void 0 ? void 0 : _d.call(_a, formData, width, Math.max(1, Math.floor(((_f = (_e = formData.editor) === null || _e === void 0 ? void 0 : _e.height) !== null && _f !== void 0 ? _f : 0) / meanHeight)));
155
- });
156
- });
157
- }));
158
- }), form.guid);
159
- return translated;
160
- }
161
- //# sourceMappingURL=icure-convert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icure-convert.js","sourceRoot":"","sources":["../../tmp/conversion/icure-convert.ts"],"names":[],"mappings":"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","sourcesContent":["import { FormLayout } from '@icure/api'\nimport {\n\tButton,\n\tCheckBox,\n\tDatePicker,\n\tDateTimePicker,\n\tDropdownField,\n\tField,\n\tForm,\n\tItemsListField,\n\tMeasureField,\n\tNumberField,\n\tSection,\n\tSubform,\n\tTextField,\n\tTokenField,\n} from '../components/model'\nimport { FormLayoutData } from '@icure/api/icc-api/model/FormLayoutData'\nimport { cluster } from './ckmeans-grouping'\n\nexport function convertLegacy(form: FormLayout, formsLibrary: FormLayout[]): Form {\n\tconst TOTAL_COLUMNS = 24\n\tconst makeTextField = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew TextField(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\tconst makeItemsListField = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew ItemsListField(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\tconst makeTokenField = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew TokenField(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\tconst makeCheckBox = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew CheckBox(formData.name ?? '', { shortLabel: formData.label, options: { [formData.label ?? '']: formData.label }, span: width, rowSpan: height > 1 ? height : undefined })\n\tconst makeMeasureField = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew MeasureField(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\tconst makeNumberField = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew NumberField(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\tconst makeDateTimeField = (formData: FormLayoutData, width: number, height: number) =>\n\t\t(formData.editor as any)?.displayTime\n\t\t\t? new DateTimePicker(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\t\t\t: new DatePicker(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\n\tconst makeDropdownField = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew DropdownField(formData.name ?? '', {\n\t\t\tshortLabel: formData.label,\n\t\t\tspan: width,\n\t\t\toptions: (formData.editor as any)?.menuOptions\n\t\t\t\t? (formData.editor as any)?.menuOptions.reduce(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tacc: {\n\t\t\t\t\t\t\t\t[key: string]: unknown\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tv: string,\n\t\t\t\t\t\t) => ({ ...acc, [`LEGACY|${v}|1`]: v }),\n\t\t\t\t\t\t{},\n\t\t\t\t )\n\t\t\t\t: undefined,\n\t\t})\n\n\tconst makeSubForm = (formData: FormLayoutData, width: number, height: number) => {\n\t\tconst subForms = ((formData.editor as any)?.optionalFormGuids as string[])?.map((guid: string) => {\n\t\t\tconst subForm = formsLibrary.find((it) => it.guid === guid)\n\t\t\tif (!subForm) {\n\t\t\t\tthrow new Error(`Cannot find subform ${guid}`)\n\t\t\t}\n\t\t\treturn convertLegacy(subForm as FormLayout, formsLibrary)\n\t\t})\n\t\treturn new Subform(\n\t\t\tformData.name ?? '',\n\t\t\tsubForms.reduce((acc, sf) => ({ ...acc, [sf.form]: sf }), {}),\n\t\t\t{\n\t\t\t\tshortLabel: formData.label,\n\t\t\t\tspan: width,\n\t\t\t\trowSpan: height,\n\t\t\t},\n\t\t)\n\t}\n\n\tconst makeActionButton = (formData: FormLayoutData, width: number, height: number) =>\n\t\tnew Button(formData.name ?? '', { shortLabel: formData.label, span: width, rowSpan: height > 1 ? height : undefined })\n\n\t// noinspection UnnecessaryLocalVariableJS\n\tconst translated = new Form(\n\t\t(form.group ? `${form.group}/${form.name}` : form.name) ?? 'Unknown',\n\t\t(form.sections ?? []).map((section) => {\n\t\t\tconst fld = (section.formColumns ?? []).flatMap((column) => column.formDataList ?? [])\n\t\t\tconst sortedList = fld.sort((a, b) => (a.editor?.top ?? 0) - (b.editor?.top ?? 0))\n\n\t\t\tconst rowClusters = cluster(\n\t\t\t\tfld.map((f) => f.editor?.top ?? 0),\n\t\t\t\t5,\n\t\t\t\t16,\n\t\t\t)\n\t\t\tconst rows = rowClusters.clusters\n\n\t\t\tconst intraCentroids = rowClusters.centroids.map((v, idx, centroids) => (idx > 0 ? v - centroids[idx - 1] : 0)).filter((x) => x > 0)\n\t\t\tconst meanHeightWithOutliers = intraCentroids.reduce((sum, v) => v + sum, 0) / intraCentroids.length\n\t\t\tconst intraCentroidsWithoutOutliers = intraCentroids.filter((x) => x < meanHeightWithOutliers * 2)\n\t\t\tconst meanHeight = intraCentroidsWithoutOutliers.reduce((sum, v) => v + sum, 0) / intraCentroidsWithoutOutliers.length\n\n\t\t\tconst formDataClusters = sortedList\n\t\t\t\t.reduce(\n\t\t\t\t\t(cs, fd) => {\n\t\t\t\t\t\tcs[rows.findIndex((c) => c.includes(fd.editor?.top ?? 0))].push(fd)\n\t\t\t\t\t\treturn cs\n\t\t\t\t\t},\n\t\t\t\t\tnew Array(rows.length).fill(null).map(() => [] as FormLayoutData[]),\n\t\t\t\t)\n\t\t\t\t.map((c) => c.sort((a, b) => (a.editor?.left ?? 0) - (b.editor?.left ?? 0)))\n\n\t\t\tconst leftMostField = sortedList.filter((f) => !f.subForm).reduce((a, b) => ((a.editor?.left ?? 0) < (b.editor?.left ?? 0) ? a : b))\n\t\t\tconst rightMostField = sortedList\n\t\t\t\t.filter((f) => !f.subForm)\n\t\t\t\t.reduce((a, b) => ((a.editor?.left ?? 0) + (a.editor?.width ?? 0) < (b.editor?.left ?? 0) + (b.editor?.width ?? 0) ? b : a))\n\n\t\t\tconst leftSide = leftMostField.editor?.left ?? 0\n\t\t\tconst formWidth = (rightMostField?.editor?.left ?? 0) + (rightMostField?.editor?.width ?? 1024) - leftSide\n\t\t\tconst interColumnsDistance = formWidth / TOTAL_COLUMNS\n\t\t\tconst columns = cluster(\n\t\t\t\tfld.map((f) => (f.editor?.left ?? 0) + (f.editor?.width ?? 0) - leftSide),\n\t\t\t\tformWidth / (TOTAL_COLUMNS * 2),\n\t\t\t\tMath.ceil((formWidth ?? 1024) / (TOTAL_COLUMNS * 4)),\n\t\t\t\tMath.max(Math.min(TOTAL_COLUMNS, fld.length / 2), 1),\n\t\t\t)\n\t\t\tconst columnsWidth = columns.centroids.map((v, idx, t) => v - (t[idx - 1] ?? 0))\n\n\t\t\tconst acc = columnsWidth.map(() => 1)\n\t\t\twhile (acc.reduce((s, v) => s + v, 0) < TOTAL_COLUMNS) {\n\t\t\t\tconst idx = acc.reduce(\n\t\t\t\t\t(s: [number | undefined, number], size: number, idx: number): [number | undefined, number] => {\n\t\t\t\t\t\tconst diff = size * interColumnsDistance - columnsWidth[idx]\n\t\t\t\t\t\treturn diff < 0 && -diff > s[1] ? [idx, -diff] : s\n\t\t\t\t\t},\n\t\t\t\t\t[undefined, 0],\n\t\t\t\t)\n\t\t\t\tconst selected = idx[0]\n\t\t\t\tif (selected === undefined) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tacc[selected]++\n\t\t\t}\n\t\t\t// noinspection UnnecessaryLocalVariableJS\n\t\t\tconst columnsRoundedWidth = acc\n\n\t\t\tconst columnsAccumulatedWidth = columnsRoundedWidth.reduce((acc, v) => [...acc, (acc[acc.length - 1] ?? 0) + v], [])\n\t\t\tconst columnsAccumulatedWidthWithInterColumns = columnsAccumulatedWidth.map((v) => v * interColumnsDistance)\n\n\t\t\treturn new Section(\n\t\t\t\t'Main',\n\t\t\t\tformDataClusters.flatMap((formDataRow: FormLayoutData[]) => {\n\t\t\t\t\tconst cols = formDataRow\n\t\t\t\t\t\t.map((formData: FormLayoutData) => {\n\t\t\t\t\t\t\treturn columnsAccumulatedWidth[\n\t\t\t\t\t\t\t\tcolumnsAccumulatedWidthWithInterColumns.reduce(\n\t\t\t\t\t\t\t\t\t([idx, min]: [number, number], x, n) => {\n\t\t\t\t\t\t\t\t\t\tconst right = (formData.editor?.left ?? 0) + (formData.editor?.width ?? 0) - leftSide\n\t\t\t\t\t\t\t\t\t\treturn Math.abs(x - right) < min ? [n, Math.abs(x - right)] : [idx, min]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t[0, 99999],\n\t\t\t\t\t\t\t\t)[0]\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.map((x, idx, cols) => {\n\t\t\t\t\t\t\t//Try to solve inverted positions in columns by adding or removing one column\n\t\t\t\t\t\t\tconst prev = cols[idx - 1] ?? 0\n\t\t\t\t\t\t\tconst next = cols[idx + 1] ?? TOTAL_COLUMNS\n\t\t\t\t\t\t\treturn x > prev + 1 && x >= next - 1 ? x - 1 : x === prev ? x + 1 : x\n\t\t\t\t\t\t})\n\t\t\t\t\tconst subRows = cols.reduce((acc, v, idx, cols) => {\n\t\t\t\t\t\tif (idx === 0) {\n\t\t\t\t\t\t\treturn [[[idx, v]]]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet row = 0\n\t\t\t\t\t\twhile (row < acc.length && acc[row][acc[row].length - 1][1] > v) {\n\t\t\t\t\t\t\trow++\n\t\t\t\t\t\t}\n\t\t\t\t\t\t;(acc[row] ?? (acc[row] = [])).push([idx, v] as [number, number])\n\t\t\t\t\t\treturn acc\n\t\t\t\t\t}, [] as [number, number][][])\n\n\t\t\t\t\treturn subRows.flatMap((subRow) => {\n\t\t\t\t\t\tconst acc = subRow.map((x) => x[1])\n\t\t\t\t\t\twhile (acc[acc.length - 1] < TOTAL_COLUMNS) {\n\t\t\t\t\t\t\tconst idx = acc.reduce(\n\t\t\t\t\t\t\t\t([minIdx, min]: [number | undefined, number], size: number, idx: number, columns: number[]): [number | undefined, number] => {\n\t\t\t\t\t\t\t\t\tconst scenario = columns.map((x, cidx) => (cidx === idx ? x + 1 : x))\n\t\t\t\t\t\t\t\t\tconst penalty = scenario.reduce((acc, v) => {\n\t\t\t\t\t\t\t\t\t\tconst right = (formDataRow[subRow[idx][0]].editor?.left ?? 0) + (formDataRow[subRow[idx][0]].editor?.width ?? 0) - leftSide\n\t\t\t\t\t\t\t\t\t\treturn acc + Math.abs(v * interColumnsDistance - right)\n\t\t\t\t\t\t\t\t\t}, 0)\n\t\t\t\t\t\t\t\t\treturn penalty < min ? [idx, penalty] : [minIdx, min]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t[undefined, 999999],\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tconst selected = idx[0]\n\t\t\t\t\t\t\tif (selected === undefined) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (let i = selected; i < acc.length; i++) {\n\t\t\t\t\t\t\t\tacc[i]++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst expandedCols = acc\n\t\t\t\t\t\tlet idx = 0\n\t\t\t\t\t\treturn subRow\n\t\t\t\t\t\t\t.map(([idx]) => formDataRow[idx])\n\t\t\t\t\t\t\t.map((formData: FormLayoutData, index) => {\n\t\t\t\t\t\t\t\tconst width = expandedCols[index] - idx\n\t\t\t\t\t\t\t\tidx += width\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tStringEditor: makeTextField,\n\t\t\t\t\t\t\t\t\t\tCheckBoxEditor: makeCheckBox,\n\t\t\t\t\t\t\t\t\t\tMeasureEditor: makeMeasureField,\n\t\t\t\t\t\t\t\t\t\tNumberEditor: makeNumberField,\n\t\t\t\t\t\t\t\t\t\tPopupMenuEditor: makeDropdownField,\n\t\t\t\t\t\t\t\t\t\tDateTimeEditor: makeDateTimeField,\n\t\t\t\t\t\t\t\t\t\tStringTableEditor: makeItemsListField,\n\t\t\t\t\t\t\t\t\t\tTokenFieldEditor: makeTokenField,\n\t\t\t\t\t\t\t\t\t\tSubFormEditor: makeSubForm,\n\t\t\t\t\t\t\t\t\t\tActionButton: makeActionButton,\n\t\t\t\t\t\t\t\t\t} as { [key: string]: (fd: FormLayoutData, w: number, h: number) => Field | Subform }\n\t\t\t\t\t\t\t\t)[formData.editor?.key ?? '']?.(formData, width, Math.max(1, Math.floor((formData.editor?.height ?? 0) / meanHeight)))\n\t\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t)\n\t\t}),\n\t\tform.guid,\n\t)\n\treturn translated\n}\n"]}