@icure/form 3.0.39 → 3.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/.yarn/cache/{@babel-runtime-npm-7.26.10-d01a90d446-22d2e0abb8.zip → @babel-runtime-npm-7.28.4-31bc1b0001-934b0a0460.zip} +0 -0
  2. package/.yarn/cache/{@icure-motss-app-datepicker-npm-6.0.0-rc.39-d00d21c35a-eefaed31a8.zip → @icure-motss-app-datepicker-npm-6.0.0-rc.40-ca1da7abbb-9bbe2bed34.zip} +0 -0
  3. package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.4.0-e5ef5fbeba-e267c25576.zip +0 -0
  4. package/.yarn/cache/{@lit-reactive-element-npm-2.1.0-77512b732b-fb36e9f64b.zip → @lit-reactive-element-npm-2.1.1-3875228c32-b9bbc9c089.zip} +0 -0
  5. package/.yarn/cache/{@lit-task-npm-1.0.2-01d3dd32e9-22e1265a62.zip → @lit-task-npm-1.0.3-48f265b3e9-790b6a2603.zip} +0 -0
  6. package/.yarn/cache/{lit-element-npm-4.1.1-bb20932b82-74d0f2d6fb.zip → lit-element-npm-4.2.1-b5bc114ced-5925326176.zip} +0 -0
  7. package/.yarn/cache/{lit-html-npm-3.2.1-1662fc597d-1bacd9f8b2.zip → lit-html-npm-3.3.1-e3722d4f4a-de07c66945.zip} +0 -0
  8. package/.yarn/cache/{lit-npm-3.2.1-27cb5b7782-ee22bbc53d.zip → lit-npm-3.3.1-8f683c51f1-fb88f1ff80.zip} +0 -0
  9. package/.yarn/cache/{prosemirror-commands-npm-1.7.0-212f35173c-a39225d534.zip → prosemirror-commands-npm-1.7.1-5b2afb6640-2316c40ea2.zip} +0 -0
  10. package/.yarn/cache/prosemirror-history-npm-1.5.0-e639d02880-6afb0e1d17.zip +0 -0
  11. package/.yarn/cache/prosemirror-keymap-npm-1.2.3-0e7e0c8195-0a2eed2771.zip +0 -0
  12. package/.yarn/cache/prosemirror-model-npm-1.25.4-e7ee2df3df-ab5aa609df.zip +0 -0
  13. package/.yarn/cache/prosemirror-state-npm-1.4.4-8b7e3a396c-1b5dba46c2.zip +0 -0
  14. package/.yarn/cache/prosemirror-transform-npm-1.10.5-5b3b4f5f61-6f5921e53a.zip +0 -0
  15. package/.yarn/cache/prosemirror-view-npm-1.41.4-cf361fd330-b663b8c6ce.zip +0 -0
  16. package/.yarn/install-state.gz +0 -0
  17. package/components/common/field.d.ts +0 -1
  18. package/components/common/field.js +0 -5
  19. package/components/common/field.js.map +1 -1
  20. package/components/common/metadata-buttons-bar.d.ts +1 -1
  21. package/components/common/metadata-buttons-bar.js +2 -6
  22. package/components/common/metadata-buttons-bar.js.map +1 -1
  23. package/components/icure-button/index.js +0 -4
  24. package/components/icure-button/index.js.map +1 -1
  25. package/components/icure-button-group/index.js +0 -4
  26. package/components/icure-button-group/index.js.map +1 -1
  27. package/components/icure-date-picker/index.d.ts +1 -1
  28. package/components/icure-date-picker/index.js +2 -6
  29. package/components/icure-date-picker/index.js.map +1 -1
  30. package/components/icure-dropdown-field/index.js +0 -4
  31. package/components/icure-dropdown-field/index.js.map +1 -1
  32. package/components/icure-form/fields/button-group/checkbox.d.ts +0 -1
  33. package/components/icure-form/fields/button-group/checkbox.js +2 -39
  34. package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
  35. package/components/icure-form/fields/button-group/radio-button.d.ts +0 -1
  36. package/components/icure-form/fields/button-group/radio-button.js +2 -39
  37. package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
  38. package/components/icure-form/fields/date-picker/date-picker.d.ts +0 -1
  39. package/components/icure-form/fields/date-picker/date-picker.js +17 -54
  40. package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
  41. package/components/icure-form/fields/date-picker/date-time-picker.d.ts +0 -1
  42. package/components/icure-form/fields/date-picker/date-time-picker.js +17 -54
  43. package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
  44. package/components/icure-form/fields/date-picker/time-picker.d.ts +0 -1
  45. package/components/icure-form/fields/date-picker/time-picker.js +17 -54
  46. package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
  47. package/components/icure-form/fields/dropdown/dropdown-field.d.ts +0 -1
  48. package/components/icure-form/fields/dropdown/dropdown-field.js +2 -39
  49. package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
  50. package/components/icure-form/fields/items-list-field/items-list-field.d.ts +0 -1
  51. package/components/icure-form/fields/items-list-field/items-list-field.js +17 -55
  52. package/components/icure-form/fields/items-list-field/items-list-field.js.map +1 -1
  53. package/components/icure-form/fields/measure-field/measure-field.d.ts +0 -1
  54. package/components/icure-form/fields/measure-field/measure-field.js +2 -39
  55. package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
  56. package/components/icure-form/fields/number-field/number-field.d.ts +0 -1
  57. package/components/icure-form/fields/number-field/number-field.js +18 -55
  58. package/components/icure-form/fields/number-field/number-field.js.map +1 -1
  59. package/components/icure-form/fields/text-field/text-field.d.ts +0 -1
  60. package/components/icure-form/fields/text-field/text-field.js +28 -65
  61. package/components/icure-form/fields/text-field/text-field.js.map +1 -1
  62. package/components/icure-form/fields/token-field/token-field.d.ts +0 -1
  63. package/components/icure-form/fields/token-field/token-field.js +17 -55
  64. package/components/icure-form/fields/token-field/token-field.js.map +1 -1
  65. package/components/icure-form/fields/utils/index.d.ts +0 -1
  66. package/components/icure-form/fields/utils/index.js +0 -2
  67. package/components/icure-form/fields/utils/index.js.map +1 -1
  68. package/components/icure-form/index.d.ts +1 -1
  69. package/components/icure-form/index.js +5 -26
  70. package/components/icure-form/index.js.map +1 -1
  71. package/components/icure-form/renderer/form/form-selection-button.js +0 -4
  72. package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
  73. package/components/icure-form/renderer/form/form.d.ts +2 -7
  74. package/components/icure-form/renderer/form/form.js +454 -618
  75. package/components/icure-form/renderer/form/form.js.map +1 -1
  76. package/components/icure-form/renderer/index.d.ts +1 -1
  77. package/components/icure-form/renderer/index.js.map +1 -1
  78. package/components/icure-label/index.js +0 -4
  79. package/components/icure-label/index.js.map +1 -1
  80. package/components/icure-text-field/index.js +11 -10
  81. package/components/icure-text-field/index.js.map +1 -1
  82. package/components/model/index.d.ts +1 -15
  83. package/components/model/index.js +2 -13
  84. package/components/model/index.js.map +1 -1
  85. package/generic/model.d.ts +6 -6
  86. package/generic/model.js.map +1 -1
  87. package/icure/form-values-container.d.ts +42 -63
  88. package/icure/form-values-container.js +151 -192
  89. package/icure/form-values-container.js.map +1 -1
  90. package/icure/icure-utils.js +12 -30
  91. package/icure/icure-utils.js.map +1 -1
  92. package/icure/model.d.ts +2 -9
  93. package/icure/model.js +1 -7
  94. package/icure/model.js.map +1 -1
  95. package/package.json +1 -2
  96. package/utils/code-utils.d.ts +2 -3
  97. package/utils/code-utils.js +6 -5
  98. package/utils/code-utils.js.map +1 -1
  99. package/.yarn/cache/@icure-cardinal-sdk-npm-1.3.0-ts-2-d77151b3e6-86e1497829.zip +0 -0
  100. package/.yarn/cache/@js-joda-core-npm-3.2.0-d2526290e9-64625c2f22.zip +0 -0
  101. package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.3.0-6bfa115c08-c2003e8bb6.zip +0 -0
  102. package/.yarn/cache/@lit-reactive-element-npm-2.0.4-4836436301-368d788d9e.zip +0 -0
  103. package/.yarn/cache/format-util-npm-1.0.5-a524ca953a-0c8622e54a.zip +0 -0
  104. package/.yarn/cache/prosemirror-history-npm-1.4.1-ad68c86bb7-90f9bf59bc.zip +0 -0
  105. package/.yarn/cache/prosemirror-keymap-npm-1.2.2-efb8276b00-85fe4fc303.zip +0 -0
  106. package/.yarn/cache/prosemirror-model-npm-1.25.0-0870b04e23-e311e1e36c.zip +0 -0
  107. package/.yarn/cache/prosemirror-state-npm-1.4.3-d6540e44ad-28857d935c.zip +0 -0
  108. package/.yarn/cache/prosemirror-transform-npm-1.10.3-fb23bef7a8-8cbe29501e.zip +0 -0
  109. package/.yarn/cache/prosemirror-view-npm-1.38.1-8cfb4ec84f-12f7f4d27f.zip +0 -0
  110. package/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-9f57c93277.zip +0 -0
  111. package/.yarn/cache/ws-npm-8.18.0-56f68bc4d6-91d4d35bc9.zip +0 -0
  112. package/utils/form-value-container.d.ts +0 -3
  113. package/utils/form-value-container.js +0 -30
  114. package/utils/form-value-container.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { defaultCodePromoter, defaultCodesComparator, makePromoter, naturalCodesComparator } from '../components/common/utils';
