@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
package/icure/icure-utils.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.codeStubToCode = exports.contentToPrimitiveType = exports.primitiveTypeToContent = exports.isServiceContentEqual = exports.isContentEqual = exports.isServiceEqual = exports.areCodesEqual = exports.isCodeEqual = void 0;
|
|
4
|
+
const cardinal_sdk_1 = require("@icure/cardinal-sdk");
|
|
5
|
+
function isCodeEqual(c1, c2) {
|
|
2
6
|
var _a, _b;
|
|
3
7
|
const idParts1 = (_a = c1.id) === null || _a === void 0 ? void 0 : _a.split('|');
|
|
4
8
|
const idParts2 = (_b = c2.id) === null || _b === void 0 ? void 0 : _b.split('|');
|
|
@@ -10,13 +14,16 @@ export function isCodeEqual(c1, c2) {
|
|
|
10
14
|
const version2 = c2.version || (idParts2 === null || idParts2 === void 0 ? void 0 : idParts2[2]);
|
|
11
15
|
return type1 === type2 && code1 === code2 && version1 === version2;
|
|
12
16
|
}
|
|
13
|
-
|
|
17
|
+
exports.isCodeEqual = isCodeEqual;
|
|
18
|
+
function areCodesEqual(c1s, c2s) {
|
|
14
19
|
return c1s.every((c1) => c2s.some((c2) => isCodeEqual(c1, c2)) || false) && c2s.every((c2) => c1s.some((c1) => isCodeEqual(c1, c2)) || false);
|
|
15
20
|
}
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
exports.areCodesEqual = areCodesEqual;
|
|
22
|
+
function isServiceEqual(svc1, svc2) {
|
|
23
|
+
return svc1.id === svc2.id && svc1.valueDate === svc2.valueDate && areCodesEqual(svc1.codes || [], svc2.codes || []) && isServiceContentEqual(svc1.content || {}, svc2.content || {});
|
|
18
24
|
}
|
|
19
|
-
|
|
25
|
+
exports.isServiceEqual = isServiceEqual;
|
|
26
|
+
function isContentEqual(content1, content2) {
|
|
20
27
|
var _a, _b;
|
|
21
28
|
if (!content1 && !content2) {
|
|
22
29
|
return true;
|
|
@@ -40,29 +47,32 @@ export function isContentEqual(content1, content2) {
|
|
|
40
47
|
((((_a = content1.compoundValue) === null || _a === void 0 ? void 0 : _a.every((s1) => { var _a; return (_a = content2.compoundValue) === null || _a === void 0 ? void 0 : _a.some((s2) => isServiceEqual(s1, s2)); })) || false) &&
|
|
41
48
|
(((_b = content2 === null || content2 === void 0 ? void 0 : content2.compoundValue) === null || _b === void 0 ? void 0 : _b.every((s2) => { var _a; return (_a = content1 === null || content1 === void 0 ? void 0 : content1.compoundValue) === null || _a === void 0 ? void 0 : _a.some((s1) => isServiceEqual(s1, s2)); })) || false))));
|
|
42
49
|
}
|
|
43
|
-
|
|
50
|
+
exports.isContentEqual = isContentEqual;
|
|
51
|
+
function isServiceContentEqual(content1, content2) {
|
|
44
52
|
return Object.keys(content1).reduce((isEqual, lng) => isEqual && isContentEqual(content1[lng], content2[lng]), true);
|
|
45
53
|
}
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
exports.isServiceContentEqual = isServiceContentEqual;
|
|
55
|
+
const primitiveTypeToContent = (language, value) => {
|
|
56
|
+
return new cardinal_sdk_1.DecryptedContent(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (value.type === 'number' ? { numberValue: value.value } : {})), (value.type === 'measure'
|
|
48
57
|
? {
|
|
49
|
-
measureValue: {
|
|
58
|
+
measureValue: new cardinal_sdk_1.Measure({
|
|
50
59
|
value: value.value,
|
|
51
60
|
unit: value.unit,
|
|
52
|
-
},
|
|
61
|
+
}),
|
|
53
62
|
}
|
|
54
63
|
: {})), (value.type === 'string' ? { stringValue: value.value } : {})), (value.type === 'datetime' ? { fuzzyDateValue: value.value } : {})), (value.type === 'boolean' ? { booleanValue: value.value } : {})), (value.type === 'timestamp' ? { instantValue: value.value } : {})), (value.type === 'compound'
|
|
55
64
|
? {
|
|
56
|
-
compoundValue: Object.entries(value.value).map(([label, value]) => ({
|
|
65
|
+
compoundValue: Object.entries(value.value).map(([label, value]) => new cardinal_sdk_1.DecryptedService({
|
|
57
66
|
label,
|
|
58
67
|
content: {
|
|
59
|
-
[language]: primitiveTypeToContent(language, value),
|
|
68
|
+
[language]: (0, exports.primitiveTypeToContent)(language, value),
|
|
60
69
|
},
|
|
61
70
|
})),
|
|
62
71
|
}
|
|
63
|
-
: {}));
|
|
72
|
+
: {})));
|
|
64
73
|
};
|
|
65
|
-
|
|
74
|
+
exports.primitiveTypeToContent = primitiveTypeToContent;
|
|
75
|
+
const contentToPrimitiveType = (language, content) => {
|
|
66
76
|
var _a, _b, _c, _d, _e, _f;
|
|
67
77
|
if (!content) {
|
|
68
78
|
return undefined;
|
|
@@ -89,18 +99,20 @@ export const contentToPrimitiveType = (language, content) => {
|
|
|
89
99
|
return {
|
|
90
100
|
type: 'compound',
|
|
91
101
|
value: content.compoundValue.reduce((acc, { label, content }) => {
|
|
92
|
-
const primitiveValue = contentToPrimitiveType(language, content === null || content === void 0 ? void 0 : content[language]);
|
|
102
|
+
const primitiveValue = (0, exports.contentToPrimitiveType)(language, content === null || content === void 0 ? void 0 : content[language]);
|
|
93
103
|
return label && primitiveValue ? Object.assign(Object.assign({}, acc), { [label]: primitiveValue }) : acc;
|
|
94
104
|
}, {}),
|
|
95
105
|
};
|
|
96
106
|
}
|
|
97
107
|
return undefined;
|
|
98
108
|
};
|
|
99
|
-
|
|
109
|
+
exports.contentToPrimitiveType = contentToPrimitiveType;
|
|
110
|
+
const codeStubToCode = (c) => {
|
|
100
111
|
var _a, _b;
|
|
101
112
|
return ({
|
|
102
113
|
id: (_a = c.id) !== null && _a !== void 0 ? _a : `${c.type}|${c.code}|${c.version}`,
|
|
103
114
|
label: (_b = c.label) !== null && _b !== void 0 ? _b : {},
|
|
104
115
|
});
|
|
105
116
|
};
|
|
117
|
+
exports.codeStubToCode = codeStubToCode;
|
|
106
118
|
//# sourceMappingURL=icure-utils.js.map
|
package/icure/icure-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icure-utils.js","sourceRoot":"","sources":["../../tmp/icure/icure-utils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CAAC,EAAY,EAAE,EAAY;;IACrD,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,EAAE,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,EAAE,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAA,CAAA;IACtC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAA,CAAA;IACtC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAA,CAAA;IACtC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAA,CAAA;IACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAA,CAAA;IAC5C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,CAAC,CAAC,CAAA,CAAA;IAC5C,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAe,EAAE,GAAe;IAC7D,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;AAC9I,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAa,EAAE,IAAa;IAC1D,OAAO,CACN,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAC9K,CAAA;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAA6B,EAAE,QAA6B;;IAC1F,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACb,CAAC;IACD,OAAO,CACN,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,CAAC;QACnG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,KAAK,IAAI,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,IAAI,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;YACpJ,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAAC;QACjD,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC;QAC/F,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC;YAC5J,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc,CAAC;QACrD,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAAC;QACvG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAAC;QACvG,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,CAAC;QACnH,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,CAAC;QACnG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;YAChJ,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,CAAC;QAC/C,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YACpD,CAAC,CAAC,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA,EAAA,CAAC,KAAI,KAAK,CAAC;gBAC9G,CAAC,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,0CAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,WAAC,OAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,0CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA,EAAA,CAAC,KAAI,KAAK,CAAC,CAAC,CAAC,CACpH,CAAA;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAyC,EAAE,QAAyC;IACzH,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAe,CAAC,CAAA;AAChI,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAE,KAAoB,EAAW,EAAE;IACzF,6GACI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAG,KAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC7E,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;QAC3B,CAAC,CAAC;YACA,YAAY,EAAE;gBACb,KAAK,EAAG,KAAqB,CAAC,KAAK;gBACnC,IAAI,EAAG,KAAqB,CAAC,IAAI;aACjC;SACA;QACH,CAAC,CAAC,EAAE,CAAC,GACH,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAG,KAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC7E,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,EAAG,KAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACpF,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAG,KAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAChF,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAG,KAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACpF,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,CAAC;YACA,aAAa,EAAE,MAAM,CAAC,OAAO,CAAE,KAAsB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrF,KAAK;gBACL,OAAO,EAAE;oBACR,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC;iBACnD;aACD,CAAC,CAAC;SACF;QACH,CAAC,CAAC,EAAE,CAAC,EACN;AACF,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAE,OAA4B,EAA6B,EAAE;;IACnH,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAA;IACtD,CAAC;IACD,IAAI,CAAA,MAAA,OAAO,CAAC,YAAY,0CAAE,KAAK,KAAI,CAAA,MAAA,OAAO,CAAC,YAAY,0CAAE,KAAK,MAAK,CAAC,KAAI,MAAA,MAAA,OAAO,CAAC,YAAY,0CAAE,IAAI,0CAAE,MAAM,CAAA,EAAE,CAAC;QAC5G,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,KAAK,EAAE,IAAI,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,IAAI,EAAE,CAAA;IACjG,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAA;IACtD,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,CAAA;IAC3D,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAA;IACxD,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAA;IAC1D,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAuC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;gBACnG,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,QAAQ,CAAC,CAAC,CAAA;gBAC5E,OAAO,KAAK,IAAI,cAAc,CAAC,CAAC,iCAAM,GAAG,KAAE,CAAC,KAAK,CAAC,EAAE,cAAc,IAAG,CAAC,CAAC,GAAG,CAAA;YAC3E,CAAC,EAAE,EAAE,CAAC;SACN,CAAA;IACF,CAAC;IAED,OAAO,SAAS,CAAA;AACjB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAW,EAAE,EAAE;;IAAC,OAAA,CAAC;QAC/C,EAAE,EAAE,MAAA,CAAC,CAAC,EAAE,mCAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE;QAC9C,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE;KACpB,CAAC,CAAA;CAAA,CAAA","sourcesContent":["import { CodeStub, Content, Service } from '@icure/api'\nimport { BooleanType, CompoundType, DateTimeType, MeasureType, NumberType, PrimitiveType, StringType, TimestampType } from '../components/model'\n\nexport function isCodeEqual(c1: CodeStub, c2: CodeStub): boolean {\n\tconst idParts1 = c1.id?.split('|')\n\tconst idParts2 = c2.id?.split('|')\n\tconst type1 = c1.type || idParts1?.[0]\n\tconst type2 = c2.type || idParts2?.[0]\n\tconst code1 = c1.code || idParts1?.[1]\n\tconst code2 = c2.code || idParts2?.[1]\n\tconst version1 = c1.version || idParts1?.[2]\n\tconst version2 = c2.version || idParts2?.[2]\n\treturn type1 === type2 && code1 === code2 && version1 === version2\n}\n\nexport function areCodesEqual(c1s: CodeStub[], c2s: CodeStub[]): boolean {\n\treturn c1s.every((c1) => c2s.some((c2) => isCodeEqual(c1, c2)) || false) && c2s.every((c2) => c1s.some((c1) => isCodeEqual(c1, c2)) || false)\n}\n\nexport function isServiceEqual(svc1: Service, svc2: Service): boolean {\n\treturn (\n\t\tsvc1.id === svc2.id && svc1.valueDate === svc2.valueDate && areCodesEqual(svc1.codes || [], svc2.codes || []) && isServiceContentEqual(svc1.content || {}, svc2.content || {})\n\t)\n}\n\nexport function isContentEqual(content1: Content | undefined, content2: Content | undefined): boolean {\n\tif (!content1 && !content2) {\n\t\treturn true\n\t}\n\tif (!content1 || !content2) {\n\t\treturn false\n\t}\n\treturn (\n\t\t((!content1.binaryValue && !content2.binaryValue) || content1.binaryValue === content2.binaryValue) &&\n\t\t(((content1.booleanValue === null || content1.booleanValue === undefined) && (content2.booleanValue === null || content2.booleanValue === undefined)) ||\n\t\t\tcontent1.booleanValue === content2.booleanValue) &&\n\t\t((!content1.documentId && !content2.documentId) || content1.documentId === content2.documentId) &&\n\t\t(((content1.fuzzyDateValue === null || content1.fuzzyDateValue === undefined) && (content2.fuzzyDateValue === null || content2.fuzzyDateValue === undefined)) ||\n\t\t\tcontent1.fuzzyDateValue === content2.fuzzyDateValue) &&\n\t\t((!content1.instantValue && !content2.instantValue) || content1.instantValue === content2.instantValue) &&\n\t\t((!content1.measureValue && !content2.measureValue) || content1.measureValue === content2.measureValue) &&\n\t\t((!content1.medicationValue && !content2.medicationValue) || content1.medicationValue === content2.medicationValue) &&\n\t\t((!content1.stringValue && !content2.stringValue) || content1.stringValue === content2.stringValue) &&\n\t\t(((content1.numberValue === null || content1.numberValue === undefined) && (content2.numberValue === null || content2.numberValue === undefined)) ||\n\t\t\tcontent1.numberValue === content2.numberValue) &&\n\t\t((!content1.compoundValue && !content2.compoundValue) ||\n\t\t\t((content1.compoundValue?.every((s1) => content2.compoundValue?.some((s2) => isServiceEqual(s1, s2))) || false) &&\n\t\t\t\t(content2?.compoundValue?.every((s2) => content1?.compoundValue?.some((s1) => isServiceEqual(s1, s2))) || false)))\n\t)\n}\n\nexport function isServiceContentEqual(content1: { [language: string]: Content }, content2: { [language: string]: Content }): boolean {\n\treturn Object.keys(content1).reduce((isEqual, lng) => isEqual && isContentEqual(content1[lng], content2[lng]), true as boolean)\n}\n\nexport const primitiveTypeToContent = (language: string, value: PrimitiveType): Content => {\n\treturn {\n\t\t...(value.type === 'number' ? { numberValue: (value as NumberType).value } : {}),\n\t\t...(value.type === 'measure'\n\t\t\t? {\n\t\t\t\t\tmeasureValue: {\n\t\t\t\t\t\tvalue: (value as MeasureType).value,\n\t\t\t\t\t\tunit: (value as MeasureType).unit,\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: {}),\n\t\t...(value.type === 'string' ? { stringValue: (value as StringType).value } : {}),\n\t\t...(value.type === 'datetime' ? { fuzzyDateValue: (value as DateTimeType).value } : {}),\n\t\t...(value.type === 'boolean' ? { booleanValue: (value as BooleanType).value } : {}),\n\t\t...(value.type === 'timestamp' ? { instantValue: (value as TimestampType).value } : {}),\n\t\t...(value.type === 'compound'\n\t\t\t? {\n\t\t\t\t\tcompoundValue: Object.entries((value as CompoundType).value).map(([label, value]) => ({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t[language]: primitiveTypeToContent(language, value),\n\t\t\t\t\t\t},\n\t\t\t\t\t})),\n\t\t\t }\n\t\t\t: {}),\n\t}\n}\nexport const contentToPrimitiveType = (language: string, content: Content | undefined): PrimitiveType | undefined => {\n\tif (!content) {\n\t\treturn undefined\n\t}\n\tif (content.numberValue || content.numberValue === 0) {\n\t\treturn { type: 'number', value: content.numberValue }\n\t}\n\tif (content.measureValue?.value || content.measureValue?.value === 0 || content.measureValue?.unit?.length) {\n\t\treturn { type: 'measure', value: content.measureValue?.value, unit: content.measureValue?.unit }\n\t}\n\tif (content.stringValue) {\n\t\treturn { type: 'string', value: content.stringValue }\n\t}\n\tif (content.fuzzyDateValue) {\n\t\treturn { type: 'datetime', value: content.fuzzyDateValue }\n\t}\n\tif (content.booleanValue) {\n\t\treturn { type: 'boolean', value: content.booleanValue }\n\t}\n\tif (content.instantValue) {\n\t\treturn { type: 'timestamp', value: content.instantValue }\n\t}\n\tif (content.compoundValue) {\n\t\treturn {\n\t\t\ttype: 'compound',\n\t\t\tvalue: content.compoundValue.reduce((acc: { [label: string]: PrimitiveType }, { label, content }) => {\n\t\t\t\tconst primitiveValue = contentToPrimitiveType(language, content?.[language])\n\t\t\t\treturn label && primitiveValue ? { ...acc, [label]: primitiveValue } : acc\n\t\t\t}, {}),\n\t\t}\n\t}\n\n\treturn undefined\n}\nexport const codeStubToCode = (c: CodeStub) => ({\n\tid: c.id ?? `${c.type}|${c.code}|${c.version}`,\n\tlabel: c.label ?? {},\n})\n"]}
|
|
1
|
+
{"version":3,"file":"icure-utils.js","sourceRoot":"","sources":["../../tmp/icure/icure-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CodeStub, DecryptedContent, DecryptedService, Measure } from '@icure/cardinal-sdk'\nimport { BooleanType, CompoundType, DateTimeType, MeasureType, NumberType, PrimitiveType, StringType, TimestampType } from '../components/model'\n\nexport function isCodeEqual(c1: CodeStub, c2: CodeStub): boolean {\n\tconst idParts1 = c1.id?.split('|')\n\tconst idParts2 = c2.id?.split('|')\n\tconst type1 = c1.type || idParts1?.[0]\n\tconst type2 = c2.type || idParts2?.[0]\n\tconst code1 = c1.code || idParts1?.[1]\n\tconst code2 = c2.code || idParts2?.[1]\n\tconst version1 = c1.version || idParts1?.[2]\n\tconst version2 = c2.version || idParts2?.[2]\n\treturn type1 === type2 && code1 === code2 && version1 === version2\n}\n\nexport function areCodesEqual(c1s: CodeStub[], c2s: CodeStub[]): boolean {\n\treturn c1s.every((c1) => c2s.some((c2) => isCodeEqual(c1, c2)) || false) && c2s.every((c2) => c1s.some((c1) => isCodeEqual(c1, c2)) || false)\n}\n\nexport function isServiceEqual(svc1: DecryptedService, svc2: DecryptedService): boolean {\n\treturn svc1.id === svc2.id && svc1.valueDate === svc2.valueDate && areCodesEqual(svc1.codes || [], svc2.codes || []) && isServiceContentEqual(svc1.content || {}, svc2.content || {})\n}\n\nexport function isContentEqual(content1: DecryptedContent | undefined, content2: DecryptedContent | undefined): boolean {\n\tif (!content1 && !content2) {\n\t\treturn true\n\t}\n\tif (!content1 || !content2) {\n\t\treturn false\n\t}\n\treturn (\n\t\t((!content1.binaryValue && !content2.binaryValue) || content1.binaryValue === content2.binaryValue) &&\n\t\t(((content1.booleanValue === null || content1.booleanValue === undefined) && (content2.booleanValue === null || content2.booleanValue === undefined)) ||\n\t\t\tcontent1.booleanValue === content2.booleanValue) &&\n\t\t((!content1.documentId && !content2.documentId) || content1.documentId === content2.documentId) &&\n\t\t(((content1.fuzzyDateValue === null || content1.fuzzyDateValue === undefined) && (content2.fuzzyDateValue === null || content2.fuzzyDateValue === undefined)) ||\n\t\t\tcontent1.fuzzyDateValue === content2.fuzzyDateValue) &&\n\t\t((!content1.instantValue && !content2.instantValue) || content1.instantValue === content2.instantValue) &&\n\t\t((!content1.measureValue && !content2.measureValue) || content1.measureValue === content2.measureValue) &&\n\t\t((!content1.medicationValue && !content2.medicationValue) || content1.medicationValue === content2.medicationValue) &&\n\t\t((!content1.stringValue && !content2.stringValue) || content1.stringValue === content2.stringValue) &&\n\t\t(((content1.numberValue === null || content1.numberValue === undefined) && (content2.numberValue === null || content2.numberValue === undefined)) ||\n\t\t\tcontent1.numberValue === content2.numberValue) &&\n\t\t((!content1.compoundValue && !content2.compoundValue) ||\n\t\t\t((content1.compoundValue?.every((s1) => content2.compoundValue?.some((s2) => isServiceEqual(s1, s2))) || false) &&\n\t\t\t\t(content2?.compoundValue?.every((s2) => content1?.compoundValue?.some((s1) => isServiceEqual(s1, s2))) || false)))\n\t)\n}\n\nexport function isServiceContentEqual(content1: { [language: string]: DecryptedContent }, content2: { [language: string]: DecryptedContent }): boolean {\n\treturn Object.keys(content1).reduce((isEqual, lng) => isEqual && isContentEqual(content1[lng], content2[lng]), true as boolean)\n}\n\nexport const primitiveTypeToContent = (language: string, value: PrimitiveType): DecryptedContent => {\n\treturn new DecryptedContent({\n\t\t...(value.type === 'number' ? { numberValue: (value as NumberType).value } : {}),\n\t\t...(value.type === 'measure'\n\t\t\t? {\n\t\t\t\t\tmeasureValue: new Measure({\n\t\t\t\t\t\tvalue: (value as MeasureType).value,\n\t\t\t\t\t\tunit: (value as MeasureType).unit,\n\t\t\t\t\t}),\n\t\t\t }\n\t\t\t: {}),\n\t\t...(value.type === 'string' ? { stringValue: (value as StringType).value } : {}),\n\t\t...(value.type === 'datetime' ? { fuzzyDateValue: (value as DateTimeType).value } : {}),\n\t\t...(value.type === 'boolean' ? { booleanValue: (value as BooleanType).value } : {}),\n\t\t...(value.type === 'timestamp' ? { instantValue: (value as TimestampType).value } : {}),\n\t\t...(value.type === 'compound'\n\t\t\t? {\n\t\t\t\t\tcompoundValue: Object.entries((value as CompoundType).value).map(\n\t\t\t\t\t\t([label, value]) =>\n\t\t\t\t\t\t\tnew DecryptedService({\n\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\t[language]: primitiveTypeToContent(language, value),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t }\n\t\t\t: {}),\n\t})\n}\nexport const contentToPrimitiveType = (language: string, content: DecryptedContent | undefined): PrimitiveType | undefined => {\n\tif (!content) {\n\t\treturn undefined\n\t}\n\tif (content.numberValue || content.numberValue === 0) {\n\t\treturn { type: 'number', value: content.numberValue }\n\t}\n\tif (content.measureValue?.value || content.measureValue?.value === 0 || content.measureValue?.unit?.length) {\n\t\treturn { type: 'measure', value: content.measureValue?.value, unit: content.measureValue?.unit }\n\t}\n\tif (content.stringValue) {\n\t\treturn { type: 'string', value: content.stringValue }\n\t}\n\tif (content.fuzzyDateValue) {\n\t\treturn { type: 'datetime', value: content.fuzzyDateValue }\n\t}\n\tif (content.booleanValue) {\n\t\treturn { type: 'boolean', value: content.booleanValue }\n\t}\n\tif (content.instantValue) {\n\t\treturn { type: 'timestamp', value: content.instantValue }\n\t}\n\tif (content.compoundValue) {\n\t\treturn {\n\t\t\ttype: 'compound',\n\t\t\tvalue: content.compoundValue.reduce((acc: { [label: string]: PrimitiveType }, { label, content }) => {\n\t\t\t\tconst primitiveValue = contentToPrimitiveType(language, content?.[language])\n\t\t\t\treturn label && primitiveValue ? { ...acc, [label]: primitiveValue } : acc\n\t\t\t}, {}),\n\t\t}\n\t}\n\n\treturn undefined\n}\nexport const codeStubToCode = (c: CodeStub) => ({\n\tid: c.id ?? `${c.type}|${c.code}|${c.version}`,\n\tlabel: c.label ?? {},\n})\n"]}
|
package/icure/index.js
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./model"), exports);
|
|
18
|
+
__exportStar(require("./form-values-container"), exports);
|
|
3
19
|
//# sourceMappingURL=index.js.map
|
package/icure/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tmp/icure/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tmp/icure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0DAAuC","sourcesContent":["export * from './model'\nexport * from './form-values-container'\n"]}
|
package/icure/model.d.ts
CHANGED
package/icure/model.js
CHANGED
package/icure/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../tmp/icure/model.ts"],"names":[],"mappings":"","sourcesContent":["import { CodeStub } from '@icure/
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../tmp/icure/model.ts"],"names":[],"mappings":"","sourcesContent":["import { CodeStub } from '@icure/cardinal-sdk'\n\nexport interface ServiceMetadata {\n\tlabel: string\n\tindex?: number\n\tvalueDate?: number\n\tauthor?: string\n\tresponsible?: string\n\tcodes?: CodeStub[]\n\ttags?: CodeStub[]\n}\n"]}
|
package/index.js
CHANGED
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./components"), exports);
|
|
2
18
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../tmp/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../tmp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B","sourcesContent":["export * from './components'\n"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@icure/form",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
|
+
"@icure/motss-app-datepicker": "^6.0.0-rc.36",
|
|
8
9
|
"@webcomponents/webcomponentsjs": "^2.7.0",
|
|
9
|
-
"
|
|
10
|
+
"date-fns": "^2.23.0",
|
|
10
11
|
"fast-deep-equal": "^3.1.3",
|
|
11
12
|
"lit": "^3.1.3",
|
|
12
13
|
"markdown-it": "^14.1.0",
|
package/utils/code-utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Code, Field, SortOptions } from '../components/model';
|
|
2
2
|
import { Suggestion } from '../generic';
|
|
3
|
-
import { CodeStub } from '@icure/
|
|
3
|
+
import { CodeStub } from '@icure/cardinal-sdk';
|
|
4
4
|
/**
|
|
5
5
|
* Maps the options defined in a field into a list of codes
|
|
6
6
|
*
|
|
@@ -13,3 +13,12 @@ export declare const sortCodes: (codes: Code[], language: string, sortOptions?:
|
|
|
13
13
|
export declare const sortSuggestions: (codes: (Code | Suggestion)[], language: string, sortOptions?: SortOptions) => Suggestion[];
|
|
14
14
|
export declare const filterAndSortOptionsFromFieldDefinition: (language: string, fg: Field, translationProvider: ((language: string, text: string) => string) | undefined, terms?: string[]) => Promise<Code[]>;
|
|
15
15
|
export declare const normalizeCodes: (codes: CodeStub[]) => CodeStub[];
|
|
16
|
+
/**
|
|
17
|
+
* Normalizes the code's four main fields (type, code, version and id). The first three are considered to be
|
|
18
|
+
* authoritative, while the id is a pure function of them. The authoritative fields are filled in from the id if
|
|
19
|
+
* missing, or the version is set to '1' if it is the only missing authoritative field. The id is then rederived from
|
|
20
|
+
* the three fields.
|
|
21
|
+
* @param code The code to normalize.
|
|
22
|
+
* @returns A shallow copy of the input with its type, code, version and id normalized.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeCode(code: CodeStub): CodeStub;
|
package/utils/code-utils.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeCode = exports.normalizeCodes = exports.filterAndSortOptionsFromFieldDefinition = exports.sortSuggestions = exports.sortCodes = exports.optionMapper = void 0;
|
|
4
|
+
const utils_1 = require("../components/common/utils");
|
|
5
|
+
const cardinal_sdk_1 = require("@icure/cardinal-sdk");
|
|
3
6
|
/**
|
|
4
7
|
* Maps the options defined in a field into a list of codes
|
|
5
8
|
*
|
|
@@ -7,7 +10,7 @@ import { normalizeCode } from '@icure/api';
|
|
|
7
10
|
* @param field
|
|
8
11
|
* @param translationProvider
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
const optionMapper = (language, field, translationProvider) => {
|
|
11
14
|
var _a;
|
|
12
15
|
return Object.keys((_a = field === null || field === void 0 ? void 0 : field.options) !== null && _a !== void 0 ? _a : []).map((optionKey) => {
|
|
13
16
|
var _a, _b;
|
|
@@ -18,12 +21,57 @@ export const optionMapper = (language, field, translationProvider) => {
|
|
|
18
21
|
};
|
|
19
22
|
});
|
|
20
23
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
exports.optionMapper = optionMapper;
|
|
25
|
+
const sortCodes = (codes, language, sortOptions) => (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) && (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) !== 'natural'
|
|
26
|
+
? codes.sort((0, utils_1.defaultCodesComparator)(language, (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) === 'asc', (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? (0, utils_1.makePromoter)(sortOptions.promotions.split(/ ?, ?/)) : utils_1.defaultCodePromoter))
|
|
27
|
+
: codes.sort((0, utils_1.naturalCodesComparator)((sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? (0, utils_1.makePromoter)(sortOptions.promotions.split(/ ?, ?/)) : utils_1.defaultCodePromoter));
|
|
28
|
+
exports.sortCodes = sortCodes;
|
|
29
|
+
const sortSuggestions = (codes, language, sortOptions) => ((sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) && (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) !== 'natural'
|
|
30
|
+
? codes.sort((0, utils_1.defaultCodesComparator)(language, (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) === 'asc', (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? (0, utils_1.makePromoter)(sortOptions.promotions.split(/ ?, ?/)) : utils_1.defaultCodePromoter))
|
|
31
|
+
: codes.sort((0, utils_1.naturalCodesComparator)((sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? (0, utils_1.makePromoter)(sortOptions.promotions.split(/ ?, ?/)) : utils_1.defaultCodePromoter))).map((c) => { var _a; return ({ id: c.id, label: c.label, text: (_a = c.label[language]) !== null && _a !== void 0 ? _a : '', terms: [] }); });
|
|
32
|
+
exports.sortSuggestions = sortSuggestions;
|
|
33
|
+
const filterAndSortOptionsFromFieldDefinition = (language, fg, translationProvider, terms) => Promise.resolve((0, exports.sortCodes)((0, exports.optionMapper)(language, fg, translationProvider).filter((x) => (terms !== null && terms !== void 0 ? terms : []).map((st) => st.toLowerCase()).every((st) => x.label[language].toLowerCase().includes(st))), language, fg.sortOptions));
|
|
34
|
+
exports.filterAndSortOptionsFromFieldDefinition = filterAndSortOptionsFromFieldDefinition;
|
|
35
|
+
const normalizeCodes = (codes) => codes.map((c) => normalizeCode(c));
|
|
36
|
+
exports.normalizeCodes = normalizeCodes;
|
|
37
|
+
/**
|
|
38
|
+
* Normalizes the code's four main fields (type, code, version and id). The first three are considered to be
|
|
39
|
+
* authoritative, while the id is a pure function of them. The authoritative fields are filled in from the id if
|
|
40
|
+
* missing, or the version is set to '1' if it is the only missing authoritative field. The id is then rederived from
|
|
41
|
+
* the three fields.
|
|
42
|
+
* @param code The code to normalize.
|
|
43
|
+
* @returns A shallow copy of the input with its type, code, version and id normalized.
|
|
44
|
+
*/
|
|
45
|
+
function normalizeCode(code) {
|
|
46
|
+
code = new cardinal_sdk_1.CodeStub(code);
|
|
47
|
+
if (code.type && code.code && code.version) {
|
|
48
|
+
// do nothing, we all have the authoritative fields we need
|
|
49
|
+
}
|
|
50
|
+
else if (code.id) {
|
|
51
|
+
// reconstruct the authoritative fields from the id
|
|
52
|
+
const [idType, idCode, idVersion, ...idRest] = code.id.split('|');
|
|
53
|
+
if (idType && idCode && idVersion && idRest.length === 0) {
|
|
54
|
+
if (!code.type)
|
|
55
|
+
code.type = idType;
|
|
56
|
+
if (!code.code)
|
|
57
|
+
code.code = idCode;
|
|
58
|
+
if (!code.version)
|
|
59
|
+
code.version = idVersion;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
throw new Error(`attempted to normalize from a malformed code id "${code.id}"`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (code.type && code.code && !code.version) {
|
|
66
|
+
// we can provide a default value
|
|
67
|
+
code.version = '1';
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw new Error('could not reconstruct the code');
|
|
71
|
+
}
|
|
72
|
+
// Recompute the id to ensure that it matches the reconstructed code.
|
|
73
|
+
code.id = `${code.type}|${code.code}|${code.version}`;
|
|
74
|
+
return code;
|
|
75
|
+
}
|
|
76
|
+
exports.normalizeCode = normalizeCode;
|
|
29
77
|
//# sourceMappingURL=code-utils.js.map
|
package/utils/code-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-utils.js","sourceRoot":"","sources":["../../tmp/utils/code-utils.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"code-utils.js","sourceRoot":"","sources":["../../tmp/utils/code-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Code, Field, SortOptions } from '../components/model'\nimport { defaultCodePromoter, defaultCodesComparator, makePromoter, naturalCodesComparator } from '../components/common/utils'\nimport { Suggestion } from '../generic'\nimport { CodeStub } from '@icure/cardinal-sdk'\n\n/**\n * Maps the options defined in a field into a list of codes\n *\n * @param language\n * @param field\n * @param translationProvider\n */\nexport const optionMapper = (language: string, field: Field, translationProvider?: (language: string, text: string) => string): Code[] =>\n\tObject.keys(field?.options ?? []).map((optionKey) => {\n\t\tconst text: string = (field?.options?.[optionKey] as string) ?? ''\n\t\treturn {\n\t\t\tid: optionKey,\n\t\t\tlabel: { [language]: translationProvider ? translationProvider(language, text) : text },\n\t\t}\n\t})\n\nexport const sortCodes = (codes: Code[], language: string, sortOptions?: SortOptions) =>\n\tsortOptions?.sort && sortOptions?.sort !== 'natural'\n\t\t? codes.sort(defaultCodesComparator(language, sortOptions?.sort === 'asc', sortOptions?.promotions ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter))\n\t\t: codes.sort(naturalCodesComparator(sortOptions?.promotions ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter))\n\nexport const sortSuggestions = (codes: (Code | Suggestion)[], language: string, sortOptions?: SortOptions): Suggestion[] =>\n\t(sortOptions?.sort && sortOptions?.sort !== 'natural'\n\t\t? codes.sort(defaultCodesComparator(language, sortOptions?.sort === 'asc', sortOptions?.promotions ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter))\n\t\t: codes.sort(naturalCodesComparator(sortOptions?.promotions ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter))\n\t).map((c) => ({ id: c.id, label: c.label, text: c.label[language] ?? '', terms: [] }))\n\nexport const filterAndSortOptionsFromFieldDefinition = (\n\tlanguage: string,\n\tfg: Field,\n\ttranslationProvider: ((language: string, text: string) => string) | undefined,\n\tterms?: string[],\n) =>\n\tPromise.resolve(\n\t\tsortCodes(\n\t\t\toptionMapper(language, fg, translationProvider).filter((x) => (terms ?? []).map((st) => st.toLowerCase()).every((st) => x.label[language].toLowerCase().includes(st))),\n\t\t\tlanguage,\n\t\t\tfg.sortOptions,\n\t\t),\n\t)\n\nexport const normalizeCodes = (codes: CodeStub[]): CodeStub[] => codes.map((c) => normalizeCode(c))\n\n/**\n * Normalizes the code's four main fields (type, code, version and id). The first three are considered to be\n * authoritative, while the id is a pure function of them. The authoritative fields are filled in from the id if\n * missing, or the version is set to '1' if it is the only missing authoritative field. The id is then rederived from\n * the three fields.\n * @param code The code to normalize.\n * @returns A shallow copy of the input with its type, code, version and id normalized.\n */\nexport function normalizeCode(code: CodeStub): CodeStub {\n\tcode = new CodeStub(code)\n\n\tif (code.type && code.code && code.version) {\n\t\t// do nothing, we all have the authoritative fields we need\n\t} else if (code.id) {\n\t\t// reconstruct the authoritative fields from the id\n\t\tconst [idType, idCode, idVersion, ...idRest] = code.id.split('|')\n\t\tif (idType && idCode && idVersion && idRest.length === 0) {\n\t\t\tif (!code.type) code.type = idType\n\t\t\tif (!code.code) code.code = idCode\n\t\t\tif (!code.version) code.version = idVersion\n\t\t} else {\n\t\t\tthrow new Error(`attempted to normalize from a malformed code id \"${code.id}\"`)\n\t\t}\n\t} else if (code.type && code.code && !code.version) {\n\t\t// we can provide a default value\n\t\tcode.version = '1'\n\t} else {\n\t\tthrow new Error('could not reconstruct the code')\n\t}\n\n\t// Recompute the id to ensure that it matches the reconstructed code.\n\tcode.id = `${code.type}|${code.code}|${code.version}`\n\n\treturn code\n}\n"]}
|
package/utils/dates.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.currentDateTime = exports.currentDate = exports.currentTime = exports.anyDateToFuzzyDate = exports.dateToFuzzyDate = exports.anyDateToDate = void 0;
|
|
7
|
+
const parse_1 = __importDefault(require("date-fns/parse"));
|
|
8
|
+
function anyDateToDate(dateOrEpochOrLongCalendar) {
|
|
3
9
|
if (dateOrEpochOrLongCalendar === undefined) {
|
|
4
10
|
return undefined;
|
|
5
11
|
}
|
|
@@ -10,37 +16,43 @@ export function anyDateToDate(dateOrEpochOrLongCalendar) {
|
|
|
10
16
|
return undefined;
|
|
11
17
|
}
|
|
12
18
|
if (dateOrEpochOrLongCalendar >= 18000101 && dateOrEpochOrLongCalendar < 25400000) {
|
|
13
|
-
return
|
|
19
|
+
return (0, parse_1.default)('' + dateOrEpochOrLongCalendar, 'yyyyMMdd', new Date());
|
|
14
20
|
}
|
|
15
21
|
else if (dateOrEpochOrLongCalendar >= 18000101000000) {
|
|
16
|
-
return
|
|
22
|
+
return (0, parse_1.default)('' + dateOrEpochOrLongCalendar, 'yyyyMMddHHmmss', new Date());
|
|
17
23
|
}
|
|
18
24
|
else {
|
|
19
25
|
return new Date(dateOrEpochOrLongCalendar);
|
|
20
26
|
}
|
|
21
27
|
}
|
|
22
|
-
|
|
28
|
+
exports.anyDateToDate = anyDateToDate;
|
|
29
|
+
function dateToFuzzyDate(date) {
|
|
23
30
|
return parseInt(`${date.getFullYear()}${(date.getMonth() + 1).toString().padStart(2, '0')}${date.getDate().toString().padStart(2, '0')}${date.getHours().toString().padStart(2, '0')}${date
|
|
24
31
|
.getMinutes()
|
|
25
32
|
.toString()
|
|
26
33
|
.padStart(2, '0')}${date.getSeconds().toString().padStart(2, '0')}`);
|
|
27
34
|
}
|
|
28
|
-
|
|
35
|
+
exports.dateToFuzzyDate = dateToFuzzyDate;
|
|
36
|
+
function anyDateToFuzzyDate(dateOrEpochOrLongCalendar) {
|
|
29
37
|
const date = anyDateToDate(dateOrEpochOrLongCalendar);
|
|
30
38
|
if (!date) {
|
|
31
39
|
return undefined;
|
|
32
40
|
}
|
|
33
41
|
return dateToFuzzyDate(date);
|
|
34
42
|
}
|
|
35
|
-
|
|
43
|
+
exports.anyDateToFuzzyDate = anyDateToFuzzyDate;
|
|
44
|
+
function currentTime() {
|
|
36
45
|
const now = new Date();
|
|
37
46
|
return `${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}:${now.getSeconds().toString().padStart(2, '0')}`;
|
|
38
47
|
}
|
|
39
|
-
|
|
48
|
+
exports.currentTime = currentTime;
|
|
49
|
+
function currentDate() {
|
|
40
50
|
const now = new Date();
|
|
41
51
|
return `${now.getDate().toString().padStart(2, '0')}/${(now.getMonth() + 1).toString().padStart(2, '0')}/${now.getFullYear()}`;
|
|
42
52
|
}
|
|
43
|
-
|
|
53
|
+
exports.currentDate = currentDate;
|
|
54
|
+
function currentDateTime() {
|
|
44
55
|
return `${currentDate()} ${currentTime()}`;
|
|
45
56
|
}
|
|
57
|
+
exports.currentDateTime = currentDateTime;
|
|
46
58
|
//# sourceMappingURL=dates.js.map
|
package/utils/dates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dates.js","sourceRoot":"","sources":["../../tmp/utils/dates.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"dates.js","sourceRoot":"","sources":["../../tmp/utils/dates.ts"],"names":[],"mappings":"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","sourcesContent":["import parse from 'date-fns/parse'\n\nexport function anyDateToDate(dateOrEpochOrLongCalendar?: Date | number | undefined): Date | undefined {\n\tif (dateOrEpochOrLongCalendar === undefined) {\n\t\treturn undefined\n\t}\n\tif (dateOrEpochOrLongCalendar instanceof Date) {\n\t\treturn anyDateToDate(+dateOrEpochOrLongCalendar)\n\t}\n\tif (!dateOrEpochOrLongCalendar && dateOrEpochOrLongCalendar !== 0) {\n\t\treturn undefined\n\t}\n\tif (dateOrEpochOrLongCalendar >= 18000101 && dateOrEpochOrLongCalendar < 25400000) {\n\t\treturn parse('' + dateOrEpochOrLongCalendar, 'yyyyMMdd', new Date())\n\t} else if (dateOrEpochOrLongCalendar >= 18000101000000) {\n\t\treturn parse('' + dateOrEpochOrLongCalendar, 'yyyyMMddHHmmss', new Date())\n\t} else {\n\t\treturn new Date(dateOrEpochOrLongCalendar)\n\t}\n}\n\nexport function dateToFuzzyDate(date: Date): number {\n\treturn parseInt(\n\t\t`${date.getFullYear()}${(date.getMonth() + 1).toString().padStart(2, '0')}${date.getDate().toString().padStart(2, '0')}${date.getHours().toString().padStart(2, '0')}${date\n\t\t\t.getMinutes()\n\t\t\t.toString()\n\t\t\t.padStart(2, '0')}${date.getSeconds().toString().padStart(2, '0')}`,\n\t)\n}\n\nexport function anyDateToFuzzyDate(dateOrEpochOrLongCalendar: Date | number) {\n\tconst date = anyDateToDate(dateOrEpochOrLongCalendar)\n\tif (!date) {\n\t\treturn undefined\n\t}\n\treturn dateToFuzzyDate(date)\n}\n\nexport function currentTime() {\n\tconst now = new Date()\n\treturn `${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}:${now.getSeconds().toString().padStart(2, '0')}`\n}\n\nexport function currentDate() {\n\tconst now = new Date()\n\treturn `${now.getDate().toString().padStart(2, '0')}/${(now.getMonth() + 1).toString().padStart(2, '0')}/${now.getFullYear()}`\n}\n\nexport function currentDateTime() {\n\treturn `${currentDate()} ${currentTime()}`\n}\n"]}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleMetadataChangedProvider = exports.handleValueChangedProvider = exports.getValidationError = exports.makeMetadata = exports.fieldValuesProvider = exports.getRevisionsFilter = void 0;
|
|
4
|
+
const dates_1 = require("./dates");
|
|
5
|
+
function getRevisionsFilter(field) {
|
|
3
6
|
return (id, history) => history
|
|
4
7
|
.filter((fmd) => { var _a, _b; return (((_a = field.tags) === null || _a === void 0 ? void 0 : _a.length) ? field.tags.every((t) => { var _a, _b; return (_b = (_a = fmd === null || fmd === void 0 ? void 0 : fmd.value) === null || _a === void 0 ? void 0 : _a.tags) === null || _b === void 0 ? void 0 : _b.some((tt) => tt.id === t); }) : ((_b = fmd === null || fmd === void 0 ? void 0 : fmd.value) === null || _b === void 0 ? void 0 : _b.label) === field.label()); })
|
|
5
8
|
.map((fmd) => fmd.revision)
|
|
6
9
|
.filter((r) => r !== undefined); //null is used as a new revision indicator
|
|
7
10
|
}
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
exports.getRevisionsFilter = getRevisionsFilter;
|
|
12
|
+
const fieldValuesProvider = (formValuesContainer, field) => () => formValuesContainer.getValues(getRevisionsFilter(field));
|
|
13
|
+
exports.fieldValuesProvider = fieldValuesProvider;
|
|
14
|
+
function makeMetadata(field, owner, index) {
|
|
10
15
|
var _a;
|
|
11
16
|
return {
|
|
12
17
|
label: field.label(),
|
|
13
|
-
valueDate: dateToFuzzyDate(new Date()),
|
|
18
|
+
valueDate: (0, dates_1.dateToFuzzyDate)(new Date()),
|
|
14
19
|
owner: owner,
|
|
15
20
|
index: index,
|
|
16
21
|
tags: (_a = field.tags) === null || _a === void 0 ? void 0 : _a.map((t) => ({
|
|
@@ -19,12 +24,14 @@ export function makeMetadata(field, owner, index) {
|
|
|
19
24
|
})),
|
|
20
25
|
};
|
|
21
26
|
}
|
|
22
|
-
|
|
27
|
+
exports.makeMetadata = makeMetadata;
|
|
28
|
+
const getValidationError = (formsValueContainer, field) => () => {
|
|
23
29
|
var _a;
|
|
24
30
|
const validators = (_a = formsValueContainer === null || formsValueContainer === void 0 ? void 0 : formsValueContainer.getValidationErrors()) !== null && _a !== void 0 ? _a : [];
|
|
25
31
|
return validators.filter(([metadata]) => metadata.label === (field === null || field === void 0 ? void 0 : field.label()));
|
|
26
32
|
};
|
|
27
|
-
|
|
33
|
+
exports.getValidationError = getValidationError;
|
|
34
|
+
const handleValueChangedProvider = (formsValueContainer, field, owner) => {
|
|
28
35
|
return (label, language, value, id) => {
|
|
29
36
|
if (formsValueContainer) {
|
|
30
37
|
formsValueContainer.setValue(label, language, value, id, !id && field // If the id is not set, we are creating a new value. In this case, we set the metadata.
|
|
@@ -33,11 +40,13 @@ export const handleValueChangedProvider = (formsValueContainer, field, owner) =>
|
|
|
33
40
|
}
|
|
34
41
|
};
|
|
35
42
|
};
|
|
36
|
-
|
|
43
|
+
exports.handleValueChangedProvider = handleValueChangedProvider;
|
|
44
|
+
const handleMetadataChangedProvider = (formsValueContainer) => {
|
|
37
45
|
return (metadata, id) => {
|
|
38
46
|
if (formsValueContainer) {
|
|
39
47
|
formsValueContainer.setMetadata(metadata, id);
|
|
40
48
|
}
|
|
41
49
|
};
|
|
42
50
|
};
|
|
51
|
+
exports.handleMetadataChangedProvider = handleMetadataChangedProvider;
|
|
43
52
|
//# sourceMappingURL=fields-values-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields-values-provider.js","sourceRoot":"","sources":["../../tmp/utils/fields-values-provider.ts"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"fields-values-provider.js","sourceRoot":"","sources":["../../tmp/utils/fields-values-provider.ts"],"names":[],"mappings":";;;AAGA,mCAAyC;AAEzC,SAAgB,kBAAkB,CAAC,KAAY;IAC9C,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CACtB,OAAO;SACL,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,eAAC,OAAA,CAAC,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,MAAM,EAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,IAAI,0CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,KAAK,MAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA,EAAA,CAAC;SAClJ,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAa,CAAA,CAAC,0CAA0C;AACzF,CAAC;AAND,gDAMC;AAEM,MAAM,mBAAmB,GAC/B,CAAC,mBAAmE,EAAE,KAAY,EAAqC,EAAE,CACzH,GAAG,EAAE,CACJ,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;AAH7C,QAAA,mBAAmB,uBAG0B;AAE1D,SAAgB,YAAY,CAAC,KAAY,EAAE,KAAc,EAAE,KAAc;;IACxE,OAAO;QACN,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;QACpB,SAAS,EAAE,IAAA,uBAAe,EAAC,IAAI,IAAI,EAAE,CAAC;QACtC,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,EAAE;SACT,CAAC,CAAC;KACH,CAAA;AACF,CAAC;AAXD,oCAWC;AAEM,MAAM,kBAAkB,GAC9B,CAAC,mBAAoE,EAAE,KAAa,EAAqC,EAAE,CAC3H,GAAG,EAAE;;IACJ,MAAM,UAAU,GAAG,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,mBAAmB,EAAE,mCAAI,EAAE,CAAA;IACnE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,MAAK,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAE,CAAA,CAAC,CAAA;AAC5E,CAAC,CAAA;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,0BAA0B,GAAG,CAAC,mBAAoE,EAAE,KAAa,EAAE,KAAc,EAAE,EAAE;IACjJ,OAAO,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAkB,EAAE,EAAW,EAAE,EAAE;QAC3E,IAAI,mBAAmB,EAAE,CAAC;YACzB,mBAAmB,CAAC,QAAQ,CAC3B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,EAAE,EACF,CAAC,EAAE,IAAI,KAAK,CAAC,wFAAwF;gBACpG,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC5B,CAAC,CAAC,SAAS,CACZ,CAAA;QACF,CAAC;IACF,CAAC,CAAA;AACF,CAAC,CAAA;AAdY,QAAA,0BAA0B,8BActC;AAEM,MAAM,6BAA6B,GAAG,CAAC,mBAAoE,EAAE,EAAE;IACrH,OAAO,CAAC,QAAuB,EAAE,EAAW,EAAE,EAAE;QAC/C,IAAI,mBAAmB,EAAE,CAAC;YACzB,mBAAmB,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC9C,CAAC;IACF,CAAC,CAAA;AACF,CAAC,CAAA;AANY,QAAA,6BAA6B,iCAMzC","sourcesContent":["import { Field, FieldMetadata, FieldValue } from '../components/model'\nimport { FormValuesContainer, Version, VersionedData } from '../generic'\n\nimport { dateToFuzzyDate } from './dates'\n\nexport function getRevisionsFilter(field: Field): (id: string, history: Version<FieldMetadata>[]) => string[] {\n\treturn (id, history) =>\n\t\thistory\n\t\t\t.filter((fmd) => (field.tags?.length ? field.tags.every((t) => fmd?.value?.tags?.some((tt) => tt.id === t)) : fmd?.value?.label === field.label()))\n\t\t\t.map((fmd) => fmd.revision)\n\t\t\t.filter((r) => r !== undefined) as string[] //null is used as a new revision indicator\n}\n\nexport const fieldValuesProvider =\n\t(formValuesContainer: FormValuesContainer<FieldValue, FieldMetadata>, field: Field): (() => VersionedData<FieldValue>) =>\n\t() =>\n\t\tformValuesContainer.getValues(getRevisionsFilter(field))\n\nexport function makeMetadata(field: Field, owner?: string, index?: number) {\n\treturn {\n\t\tlabel: field.label(),\n\t\tvalueDate: dateToFuzzyDate(new Date()),\n\t\towner: owner,\n\t\tindex: index,\n\t\ttags: field.tags?.map((t) => ({\n\t\t\tid: t,\n\t\t\tlabel: {},\n\t\t})),\n\t}\n}\n\nexport const getValidationError =\n\t(formsValueContainer?: FormValuesContainer<FieldValue, FieldMetadata>, field?: Field): (() => [FieldMetadata, string][]) =>\n\t() => {\n\t\tconst validators = formsValueContainer?.getValidationErrors() ?? []\n\t\treturn validators.filter(([metadata]) => metadata.label === field?.label())\n\t}\n\nexport const handleValueChangedProvider = (formsValueContainer?: FormValuesContainer<FieldValue, FieldMetadata>, field?: Field, owner?: string) => {\n\treturn (label: string, language: string, value?: FieldValue, id?: string) => {\n\t\tif (formsValueContainer) {\n\t\t\tformsValueContainer.setValue(\n\t\t\t\tlabel,\n\t\t\t\tlanguage,\n\t\t\t\tvalue,\n\t\t\t\tid,\n\t\t\t\t!id && field // If the id is not set, we are creating a new value. In this case, we set the metadata.\n\t\t\t\t\t? makeMetadata(field, owner)\n\t\t\t\t\t: undefined,\n\t\t\t)\n\t\t}\n\t}\n}\n\nexport const handleMetadataChangedProvider = (formsValueContainer?: FormValuesContainer<FieldValue, FieldMetadata>) => {\n\treturn (metadata: FieldMetadata, id?: string) => {\n\t\tif (formsValueContainer) {\n\t\t\tformsValueContainer.setMetadata(metadata, id)\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeFormDefaultValues = void 0;
|
|
4
|
+
const fields_values_provider_1 = require("./fields-values-provider");
|
|
5
|
+
const computeFormDefaultValues = (formValuesContainer, form, language, owner) => {
|
|
3
6
|
var _a;
|
|
4
7
|
const extractDefaultValues = (fgs, language) => fgs.reduce((acc, fg) => {
|
|
5
8
|
var _a, _b, _c;
|
|
@@ -15,7 +18,7 @@ export const computeFormDefaultValues = (formValuesContainer, form, language, ow
|
|
|
15
18
|
value.content[lng] = value.content['*'];
|
|
16
19
|
}
|
|
17
20
|
if (value.content[lng]) {
|
|
18
|
-
return [...acc, [value, makeMetadata(fg, owner)]];
|
|
21
|
+
return [...acc, [value, (0, fields_values_provider_1.makeMetadata)(fg, owner)]];
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
}
|
|
@@ -27,4 +30,5 @@ export const computeFormDefaultValues = (formValuesContainer, form, language, ow
|
|
|
27
30
|
return [...acc, ...extractDefaultValues((_a = section.fields) !== null && _a !== void 0 ? _a : [], language)];
|
|
28
31
|
}, [])) !== null && _a !== void 0 ? _a : []);
|
|
29
32
|
};
|
|
33
|
+
exports.computeFormDefaultValues = computeFormDefaultValues;
|
|
30
34
|
//# sourceMappingURL=form-value-container.js.map
|