@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.
- package/.yarn/cache/@babel-runtime-npm-7.26.9-8369ff039f-838492d8a9.zip +0 -0
- package/.yarn/cache/@icure-motss-app-datepicker-npm-6.0.0-rc.36-66219db2d1-5f34375d97.zip +0 -0
- package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.3.0-6bfa115c08-c2003e8bb6.zip +0 -0
- package/.yarn/cache/@lit-reactive-element-npm-1.6.3-4828441e51-79b58631c3.zip +0 -0
- package/.yarn/cache/@lit-reactive-element-npm-2.0.4-4836436301-368d788d9e.zip +0 -0
- package/.yarn/cache/@material-animation-npm-14.0.0-canary.53b3cad2f.0-06a813cdea-9b5190654c.zip +0 -0
- package/.yarn/cache/@material-base-npm-14.0.0-canary.53b3cad2f.0-d195c1fdc4-9f4928d115.zip +0 -0
- package/.yarn/cache/@material-button-npm-14.0.0-canary.53b3cad2f.0-d4b070f508-873295c56a.zip +0 -0
- package/.yarn/cache/@material-density-npm-14.0.0-canary.53b3cad2f.0-48c1f65059-a23f00edfe.zip +0 -0
- package/.yarn/cache/@material-dialog-npm-14.0.0-canary.53b3cad2f.0-96168fa294-c1a498b81a.zip +0 -0
- package/.yarn/cache/@material-dom-npm-14.0.0-canary.53b3cad2f.0-ac009dc871-f5817f76dd.zip +0 -0
- package/.yarn/cache/@material-elevation-npm-14.0.0-canary.53b3cad2f.0-3312f06793-2f8945c7b6.zip +0 -0
- package/.yarn/cache/@material-feature-targeting-npm-14.0.0-canary.53b3cad2f.0-a919042d50-e7a1ed68f9.zip +0 -0
- package/.yarn/cache/@material-floating-label-npm-14.0.0-canary.53b3cad2f.0-eb8f330f2f-5295dc481d.zip +0 -0
- package/.yarn/cache/@material-focus-ring-npm-14.0.0-canary.53b3cad2f.0-b22f851a2e-92273b1247.zip +0 -0
- package/.yarn/cache/@material-icon-button-npm-14.0.0-canary.53b3cad2f.0-e158d26048-19b51665f2.zip +0 -0
- package/.yarn/cache/@material-line-ripple-npm-14.0.0-canary.53b3cad2f.0-d089468db9-6518961487.zip +0 -0
- package/.yarn/cache/@material-list-npm-14.0.0-canary.53b3cad2f.0-df9ce05084-6c977f518d.zip +0 -0
- package/.yarn/cache/@material-menu-npm-14.0.0-canary.53b3cad2f.0-9489b592c8-71b6a1f4dd.zip +0 -0
- package/.yarn/cache/@material-menu-surface-npm-14.0.0-canary.53b3cad2f.0-52212f38f4-ad48e168ca.zip +0 -0
- package/.yarn/cache/@material-mwc-base-npm-0.27.0-79caf3ef2b-07af17edfc.zip +0 -0
- package/.yarn/cache/@material-mwc-button-npm-0.27.0-4b85f2b26f-2ef5cc0951.zip +0 -0
- package/.yarn/cache/@material-mwc-checkbox-npm-0.27.0-e837031d8e-ba53a6ea8c.zip +0 -0
- package/.yarn/cache/@material-mwc-dialog-npm-0.27.0-77c6071543-ffab528e8e.zip +0 -0
- package/.yarn/cache/@material-mwc-floating-label-npm-0.27.0-80e62b22c0-fbbf4f2e42.zip +0 -0
- package/.yarn/cache/@material-mwc-icon-button-npm-0.27.0-41f82f135b-7315c0735b.zip +0 -0
- package/.yarn/cache/@material-mwc-icon-npm-0.27.0-98c9e8509f-6dfa5115d5.zip +0 -0
- package/.yarn/cache/@material-mwc-line-ripple-npm-0.27.0-e6704221e0-6862ede0f4.zip +0 -0
- package/.yarn/cache/@material-mwc-list-npm-0.27.0-5344fc9de4-6c2ae4f1c6.zip +0 -0
- package/.yarn/cache/@material-mwc-menu-npm-0.27.0-7c2bb47797-126f733659.zip +0 -0
- package/.yarn/cache/@material-mwc-notched-outline-npm-0.27.0-0e0d1c4d5f-2739032f76.zip +0 -0
- package/.yarn/cache/@material-mwc-radio-npm-0.27.0-aa2098a280-0b0a0a6b99.zip +0 -0
- package/.yarn/cache/@material-mwc-ripple-npm-0.27.0-ed37672f08-9cd73fdfe4.zip +0 -0
- package/.yarn/cache/@material-mwc-textfield-npm-0.27.0-dabd704f55-978c893aca.zip +0 -0
- package/.yarn/cache/@material-notched-outline-npm-14.0.0-canary.53b3cad2f.0-ecacde98db-1a9f8db4d8.zip +0 -0
- package/.yarn/cache/@material-radio-npm-14.0.0-canary.53b3cad2f.0-c50de64d41-898554f2b3.zip +0 -0
- package/.yarn/cache/@material-ripple-npm-14.0.0-canary.53b3cad2f.0-49060bfe7e-08b71917e2.zip +0 -0
- package/.yarn/cache/@material-rtl-npm-14.0.0-canary.53b3cad2f.0-daca794b76-3c1b8b48c6.zip +0 -0
- package/.yarn/cache/@material-shape-npm-14.0.0-canary.53b3cad2f.0-5bcff722a6-6ad9b020c0.zip +0 -0
- package/.yarn/cache/@material-textfield-npm-14.0.0-canary.53b3cad2f.0-4414808dda-7072e3c9df.zip +0 -0
- package/.yarn/cache/@material-theme-npm-14.0.0-canary.53b3cad2f.0-9a24e7b046-fd44e92917.zip +0 -0
- package/.yarn/cache/@material-tokens-npm-14.0.0-canary.53b3cad2f.0-f1c87523da-efa909f861.zip +0 -0
- package/.yarn/cache/@material-touch-target-npm-14.0.0-canary.53b3cad2f.0-fa6a2d0875-dbc13cbe7a.zip +0 -0
- package/.yarn/cache/@material-typography-npm-14.0.0-canary.53b3cad2f.0-f4a58946f1-fa2671df40.zip +0 -0
- package/.yarn/cache/@types-trusted-types-npm-2.0.7-a07fc44f59-8e4202766a.zip +0 -0
- package/.yarn/cache/@webcomponents-webcomponentsjs-npm-2.8.0-36c07db4d2-186373c030.zip +0 -0
- package/.yarn/cache/argparse-npm-2.0.1-faff7999e6-83644b5649.zip +0 -0
- package/.yarn/cache/blocking-elements-npm-0.1.1-423f51c76e-9a34084405.zip +0 -0
- package/.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip +0 -0
- package/.yarn/cache/entities-npm-4.5.0-7cdb83b832-853f8ebd5b.zip +0 -0
- package/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip +0 -0
- package/.yarn/cache/linkify-it-npm-5.0.0-adb5f9c96f-b0b86cadaf.zip +0 -0
- package/.yarn/cache/lit-element-npm-3.3.3-2f9f9e38c0-29a596fa55.zip +0 -0
- package/.yarn/cache/lit-element-npm-4.1.1-bb20932b82-74d0f2d6fb.zip +0 -0
- package/.yarn/cache/lit-html-npm-2.8.0-82f88d6ebf-2d70df0724.zip +0 -0
- package/.yarn/cache/lit-html-npm-3.2.1-1662fc597d-1bacd9f8b2.zip +0 -0
- package/.yarn/cache/lit-npm-2.8.0-92bb1333a4-2480e733f7.zip +0 -0
- package/.yarn/cache/lit-npm-3.2.1-27cb5b7782-ee22bbc53d.zip +0 -0
- package/.yarn/cache/markdown-it-npm-14.1.0-e337d75bfe-07296b45eb.zip +0 -0
- package/.yarn/cache/mdurl-npm-2.0.0-3259713daf-880bc289ef.zip +0 -0
- package/.yarn/cache/orderedmap-npm-2.1.1-64b8a0684f-082cf970b0.zip +0 -0
- package/.yarn/cache/prosemirror-commands-npm-1.5.2-27f8f3fee9-ff65063a8c.zip +0 -0
- package/.yarn/cache/prosemirror-history-npm-1.3.2-cc128c8ee6-b85fe6378a.zip +0 -0
- package/.yarn/cache/prosemirror-keymap-npm-1.2.2-efb8276b00-85fe4fc303.zip +0 -0
- package/.yarn/cache/prosemirror-markdown-npm-1.12.0-28e990f443-d7607ee1a6.zip +0 -0
- package/.yarn/cache/prosemirror-model-npm-1.19.4-4fd32211c8-12c277ed30.zip +0 -0
- package/.yarn/cache/prosemirror-model-npm-1.24.1-6467e55b40-386076e2ff.zip +0 -0
- package/.yarn/cache/prosemirror-schema-basic-npm-1.2.2-def7bf2ec7-1f93f8678c.zip +0 -0
- package/.yarn/cache/prosemirror-schema-list-npm-1.3.0-23c1830a7e-03654e37c8.zip +0 -0
- package/.yarn/cache/prosemirror-state-npm-1.4.3-d6540e44ad-28857d935c.zip +0 -0
- package/.yarn/cache/prosemirror-transform-npm-1.10.2-1c2da9123e-93b0c03aff.zip +0 -0
- package/.yarn/cache/prosemirror-transform-npm-1.8.0-ea3ca0411f-6d16ca4f95.zip +0 -0
- package/.yarn/cache/prosemirror-view-npm-1.32.7-63c3e4b182-40c9038a52.zip +0 -0
- package/.yarn/cache/prosemirror-view-npm-1.38.0-9061dc9cf4-0d0f17c1b2.zip +0 -0
- package/.yarn/cache/punycode.js-npm-2.3.1-9084ecbbf5-13466d7ed5.zip +0 -0
- package/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-9f57c93277.zip +0 -0
- package/.yarn/cache/rope-sequence-npm-1.3.4-3b09587e5f-95cca2f99a.zip +0 -0
- package/.yarn/cache/tslib-npm-2.8.1-66590b21b8-e4aba30e63.zip +0 -0
- package/.yarn/cache/uc.micro-npm-2.1.0-c45282c865-3719735824.zip +0 -0
- package/.yarn/cache/uuid-npm-9.0.1-39a8442bc6-39931f6da7.zip +0 -0
- package/.yarn/cache/w3c-keyname-npm-2.2.8-66d7d5317a-95bafa4c04.zip +0 -0
- package/.yarn/cache/wicg-inert-npm-3.1.3-38590e83f2-45b3cfec63.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/components/common/field-with-options.js +9 -5
- package/components/common/field-with-options.js.map +1 -1
- package/components/common/field.js +25 -21
- package/components/common/field.js.map +1 -1
- package/components/common/index.js +17 -1
- package/components/common/index.js.map +1 -1
- package/components/common/metadata-buttons-bar.d.ts +1 -1
- package/components/common/metadata-buttons-bar.js +58 -65
- package/components/common/metadata-buttons-bar.js.map +1 -1
- package/components/common/styles/paths.js +13 -10
- package/components/common/styles/paths.js.map +1 -1
- package/components/common/utils.js +21 -11
- package/components/common/utils.js.map +1 -1
- package/components/icure-button/index.js +19 -15
- package/components/icure-button/index.js.map +1 -1
- package/components/icure-button-group/index.js +26 -22
- package/components/icure-button-group/index.js.map +1 -1
- package/components/icure-date-picker/index.d.ts +2 -2
- package/components/icure-date-picker/index.js +31 -27
- package/components/icure-date-picker/index.js.map +1 -1
- package/components/icure-dropdown-field/index.js +25 -21
- package/components/icure-dropdown-field/index.js.map +1 -1
- package/components/icure-form/fields/button/button.js +17 -13
- package/components/icure-form/fields/button/button.js.map +1 -1
- package/components/icure-form/fields/button/index.js +17 -1
- package/components/icure-form/fields/button/index.js.map +1 -1
- package/components/icure-form/fields/button-group/checkbox.js +14 -10
- package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
- package/components/icure-form/fields/button-group/index.js +18 -2
- package/components/icure-form/fields/button-group/index.js.map +1 -1
- package/components/icure-form/fields/button-group/radio-button.js +14 -10
- package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-picker.js +12 -8
- package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-time-picker.js +12 -8
- package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/index.js +19 -3
- package/components/icure-form/fields/date-picker/index.js.map +1 -1
- package/components/icure-form/fields/date-picker/time-picker.js +12 -8
- package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
- package/components/icure-form/fields/dropdown/dropdown-field.js +14 -10
- package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
- package/components/icure-form/fields/dropdown/index.js +17 -1
- package/components/icure-form/fields/dropdown/index.js.map +1 -1
- package/components/icure-form/fields/index.js +26 -10
- package/components/icure-form/fields/index.js.map +1 -1
- package/components/icure-form/fields/items-list-field/index.js +17 -1
- package/components/icure-form/fields/items-list-field/index.js.map +1 -1
- package/components/icure-form/fields/items-list-field/items-list-field.js +11 -7
- package/components/icure-form/fields/items-list-field/items-list-field.js.map +1 -1
- package/components/icure-form/fields/label/index.js +17 -1
- package/components/icure-form/fields/label/index.js.map +1 -1
- package/components/icure-form/fields/label/label.js +15 -11
- package/components/icure-form/fields/label/label.js.map +1 -1
- package/components/icure-form/fields/measure-field/index.js +17 -1
- package/components/icure-form/fields/measure-field/index.js.map +1 -1
- package/components/icure-form/fields/measure-field/measure-field.js +12 -8
- package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
- package/components/icure-form/fields/number-field/index.js +17 -1
- package/components/icure-form/fields/number-field/index.js.map +1 -1
- package/components/icure-form/fields/number-field/number-field.js +12 -8
- package/components/icure-form/fields/number-field/number-field.js.map +1 -1
- package/components/icure-form/fields/text-field/index.js +17 -1
- package/components/icure-form/fields/text-field/index.js.map +1 -1
- package/components/icure-form/fields/text-field/text-field.js +24 -20
- package/components/icure-form/fields/text-field/text-field.js.map +1 -1
- package/components/icure-form/fields/token-field/index.js +17 -1
- package/components/icure-form/fields/token-field/index.js.map +1 -1
- package/components/icure-form/fields/token-field/token-field.js +12 -8
- package/components/icure-form/fields/token-field/token-field.js.map +1 -1
- package/components/icure-form/fields/utils/index.js +13 -5
- package/components/icure-form/fields/utils/index.js.map +1 -1
- package/components/icure-form/index.js +32 -28
- package/components/icure-form/index.js.map +1 -1
- package/components/icure-form/renderer/form/form-selection-button.js +19 -15
- package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
- package/components/icure-form/renderer/form/form.js +127 -123
- package/components/icure-form/renderer/form/form.js.map +1 -1
- package/components/icure-form/renderer/index.js +2 -1
- package/components/icure-label/index.js +17 -13
- package/components/icure-label/index.js.map +1 -1
- package/components/icure-text-field/index.js +106 -98
- package/components/icure-text-field/index.js.map +1 -1
- package/components/icure-text-field/plugin/caret-fix-plugin.js +7 -3
- package/components/icure-text-field/plugin/caret-fix-plugin.js.map +1 -1
- package/components/icure-text-field/plugin/has-content-class-plugin.js +7 -3
- package/components/icure-text-field/plugin/has-content-class-plugin.js.map +1 -1
- package/components/icure-text-field/plugin/mask-plugin.js +11 -7
- package/components/icure-text-field/plugin/mask-plugin.js.map +1 -1
- package/components/icure-text-field/plugin/regexp-plugin.js +9 -5
- package/components/icure-text-field/plugin/regexp-plugin.js.map +1 -1
- package/components/icure-text-field/prosemirror-commands.js +15 -10
- package/components/icure-text-field/prosemirror-commands.js.map +1 -1
- package/components/icure-text-field/prosemirror-utils.js +5 -1
- package/components/icure-text-field/prosemirror-utils.js.map +1 -1
- package/components/icure-text-field/schema/common-marks.js +7 -3
- package/components/icure-text-field/schema/common-marks.js.map +1 -1
- package/components/icure-text-field/schema/date-time-schema.js +9 -3
- package/components/icure-text-field/schema/date-time-schema.js.map +1 -1
- package/components/icure-text-field/schema/decimal-schema.js +5 -1
- package/components/icure-text-field/schema/decimal-schema.js.map +1 -1
- package/components/icure-text-field/schema/index.js +21 -17
- package/components/icure-text-field/schema/index.js.map +1 -1
- package/components/icure-text-field/schema/items-list-schema.js +7 -3
- package/components/icure-text-field/schema/items-list-schema.js.map +1 -1
- package/components/icure-text-field/schema/markdown-schema.js +9 -5
- package/components/icure-text-field/schema/markdown-schema.js.map +1 -1
- package/components/icure-text-field/schema/measure-schema.js +12 -6
- package/components/icure-text-field/schema/measure-schema.js.map +1 -1
- package/components/icure-text-field/schema/token-schema.js +9 -5
- package/components/icure-text-field/schema/token-schema.js.map +1 -1
- package/components/icure-text-field/schema/utils.js +7 -2
- package/components/icure-text-field/schema/utils.js.map +1 -1
- package/components/icure-text-field/selection-companion.js +5 -1
- package/components/icure-text-field/selection-companion.js.map +1 -1
- package/components/icure-text-field/suggestion-palette.js +10 -3
- package/components/icure-text-field/suggestion-palette.js.map +1 -1
- package/components/index.js +21 -5
- package/components/index.js.map +1 -1
- package/components/model/index.js +46 -22
- package/components/model/index.js.map +1 -1
- package/components/themes/default/index.js +32 -30
- package/components/themes/default/index.js.map +1 -1
- package/components/themes/icure-blue/index.js +47 -45
- package/components/themes/icure-blue/index.js.map +1 -1
- package/components/themes/kendo/index.js +47 -45
- package/components/themes/kendo/index.js.map +1 -1
- package/conversion/ckmeans-grouping.js +10 -3
- package/conversion/ckmeans-grouping.js.map +1 -1
- package/conversion/ckmeans.js +3 -1
- package/conversion/ckmeans.js.map +1 -1
- package/generic/index.js +17 -1
- package/generic/index.js.map +1 -1
- package/generic/model.js +2 -1
- package/icure/form-values-container.d.ts +14 -14
- package/icure/form-values-container.js +45 -37
- package/icure/form-values-container.js.map +1 -1
- package/icure/icure-utils.d.ts +7 -7
- package/icure/icure-utils.js +28 -16
- package/icure/icure-utils.js.map +1 -1
- package/icure/index.js +18 -2
- package/icure/index.js.map +1 -1
- package/icure/model.d.ts +1 -1
- package/icure/model.js +2 -1
- package/icure/model.js.map +1 -1
- package/index.js +17 -1
- package/index.js.map +1 -1
- package/package.json +3 -2
- package/utils/code-utils.d.ts +10 -1
- package/utils/code-utils.js +59 -11
- package/utils/code-utils.js.map +1 -1
- package/utils/dates.js +21 -9
- package/utils/dates.js.map +1 -1
- package/utils/fields-values-provider.js +17 -8
- package/utils/fields-values-provider.js.map +1 -1
- package/utils/form-value-container.js +7 -3
- package/utils/form-value-container.js.map +1 -1
- package/utils/interpreter.js +5 -1
- package/utils/interpreter.js.map +1 -1
- package/utils/languages.js +8 -3
- package/utils/languages.js.map +1 -1
- package/utils/markdown.js +11 -6
- package/utils/markdown.js.map +1 -1
- package/utils/no-lodash.js +9 -3
- package/utils/no-lodash.js.map +1 -1
- package/utils/primitive.js +12 -7
- package/utils/primitive.js.map +1 -1
- package/conversion/icure-convert.d.ts +0 -3
- package/conversion/icure-convert.js +0 -161
- 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,
|
|
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"]}
|
package/utils/interpreter.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
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
|
package/utils/interpreter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../tmp/utils/interpreter.ts"],"names":[],"mappings":"
|
|
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"]}
|
package/utils/languages.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
9
|
-
|
|
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
|
package/utils/languages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../tmp/utils/languages.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
package/utils/markdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../tmp/utils/markdown.ts"],"names":[],"mappings":"AACA,
|
|
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"]}
|
package/utils/no-lodash.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/utils/no-lodash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-lodash.js","sourceRoot":"","sources":["../../tmp/utils/no-lodash.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"no-lodash.js","sourceRoot":"","sources":["../../tmp/utils/no-lodash.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CACtB,KAAU,EACV,OAAuB;IAKvB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,CAAC;QAAA,CAAC,CAAC,CAAC,CAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAoB,CAAC,GAAG,EAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3E,OAAO,CAAC,CAAA;IACT,CAAC,EAAE,EAAmC,CAAC,CAAA;AACxC,CAAC;AAXD,0BAWC;AAED,SAAgB,QAAQ,CAAmC,KAAU,EAAE,GAA6B,EAAE,SAAS,GAAG,KAAK;IACtH,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1K,CAAC;SAAM,CAAC;QACP,OAAO,KAAK;aACV,MAAM,EAAE;aACR,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChK,CAAC;AACF,CAAC;AARD,4BAQC;AAED,SAAgB,MAAM,CAAI,KAAU,EAAE,SAAS,GAAG,KAAK;IACtD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClI,CAAC;AAFD,wBAEC","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"]}
|
package/utils/primitive.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
package/utils/primitive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../tmp/utils/primitive.ts"],"names":[],"mappings":"AACA,
|
|
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,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"]}
|