2
- import { CodeStubWithId } from '../icure';
2
+ import { CodeStub } from '@icure/cardinal-sdk';
3
3
  /**
4
4
  * Maps the options defined in a field into a list of codes
5
5
  *
@@ -25,7 +25,7 @@ export const sortSuggestions = (codes, language, sortOptions) => ((sortOptions =
25
25
  ? codes.sort(defaultCodesComparator(language, (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) === 'asc', (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter))
26
26
  : codes.sort(naturalCodesComparator((sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter))).map((c) => { var _a; return ({ id: c.id, label: c.label, text: (_a = c.label[language]) !== null && _a !== void 0 ? _a : '', terms: [] }); });
27
27
  export const filterAndSortOptionsFromFieldDefinition = (language, fg, translationProvider, terms) => Promise.resolve(sortCodes(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));
28
- export const normalizeCodes = (codes) => (codes !== null && codes !== void 0 ? codes : []).map((c) => normalizeCode(c));
28
+ export const normalizeCodes = (codes) => codes.map((c) => normalizeCode(c));
29
29
  /**
30
30
  * Normalizes the code's four main fields (type, code, version and id). The first three are considered to be
31
31
  * authoritative, while the id is a pure function of them. The authoritative fields are filled in from the id if
@@ -34,8 +34,8 @@ export const normalizeCodes = (codes) => (codes !== null && codes !== void 0 ? c
34
34
  * @param code The code to normalize.
35
35
  * @returns A shallow copy of the input with its type, code, version and id normalized.
36
36
  */
37
- export function normalizeCode(c) {
38
- const code = Object.assign({}, c);
37
+ export function normalizeCode(code) {
38
+ code = new CodeStub(code);
39
39
  if (code.type && code.code && code.version) {
40
40
  // do nothing, we all have the authoritative fields we need
41
41
  }
@@ -62,6 +62,7 @@ export function normalizeCode(c) {
62
62
  throw new Error('could not reconstruct the code');
63
63
  }
64
64
  // Recompute the id to ensure that it matches the reconstructed code.
65
- return new CodeStubWithId(Object.assign(Object.assign({}, code), { id: `${code.type}|${code.code}|${code.version}` }));
65
+ code.id = `${code.type}|${code.code}|${code.version}`;
66
+ return code;
66
67
  }
67
68
  //# sourceMappingURL=code-utils.js.map
@@ -1 +1 @@
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'\nimport { CodeStubWithId } from '../icure'\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 = (language: string, fg: Field, translationProvider: ((language: string, text: string) => string) | undefined, terms?: string[]) =>\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[] | undefined): CodeStubWithId[] => (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(c: CodeStub): CodeStubWithId {\n\tconst code = { ...c }\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\treturn new CodeStubWithId({ ...code, id: `${code.type}|${code.code}|${code.version}` })\n}\n"]}
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"]}
@@ -1,3 +0,0 @@
1
- import { FieldMetadata, FieldValue, Form } from '../components/model';
2
- import { FormValuesContainer } from '../generic';
3
- export declare const computeFormDefaultValues: (formValuesContainer: FormValuesContainer<FieldValue, FieldMetadata>, form?: Form, language?: string, owner?: string) => [FieldValue, FieldMetadata][];
@@ -1,30 +0,0 @@
1
- import { makeMetadata } from './fields-values-provider';
2
- export const computeFormDefaultValues = (formValuesContainer, form, language, owner) => {
3
- var _a;
4
- const extractDefaultValues = (fgs, language) => fgs.reduce((acc, fg) => {
5
- var _a, _b, _c;
6
- if (fg.clazz === 'group' && ((_a = fg.fields) === null || _a === void 0 ? void 0 : _a.length)) {
7
- return [...acc, ...extractDefaultValues(fg.fields, language)];
8
- }
9
- else if (fg.clazz === 'field') {
10
- if ((_b = fg.computedProperties) === null || _b === void 0 ? void 0 : _b.defaultValue) {
11
- const value = formValuesContainer === null || formValuesContainer === void 0 ? void 0 : formValuesContainer.compute((_c = fg.computedProperties) === null || _c === void 0 ? void 0 : _c.defaultValue);
12
- if (value !== undefined) {
13
- const lng = language !== null && language !== void 0 ? language : 'en';
14
- if (!value.content[lng] && value.content['*']) {
15
- value.content[lng] = value.content['*'];
16
- }
17
- if (value.content[lng]) {
18
- return [...acc, [value, makeMetadata(fg, owner)]];
19
- }
20
- }
21
- }
22
- }
23
- return acc;
24
- }, []);
25
- return ((_a = form === null || form === void 0 ? void 0 : form.sections.reduce((acc, section) => {
26
- var _a;
27
- return [...acc, ...extractDefaultValues((_a = section.fields) !== null && _a !== void 0 ? _a : [], language)];
28
- }, [])) !== null && _a !== void 0 ? _a : []);
29
- };
30
- //# sourceMappingURL=form-value-container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-value-container.js","sourceRoot":"","sources":["../../tmp/utils/form-value-container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,mBAAmE,EACnE,IAAW,EACX,QAAiB,EACjB,KAAc,EACkB,EAAE;;IAClC,MAAM,oBAAoB,GAAG,CAAC,GAAmC,EAAE,QAAiB,EAAiC,EAAE,CACtH,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;;QACtB,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,KAAI,MAAA,EAAE,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC9D,CAAC;aAAM,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,MAAA,EAAE,CAAC,kBAAkB,0CAAE,YAAY,EAAE,CAAC;gBACzC,MAAM,KAAK,GAA2B,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC,MAAA,EAAE,CAAC,kBAAkB,0CAAE,YAAY,CAAC,CAAA;gBACvG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAA;oBAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/C,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACxC,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;oBAClD,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC,EAAE,EAAmC,CAAC,CAAA;IAExC,OAAO,CACN,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;;QACtC,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,oBAAoB,CAAC,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzE,CAAC,EAAE,EAAmC,CAAC,mCAAI,EAAE,CAC7C,CAAA;AACF,CAAC,CAAA","sourcesContent":["import { Field, FieldMetadata, FieldValue, Form, Group, Subform } from '../components/model'\nimport { makeMetadata } from './fields-values-provider'\nimport { FormValuesContainer } from '../generic'\n\nexport const computeFormDefaultValues = (\n\tformValuesContainer: FormValuesContainer<FieldValue, FieldMetadata>,\n\tform?: Form,\n\tlanguage?: string,\n\towner?: string,\n): [FieldValue, FieldMetadata][] => {\n\tconst extractDefaultValues = (fgs: Array<Field | Group | Subform>, language?: string): [FieldValue, FieldMetadata][] =>\n\t\tfgs.reduce((acc, fg) => {\n\t\t\tif (fg.clazz === 'group' && fg.fields?.length) {\n\t\t\t\treturn [...acc, ...extractDefaultValues(fg.fields, language)]\n\t\t\t} else if (fg.clazz === 'field') {\n\t\t\t\tif (fg.computedProperties?.defaultValue) {\n\t\t\t\t\tconst value: FieldValue | undefined = formValuesContainer?.compute(fg.computedProperties?.defaultValue)\n\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\tconst lng = language ?? 'en'\n\t\t\t\t\t\tif (!value.content[lng] && value.content['*']) {\n\t\t\t\t\t\t\tvalue.content[lng] = value.content['*']\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.content[lng]) {\n\t\t\t\t\t\t\treturn [...acc, [value, makeMetadata(fg, owner)]]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc\n\t\t}, [] as [FieldValue, FieldMetadata][])\n\n\treturn (\n\t\tform?.sections.reduce((acc, section) => {\n\t\t\treturn [...acc, ...extractDefaultValues(section.fields ?? [], language)]\n\t\t}, [] as [FieldValue, FieldMetadata][]) ?? []\n\t)\n}\n"]}