@icure/form 3.1.1 → 3.1.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.
Binary file
@@ -1196,7 +1196,7 @@ export class IcureButtonGroup extends FieldWithOptionsMixin(Field) {
1196
1196
  ${generateLabels(Object.entries((_g = this.displayedLabels) !== null && _g !== void 0 ? _g : {})
1197
1197
  .filter(
1198
1198
  //If we have less than 2 options, we don't need to display the label except if it is different from the first option
1199
- ([, l]) => { var _a, _b, _c; return ((_b = (_a = this.displayedOptions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 1 || (((_c = this.displayedOptions) === null || _c === void 0 ? void 0 : _c.length) && l !== this.displayedOptions[0].label[this.language()]); })
1199
+ ([, l]) => { var _a, _b, _c, _d, _e; return ((_b = (_a = this.displayedOptions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 1 || (((_c = this.displayedOptions) === null || _c === void 0 ? void 0 : _c.length) && l !== ((_e = (_d = this.displayedOptions[0].label) === null || _d === void 0 ? void 0 : _d[this.language()]) !== null && _e !== void 0 ? _e : this.displayedOptions[0].id)); })
1200
1200
  .reduce((acc, [k, v]) => (Object.assign(Object.assign({}, acc), { [k]: v })), {}), this.language(), this.translate ? this.translationProvider : undefined)}
1201
1201
  ${this.displayMetadata && metadata
1202
1202
  ? html ` <icure-metadata-buttons-bar
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/icure-button-group/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n.tab-container .tab-bar li {\n display: inline-block;\n padding: 8px 16px;\n cursor: pointer;\n color: #000000;\n font-size: 14px;\n font-weight: 500;\n}\n.tab-container .tab-bar li.active {\n background-color: #656565;\n color: white;\n}\n.tab-container .tab-content .tab {\n display: none;\n}\n.tab-container .tab-content .tab.active {\n display: block;\n}\n\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n width: 100%;\n word-wrap: break-word;\n white-space: pre-wrap;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n padding: 6px 8px 2px 8px;\n line-height: 1.2;\n color: #274768;\n font-size: 14px;\n font-weight: 400;\n outline: none;\n}\n.ProseMirror p:last-child,\n.ProseMirror h1:last-child,\n.ProseMirror h2:last-child,\n.ProseMirror h3:last-child,\n.ProseMirror h4:last-child,\n.ProseMirror h5:last-child,\n.ProseMirror h6:last-child {\n margin-bottom: 2px;\n}\n.ProseMirror p {\n margin-bottom: 1em;\n}\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n.ProseMirror li {\n position: relative;\n}\n.ProseMirror ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\n.ProseMirror blockquote {\n padding-left: 1em;\n border-left: 3px solid #eee;\n margin-left: 0;\n margin-right: 0;\n}\n\n.ProseMirror-hideselection {\n caret-color: transparent;\n}\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-selectednode {\n outline: 2px solid #8cf;\n}\n\n/* Make sure li selections wrap around markers */\nli.ProseMirror-selectednode {\n outline: none;\n}\nli.ProseMirror-selectednode :after {\n content: \"\";\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n}\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n/* Add space around the hr to make clicking it easier */\n.ProseMirror-example-setup-style hr {\n padding: 2px 10px;\n border: none;\n margin: 1em 0;\n}\n.ProseMirror-example-setup-style hr:after {\n content: \"\";\n display: block;\n height: 1px;\n background: silver;\n line-height: 2px;\n}\n\n.ProseMirror-example-setup-style img {\n cursor: default;\n}\n\n.ProseMirror-prompt {\n background: white;\n padding: 5px 10px 5px 15px;\n border: 1px solid silver;\n position: fixed;\n border-radius: 3px;\n z-index: 11;\n box-shadow: -0.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\n.ProseMirror-prompt input[type=text] {\n padding: 0 4px;\n}\n\n.ProseMirror-prompt-close {\n position: absolute;\n left: 2px;\n top: 1px;\n color: #666;\n border: none;\n background: transparent;\n padding: 0;\n}\n.ProseMirror-prompt-close:after {\n content: \"✕\";\n font-size: 12px;\n}\n\n.ProseMirror-invalid {\n background: #ffc;\n border: 1px solid #cc7;\n border-radius: 4px;\n padding: 5px 10px;\n position: absolute;\n min-width: 10em;\n}\n\n.ProseMirror-prompt-buttons {\n margin-top: 5px;\n display: none;\n}\n\n#editor,\n.editor {\n color: rgb(101, 101, 101);\n background-clip: padding-box;\n border-radius: 4px;\n border: 2px solid rgba(0, 0, 0, 0.2);\n padding: 5px 0;\n display: flex;\n align-items: flex-end;\n}\n\n.icure-input {\n background: #edf2f7;\n border-radius: 8px;\n border: none;\n min-height: 28px;\n height: auto;\n display: flex;\n flex-flow: row nowrap;\n align-items: flex-start;\n justify-content: space-between;\n}\n\n#editor {\n background: transparent;\n border: none;\n padding: 0;\n flex-grow: 1;\n display: flex;\n align-items: stretch;\n}\n#editor.tokens-list .ProseMirror, #editor.styled-tokens-list .ProseMirror {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n#editor.tokens-list .ProseMirror li, #editor.styled-tokens-list .ProseMirror li {\n display: flex;\n flex-direction: row;\n border-radius: 8px;\n padding: 2px 4px;\n margin-right: 2px;\n background-color: #dadada;\n border-color: rgba(42, 61, 108, 0.44);\n min-height: 20px;\n}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n display: inline-block;\n min-height: 18px;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.items-list .ProseMirror {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: flex-start;\n gap: 6px;\n}\n#editor.items-list .ProseMirror li {\n list-style-type: none;\n width: 100%;\n padding-bottom: 4px;\n border-bottom: 1px dotted rgba(128, 128, 128, 0.5098039216);\n}\n#editor.items-list .ProseMirror li:last-child {\n border-bottom: none;\n}\n\n#content {\n position: relative;\n padding: 0;\n}\n\n* {\n font-family: \"Roboto\", Helvetica, sans-serif;\n}\n\np {\n margin-top: 0;\n}\n\nh3 {\n color: #274768;\n margin-top: 0;\n}\n\n.icure-input-metadata-container {\n display: flex;\n}\n.icure-input-metadata-container .icure-metadata-container {\n display: flex;\n flex-grow: 1;\n padding: 0 4px;\n border: 1px solid #DDE3E7;\n border-left: none;\n border-radius: 0 6px 6px 0;\n outline: 0;\n box-sizing: border-box;\n}\n.icure-input-metadata-container .icure-metadata-container__validationError {\n border-color: red;\n}\n\n.extra {\n min-width: 20px;\n width: auto;\n height: 20px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n.extra:hover .info {\n display: none;\n}\n.extra:hover .buttons-container .menu-container .btn {\n animation: slideIn 0.24s ease-in forwards;\n pointer-events: none;\n display: unset !important;\n}\n.extra.forced .info, .extra.forced .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n display: none;\n}\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n.extra--metadataButtonsBar {\n height: 100%;\n display: flex;\n align-items: center;\n padding: 0 4px;\n}\n.extra .info {\n color: #809ab4;\n font-size: 15px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: center;\n}\n.extra .info span {\n font-weight: 700;\n}\n.extra .info.hidden {\n display: none;\n}\n.extra .buttons-container {\n display: flex;\n height: 20px;\n width: auto;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n z-index: 1000;\n}\n.extra .buttons-container .btn {\n border: none;\n background: transparent;\n position: relative;\n top: 0;\n display: none;\n opacity: 0;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.extra .buttons-container .btn svg {\n width: 15px;\n height: 15px;\n}\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n.extra .buttons-container .btn:focus, .extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n.extra .buttons-container .menu-container .btn:hover::before {\n content: \"\";\n display: block;\n border-color: #274768 transparent transparent transparent;\n border-style: solid;\n border-width: 4px;\n position: absolute;\n top: -6px;\n}\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -21px;\n height: 16px;\n left: 50%;\n transform: translateX(-50%);\n border-radius: 8px;\n background: #274768;\n color: white;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n text-transform: capitalize;\n white-space: nowrap;\n padding: 0 12px;\n font-size: 12px;\n line-height: 0;\n}\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n@keyframes slideIn {\n 0% {\n top: 0;\n opacity: 0;\n pointer-events: none;\n }\n 100% {\n top: 0;\n opacity: 1;\n pointer-events: all;\n }\n}\n.menu-container {\n display: flex;\n align-items: center;\n height: fit-content;\n}\n.menu-container .item {\n height: 30px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #274768;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.menu-container .item.existing {\n background-color: #BFE8EA;\n}\n.menu-container .item.selected {\n color: white;\n background-color: #084B83;\n}\n.menu-container .item:hover {\n background: #DCE7F2;\n color: #274768;\n font-weight: 500;\n border-radius: 4px;\n}\n\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n position: absolute;\n top: 32px;\n right: -12px;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n padding: 8px;\n width: 220px;\n min-height: 120px;\n max-height: 320px;\n overflow-y: scroll;\n}\n.menu .input-container {\n background: #edf2f7;\n border-radius: 4px;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n height: 32px;\n margin-bottom: 4px;\n padding: 0 4px;\n}\n.menu .input-container:hover {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2);\n}\n.menu .input-container:focus-within {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2), 0 0 0 1px rgb(40, 151, 255);\n}\n.menu .input-container input {\n background: transparent;\n border: none;\n flex-grow: 1;\n height: 100%;\n}\n.menu .input-container input:focus {\n background: transparent;\n border: none;\n outline: none;\n}\n\n.menu-trigger:focus .menu {\n display: flex;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\nspan.date {\n margin-right: 1px;\n}\nspan.time {\n margin-left: 1px;\n}\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\nspan[data-content]:hover::after {\n position: absolute;\n content: attr(data-content);\n background: #274768;\n color: #ffffff;\n font-size: 9px;\n line-height: 12px;\n top: -12px;\n left: 0px;\n padding: 0px 2px;\n}\nspan[data-content]::before {\n position: absolute;\n content: \"\";\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n opacity: 0.3;\n}\n\n.masked {\n display: none;\n}\n\n.companion {\n position: absolute;\n width: 15px;\n background-color: hsl(194, 100%, 50%);\n color: white;\n z-index: 20;\n padding: 0;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0 2px 2px 0;\n}\n.companion:hover {\n font-weight: 700;\n background: hsl(202, 100%, 50%);\n}\n\n*::selection {\n background-color: hsla(194, 100%, 50%, 0.2);\n}\n\n.suggestion-palette {\n position: absolute;\n z-index: 20;\n max-width: 380px;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 4px;\n border: none;\n border-radius: 8px;\n background: white;\n box-shadow: 0 1.1px 1.1px rgba(0, 0, 0, 0.022), 0 2.7px 2.7px rgba(0, 0, 0, 0.032), 0 5px 5px rgba(0, 0, 0, 0.04), 0 8.9px 8.9px rgba(0, 0, 0, 0.048), 0 16.7px 16.7px rgba(0, 0, 0, 0.058), 0 40px 40px rgba(0, 0, 0, 0.08);\n}\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn, .suggestion-palette ul.focused li:first-child svg.tab-icn {\n height: 0;\n width: 0;\n transform: scale(0);\n opacity: 0;\n}\n.suggestion-palette ul li {\n padding: 0 8px;\n font-size: 11px;\n height: 20px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px;\n color: rgb(39, 71, 104);\n}\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\n}\n.suggestion-palette ul li svg {\n height: 12px;\n width: 12px;\n border-radius: 4px;\n transform-origin: center center;\n}\n.suggestion-palette ul li svg path {\n fill: rgb(128, 154, 180);\n}\n\n@keyframes growIn {\n 0% {\n transform: scale(0.5);\n }\n 90% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n}\nspan.code-count-1::after,\nspan.code-count-1::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n}\n\nspan.code-count-2::after,\nspan.code-count-2::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n /*background: repeating-linear-gradient(*/\n /*\t45deg,*/\n /*\tvar(--bg-code-color-1),*/\n /*\tvar(--bg-code-color-1) 10px,*/\n /*\tvar(--bg-code-color-2) 10px,*/\n /*\tvar(--bg-code-color-2) 20px*/\n /*);*/\n /* PAS STRIPES */\n background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);\n}\n\nspan.code-count-3::after,\nspan.code-count-3::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n background: repeating-linear-gradient(45deg, var(--bg-code-color-1), var(--bg-code-color-1) 10px, var(--bg-code-color-2) 10px, var(--bg-code-color-2) 20px);\n /* PAS STRIPES */\n /* background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);*/\n}\n\n.selected-option {\n padding: 2px;\n margin-right: 5px;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: auto;\n min-width: 100%;\n overflow-y: auto;\n padding: 2px;\n border-radius: 6px;\n}\n.options--subformView {\n top: 46px;\n min-width: unset;\n left: unset;\n right: 0;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: 260px;\n overflow-y: auto;\n max-height: 280px;\n}\n\napp-date-picker {\n --app-primary: #084B83;\n --app-hover: #5b7da2;\n --app-selected-hover: #5b7da2;\n}\n\n.option {\n height: 28px;\n min-height: 28px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #545454;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n padding: 4px 8px;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n cursor: pointer;\n}\n.option:hover {\n color: #656565;\n background-color: #ededed;\n}\n\n.select-arrow {\n border: none;\n background: 0px 0px;\n position: relative;\n top: 0px;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0px;\n}\n\n.hidden {\n display: none;\n}\n\n.container {\n position: relative;\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n display: grid;\n position: relative;\n padding: 8px;\n border-radius: 6px;\n background-color: #e7f0fd;\n gap: 12px;\n}\n.subform__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: auto;\n}\n.subform__heading__title {\n padding: 0;\n margin: 0;\n}\n.subform__addBtn, .subform__removeBtn {\n cursor: pointer;\n background-color: #084B83;\n color: white;\n height: 32px;\n padding: 0 16px;\n border-radius: 6px;\n border: none;\n outline: none;\n}\n.subform__addBtn:hover, .subform__removeBtn:hover {\n background-color: #3D87C5;\n}\n.subform__removeBtn {\n justify-self: end;\n border: 1px solid #DDE3E7;\n background-color: #FCFCFD;\n color: #084B83;\n}\n.subform__removeBtn:hover {\n background-color: #F2F2F2;\n}\n.subform__child {\n display: grid;\n grid-template-rows: auto;\n gap: 8px;\n padding: 8px;\n border-radius: 6px;\n background: white;\n border: 1px solid #3D87C5;\n}\n.subform__child__title {\n padding: 12px !important;\n border-radius: 6px;\n margin: 0;\n background-color: #BFE8EA;\n}\n.subform__child .subform {\n background: unset;\n margin: 0;\n padding: 0;\n}\n\n.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 16px 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n.icure-form hr {\n display: block;\n margin-top: 20px;\n border-top: 1px solid rgba(8, 75, 131, 0.13);\n margin-bottom: 20px;\n}\n.icure-form h2 {\n font-size: add-two(12px, 0, 1.2);\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: add-two(12px, 0, 1.1);\n font-weight: 500;\n color: #084B83;\n padding: 6px;\n}\n.icure-form .group.bordered {\n background: #f6f6f6;\n border-radius: 12px;\n}\n\n.icure-form-field {\n display: grid;\n align-items: flex-start;\n}\n\n.error {\n color: red;\n font-size: 12px;\n margin-top: 4px;\n}\n\n.icure-text-field .icure-label-extra, .icure-button-group .icure-label-extra {\n display: flex;\n width: 100%;\n gap: 12px;\n}\n.icure-text-field .icure-label, .icure-button-group .icure-label {\n z-index: 1;\n pointer-events: none;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n left: add-two(8px, 1px);\n color: #084B83;\n align-items: center;\n text-wrap: auto;\n min-height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-text-field .icure-label.float, .icure-button-group .icure-label.float {\n display: flex;\n overflow: hidden;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n}\n.icure-text-field > .icure-label {\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n}\n.icure-text-field > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-text-field > .icure-label.side {\n position: relative;\n}\n.icure-text-field > .icure-label.side.left {\n order: -1;\n margin-right: 1em;\n}\n.icure-text-field > .icure-label.side.right {\n order: 1;\n margin-left: 1em;\n}\n.icure-text-field .icure-input,\n.icure-text-field .input-container {\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-color: #DDE3E7;\n border-radius: 2px;\n outline: 0;\n font: inherit;\n font-size: 14px;\n line-height: 1.4em;\n display: flex;\n align-items: center;\n vertical-align: middle;\n position: relative;\n -webkit-appearance: none;\n background-color: #ffffff;\n color: #000000;\n}\n.icure-text-field .icure-input .reset-button,\n.icure-text-field .input-container .reset-button {\n position: absolute;\n right: 0;\n border: none;\n background: transparent;\n top: 0;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.icure-text-field .icure-input .reset-button svg,\n.icure-text-field .input-container .reset-button svg {\n width: 15px;\n height: 15px;\n}\n.icure-text-field .icure-input__validationError,\n.icure-text-field .input-container__validationError {\n border-color: red;\n}\n.icure-text-field .icure-input__withMetadata,\n.icure-text-field .input-container__withMetadata {\n border-radius: 6px 0 0 6px;\n}\n.icure-text-field .icure-input:focus, .icure-text-field .icure-input:focus-within,\n.icure-text-field .input-container:focus,\n.icure-text-field .input-container:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input:hover,\n.icure-text-field .input-container:hover {\n border-color: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n}\n.icure-text-field .icure-input:hover:focus, .icure-text-field .icure-input:hover:focus-within,\n.icure-text-field .input-container:hover:focus,\n.icure-text-field .input-container:hover:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input .ProseMirror,\n.icure-text-field .input-container .ProseMirror {\n padding: 0;\n font-size: 14px;\n line-height: 1.4em;\n color: #000000;\n}\n.icure-text-field .icure-input .ProseMirror .date,\n.icure-text-field .input-container .ProseMirror .date {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror .time,\n.icure-text-field .input-container .ProseMirror .time {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror:focus .focused,\n.icure-text-field .input-container .ProseMirror:focus .focused {\n background-color: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n border-color: rgba(0, 0, 0, 0.1);\n}\n.icure-text-field .icure-input > svg,\n.icure-text-field .input-container > svg {\n opacity: 0.5;\n}\n.icure-text-field .icure-input > svg path,\n.icure-text-field .input-container > svg path {\n fill: #656565;\n}\n.icure-text-field .icure-input .extra,\n.icure-text-field .input-container .extra {\n height: 20px;\n}\n.icure-text-field .icure-input .extra > .info,\n.icure-text-field .input-container .extra > .info {\n color: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path,\n.icure-text-field .input-container .extra .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path:hover,\n.icure-text-field .input-container .extra .btn svg path:hover {\n fill: #656565;\n opacity: 1;\n}\n\ninput[type=radio] {\n margin-top: -1px;\n vertical-align: middle;\n}\n\n.icure-checkbox:checked {\n accent-color: #06a070;\n}\n\n.icure-button {\n display: flex;\n height: 32px;\n padding: 0 16px;\n background-color: #084B83;\n color: white;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: normal;\n}\n.icure-button:hover {\n background-color: #3D87C5;\n}\n\n.icure-button-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.icure-button-group > div {\n display: grid;\n}\n.icure-button-group > div > div {\n display: flex;\n align-items: center;\n}\n.icure-button-group > div > div > .icure-button-group-label {\n z-index: 1;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n top: add-three(1.4em, 1px, 0);\n left: add-two(8px, 1px);\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n color: #084B83;\n display: flex;\n align-items: center;\n height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-button-group > div > div > .icure-button-group-label > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n padding-right: 8px;\n}\n.icure-button-group > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-button-group > .icure-label {\n transform: translate(0, 0) scale(1);\n}\n.icure-button-group > .icure-label.above, .icure-button-group.has-content > .icure-label, .icure-button-group:focus > .icure-label, .icure-button-group:focus-within > .icure-label {\n font-weight: 500;\n height: 1.4em;\n}` \nimport { Field } from '../common'\nimport { generateLabels } from '../common/utils'\nimport { extractSingleValue } from '../icure-form/fields/utils'\nimport { FieldWithOptionsMixin } from '../common/field-with-options'\nimport { FieldMetadata, FieldValue } from '../model'\nimport { Version } from '../../generic'\nimport { icureFormLogging } from '../../index'\n\nexport class IcureButtonGroup extends FieldWithOptionsMixin(Field) {\n\t@property() type: 'radio' | 'checkbox' = 'radio'\n\n\t//override\n\tstatic get styles(): CSSResultGroup[] {\n\t\treturn [baseCss]\n\t}\n\n\tgetValueFromProvider(): [string, string[], Version<FieldValue>[]] | [undefined, undefined, undefined] {\n\t\tconst [id, versions] = extractSingleValue(this.valueProvider?.())\n\t\tif (versions) {\n\t\t\tconst value = versions[0]?.value\n\t\t\tconst valueForLanguage = value?.content?.[this.language()] ?? ''\n\t\t\tconst fromValue = valueForLanguage && valueForLanguage.type === 'compound' && valueForLanguage.value ? Object.keys(valueForLanguage.value) : []\n\t\t\treturn [id, fromValue.concat(value?.codes?.map((c) => c.id)?.filter((id) => !fromValue.includes(id)) ?? []), versions]\n\t\t}\n\t\treturn [undefined, undefined, undefined]\n\t}\n\n\tpublic checkboxChange() {\n\t\tif (this.readonly) return\n\t\tif (this.handleValueChanged) {\n\t\t\tconst [valueId] = this.getValueFromProvider() ?? ''\n\t\t\tconst inputs = Array.from(this.shadowRoot?.querySelectorAll('input') || []).filter((input) => input.checked)\n\t\t\tconst selectedOptions = this.displayedOptions?.filter((option) => inputs.some((i) => i.id === option.id))\n\t\t\tthis.handleValueChanged?.(\n\t\t\t\tthis.label,\n\t\t\t\tthis.language(),\n\t\t\t\t{\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[this.language()]: {\n\t\t\t\t\t\t\ttype: 'compound',\n\t\t\t\t\t\t\tvalue: selectedOptions?.reduce(\n\t\t\t\t\t\t\t\t(acc, c) => ({\n\t\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t\t[c.id]: { type: 'boolean', value: true },\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcodes: selectedOptions,\n\t\t\t\t},\n\t\t\t\tvalueId,\n\t\t\t)\n\t\t}\n\t}\n\n\toverride renderSync({ validationErrors }: { validationErrors: [FieldMetadata, string][] }): TemplateResult {\n\t\tif (!this.visible) {\n\t\t\treturn html``\n\t\t}\n\t\tif (icureFormLogging) {\n\t\t\tconsole.log(`Rendering button group ${this.label}`)\n\t\t}\n\n\t\tconst [id, inputValues, versions] = this.getValueFromProvider()\n\n\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\n\t\tconst rev = version?.revision\n\t\tconst metadata = id && rev !== undefined ? this.metadataProvider?.(id, versions?.map((v) => v.revision) ?? [])?.[id]?.find((m) => m.revision === rev)?.value : undefined\n\n\t\treturn html`\n\t\t\t<div class=\"icure-text-field icure-button-group\">\n\t\t\t\t${this.displayedLabels && this.displayedOptions?.length\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<div class=\"icure-label-extra\">\n\t\t\t\t\t\t\t\t${generateLabels(\n\t\t\t\t\t\t\t\t\tObject.entries(this.displayedLabels ?? {})\n\t\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t\t//If we have less than 2 options, we don't need to display the label except if it is different from the first option\n\t\t\t\t\t\t\t\t\t\t\t([, l]) => (this.displayedOptions?.length ?? 0) > 1 || (this.displayedOptions?.length && l !== this.displayedOptions[0].label[this.language()]),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}),\n\t\t\t\t\t\t\t\t\tthis.language(),\n\t\t\t\t\t\t\t\t\tthis.translate ? this.translationProvider : undefined,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${this.displayMetadata && metadata\n\t\t\t\t\t\t\t\t\t? html` <icure-metadata-buttons-bar\n\t\t\t\t\t\t\t\t\t\t\t.metadata=\"${metadata}\"\n\t\t\t\t\t\t\t\t\t\t\t.revision=\"${rev}\"\n\t\t\t\t\t\t\t\t\t\t\t.versions=\"${versions ?? []}\"\n\t\t\t\t\t\t\t\t\t\t\t.valueId=\"${extractSingleValue(this.valueProvider?.())?.[0]}\"\n\t\t\t\t\t\t\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.selectedLanguage=\"${this.selectedLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleMetadataChanged=\"${this.handleMetadataChanged}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleLanguageSelected=\"${(iso: string) => (this.selectedLanguage = iso)}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleRevisionSelected=\"${(rev: string) => (this.selectedRevision = rev)}\"\n\t\t\t\t\t\t\t\t\t\t\t.ownersProvider=\"${this.ownersProvider}\"\n\t\t\t\t\t\t\t\t\t />`\n\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t `\n\t\t\t\t\t: nothing}\n\t\t\t\t<div style=\"${this.generateStyle()}\">\n\t\t\t\t\t${(this.displayedOptions?.length ? this.displayedOptions : [{ id: this.label, label: {} }]).map((x) => {\n\t\t\t\t\t\tconst text = (x.label ?? {})[this.language()] ?? ''\n\t\t\t\t\t\tif (this.readonly) {\n\t\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t\t<input class=\"icure-checkbox\" disabled type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" />\n\t\t\t\t\t\t\t\t<label class=\"icure-button-group-label\" for=\"${x.id}\"><span>${text}</span></label>\n\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t<input class=\"icure-checkbox\" type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" @change=\"${this.checkboxChange}\" /><label\n\t\t\t\t\t\t\t\tclass=\"icure-button-group-label\"\n\t\t\t\t\t\t\t\tfor=\"${x.id}\"\n\t\t\t\t\t\t\t\t><span>${text}</span></label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"error\">${validationErrors.map(([, error]) => html` <div>${this.translationProvider?.(this.language(), error)}</div>`)}</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\tprivate generateStyle() {\n\t\treturn this.styleOptions?.span\n\t\t\t? `grid-template-columns: repeat(${this.styleOptions?.span}, 1fr);`\n\t\t\t: this.styleOptions?.rows\n\t\t\t? `grid-template-columns: repeat(${Number((this.displayedOptions?.length ?? 0) / (this.styleOptions?.rows as number))}, 1fr);`\n\t\t\t: ''\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/icure-button-group/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n.tab-container .tab-bar li {\n display: inline-block;\n padding: 8px 16px;\n cursor: pointer;\n color: #000000;\n font-size: 14px;\n font-weight: 500;\n}\n.tab-container .tab-bar li.active {\n background-color: #656565;\n color: white;\n}\n.tab-container .tab-content .tab {\n display: none;\n}\n.tab-container .tab-content .tab.active {\n display: block;\n}\n\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n width: 100%;\n word-wrap: break-word;\n white-space: pre-wrap;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n padding: 6px 8px 2px 8px;\n line-height: 1.2;\n color: #274768;\n font-size: 14px;\n font-weight: 400;\n outline: none;\n}\n.ProseMirror p:last-child,\n.ProseMirror h1:last-child,\n.ProseMirror h2:last-child,\n.ProseMirror h3:last-child,\n.ProseMirror h4:last-child,\n.ProseMirror h5:last-child,\n.ProseMirror h6:last-child {\n margin-bottom: 2px;\n}\n.ProseMirror p {\n margin-bottom: 1em;\n}\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n.ProseMirror li {\n position: relative;\n}\n.ProseMirror ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\n.ProseMirror blockquote {\n padding-left: 1em;\n border-left: 3px solid #eee;\n margin-left: 0;\n margin-right: 0;\n}\n\n.ProseMirror-hideselection {\n caret-color: transparent;\n}\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-selectednode {\n outline: 2px solid #8cf;\n}\n\n/* Make sure li selections wrap around markers */\nli.ProseMirror-selectednode {\n outline: none;\n}\nli.ProseMirror-selectednode :after {\n content: \"\";\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n}\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n/* Add space around the hr to make clicking it easier */\n.ProseMirror-example-setup-style hr {\n padding: 2px 10px;\n border: none;\n margin: 1em 0;\n}\n.ProseMirror-example-setup-style hr:after {\n content: \"\";\n display: block;\n height: 1px;\n background: silver;\n line-height: 2px;\n}\n\n.ProseMirror-example-setup-style img {\n cursor: default;\n}\n\n.ProseMirror-prompt {\n background: white;\n padding: 5px 10px 5px 15px;\n border: 1px solid silver;\n position: fixed;\n border-radius: 3px;\n z-index: 11;\n box-shadow: -0.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\n.ProseMirror-prompt input[type=text] {\n padding: 0 4px;\n}\n\n.ProseMirror-prompt-close {\n position: absolute;\n left: 2px;\n top: 1px;\n color: #666;\n border: none;\n background: transparent;\n padding: 0;\n}\n.ProseMirror-prompt-close:after {\n content: \"✕\";\n font-size: 12px;\n}\n\n.ProseMirror-invalid {\n background: #ffc;\n border: 1px solid #cc7;\n border-radius: 4px;\n padding: 5px 10px;\n position: absolute;\n min-width: 10em;\n}\n\n.ProseMirror-prompt-buttons {\n margin-top: 5px;\n display: none;\n}\n\n#editor,\n.editor {\n color: rgb(101, 101, 101);\n background-clip: padding-box;\n border-radius: 4px;\n border: 2px solid rgba(0, 0, 0, 0.2);\n padding: 5px 0;\n display: flex;\n align-items: flex-end;\n}\n\n.icure-input {\n background: #edf2f7;\n border-radius: 8px;\n border: none;\n min-height: 28px;\n height: auto;\n display: flex;\n flex-flow: row nowrap;\n align-items: flex-start;\n justify-content: space-between;\n}\n\n#editor {\n background: transparent;\n border: none;\n padding: 0;\n flex-grow: 1;\n display: flex;\n align-items: stretch;\n}\n#editor.tokens-list .ProseMirror, #editor.styled-tokens-list .ProseMirror {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n#editor.tokens-list .ProseMirror li, #editor.styled-tokens-list .ProseMirror li {\n display: flex;\n flex-direction: row;\n border-radius: 8px;\n padding: 2px 4px;\n margin-right: 2px;\n background-color: #dadada;\n border-color: rgba(42, 61, 108, 0.44);\n min-height: 20px;\n}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n display: inline-block;\n min-height: 18px;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.items-list .ProseMirror {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: flex-start;\n gap: 6px;\n}\n#editor.items-list .ProseMirror li {\n list-style-type: none;\n width: 100%;\n padding-bottom: 4px;\n border-bottom: 1px dotted rgba(128, 128, 128, 0.5098039216);\n}\n#editor.items-list .ProseMirror li:last-child {\n border-bottom: none;\n}\n\n#content {\n position: relative;\n padding: 0;\n}\n\n* {\n font-family: \"Roboto\", Helvetica, sans-serif;\n}\n\np {\n margin-top: 0;\n}\n\nh3 {\n color: #274768;\n margin-top: 0;\n}\n\n.icure-input-metadata-container {\n display: flex;\n}\n.icure-input-metadata-container .icure-metadata-container {\n display: flex;\n flex-grow: 1;\n padding: 0 4px;\n border: 1px solid #DDE3E7;\n border-left: none;\n border-radius: 0 6px 6px 0;\n outline: 0;\n box-sizing: border-box;\n}\n.icure-input-metadata-container .icure-metadata-container__validationError {\n border-color: red;\n}\n\n.extra {\n min-width: 20px;\n width: auto;\n height: 20px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n.extra:hover .info {\n display: none;\n}\n.extra:hover .buttons-container .menu-container .btn {\n animation: slideIn 0.24s ease-in forwards;\n pointer-events: none;\n display: unset !important;\n}\n.extra.forced .info, .extra.forced .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n display: none;\n}\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n.extra--metadataButtonsBar {\n height: 100%;\n display: flex;\n align-items: center;\n padding: 0 4px;\n}\n.extra .info {\n color: #809ab4;\n font-size: 15px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: center;\n}\n.extra .info span {\n font-weight: 700;\n}\n.extra .info.hidden {\n display: none;\n}\n.extra .buttons-container {\n display: flex;\n height: 20px;\n width: auto;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n z-index: 1000;\n}\n.extra .buttons-container .btn {\n border: none;\n background: transparent;\n position: relative;\n top: 0;\n display: none;\n opacity: 0;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.extra .buttons-container .btn svg {\n width: 15px;\n height: 15px;\n}\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n.extra .buttons-container .btn:focus, .extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n.extra .buttons-container .menu-container .btn:hover::before {\n content: \"\";\n display: block;\n border-color: #274768 transparent transparent transparent;\n border-style: solid;\n border-width: 4px;\n position: absolute;\n top: -6px;\n}\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -21px;\n height: 16px;\n left: 50%;\n transform: translateX(-50%);\n border-radius: 8px;\n background: #274768;\n color: white;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n text-transform: capitalize;\n white-space: nowrap;\n padding: 0 12px;\n font-size: 12px;\n line-height: 0;\n}\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n@keyframes slideIn {\n 0% {\n top: 0;\n opacity: 0;\n pointer-events: none;\n }\n 100% {\n top: 0;\n opacity: 1;\n pointer-events: all;\n }\n}\n.menu-container {\n display: flex;\n align-items: center;\n height: fit-content;\n}\n.menu-container .item {\n height: 30px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #274768;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.menu-container .item.existing {\n background-color: #BFE8EA;\n}\n.menu-container .item.selected {\n color: white;\n background-color: #084B83;\n}\n.menu-container .item:hover {\n background: #DCE7F2;\n color: #274768;\n font-weight: 500;\n border-radius: 4px;\n}\n\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n position: absolute;\n top: 32px;\n right: -12px;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n padding: 8px;\n width: 220px;\n min-height: 120px;\n max-height: 320px;\n overflow-y: scroll;\n}\n.menu .input-container {\n background: #edf2f7;\n border-radius: 4px;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n height: 32px;\n margin-bottom: 4px;\n padding: 0 4px;\n}\n.menu .input-container:hover {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2);\n}\n.menu .input-container:focus-within {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2), 0 0 0 1px rgb(40, 151, 255);\n}\n.menu .input-container input {\n background: transparent;\n border: none;\n flex-grow: 1;\n height: 100%;\n}\n.menu .input-container input:focus {\n background: transparent;\n border: none;\n outline: none;\n}\n\n.menu-trigger:focus .menu {\n display: flex;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\nspan.date {\n margin-right: 1px;\n}\nspan.time {\n margin-left: 1px;\n}\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\nspan[data-content]:hover::after {\n position: absolute;\n content: attr(data-content);\n background: #274768;\n color: #ffffff;\n font-size: 9px;\n line-height: 12px;\n top: -12px;\n left: 0px;\n padding: 0px 2px;\n}\nspan[data-content]::before {\n position: absolute;\n content: \"\";\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n opacity: 0.3;\n}\n\n.masked {\n display: none;\n}\n\n.companion {\n position: absolute;\n width: 15px;\n background-color: hsl(194, 100%, 50%);\n color: white;\n z-index: 20;\n padding: 0;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0 2px 2px 0;\n}\n.companion:hover {\n font-weight: 700;\n background: hsl(202, 100%, 50%);\n}\n\n*::selection {\n background-color: hsla(194, 100%, 50%, 0.2);\n}\n\n.suggestion-palette {\n position: absolute;\n z-index: 20;\n max-width: 380px;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 4px;\n border: none;\n border-radius: 8px;\n background: white;\n box-shadow: 0 1.1px 1.1px rgba(0, 0, 0, 0.022), 0 2.7px 2.7px rgba(0, 0, 0, 0.032), 0 5px 5px rgba(0, 0, 0, 0.04), 0 8.9px 8.9px rgba(0, 0, 0, 0.048), 0 16.7px 16.7px rgba(0, 0, 0, 0.058), 0 40px 40px rgba(0, 0, 0, 0.08);\n}\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn, .suggestion-palette ul.focused li:first-child svg.tab-icn {\n height: 0;\n width: 0;\n transform: scale(0);\n opacity: 0;\n}\n.suggestion-palette ul li {\n padding: 0 8px;\n font-size: 11px;\n height: 20px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px;\n color: rgb(39, 71, 104);\n}\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\n}\n.suggestion-palette ul li svg {\n height: 12px;\n width: 12px;\n border-radius: 4px;\n transform-origin: center center;\n}\n.suggestion-palette ul li svg path {\n fill: rgb(128, 154, 180);\n}\n\n@keyframes growIn {\n 0% {\n transform: scale(0.5);\n }\n 90% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n}\nspan.code-count-1::after,\nspan.code-count-1::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n}\n\nspan.code-count-2::after,\nspan.code-count-2::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n /*background: repeating-linear-gradient(*/\n /*\t45deg,*/\n /*\tvar(--bg-code-color-1),*/\n /*\tvar(--bg-code-color-1) 10px,*/\n /*\tvar(--bg-code-color-2) 10px,*/\n /*\tvar(--bg-code-color-2) 20px*/\n /*);*/\n /* PAS STRIPES */\n background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);\n}\n\nspan.code-count-3::after,\nspan.code-count-3::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n background: repeating-linear-gradient(45deg, var(--bg-code-color-1), var(--bg-code-color-1) 10px, var(--bg-code-color-2) 10px, var(--bg-code-color-2) 20px);\n /* PAS STRIPES */\n /* background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);*/\n}\n\n.selected-option {\n padding: 2px;\n margin-right: 5px;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: auto;\n min-width: 100%;\n overflow-y: auto;\n padding: 2px;\n border-radius: 6px;\n}\n.options--subformView {\n top: 46px;\n min-width: unset;\n left: unset;\n right: 0;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: 260px;\n overflow-y: auto;\n max-height: 280px;\n}\n\napp-date-picker {\n --app-primary: #084B83;\n --app-hover: #5b7da2;\n --app-selected-hover: #5b7da2;\n}\n\n.option {\n height: 28px;\n min-height: 28px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #545454;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n padding: 4px 8px;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n cursor: pointer;\n}\n.option:hover {\n color: #656565;\n background-color: #ededed;\n}\n\n.select-arrow {\n border: none;\n background: 0px 0px;\n position: relative;\n top: 0px;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0px;\n}\n\n.hidden {\n display: none;\n}\n\n.container {\n position: relative;\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n display: grid;\n position: relative;\n padding: 8px;\n border-radius: 6px;\n background-color: #e7f0fd;\n gap: 12px;\n}\n.subform__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: auto;\n}\n.subform__heading__title {\n padding: 0;\n margin: 0;\n}\n.subform__addBtn, .subform__removeBtn {\n cursor: pointer;\n background-color: #084B83;\n color: white;\n height: 32px;\n padding: 0 16px;\n border-radius: 6px;\n border: none;\n outline: none;\n}\n.subform__addBtn:hover, .subform__removeBtn:hover {\n background-color: #3D87C5;\n}\n.subform__removeBtn {\n justify-self: end;\n border: 1px solid #DDE3E7;\n background-color: #FCFCFD;\n color: #084B83;\n}\n.subform__removeBtn:hover {\n background-color: #F2F2F2;\n}\n.subform__child {\n display: grid;\n grid-template-rows: auto;\n gap: 8px;\n padding: 8px;\n border-radius: 6px;\n background: white;\n border: 1px solid #3D87C5;\n}\n.subform__child__title {\n padding: 12px !important;\n border-radius: 6px;\n margin: 0;\n background-color: #BFE8EA;\n}\n.subform__child .subform {\n background: unset;\n margin: 0;\n padding: 0;\n}\n\n.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 16px 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n.icure-form hr {\n display: block;\n margin-top: 20px;\n border-top: 1px solid rgba(8, 75, 131, 0.13);\n margin-bottom: 20px;\n}\n.icure-form h2 {\n font-size: add-two(12px, 0, 1.2);\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: add-two(12px, 0, 1.1);\n font-weight: 500;\n color: #084B83;\n padding: 6px;\n}\n.icure-form .group.bordered {\n background: #f6f6f6;\n border-radius: 12px;\n}\n\n.icure-form-field {\n display: grid;\n align-items: flex-start;\n}\n\n.error {\n color: red;\n font-size: 12px;\n margin-top: 4px;\n}\n\n.icure-text-field .icure-label-extra, .icure-button-group .icure-label-extra {\n display: flex;\n width: 100%;\n gap: 12px;\n}\n.icure-text-field .icure-label, .icure-button-group .icure-label {\n z-index: 1;\n pointer-events: none;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n left: add-two(8px, 1px);\n color: #084B83;\n align-items: center;\n text-wrap: auto;\n min-height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-text-field .icure-label.float, .icure-button-group .icure-label.float {\n display: flex;\n overflow: hidden;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n}\n.icure-text-field > .icure-label {\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n}\n.icure-text-field > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-text-field > .icure-label.side {\n position: relative;\n}\n.icure-text-field > .icure-label.side.left {\n order: -1;\n margin-right: 1em;\n}\n.icure-text-field > .icure-label.side.right {\n order: 1;\n margin-left: 1em;\n}\n.icure-text-field .icure-input,\n.icure-text-field .input-container {\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-color: #DDE3E7;\n border-radius: 2px;\n outline: 0;\n font: inherit;\n font-size: 14px;\n line-height: 1.4em;\n display: flex;\n align-items: center;\n vertical-align: middle;\n position: relative;\n -webkit-appearance: none;\n background-color: #ffffff;\n color: #000000;\n}\n.icure-text-field .icure-input .reset-button,\n.icure-text-field .input-container .reset-button {\n position: absolute;\n right: 0;\n border: none;\n background: transparent;\n top: 0;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.icure-text-field .icure-input .reset-button svg,\n.icure-text-field .input-container .reset-button svg {\n width: 15px;\n height: 15px;\n}\n.icure-text-field .icure-input__validationError,\n.icure-text-field .input-container__validationError {\n border-color: red;\n}\n.icure-text-field .icure-input__withMetadata,\n.icure-text-field .input-container__withMetadata {\n border-radius: 6px 0 0 6px;\n}\n.icure-text-field .icure-input:focus, .icure-text-field .icure-input:focus-within,\n.icure-text-field .input-container:focus,\n.icure-text-field .input-container:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input:hover,\n.icure-text-field .input-container:hover {\n border-color: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n}\n.icure-text-field .icure-input:hover:focus, .icure-text-field .icure-input:hover:focus-within,\n.icure-text-field .input-container:hover:focus,\n.icure-text-field .input-container:hover:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input .ProseMirror,\n.icure-text-field .input-container .ProseMirror {\n padding: 0;\n font-size: 14px;\n line-height: 1.4em;\n color: #000000;\n}\n.icure-text-field .icure-input .ProseMirror .date,\n.icure-text-field .input-container .ProseMirror .date {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror .time,\n.icure-text-field .input-container .ProseMirror .time {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror:focus .focused,\n.icure-text-field .input-container .ProseMirror:focus .focused {\n background-color: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n border-color: rgba(0, 0, 0, 0.1);\n}\n.icure-text-field .icure-input > svg,\n.icure-text-field .input-container > svg {\n opacity: 0.5;\n}\n.icure-text-field .icure-input > svg path,\n.icure-text-field .input-container > svg path {\n fill: #656565;\n}\n.icure-text-field .icure-input .extra,\n.icure-text-field .input-container .extra {\n height: 20px;\n}\n.icure-text-field .icure-input .extra > .info,\n.icure-text-field .input-container .extra > .info {\n color: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path,\n.icure-text-field .input-container .extra .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path:hover,\n.icure-text-field .input-container .extra .btn svg path:hover {\n fill: #656565;\n opacity: 1;\n}\n\ninput[type=radio] {\n margin-top: -1px;\n vertical-align: middle;\n}\n\n.icure-checkbox:checked {\n accent-color: #06a070;\n}\n\n.icure-button {\n display: flex;\n height: 32px;\n padding: 0 16px;\n background-color: #084B83;\n color: white;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: normal;\n}\n.icure-button:hover {\n background-color: #3D87C5;\n}\n\n.icure-button-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.icure-button-group > div {\n display: grid;\n}\n.icure-button-group > div > div {\n display: flex;\n align-items: center;\n}\n.icure-button-group > div > div > .icure-button-group-label {\n z-index: 1;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n top: add-three(1.4em, 1px, 0);\n left: add-two(8px, 1px);\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n color: #084B83;\n display: flex;\n align-items: center;\n height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-button-group > div > div > .icure-button-group-label > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n padding-right: 8px;\n}\n.icure-button-group > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-button-group > .icure-label {\n transform: translate(0, 0) scale(1);\n}\n.icure-button-group > .icure-label.above, .icure-button-group.has-content > .icure-label, .icure-button-group:focus > .icure-label, .icure-button-group:focus-within > .icure-label {\n font-weight: 500;\n height: 1.4em;\n}` \nimport { Field } from '../common'\nimport { generateLabels } from '../common/utils'\nimport { extractSingleValue } from '../icure-form/fields/utils'\nimport { FieldWithOptionsMixin } from '../common/field-with-options'\nimport { FieldMetadata, FieldValue } from '../model'\nimport { Version } from '../../generic'\nimport { icureFormLogging } from '../../index'\n\nexport class IcureButtonGroup extends FieldWithOptionsMixin(Field) {\n\t@property() type: 'radio' | 'checkbox' = 'radio'\n\n\t//override\n\tstatic get styles(): CSSResultGroup[] {\n\t\treturn [baseCss]\n\t}\n\n\tgetValueFromProvider(): [string, string[], Version<FieldValue>[]] | [undefined, undefined, undefined] {\n\t\tconst [id, versions] = extractSingleValue(this.valueProvider?.())\n\t\tif (versions) {\n\t\t\tconst value = versions[0]?.value\n\t\t\tconst valueForLanguage = value?.content?.[this.language()] ?? ''\n\t\t\tconst fromValue = valueForLanguage && valueForLanguage.type === 'compound' && valueForLanguage.value ? Object.keys(valueForLanguage.value) : []\n\t\t\treturn [id, fromValue.concat(value?.codes?.map((c) => c.id)?.filter((id) => !fromValue.includes(id)) ?? []), versions]\n\t\t}\n\t\treturn [undefined, undefined, undefined]\n\t}\n\n\tpublic checkboxChange() {\n\t\tif (this.readonly) return\n\t\tif (this.handleValueChanged) {\n\t\t\tconst [valueId] = this.getValueFromProvider() ?? ''\n\t\t\tconst inputs = Array.from(this.shadowRoot?.querySelectorAll('input') || []).filter((input) => input.checked)\n\t\t\tconst selectedOptions = this.displayedOptions?.filter((option) => inputs.some((i) => i.id === option.id))\n\t\t\tthis.handleValueChanged?.(\n\t\t\t\tthis.label,\n\t\t\t\tthis.language(),\n\t\t\t\t{\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t[this.language()]: {\n\t\t\t\t\t\t\ttype: 'compound',\n\t\t\t\t\t\t\tvalue: selectedOptions?.reduce(\n\t\t\t\t\t\t\t\t(acc, c) => ({\n\t\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t\t[c.id]: { type: 'boolean', value: true },\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcodes: selectedOptions,\n\t\t\t\t},\n\t\t\t\tvalueId,\n\t\t\t)\n\t\t}\n\t}\n\n\toverride renderSync({ validationErrors }: { validationErrors: [FieldMetadata, string][] }): TemplateResult {\n\t\tif (!this.visible) {\n\t\t\treturn html``\n\t\t}\n\t\tif (icureFormLogging) {\n\t\t\tconsole.log(`Rendering button group ${this.label}`)\n\t\t}\n\n\t\tconst [id, inputValues, versions] = this.getValueFromProvider()\n\n\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\n\t\tconst rev = version?.revision\n\t\tconst metadata = id && rev !== undefined ? this.metadataProvider?.(id, versions?.map((v) => v.revision) ?? [])?.[id]?.find((m) => m.revision === rev)?.value : undefined\n\n\t\treturn html`\n\t\t\t<div class=\"icure-text-field icure-button-group\">\n\t\t\t\t${this.displayedLabels && this.displayedOptions?.length\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<div class=\"icure-label-extra\">\n\t\t\t\t\t\t\t\t${generateLabels(\n\t\t\t\t\t\t\t\t\tObject.entries(this.displayedLabels ?? {})\n\t\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t\t//If we have less than 2 options, we don't need to display the label except if it is different from the first option\n\t\t\t\t\t\t\t\t\t\t\t([, l]) =>\n\t\t\t\t\t\t\t\t\t\t\t\t(this.displayedOptions?.length ?? 0) > 1 || (this.displayedOptions?.length && l !== (this.displayedOptions[0].label?.[this.language()] ?? this.displayedOptions[0].id)),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}),\n\t\t\t\t\t\t\t\t\tthis.language(),\n\t\t\t\t\t\t\t\t\tthis.translate ? this.translationProvider : undefined,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t${this.displayMetadata && metadata\n\t\t\t\t\t\t\t\t\t? html` <icure-metadata-buttons-bar\n\t\t\t\t\t\t\t\t\t\t\t.metadata=\"${metadata}\"\n\t\t\t\t\t\t\t\t\t\t\t.revision=\"${rev}\"\n\t\t\t\t\t\t\t\t\t\t\t.versions=\"${versions ?? []}\"\n\t\t\t\t\t\t\t\t\t\t\t.valueId=\"${extractSingleValue(this.valueProvider?.())?.[0]}\"\n\t\t\t\t\t\t\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.selectedLanguage=\"${this.selectedLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleMetadataChanged=\"${this.handleMetadataChanged}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleLanguageSelected=\"${(iso: string) => (this.selectedLanguage = iso)}\"\n\t\t\t\t\t\t\t\t\t\t\t.handleRevisionSelected=\"${(rev: string) => (this.selectedRevision = rev)}\"\n\t\t\t\t\t\t\t\t\t\t\t.ownersProvider=\"${this.ownersProvider}\"\n\t\t\t\t\t\t\t\t\t />`\n\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t `\n\t\t\t\t\t: nothing}\n\t\t\t\t<div style=\"${this.generateStyle()}\">\n\t\t\t\t\t${(this.displayedOptions?.length ? this.displayedOptions : [{ id: this.label, label: {} }]).map((x) => {\n\t\t\t\t\t\tconst text = (x.label ?? {})[this.language()] ?? ''\n\t\t\t\t\t\tif (this.readonly) {\n\t\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t\t<input class=\"icure-checkbox\" disabled type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" />\n\t\t\t\t\t\t\t\t<label class=\"icure-button-group-label\" for=\"${x.id}\"><span>${text}</span></label>\n\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn html` <div>\n\t\t\t\t\t\t\t<input class=\"icure-checkbox\" type=\"${this.type}\" id=\"${x.id}\" name=\"${this.label}\" value=\"${text}\" .checked=\"${inputValues?.includes(x.id)}\" @change=\"${this.checkboxChange}\" /><label\n\t\t\t\t\t\t\t\tclass=\"icure-button-group-label\"\n\t\t\t\t\t\t\t\tfor=\"${x.id}\"\n\t\t\t\t\t\t\t\t><span>${text}</span></label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"error\">${validationErrors.map(([, error]) => html` <div>${this.translationProvider?.(this.language(), error)}</div>`)}</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\tprivate generateStyle() {\n\t\treturn this.styleOptions?.span\n\t\t\t? `grid-template-columns: repeat(${this.styleOptions?.span}, 1fr);`\n\t\t\t: this.styleOptions?.rows\n\t\t\t? `grid-template-columns: repeat(${Number((this.displayedOptions?.length ?? 0) / (this.styleOptions?.rows as number))}, 1fr);`\n\t\t\t: ''\n\t}\n}\n"]}
@@ -20,8 +20,8 @@ export const render = (form_1, props_1, formsValueContainer_1, translationProvid
20
20
  var _a, _b, _c;
21
21
  const originalOptions = optionsProvider ? yield optionsProvider(language, codifications, terms) : [];
22
22
  return sortSuggestions(originalOptions.concat((_c = (_b = (_a = form.codifications) === null || _a === void 0 ? void 0 : _a.filter((c) => codifications.includes(c.type))) === null || _b === void 0 ? void 0 : _b.flatMap((c) => c.codes
23
- .filter((c) => (terms !== null && terms !== void 0 ? terms : []).map((st) => st.toLowerCase()).every((st) => c.label[language].toLowerCase().includes(st)))
24
- .map((c) => ({ id: c.id, label: c.label, text: c.label[language], terms: terms !== null && terms !== void 0 ? terms : [] })))) !== null && _c !== void 0 ? _c : []), language, sortOptions);
23
+ .filter((c) => (terms !== null && terms !== void 0 ? terms : []).map((st) => st.toLowerCase()).every((st) => { var _a, _b; return ((_b = (_a = c.label) === null || _a === void 0 ? void 0 : _a[language]) !== null && _b !== void 0 ? _b : c.id).toLowerCase().includes(st); }))
24
+ .map((c) => { var _a, _b, _c; return ({ id: c.id, label: (_a = c.label) !== null && _a !== void 0 ? _a : { [language]: c.id }, text: (_c = (_b = c.label) === null || _b === void 0 ? void 0 : _b[language]) !== null && _c !== void 0 ? _c : c.id, terms: terms !== null && terms !== void 0 ? terms : [] }); }))) !== null && _c !== void 0 ? _c : []), language, sortOptions);
25
25
  })
26
26
  : optionsProvider
27
27
  ? (language, codifications, terms, sortOptions) => {
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/renderer/form/form.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit'\nimport { Renderer, RendererProps } from '../index'\nimport { fieldValuesProvider, getValidationErrorProvider, handleMetadataChangedProvider, handleValueChangedProvider } from '../../../../utils/fields-values-provider'\nimport { FieldMetadata, FieldValue, Form, Field, Group, Subform, SortOptions } from '../../../model'\nimport { FormValuesContainer, Suggestion } from '../../../../generic'\n\nimport { defaultTranslationProvider } from '../../../../utils/languages'\nimport { getLabels } from '../../../common/utils'\nimport { filterAndSortOptionsFromFieldDefinition, sortSuggestions } from '../../../../utils/code-utils'\n\nimport './form-selection-button'\nimport { currentDate, currentDateTime, currentTime } from '../../../../utils/dates'\n\nexport const render: Renderer = async (\n\tform: Form,\n\tprops: RendererProps,\n\tformsValueContainer?: FormValuesContainer<FieldValue, FieldMetadata>,\n\ttranslationProvider?: (language: string, text: string) => string,\n\townersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]> = async () => [],\n\toptionsProvider?: (language: string, codifications: string[], terms?: string[]) => Promise<Suggestion[]>,\n\tactionListener: (event: string, payload: unknown) => void = () => undefined,\n\tlanguages?: { [iso: string]: string },\n\treadonly?: boolean,\n\tdisplayMetadata?: boolean,\n\tsectionWrapper?: (index: number, section: () => TemplateResult) => TemplateResult,\n) => {\n\tconst composedOptionsProvider =\n\t\toptionsProvider && form.codifications\n\t\t\t? async (language: string, codifications: string[], terms?: string[], sortOptions?: SortOptions): Promise<Suggestion[]> => {\n\t\t\t\t\tconst originalOptions = optionsProvider ? await optionsProvider(language, codifications, terms) : []\n\t\t\t\t\treturn sortSuggestions(\n\t\t\t\t\t\toriginalOptions.concat(\n\t\t\t\t\t\t\tform.codifications\n\t\t\t\t\t\t\t\t?.filter((c) => codifications.includes(c.type))\n\t\t\t\t\t\t\t\t?.flatMap((c) =>\n\t\t\t\t\t\t\t\t\tc.codes\n\t\t\t\t\t\t\t\t\t\t.filter((c) => (terms ?? []).map((st) => st.toLowerCase()).every((st) => c.label[language].toLowerCase().includes(st)))\n\t\t\t\t\t\t\t\t\t\t.map((c) => ({ id: c.id, label: c.label, text: c.label[language], terms: terms ?? [] })),\n\t\t\t\t\t\t\t\t) ?? [],\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\tsortOptions,\n\t\t\t\t\t)\n\t\t\t }\n\t\t\t: optionsProvider\n\t\t\t? (language: string, codifications: string[], terms?: string[], sortOptions?: SortOptions): Promise<Suggestion[]> => {\n\t\t\t\t\treturn optionsProvider?.(language, codifications, terms).then((codes) => sortSuggestions(codes, language, sortOptions)) ?? Promise.resolve([])\n\t\t\t }\n\t\t\t: undefined\n\n\tconst h = function (level: number, className = '', content: TemplateResult): TemplateResult {\n\t\treturn level === 1\n\t\t\t? html`<h1 class=\"${className}\">${content}</h1>`\n\t\t\t: level === 2\n\t\t\t? html`<h2 class=\"${className}\">${content}</h2>`\n\t\t\t: level === 3\n\t\t\t? html`<h3 class=\"${className}\">${content}</h3>`\n\t\t\t: level === 4\n\t\t\t? html`<h4 class=\"${className}\">${content}</h4>`\n\t\t\t: level === 5\n\t\t\t? html`<h5 class=\"${className}\">${content}</h5>`\n\t\t\t: html`<h6 class=\"${className}\">${content}</h6>`\n\t}\n\n\tasync function renderGroup(fg: Group, fgSpan: number, level: number) {\n\t\tconst tp = translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))\n\t\tconst subElements = (await Promise.all((fg.fields ?? []).map((fieldOrGroup: Field | Group) => renderFieldGroupOrSubform(fieldOrGroup, level + 1)))).filter((x) => !!x && x !== nothing)\n\t\tconst groupTitle = fg.translate && tp && props.language ? tp(props.language, fg.group) : fg.group\n\t\treturn subElements.length\n\t\t\t? html`<div class=\"${['group', fg.borderless ? undefined : 'bordered'].filter((x) => !!x).join(' ')}\" style=\"${calculateFieldOrGroupSize(fgSpan, 1)}\">\n\t\t\t\t\t${fg.borderless ? nothing : html`<div>${h(level, '', html`${groupTitle}`)}</div>`}\n\t\t\t\t\t<div class=\"icure-form\">${subElements}</div>\n\t\t\t </div>`\n\t\t\t: nothing\n\t}\n\n\tasync function renderSubform(fg: Subform, fgSpan: number, level: number) {\n\t\tconst children = (await formsValueContainer?.getChildren())?.filter((c) => c.getLabel() === fg.id)\n\t\tconst tp = translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))\n\t\treturn html`<div class=\"subform\" style=\"${calculateFieldOrGroupSize(fgSpan, 1)}\">\n\t\t\t<div class=\"subform__heading\">\n\t\t\t\t${h(level, 'subform__heading__title', html`${(props.language && fg.shortLabel ? tp?.(props.language, fg.shortLabel) : fg.shortLabel) ?? ''}`)}\n\t\t\t\t${readonly\n\t\t\t\t\t? nothing\n\t\t\t\t\t: html`<form-selection-button\n\t\t\t\t\t\t\t.label=\"${fg.labels.add ?? 'Add subform'}\"\n\t\t\t\t\t\t\t.forms=\"${Object.entries(fg.forms)}\"\n\t\t\t\t\t\t\t.formAdded=\"${(title: string, form: Form) => {\n\t\t\t\t\t\t\t\tform.id && formsValueContainer?.addChild(fg.id, form.id, fg.shortLabel ?? '')\n\t\t\t\t\t\t\t}}\"\n\t\t\t\t\t\t\t.translationProvider=\"${tp}\"\n\t\t\t\t\t\t\t.language=\"${props.language}\"\n\t\t\t\t\t ></form-selection-button>`}\n\t\t\t</div>\n\t\t\t${await children?.reduce(async (templatesPromise, child) => {\n\t\t\t\tconst templates = await templatesPromise\n\n\t\t\t\tconst childForm = Object.values(fg.forms).find((f) => f.id === child.getFormId())\n\t\t\t\tconst title = childForm?.form ?? childForm?.description\n\t\t\t\tconst localisedTitle = (title && tp && props.language ? tp?.(props.language, title) : title) ?? ''\n\t\t\t\tconst localisedRemove = (fg.labels.remove && tp && props.language ? tp?.(props.language, fg.labels.remove) : fg.labels.remove) ?? 'Remove'\n\t\t\t\tif (childForm) {\n\t\t\t\t\ttemplates.push(html`\n\t\t\t\t\t\t<div class=\"subform__child\">\n\t\t\t\t\t\t\t<h3 class=\"subform__child__title\">${localisedTitle}</h3>\n\t\t\t\t\t\t\t${await render(childForm, props, child, translationProvider, ownersProvider, optionsProvider, actionListener, languages, readonly, displayMetadata)}\n\t\t\t\t\t\t\t${readonly ? nothing : html` <button class=\"subform__removeBtn\" @click=\"${() => formsValueContainer?.removeChild?.(child)}\">${localisedRemove}</button>`}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`)\n\t\t\t\t}\n\t\t\t\treturn templates\n\t\t\t}, Promise.resolve([] as TemplateResult[]))}\n\t\t</div>`\n\t}\n\n\tasync function renderTextField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-text-field\n\t\t\tclass=\"icure-form-field\"\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan, fg.styleOptions?.width)}\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.multiline=\"${fg.multiline || false}\"\n\t\t\t.lines=${fgRowSpan}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.languages=\"${languages}\"\n\t\t\t.linksProvider=${fg.options?.linksProvider}\n\t\t\t.suggestionProvider=${fg.options?.suggestionProvider}\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.codeColorProvider=${fg.options?.codeColorProvider}\n\t\t\t.linkColorProvider=${fg.options?.linkColorProvider}\n\t\t\t.codeContentProvider=${fg.options?.codeContentProvider}\n\t\t\t.defaultValueProvider=${formsValueContainer?.getDefaultValueProvider(fg.field)}\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-text-field>`\n\t}\n\n\tasync function renderTokenField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-token-field\n\t\t\tclass=\"icure-form-field\"\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan, fg.styleOptions?.width)}\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.multiline=\"${fg.multiline || false}\"\n\t\t\t.lines=${fgRowSpan}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.suggestionProvider=${fg.options?.suggestionProvider}\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-token-field>`\n\t}\n\n\tasync function renderItemsListField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-items-list-field\n\t\t\tclass=\"icure-form-field\"\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan, fg.styleOptions?.width)}\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.multiline=\"${fg.multiline || false}\"\n\t\t\t.lines=${fgRowSpan}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.suggestionProvider=${fg.options?.suggestionProvider}\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-items-list-field>`\n\t}\n\n\tasync function renderMeasureField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-measure-field\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\tunit=\"${fg.unit}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-measure-field>`\n\t}\n\n\tasync function renderNumberField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-number-field\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-number-field>`\n\t}\n\n\tasync function renderDatePicker(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-date-picker\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.now ? currentDate() : fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-date-picker>`\n\t}\n\n\tasync function renderTimePicker(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-time-picker\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.now ? currentTime() : fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-time-picker>`\n\t}\n\n\tasync function renderDateTimePicker(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-date-time-picker\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.now ? currentDateTime() : fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-date-time-picker>`\n\t}\n\n\tasync function renderDropdownField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-dropdown-field\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.label=${fg.field}\n\t\t\t.displayedLabels=${getLabels(fg)}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translate=\"${fg.translate}\"\n\t\t\t.sortOptions=\"${fg.sortOptions}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.codifications=\"${fg.codifications}\"\n\t\t\t.optionsProvider=\"${composedOptionsProvider && fg.codifications?.length\n\t\t\t\t? (language: string, terms?: string[]) => composedOptionsProvider(language, fg.codifications ?? [], terms, fg.sortOptions)\n\t\t\t\t: (language: string, terms?: string[]) => filterAndSortOptionsFromFieldDefinition(language, fg, translationProvider, terms)}\"\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-dropdown-field>`\n\t}\n\n\tasync function renderRadioButtons(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-radio-button\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.label=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translate=\"${fg.translate}\"\n\t\t\t.sortOptions=\"${fg.sortOptions}\"\n\t\t\t.codifications=\"${fg.codifications}\"\n\t\t\t.optionsProvider=\"${composedOptionsProvider && fg.codifications?.length\n\t\t\t\t? (language: string, terms?: string[]) => composedOptionsProvider(language, fg.codifications ?? [], terms, fg.sortOptions)\n\t\t\t\t: (language: string, terms?: string[]) => filterAndSortOptionsFromFieldDefinition(language, fg, translationProvider, terms)}\"\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-radio-button>`\n\t}\n\n\tasync function renderCheckboxes(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html` <icure-form-checkbox\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.label=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translate=\"${fg.translate}\"\n\t\t\t.sortOptions=\"${fg.sortOptions}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.codifications=\"${fg.codifications}\"\n\t\t\t.optionsProvider=\"${composedOptionsProvider && fg.codifications?.length\n\t\t\t\t? (language: string, terms?: string[]) => composedOptionsProvider(language, fg.codifications ?? [], terms, fg.sortOptions)\n\t\t\t\t: (language: string, terms?: string[]) => filterAndSortOptionsFromFieldDefinition(language, fg, translationProvider, terms)}\"\n\t\t\t.ownersProvider=\"${ownersProvider}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=\"${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\"\n\t\t\t.handleValueChanged=\"${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\"\n\t\t\t.handleMetadataChanged=\"${handleMetadataChangedProvider(formsValueContainer)}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-checkbox>`\n\t}\n\n\tasync function renderButton(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-button\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-button\"\n\t\t\tlabel=\"${fg.shortLabel ?? fg.field}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.actionListener=\"${actionListener}\"\n\t\t\t.event=\"${fg.event !== undefined ? fg.event : fg.computedProperties?.event ? !(await formsValueContainer?.compute(fg.computedProperties?.event)) : 'submit'}\"\n\t\t\t.payload=\"${fg.payload !== undefined ? fg.payload : fg.computedProperties?.payload ? !(await formsValueContainer?.compute(fg.computedProperties?.payload)) : undefined}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t></icure-form-button>`\n\t}\n\n\tasync function renderLabel(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-label\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\tlabelPosition=${props.labelPosition}\n\t\t\tlabel=\"${fg.shortLabel ?? fg.field}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-label>`\n\t}\n\n\tconst renderFieldGroupOrSubform = async function (fg: Field | Group | Subform, level: number): Promise<TemplateResult | TemplateResult[] | typeof nothing> {\n\t\tif (!fg) {\n\t\t\treturn nothing\n\t\t}\n\t\tconst computedProperties = (await Object.keys(fg.computedProperties ?? {})\n\t\t\t.filter((k) => k !== 'value' && k !== 'defaultValue')\n\t\t\t.reduce(async (acc, k) => ({ ...(await acc), [k]: fg.computedProperties?.[k] && (await formsValueContainer?.compute(fg.computedProperties[k])) }), Promise.resolve({}))) as {\n\t\t\t[key: string]: string | number | boolean | undefined\n\t\t}\n\t\tif (computedProperties['hidden']) {\n\t\t\treturn nothing\n\t\t}\n\n\t\tconst fgSpan = (computedProperties['span'] ?? fg.span ?? 6) as number\n\t\tconst fgRowSpan = (computedProperties['rowSpan'] ?? fg.rowSpan ?? 1) as number\n\n\t\tif (fg.clazz === 'group' && fg.fields?.length) {\n\t\t\treturn await renderGroup((fg as Group).copyIfNeeded({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'subform' && (fg.id || computedProperties['title'])) {\n\t\t\treturn await renderSubform((fg as Subform).copyIfNeeded({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'field') {\n\t\t\tconst field = fg.copyIfNeeded({ ...computedProperties })\n\t\t\treturn html`${fg.type === 'text-field'\n\t\t\t\t? await renderTextField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'measure-field'\n\t\t\t\t? await renderMeasureField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'token-field'\n\t\t\t\t? await renderTokenField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'items-list-field'\n\t\t\t\t? await renderItemsListField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'number-field'\n\t\t\t\t? await renderNumberField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-picker'\n\t\t\t\t? await renderDatePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'time-picker'\n\t\t\t\t? await renderTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-time-picker'\n\t\t\t\t? await renderDateTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'dropdown-field'\n\t\t\t\t? await renderDropdownField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'radio-button'\n\t\t\t\t? await renderRadioButtons(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'checkbox'\n\t\t\t\t? await renderCheckboxes(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'label'\n\t\t\t\t? await renderLabel(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'action'\n\t\t\t\t? await renderButton(fgSpan, fgRowSpan, field)\n\t\t\t\t: ''}`\n\t\t}\n\t\treturn html``\n\t}\n\n\tconst calculateFieldOrGroupSize = (span: number, rowSpan: number, fixedWidth?: number | undefined) => {\n\t\tif (fixedWidth) return `width: ${fixedWidth}px`\n\t\treturn `grid-column: span ${span}; ${rowSpan > 1 ? `grid-row: span ${rowSpan}` : ''}`\n\t}\n\n\tconst renderForm = async (form: Form, sectionWrapper: (index: number, section: () => TemplateResult) => TemplateResult) => {\n\t\treturn await Promise.all(\n\t\t\tform.sections.map(async (s, idx) => {\n\t\t\t\tconst section = await Promise.all(s.fields.map((fieldOrGroup: Field | Group | Subform) => renderFieldGroupOrSubform(fieldOrGroup, 3)))\n\t\t\t\treturn sectionWrapper(idx, () => html` <div class=\"icure-form\">${section}</div>`)\n\t\t\t}),\n\t\t)\n\t}\n\n\treturn html`${await renderForm(form, sectionWrapper ?? ((idx, section) => section()))}`\n}\n"]}
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/renderer/form/form.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit'\nimport { Renderer, RendererProps } from '../index'\nimport { fieldValuesProvider, getValidationErrorProvider, handleMetadataChangedProvider, handleValueChangedProvider } from '../../../../utils/fields-values-provider'\nimport { FieldMetadata, FieldValue, Form, Field, Group, Subform, SortOptions } from '../../../model'\nimport { FormValuesContainer, Suggestion } from '../../../../generic'\n\nimport { defaultTranslationProvider } from '../../../../utils/languages'\nimport { getLabels } from '../../../common/utils'\nimport { filterAndSortOptionsFromFieldDefinition, sortSuggestions } from '../../../../utils/code-utils'\n\nimport './form-selection-button'\nimport { currentDate, currentDateTime, currentTime } from '../../../../utils/dates'\n\nexport const render: Renderer = async (\n\tform: Form,\n\tprops: RendererProps,\n\tformsValueContainer?: FormValuesContainer<FieldValue, FieldMetadata>,\n\ttranslationProvider?: (language: string, text: string) => string,\n\townersProvider: (terms: string[], ids?: string[], specialties?: string[]) => Promise<Suggestion[]> = async () => [],\n\toptionsProvider?: (language: string, codifications: string[], terms?: string[]) => Promise<Suggestion[]>,\n\tactionListener: (event: string, payload: unknown) => void = () => undefined,\n\tlanguages?: { [iso: string]: string },\n\treadonly?: boolean,\n\tdisplayMetadata?: boolean,\n\tsectionWrapper?: (index: number, section: () => TemplateResult) => TemplateResult,\n) => {\n\tconst composedOptionsProvider =\n\t\toptionsProvider && form.codifications\n\t\t\t? async (language: string, codifications: string[], terms?: string[], sortOptions?: SortOptions): Promise<Suggestion[]> => {\n\t\t\t\t\tconst originalOptions = optionsProvider ? await optionsProvider(language, codifications, terms) : []\n\t\t\t\t\treturn sortSuggestions(\n\t\t\t\t\t\toriginalOptions.concat(\n\t\t\t\t\t\t\tform.codifications\n\t\t\t\t\t\t\t\t?.filter((c) => codifications.includes(c.type))\n\t\t\t\t\t\t\t\t?.flatMap((c) =>\n\t\t\t\t\t\t\t\t\tc.codes\n\t\t\t\t\t\t\t\t\t\t.filter((c) => (terms ?? []).map((st) => st.toLowerCase()).every((st) => (c.label?.[language] ?? c.id).toLowerCase().includes(st)))\n\t\t\t\t\t\t\t\t\t\t.map((c) => ({ id: c.id, label: c.label ?? { [language]: c.id }, text: c.label?.[language] ?? c.id, terms: terms ?? [] })),\n\t\t\t\t\t\t\t\t) ?? [],\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\tsortOptions,\n\t\t\t\t\t)\n\t\t\t }\n\t\t\t: optionsProvider\n\t\t\t? (language: string, codifications: string[], terms?: string[], sortOptions?: SortOptions): Promise<Suggestion[]> => {\n\t\t\t\t\treturn optionsProvider?.(language, codifications, terms).then((codes) => sortSuggestions(codes, language, sortOptions)) ?? Promise.resolve([])\n\t\t\t }\n\t\t\t: undefined\n\n\tconst h = function (level: number, className = '', content: TemplateResult): TemplateResult {\n\t\treturn level === 1\n\t\t\t? html`<h1 class=\"${className}\">${content}</h1>`\n\t\t\t: level === 2\n\t\t\t? html`<h2 class=\"${className}\">${content}</h2>`\n\t\t\t: level === 3\n\t\t\t? html`<h3 class=\"${className}\">${content}</h3>`\n\t\t\t: level === 4\n\t\t\t? html`<h4 class=\"${className}\">${content}</h4>`\n\t\t\t: level === 5\n\t\t\t? html`<h5 class=\"${className}\">${content}</h5>`\n\t\t\t: html`<h6 class=\"${className}\">${content}</h6>`\n\t}\n\n\tasync function renderGroup(fg: Group, fgSpan: number, level: number) {\n\t\tconst tp = translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))\n\t\tconst subElements = (await Promise.all((fg.fields ?? []).map((fieldOrGroup: Field | Group) => renderFieldGroupOrSubform(fieldOrGroup, level + 1)))).filter((x) => !!x && x !== nothing)\n\t\tconst groupTitle = fg.translate && tp && props.language ? tp(props.language, fg.group) : fg.group\n\t\treturn subElements.length\n\t\t\t? html`<div class=\"${['group', fg.borderless ? undefined : 'bordered'].filter((x) => !!x).join(' ')}\" style=\"${calculateFieldOrGroupSize(fgSpan, 1)}\">\n\t\t\t\t\t${fg.borderless ? nothing : html`<div>${h(level, '', html`${groupTitle}`)}</div>`}\n\t\t\t\t\t<div class=\"icure-form\">${subElements}</div>\n\t\t\t </div>`\n\t\t\t: nothing\n\t}\n\n\tasync function renderSubform(fg: Subform, fgSpan: number, level: number) {\n\t\tconst children = (await formsValueContainer?.getChildren())?.filter((c) => c.getLabel() === fg.id)\n\t\tconst tp = translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))\n\t\treturn html`<div class=\"subform\" style=\"${calculateFieldOrGroupSize(fgSpan, 1)}\">\n\t\t\t<div class=\"subform__heading\">\n\t\t\t\t${h(level, 'subform__heading__title', html`${(props.language && fg.shortLabel ? tp?.(props.language, fg.shortLabel) : fg.shortLabel) ?? ''}`)}\n\t\t\t\t${readonly\n\t\t\t\t\t? nothing\n\t\t\t\t\t: html`<form-selection-button\n\t\t\t\t\t\t\t.label=\"${fg.labels.add ?? 'Add subform'}\"\n\t\t\t\t\t\t\t.forms=\"${Object.entries(fg.forms)}\"\n\t\t\t\t\t\t\t.formAdded=\"${(title: string, form: Form) => {\n\t\t\t\t\t\t\t\tform.id && formsValueContainer?.addChild(fg.id, form.id, fg.shortLabel ?? '')\n\t\t\t\t\t\t\t}}\"\n\t\t\t\t\t\t\t.translationProvider=\"${tp}\"\n\t\t\t\t\t\t\t.language=\"${props.language}\"\n\t\t\t\t\t ></form-selection-button>`}\n\t\t\t</div>\n\t\t\t${await children?.reduce(async (templatesPromise, child) => {\n\t\t\t\tconst templates = await templatesPromise\n\n\t\t\t\tconst childForm = Object.values(fg.forms).find((f) => f.id === child.getFormId())\n\t\t\t\tconst title = childForm?.form ?? childForm?.description\n\t\t\t\tconst localisedTitle = (title && tp && props.language ? tp?.(props.language, title) : title) ?? ''\n\t\t\t\tconst localisedRemove = (fg.labels.remove && tp && props.language ? tp?.(props.language, fg.labels.remove) : fg.labels.remove) ?? 'Remove'\n\t\t\t\tif (childForm) {\n\t\t\t\t\ttemplates.push(html`\n\t\t\t\t\t\t<div class=\"subform__child\">\n\t\t\t\t\t\t\t<h3 class=\"subform__child__title\">${localisedTitle}</h3>\n\t\t\t\t\t\t\t${await render(childForm, props, child, translationProvider, ownersProvider, optionsProvider, actionListener, languages, readonly, displayMetadata)}\n\t\t\t\t\t\t\t${readonly ? nothing : html` <button class=\"subform__removeBtn\" @click=\"${() => formsValueContainer?.removeChild?.(child)}\">${localisedRemove}</button>`}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`)\n\t\t\t\t}\n\t\t\t\treturn templates\n\t\t\t}, Promise.resolve([] as TemplateResult[]))}\n\t\t</div>`\n\t}\n\n\tasync function renderTextField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-text-field\n\t\t\tclass=\"icure-form-field\"\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan, fg.styleOptions?.width)}\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.multiline=\"${fg.multiline || false}\"\n\t\t\t.lines=${fgRowSpan}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.languages=\"${languages}\"\n\t\t\t.linksProvider=${fg.options?.linksProvider}\n\t\t\t.suggestionProvider=${fg.options?.suggestionProvider}\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.codeColorProvider=${fg.options?.codeColorProvider}\n\t\t\t.linkColorProvider=${fg.options?.linkColorProvider}\n\t\t\t.codeContentProvider=${fg.options?.codeContentProvider}\n\t\t\t.defaultValueProvider=${formsValueContainer?.getDefaultValueProvider(fg.field)}\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-text-field>`\n\t}\n\n\tasync function renderTokenField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-token-field\n\t\t\tclass=\"icure-form-field\"\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan, fg.styleOptions?.width)}\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.multiline=\"${fg.multiline || false}\"\n\t\t\t.lines=${fgRowSpan}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.suggestionProvider=${fg.options?.suggestionProvider}\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-token-field>`\n\t}\n\n\tasync function renderItemsListField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-items-list-field\n\t\t\tclass=\"icure-form-field\"\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan, fg.styleOptions?.width)}\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.multiline=\"${fg.multiline || false}\"\n\t\t\t.lines=${fgRowSpan}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.suggestionProvider=${fg.options?.suggestionProvider}\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-items-list-field>`\n\t}\n\n\tasync function renderMeasureField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-measure-field\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\tunit=\"${fg.unit}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-measure-field>`\n\t}\n\n\tasync function renderNumberField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-number-field\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-number-field>`\n\t}\n\n\tasync function renderDatePicker(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-date-picker\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.now ? currentDate() : fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-date-picker>`\n\t}\n\n\tasync function renderTimePicker(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-time-picker\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.now ? currentTime() : fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-time-picker>`\n\t}\n\n\tasync function renderDateTimePicker(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-date-time-picker\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\tlabel=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\tvalue=\"${fg.now ? currentDateTime() : fg.value}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-date-time-picker>`\n\t}\n\n\tasync function renderDropdownField(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-dropdown-field\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.label=${fg.field}\n\t\t\t.displayedLabels=${getLabels(fg)}\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translate=\"${fg.translate}\"\n\t\t\t.sortOptions=\"${fg.sortOptions}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.codifications=\"${fg.codifications}\"\n\t\t\t.optionsProvider=\"${composedOptionsProvider && fg.codifications?.length\n\t\t\t\t? (language: string, terms?: string[]) => composedOptionsProvider(language, fg.codifications ?? [], terms, fg.sortOptions)\n\t\t\t\t: (language: string, terms?: string[]) => filterAndSortOptionsFromFieldDefinition(language, fg, translationProvider, terms)}\"\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-dropdown-field>`\n\t}\n\n\tasync function renderRadioButtons(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-radio-button\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.label=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translate=\"${fg.translate}\"\n\t\t\t.sortOptions=\"${fg.sortOptions}\"\n\t\t\t.codifications=\"${fg.codifications}\"\n\t\t\t.optionsProvider=\"${composedOptionsProvider && fg.codifications?.length\n\t\t\t\t? (language: string, terms?: string[]) => composedOptionsProvider(language, fg.codifications ?? [], terms, fg.sortOptions)\n\t\t\t\t: (language: string, terms?: string[]) => filterAndSortOptionsFromFieldDefinition(language, fg, translationProvider, terms)}\"\n\t\t\t.ownersProvider=${ownersProvider}\n\t\t\t.translationProvider=${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\n\t\t\t.handleValueChanged=${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\n\t\t\t.handleMetadataChanged=${handleMetadataChangedProvider(formsValueContainer)}\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-radio-button>`\n\t}\n\n\tasync function renderCheckboxes(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html` <icure-form-checkbox\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.label=\"${fg.field}\"\n\t\t\t.displayedLabels=\"${getLabels(fg)}\"\n\t\t\t.displayMetadata=\"${displayMetadata}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translate=\"${fg.translate}\"\n\t\t\t.sortOptions=\"${fg.sortOptions}\"\n\t\t\tvalue=\"${fg.value}\"\n\t\t\t.codifications=\"${fg.codifications}\"\n\t\t\t.optionsProvider=\"${composedOptionsProvider && fg.codifications?.length\n\t\t\t\t? (language: string, terms?: string[]) => composedOptionsProvider(language, fg.codifications ?? [], terms, fg.sortOptions)\n\t\t\t\t: (language: string, terms?: string[]) => filterAndSortOptionsFromFieldDefinition(language, fg, translationProvider, terms)}\"\n\t\t\t.ownersProvider=\"${ownersProvider}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.valueProvider=\"${formsValueContainer && fieldValuesProvider(formsValueContainer, fg)}\"\n\t\t\t.metadataProvider=\"${formsValueContainer && formsValueContainer.getMetadata.bind(formsValueContainer)}\"\n\t\t\t.handleValueChanged=\"${handleValueChangedProvider(formsValueContainer, fg, props.defaultOwner)}\"\n\t\t\t.handleMetadataChanged=\"${handleMetadataChangedProvider(formsValueContainer)}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-checkbox>`\n\t}\n\n\tasync function renderButton(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-button\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-button\"\n\t\t\tlabel=\"${fg.shortLabel ?? fg.field}\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.actionListener=\"${actionListener}\"\n\t\t\t.event=\"${fg.event !== undefined ? fg.event : fg.computedProperties?.event ? !(await formsValueContainer?.compute(fg.computedProperties?.event)) : 'submit'}\"\n\t\t\t.payload=\"${fg.payload !== undefined ? fg.payload : fg.computedProperties?.payload ? !(await formsValueContainer?.compute(fg.computedProperties?.payload)) : undefined}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t></icure-form-button>`\n\t}\n\n\tasync function renderLabel(fgSpan: number, fgRowSpan: number, fg: Field) {\n\t\treturn html`<icure-form-label\n\t\t\tstyle=\"${calculateFieldOrGroupSize(fgSpan, fgRowSpan)}\"\n\t\t\tclass=\"icure-form-field\"\n\t\t\t.defaultLanguage=\"${props.language}\"\n\t\t\tlabelPosition=${props.labelPosition}\n\t\t\tlabel=\"${fg.shortLabel ?? fg.field}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationErrorProvider(formsValueContainer, fg)}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !(await formsValueContainer?.compute(fg.computedProperties?.readonly)) : false)}\"\n\t\t></icure-form-label>`\n\t}\n\n\tconst renderFieldGroupOrSubform = async function (fg: Field | Group | Subform, level: number): Promise<TemplateResult | TemplateResult[] | typeof nothing> {\n\t\tif (!fg) {\n\t\t\treturn nothing\n\t\t}\n\t\tconst computedProperties = (await Object.keys(fg.computedProperties ?? {})\n\t\t\t.filter((k) => k !== 'value' && k !== 'defaultValue')\n\t\t\t.reduce(async (acc, k) => ({ ...(await acc), [k]: fg.computedProperties?.[k] && (await formsValueContainer?.compute(fg.computedProperties[k])) }), Promise.resolve({}))) as {\n\t\t\t[key: string]: string | number | boolean | undefined\n\t\t}\n\t\tif (computedProperties['hidden']) {\n\t\t\treturn nothing\n\t\t}\n\n\t\tconst fgSpan = (computedProperties['span'] ?? fg.span ?? 6) as number\n\t\tconst fgRowSpan = (computedProperties['rowSpan'] ?? fg.rowSpan ?? 1) as number\n\n\t\tif (fg.clazz === 'group' && fg.fields?.length) {\n\t\t\treturn await renderGroup((fg as Group).copyIfNeeded({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'subform' && (fg.id || computedProperties['title'])) {\n\t\t\treturn await renderSubform((fg as Subform).copyIfNeeded({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'field') {\n\t\t\tconst field = fg.copyIfNeeded({ ...computedProperties })\n\t\t\treturn html`${fg.type === 'text-field'\n\t\t\t\t? await renderTextField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'measure-field'\n\t\t\t\t? await renderMeasureField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'token-field'\n\t\t\t\t? await renderTokenField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'items-list-field'\n\t\t\t\t? await renderItemsListField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'number-field'\n\t\t\t\t? await renderNumberField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-picker'\n\t\t\t\t? await renderDatePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'time-picker'\n\t\t\t\t? await renderTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-time-picker'\n\t\t\t\t? await renderDateTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'dropdown-field'\n\t\t\t\t? await renderDropdownField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'radio-button'\n\t\t\t\t? await renderRadioButtons(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'checkbox'\n\t\t\t\t? await renderCheckboxes(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'label'\n\t\t\t\t? await renderLabel(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'action'\n\t\t\t\t? await renderButton(fgSpan, fgRowSpan, field)\n\t\t\t\t: ''}`\n\t\t}\n\t\treturn html``\n\t}\n\n\tconst calculateFieldOrGroupSize = (span: number, rowSpan: number, fixedWidth?: number | undefined) => {\n\t\tif (fixedWidth) return `width: ${fixedWidth}px`\n\t\treturn `grid-column: span ${span}; ${rowSpan > 1 ? `grid-row: span ${rowSpan}` : ''}`\n\t}\n\n\tconst renderForm = async (form: Form, sectionWrapper: (index: number, section: () => TemplateResult) => TemplateResult) => {\n\t\treturn await Promise.all(\n\t\t\tform.sections.map(async (s, idx) => {\n\t\t\t\tconst section = await Promise.all(s.fields.map((fieldOrGroup: Field | Group | Subform) => renderFieldGroupOrSubform(fieldOrGroup, 3)))\n\t\t\t\treturn sectionWrapper(idx, () => html` <div class=\"icure-form\">${section}</div>`)\n\t\t\t}),\n\t\t)\n\t}\n\n\treturn html`${await renderForm(form, sectionWrapper ?? ((idx, section) => section()))}`\n}\n"]}
@@ -6,7 +6,7 @@ import { DecimalSchema } from '../icure-text-field/schema/decimal-schema';
6
6
  import { MeasureSchema } from '../icure-text-field/schema/measure-schema';
7
7
  export interface Code {
8
8
  id: string;
9
- label: {
9
+ label?: {
10
10
  [key: string]: string;
11
11
  };
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/model/index.ts"],"names":[],"mappings":"AAkEA,SAAS,UAAU,CAAI,MAAS,EAAE,UAAsB;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAgB,CAAA;IACnD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACxE,CAAC;AAWD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAA4B,EAAE,CAA4B,EAAW,EAAE;IAC3F,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACb,CAAC;IACD,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,OAAK,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,CAAA,EAAE,CAAC;QACzB,OAAO,KAAK,CAAA;IACb,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAChG,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC,CAAA;AAyBD,MAAM,OAAgB,KAAK;IA4B1B,KAAK;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,YACC,IAAe,EACf,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,GAAG,EACH,SAAS,EACT,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,OAAO,GAwBP;QAhFF,UAAK,GAAG,OAAgB,CAAA;QAkFvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,KAAK,CAAA;QACnC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACvB,CAAC;IAID,MAAM,CAAC,KAAK,CAAC,IAAW;;QACvB,OAAO,CACN,MAAA,MAAA,MACC;YACC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC1D,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAChE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC5D,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YACrE,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC9D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC5D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC5D,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YACrE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC1D,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC9D,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YACrD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;YAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG;SAElD,EAAC,IAAI,CAAC,IAAc,CAAC,kDAAI,mCAAI,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,oBAAO,IAAI,EAAG,CACpE,CAAA;IACF,CAAC;IAED,qCAAqC;IACrC,MAAM;;QAmCL,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAA;IACF,CAAC;CACD;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IACnC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,GAoBZ;QAED,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE;YAC1B,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,MAAM,EAAE,MAAM,IAAI,wBAAwB;YAC1C,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,SAAS,EAAE,SAAS;YACpB,kBAAkB;YAClB,UAAU;YACV,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IAEQ,YAAY,CAAC,UAA8B;QACnD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACnG,CAAC;CACD;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACtC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,GAkBZ;QAED,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE;YAC7B,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IACQ,YAAY,CAAC,UAAiC;QACtD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACtG,CAAC;CACD;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACrC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,GAkBZ;QAED,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE;YAC5B,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IACQ,YAAY,CAAC,UAAgC;QACrD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACrG,CAAC;CACD;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IACpC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,GAkBZ;QAED,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE;YAC3B,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IACQ,YAAY,CAAC,UAA+B;QACpD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACpG,CAAC;CACD;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACxC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,GAkBZ;QAED,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE;YAChC,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IACQ,YAAY,CAAC,UAAmC;QACxD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACxG,CAAC;CACD;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IACpC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,EACV,GAAG,EACH,SAAS,EACT,KAAK,EACL,YAAY,GAmBZ;QAED,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE;YAC3B,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,GAAG;YACH,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IACQ,YAAY,CAAC,UAA+B;QACpD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACpG,CAAC;CACD;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IACpC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,EACV,GAAG,EACH,SAAS,EACT,KAAK,EACL,YAAY,GAmBZ;QAED,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE;YAC3B,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,GAAG;YACH,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IACQ,YAAY,CAAC,UAA+B;QACpD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACpG,CAAC;CACD;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACxC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,EACV,GAAG,EACH,SAAS,EACT,KAAK,EACL,YAAY,GAmBZ;QAED,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE;YAChC,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,MAAM;YACN,KAAK;YACL,IAAI;YACJ,kBAAkB;YAClB,UAAU;YACV,GAAG;YACH,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IACQ,YAAY,CAAC,UAAmC;QACxD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACxG,CAAC;CACD;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACvC,YACC,KAAa,EACb,OAiBC;;QAED,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,SAAS,CAAA;IACpD,CAAC;IACQ,YAAY,CAAC,UAAkC;QACvD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACvG,CAAC;CACD;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACrC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,WAAW,EACX,KAAK,EACL,YAAY,EACZ,QAAQ,GAkBR;QAED,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE;YAC5B,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,KAAK;YACL,kBAAkB;YAClB,UAAU;YACV,SAAS;YACT,KAAK;YACL,YAAY;YACZ,QAAQ;SACR,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,SAAS,CAAA;IAC5C,CAAC;IACQ,YAAY,CAAC,UAAgC;QACrD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACrG,CAAC;CACD;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IAClC,YACC,KAAa,EACb,EACC,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,WAAW,EACX,KAAK,EACL,YAAY,GAiBZ;QAED,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE;YACxB,UAAU;YACV,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,QAAQ;YACR,OAAO;YACP,KAAK;YACL,kBAAkB;YAClB,UAAU;YACV,SAAS;YACT,KAAK;YACL,YAAY;SACZ,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,SAAS,CAAA;IAC5C,CAAC;IACQ,YAAY,CAAC,UAA6B;QAClD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAClG,CAAC;CACD;AACD,MAAM,OAAO,KAAM,SAAQ,KAAK;IAC/B,YAAY,KAAa,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAA6E;QAChI,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,CAAC;IACQ,YAAY,CAAC,UAA0B;QAC/C,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/F,CAAC;CACD;AAED,MAAM,OAAO,MAAO,SAAQ,KAAK;IAChC,YAAY,KAAa,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAgH;QACnL,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACpE,CAAC;IACQ,YAAY,CAAC,UAA2B;QAChD,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAChG,CAAC;CACD;AAED,MAAM,OAAO,KAAK;IAYjB,YACC,KAAa,EACb,MAAsC,EACtC,EACC,IAAI,EACJ,OAAO,EACP,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,KAAK,EACL,YAAY,GASZ;QA9BF,UAAK,GAAG,OAAgB,CAAA;QAgCvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,CAAA;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACjC,CAAC;IAED,YAAY,CAAC,UAA0B;;QACtC,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAClH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,EACZ,UAAU,EACV,IAAI,EACJ,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,SAAS,EACT,KAAK,GAUL;QACA,OAAO,IAAI,KAAK,CACf,KAAK,EACL,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAChD,CAAW,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAU,CAAC;YACzB,CAAC,CAAE,CAAoC,CAAC,SAAS,CAAC,IAAK,CAAa,CAAC,OAAO,CAAC,IAAK,CAAa,CAAC,MAAM,CAAC;gBACvG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAkC,CAAC;gBACnD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAU,CAAC,CAC1B,EACD;YACC,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,SAAS;YACpB,kBAAkB,EAAE,kBAAkB;YACtC,KAAK,EAAE,KAAK;SACZ,CACD,CAAA;IACF,CAAC;IAED,MAAM;;QACL,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1D,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,SAAS;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAA;IACF,CAAC;CACD;AAED,MAAM,OAAO,OAAO;IAanB,YACC,KAAa,EACb,KAA8B,EAC9B,EACC,EAAE,EACF,UAAU,EACV,IAAI,EACJ,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,MAAM,GAWN;QAnCF,UAAK,GAAG,SAAkB,CAAA;QAqCzB,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,KAAK,CAAA;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;IAC3B,CAAC;IAED,YAAY,CAAC,UAA4B;QACxC,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,kCAAO,IAAI,GAAK,UAAU,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1G,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAYZ;;QACA,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,EAAE;YAClD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,CAAC,CAAA;IACH,CAAC;IAED,MAAM;QACL,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtF,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAA;IACF,CAAC;CACD;AACD,MAAM,OAAO,OAAO;IAMnB,YAAY,KAAa,EAAE,MAAsC,EAAE,WAAoB,EAAE,QAAmB;QAC3G,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAOZ;;QACA,OAAO,IAAI,OAAO,CACjB,IAAI,CAAC,OAAO,EACZ,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CACrF,CAAW,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAU,CAAC;YACzB,CAAC,CAAE,CAAoC,CAAC,SAAS,CAAC,IAAK,CAAa,CAAC,OAAO,CAAC,IAAK,CAAa,CAAC,MAAM,CAAC;gBACvG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAkC,CAAC;gBACnD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAU,CAAC,CAC1B,EACD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,CACb,CAAA;IACF,CAAC;IAED,MAAM;QAML,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACzG,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAA;IACF,CAAC;CACD;AAED,MAAM,OAAO,YAAY;IAIxB,YAAY,IAAY,EAAE,KAAa;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAqC;QACjD,OAAO,IAAI,YAAY,CACtB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,uCAAY,IAAI,KAAE,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAE;YACpD,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,uCAAY,IAAI,KAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAE;YACvC,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC,CAAC,CACF,CAAA;IACF,CAAC;IAED,qCAAqC;IACrC,MAAM;QACL,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAA;IACF,CAAC;CACD;AAED,MAAM,OAAO,gBAAgB;IAI5B,YAAY,QAAgB,EAAE,YAAuC;QACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAmE;QAC/E,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAC9D,CAAC;IAED,qCAAqC;IACrC,MAAM;QACL,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAA;IACF,CAAC;CACD;AAED,MAAM,OAAO,IAAI;IAShB,YAAY,KAAa,EAAE,QAAmB,EAAE,EAAW,EAAE,WAAoB,EAAE,QAAmB,EAAE,aAA8B,EAAE,YAAiC;QACxK,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,KAAK,CACX,IASC,EACD,UAAkB,EAAE,EACpB,WAAoC,EAAE;;QAEtC,MAAM,MAAM,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,IAAI,EACT,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC3D,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,MAAA,IAAI,CAAC,aAAa,0CAAE,GAAG,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACnE,MAAA,IAAI,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1E,CAAA;QAED,MAAM,WAAW,mCAAQ,QAAQ,GAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAE,CAAA;QAE7D,MAAM,mCAAmC,GAAG,CAAC,CAAU,EAAE,aAAuB,EAAE,EAAE;;YACnF,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAA;YACpE,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,MAAC,CAAa,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;gBACnE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,iCAAM,OAAO,KAAE,EAAE,EAAE,CAAC,KAAI,OAAO,EAAE,WAAW,CAAC,CAAA;YACrE,CAAC,CAAC,CACD;YAAA,MAAC,CAAa,CAAC,IAAI,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,MAAM,OAAO,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,CAAA;gBAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,iCAAM,OAAO,KAAE,EAAE,EAAE,CAAC,KAAI,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;gBAChH,IAAI,CAAC,IAAI,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,0EAA0E,CAAC,CAAA;gBACxG,CAAC;gBACD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YAClB,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gCAAgC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC/F,CAAC,CAAA;QAED,MAAM,gCAAgC,GAAG,CAAC,CAAO,EAAE,gBAA0B,EAAE,EAAE,EAAE;YAClF,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAU,EAAE,EAAE;gBACjC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAA0B,EAAE,EAAE;oBAC/C,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;wBACzB,iCAAiC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;oBACpD,CAAC;yBAAM,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAClC,mCAAmC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;oBACtD,CAAC;gBACF,CAAC,CAAC,CAAA;YACH,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,CAAA;QACT,CAAC,CAAA;QAED,MAAM,iCAAiC,GAAG,CAAC,CAAQ,EAAE,aAAuB,EAAE,EAAE;;YAC/E,MAAA,CAAC,CAAC,MAAM,0CAAE,OAAO,CAAC,CAAC,CAA0B,EAAE,EAAE;gBAChD,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBACzB,iCAAiC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;gBACpD,CAAC;qBAAM,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAClC,mCAAmC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;gBACtD,CAAC;YACF,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,CAAA;QACT,CAAC,CAAA;QAED,OAAO,gCAAgC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,qCAAqC;IACrC,MAAM;QAML,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACvD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAA;IACF,CAAC;CACD","sourcesContent":["import { DocumentSchema, InlineSchema, StyledSchema } from '../icure-text-field/schema/markdown-schema'\nimport { TokensSchema } from '../icure-text-field/schema/token-schema'\nimport { ItemsListSchema } from '../icure-text-field/schema/items-list-schema'\nimport { DateSchema, DateTimeSchema, TimeSchema } from '../icure-text-field/schema/date-time-schema'\nimport { DecimalSchema } from '../icure-text-field/schema/decimal-schema'\nimport { MeasureSchema } from '../icure-text-field/schema/measure-schema'\n\nexport interface Code {\n\tid: string\n\tlabel: { [key: string]: string }\n}\n\nexport interface FieldMetadata {\n\tlabel: string\n\tindex?: number\n\tvalueDate?: number\n\towner?: string\n\ttags?: Code[]\n\n\t//The metadata values that are considered as exceptional\n\tdiscordantMetadata?: () => Partial<FieldMetadata>\n}\n\nexport interface FieldValue {\n\tcontent: { [language: string]: PrimitiveType }\n\tcodes?: Code[]\n}\n\nexport type PrimitiveType = StringType | NumberType | BooleanType | TimestampType | DateTimeType | MeasureType | CompoundType\n\nexport interface StringType {\n\ttype: 'string'\n\tvalue: string\n}\n\nexport interface NumberType {\n\ttype: 'number'\n\tvalue: number\n}\n\nexport interface BooleanType {\n\ttype: 'boolean'\n\tvalue: boolean\n}\n\nexport interface TimestampType {\n\ttype: 'timestamp'\n\tvalue: number\n}\n\nexport interface DateTimeType {\n\ttype: 'datetime'\n\tvalue: number\n}\n\nexport interface MeasureType {\n\ttype: 'measure'\n\tvalue?: number\n\tunit?: string\n}\n\nexport interface CompoundType {\n\ttype: 'compound'\n\tvalue: { [label: string]: PrimitiveType }\n}\n\nfunction hasChanges<T>(target: T, properties: Partial<T>): boolean {\n\tconst keys = Object.keys(properties) as (keyof T)[]\n\treturn keys.length > 0 && keys.some((k) => target[k] !== properties[k])\n}\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom' | 'float' | 'add' | 'remove'\n\nexport type Labels = Partial<Record<Position, string>>\n\nexport interface SortOptions {\n\tsort: 'asc' | 'desc' | 'natural'\n\tpromotions?: string\n}\n\nexport const pteq = (a: PrimitiveType | undefined, b: PrimitiveType | undefined): boolean => {\n\tif (a === b) {\n\t\treturn true\n\t}\n\tif (a === undefined || b === undefined) {\n\t\treturn false\n\t}\n\tif (a?.type !== b?.type) {\n\t\treturn false\n\t}\n\tif (a.value === b.value && (a.type !== 'measure' || b.type !== 'measure' || a.unit === b.unit)) {\n\t\treturn true\n\t}\n\tif (a.type === 'compound' && b.type === 'compound') {\n\t\treturn Object.keys(a.value).every((k) => pteq(a.value[k], b.value[k]))\n\t}\n\treturn false\n}\n\nexport type IcureTextFieldSchema = DocumentSchema | TokensSchema | ItemsListSchema | StyledSchema | InlineSchema | DateSchema | TimeSchema | DateTimeSchema | DecimalSchema | MeasureSchema\n\ntype FieldType =\n\t| 'text-field'\n\t| 'measure-field'\n\t| 'number-field'\n\t| 'token-field'\n\t| 'items-list-field'\n\t| 'date-picker'\n\t| 'time-picker'\n\t| 'date-time-picker'\n\t| 'multiple-choice'\n\t| 'dropdown-field'\n\t| 'radio-button'\n\t| 'checkbox'\n\t| 'label'\n\t| 'action'\n\nexport interface Validator {\n\tvalidation: string\n\tmessage: string\n}\n\nexport abstract class Field {\n\tclazz = 'field' as const\n\tfield: string\n\ttype: FieldType\n\tshortLabel?: string\n\tspan?: number\n\trowSpan?: number\n\tgrows: boolean\n\tschema?: IcureTextFieldSchema\n\ttags?: string[]\n\tcodifications?: string[]\n\treadonly?: boolean\n\toptions?: { [_key: string]: unknown }\n\tlabels?: Labels\n\tvalue?: string\n\tunit?: string\n\tmultiline?: boolean\n\tcomputedProperties?: { [_key: string]: string }\n\tvalidators?: Validator[]\n\tnow?: boolean\n\ttranslate?: boolean\n\tsortOptions?: SortOptions\n\twidth?: number\n\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\thasOther?: boolean\n\tevent?: string\n\tpayload?: unknown\n\n\tlabel(): string {\n\t\treturn this.field\n\t}\n\n\tprotected constructor(\n\t\ttype: FieldType,\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t\tevent,\n\t\t\tpayload,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t\thasOther?: boolean\n\t\t\tevent?: string\n\t\t\tpayload?: unknown\n\t\t},\n\t) {\n\t\tthis.field = label\n\t\tthis.type = type\n\t\tthis.shortLabel = shortLabel\n\t\tthis.grows = grows === undefined ? true : grows\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.schema = schema\n\t\tthis.tags = tags\n\t\tthis.codifications = codifications\n\t\tthis.readonly = readonly || false\n\t\tthis.options = options\n\t\tthis.labels = labels\n\t\tthis.value = value\n\t\tthis.unit = unit\n\t\tthis.multiline = multiline || false\n\t\tthis.computedProperties = computedProperties\n\t\tthis.validators = validators\n\t\tthis.now = now\n\t\tthis.translate = translate ?? true\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.hasOther = hasOther\n\t\tthis.event = event\n\t\tthis.payload = payload\n\t}\n\n\tabstract copyIfNeeded(properties: Partial<Field>): Field\n\n\tstatic parse(json: Field): Field {\n\t\treturn (\n\t\t\t(\n\t\t\t\t{\n\t\t\t\t\t'text-field': () => new TextField(json.field, { ...json }),\n\t\t\t\t\t'measure-field': () => new MeasureField(json.field, { ...json }),\n\t\t\t\t\t'token-field': () => new TokenField(json.field, { ...json }),\n\t\t\t\t\t'items-list-field': () => new ItemsListField(json.field, { ...json }),\n\t\t\t\t\t'number-field': () => new NumberField(json.field, { ...json }),\n\t\t\t\t\t'date-picker': () => new DatePicker(json.field, { ...json }),\n\t\t\t\t\t'time-picker': () => new TimePicker(json.field, { ...json }),\n\t\t\t\t\t'date-time-picker': () => new DateTimePicker(json.field, { ...json }),\n\t\t\t\t\tdropdown: () => new DropdownField(json.field, { ...json }),\n\t\t\t\t\t'radio-button': () => new RadioButton(json.field, { ...json }),\n\t\t\t\t\tcheckbox: () => new CheckBox(json.field, { ...json }),\n\t\t\t\t\tlabel: () => new Label(json.field, { ...json }),\n\t\t\t\t\taction: () => new Button(json.field, { ...json }),\n\t\t\t\t} as { [key: string]: () => Field }\n\t\t\t)[json.type as string]?.() ?? new TextField(json.field, { ...json })\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tgrows: boolean | undefined\n\t\tschema: string | undefined\n\t\tspan: number | undefined\n\t\tcodifications: string[] | undefined\n\t\ttype:\n\t\t\t| 'text-field'\n\t\t\t| 'measure-field'\n\t\t\t| 'number-field'\n\t\t\t| 'token-field'\n\t\t\t| 'items-list-field'\n\t\t\t| 'date-picker'\n\t\t\t| 'time-picker'\n\t\t\t| 'date-time-picker'\n\t\t\t| 'multiple-choice'\n\t\t\t| 'dropdown-field'\n\t\t\t| 'radio-button'\n\t\t\t| 'checkbox'\n\t\t\t| 'label'\n\t\t\t| 'action'\n\t\ttranslate: boolean | undefined\n\t\ttags: string[] | undefined\n\t\tlabels: Labels | undefined\n\t\tunit: string | undefined\n\t\tfield: string\n\t\tstyleOptions: { width: number; direction: string; span: number; rows: number; alignItems: string } | undefined\n\t\tsortOptions: SortOptions | undefined\n\t\tmultiline: boolean | undefined\n\t\tnow: boolean | undefined\n\t\toptions: { [_key: string]: unknown } | undefined\n\t\twidth: number | undefined\n\t\tshortLabel: string | undefined\n\t\tcomputedProperties: { [key: string]: string } | undefined\n\t\tvalue: string | undefined\n\t} {\n\t\treturn {\n\t\t\tfield: this.field,\n\t\t\ttype: this.type,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tgrows: this.grows,\n\t\t\tspan: this.span,\n\t\t\tschema: this.schema?.toString(),\n\t\t\ttags: this.tags,\n\t\t\tcodifications: this.codifications,\n\t\t\toptions: this.options,\n\t\t\tlabels: this.labels,\n\t\t\tvalue: this.value,\n\t\t\tunit: this.unit,\n\t\t\tmultiline: this.multiline,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tnow: this.now,\n\t\t\ttranslate: this.translate,\n\t\t\tsortOptions: this.sortOptions,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\n\nexport class TextField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('text-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema: schema || 'styled-text-with-codes',\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline: multiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\n\toverride copyIfNeeded(properties: Partial<TextField>): TextField {\n\t\treturn hasChanges(this, properties) ? new TextField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class MeasureField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('measure-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<MeasureField>): MeasureField {\n\t\treturn hasChanges(this, properties) ? new MeasureField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class NumberField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('number-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<NumberField>): NumberField {\n\t\treturn hasChanges(this, properties) ? new NumberField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class TokenField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('token-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<TokenField>): TokenField {\n\t\treturn hasChanges(this, properties) ? new TokenField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class ItemsListField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('items-list-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<ItemsListField>): ItemsListField {\n\t\treturn hasChanges(this, properties) ? new ItemsListField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DatePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<DatePicker>): DatePicker {\n\t\treturn hasChanges(this, properties) ? new DatePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class TimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<TimePicker>): TimePicker {\n\t\treturn hasChanges(this, properties) ? new TimePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DateTimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<DateTimePicker>): DateTimePicker {\n\t\treturn hasChanges(this, properties) ? new DateTimePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DropdownField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\toptions: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('dropdown-field', label, {\n\t\t\tshortLabel: options.shortLabel,\n\t\t\tgrows: options.grows,\n\t\t\tspan: options.span,\n\t\t\ttags: options.tags,\n\t\t\tcodifications: options.codifications,\n\t\t\toptions: options.options,\n\t\t\tlabels: options.labels,\n\t\t\tvalidators: options.validators,\n\t\t\tvalue: options.value,\n\t\t\tcomputedProperties: options.computedProperties,\n\t\t\ttranslate: options.translate,\n\t\t\twidth: options.width,\n\t\t\tstyleOptions: options.styleOptions,\n\t\t})\n\t\tthis.sortOptions = options.sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<DropdownField>): DropdownField {\n\t\treturn hasChanges(this, properties) ? new DropdownField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class RadioButton extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\thasOther?: boolean\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('radio-button', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<RadioButton>): RadioButton {\n\t\treturn hasChanges(this, properties) ? new RadioButton(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class CheckBox extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('checkbox', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<CheckBox>): CheckBox {\n\t\treturn hasChanges(this, properties) ? new CheckBox(this.field, { ...this, ...properties }) : this\n\t}\n}\nexport class Label extends Field {\n\tconstructor(label: string, { shortLabel, grows, span }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number }) {\n\t\tsuper('label', label, { shortLabel, grows, span })\n\t}\n\toverride copyIfNeeded(properties: Partial<Label>): Label {\n\t\treturn hasChanges(this, properties) ? new Label(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class Button extends Field {\n\tconstructor(label: string, { shortLabel, grows, span, event, payload }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number; event?: string; payload?: unknown }) {\n\t\tsuper('action', label, { shortLabel, grows, span, event, payload })\n\t}\n\toverride copyIfNeeded(properties: Partial<Button>): Button {\n\t\treturn hasChanges(this, properties) ? new Button(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class Group {\n\tclazz = 'group' as const\n\tgroup: string\n\tborderless: boolean\n\ttranslate: boolean\n\tfields?: Array<Field | Group | Subform>\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\n\tconstructor(\n\t\ttitle: string,\n\t\tfields: Array<Field | Group | Subform>,\n\t\t{\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tborderless,\n\t\t\ttranslate,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tborderless?: boolean\n\t\t\ttranslate?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t},\n\t) {\n\t\tthis.group = title\n\t\tthis.fields = fields\n\t\tthis.borderless = borderless ?? false\n\t\tthis.translate = translate ?? true\n\t\tthis.fields = fields\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t}\n\n\tcopyIfNeeded(properties: Partial<Group>): Group {\n\t\treturn hasChanges(this, properties) ? new Group(this.group, this.fields ?? [], { ...this, ...properties }) : this\n\t}\n\n\tstatic parse({\n\t\tborderless,\n\t\tspan,\n\t\tcomputedProperties,\n\t\tfields,\n\t\tgroup,\n\t\ttranslate,\n\t\twidth,\n\t}: {\n\t\tgroup: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tborderless?: boolean\n\t\ttranslate?: boolean\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t}): Group {\n\t\treturn new Group(\n\t\t\tgroup,\n\t\t\t(fields || []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: span,\n\t\t\t\tborderless: borderless,\n\t\t\t\ttranslate: translate,\n\t\t\t\tcomputedProperties: computedProperties,\n\t\t\t\twidth: width,\n\t\t\t},\n\t\t)\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tgroup: this.group,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tfields: this.fields?.map((f: Field | Group) => f.toJson()),\n\t\t\tborderless: this.borderless,\n\t\t\ttranslatable: this.translate,\n\t\t\tspan: this.span,\n\t\t\twidth: this.width,\n\t\t}\n\t}\n}\n\nexport class Subform {\n\tclazz = 'subform' as const\n\tid: string\n\tshortLabel?: string\n\trefs?: string[]\n\tforms: { [key: string]: Form }\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\tlabels: Labels\n\n\tconstructor(\n\t\ttitle: string,\n\t\tforms: { [key: string]: Form },\n\t\t{\n\t\t\tid,\n\t\t\tshortLabel,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\trefs,\n\t\t\tlabels,\n\t\t}: {\n\t\t\tid?: string\n\t\t\tshortLabel?: string\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t\trefs?: string[]\n\t\t\tlabels?: Labels\n\t\t},\n\t) {\n\t\tthis.id = id || title\n\t\tthis.shortLabel = shortLabel\n\t\tthis.forms = forms\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.refs = refs\n\t\tthis.labels = labels ?? {}\n\t}\n\n\tcopyIfNeeded(properties: Partial<Subform>): Subform {\n\t\treturn hasChanges(this, properties) ? new Subform(this.id, this.forms, { ...this, ...properties }) : this\n\t}\n\n\tstatic parse(json: {\n\t\tsubform: string\n\t\tshortLabel?: string\n\t\tforms?: { [key: string]: Form }\n\t\trefs?: string[]\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t\tstyleOptions?: { [_key: string]: unknown }\n\t\tlabels?: Labels\n\t\tid: string\n\t}): Subform {\n\t\treturn new Subform(json.subform, json.forms ?? {}, {\n\t\t\tid: json.id,\n\t\t\tshortLabel: json.shortLabel,\n\t\t\tspan: json.span,\n\t\t\tcomputedProperties: json.computedProperties,\n\t\t\twidth: json.width,\n\t\t\tstyleOptions: json.styleOptions,\n\t\t\trefs: json.refs,\n\t\t\tlabels: json.labels,\n\t\t})\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tsubform: this.id,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tforms: Object.fromEntries(Object.entries(this.forms).map(([k, f]) => [k, f.toJson()])),\n\t\t\tspan: this.span,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\nexport class Section {\n\tsection: string\n\tfields: Array<Field | Group | Subform>\n\tdescription?: string\n\tkeywords?: string[]\n\n\tconstructor(title: string, fields: Array<Field | Group | Subform>, description?: string, keywords?: string[]) {\n\t\tthis.section = title\n\t\tthis.fields = fields\n\t\tthis.description = description\n\t\tthis.keywords = keywords\n\t}\n\n\tstatic parse(json: {\n\t\tsection: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tgroups?: Array<Field | Group | Subform>\n\t\tsections?: Array<Field | Group | Subform>\n\t\tdescription?: string\n\t\tkeywords?: string[]\n\t}): Section {\n\t\treturn new Section(\n\t\t\tjson.section,\n\t\t\t(json.fields ?? json.groups ?? json.sections ?? []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t)\n\t}\n\n\ttoJson(): {\n\t\tsection: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tfields: (Field | Group | Subform)[]\n\t} {\n\t\treturn {\n\t\t\tsection: this.section,\n\t\t\tfields: this.fields.map((f: Field | Group | Subform) => (f && f.toJson ? f.toJson() : JSON.stringify(f))),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n\nexport class Codification {\n\ttype: string\n\tcodes: Code[]\n\n\tconstructor(type: string, codes: Code[]) {\n\t\tthis.type = type\n\t\tthis.codes = codes\n\t}\n\n\tstatic parse(json: { type: string; codes: Code[] }): Codification {\n\t\treturn new Codification(\n\t\t\tjson.type,\n\t\t\tjson.codes.map((code) => {\n\t\t\t\tconst parts = code.id.split('|')\n\t\t\t\tif (parts.length === 1) {\n\t\t\t\t\treturn { ...code, id: `${json.type}|${code.id}|1` }\n\t\t\t\t} else if (parts.length === 2) {\n\t\t\t\t\treturn { ...code, id: `${code.id}|1` }\n\t\t\t\t} else {\n\t\t\t\t\treturn code\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { type: string; codes: Code[] } {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcodes: this.codes,\n\t\t}\n\t}\n}\n\nexport class TranslationTable {\n\tlanguage: string\n\ttranslations: { [key: string]: string }\n\n\tconstructor(language: string, translations: { [key: string]: string }) {\n\t\tthis.language = language\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(json: { language: string; translations: { [key: string]: string } }): TranslationTable {\n\t\treturn new TranslationTable(json.language, json.translations)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { language: string; translations: { [key: string]: string } } {\n\t\treturn {\n\t\t\tlanguage: this.language,\n\t\t\ttranslations: this.translations,\n\t\t}\n\t}\n}\n\nexport class Form {\n\tform: string\n\tsections: Section[]\n\tid?: string\n\tdescription?: string\n\tkeywords?: string[]\n\tcodifications?: Codification[]\n\ttranslations?: TranslationTable[]\n\n\tconstructor(title: string, sections: Section[], id?: string, description?: string, keywords?: string[], codifications?: Codification[], translations?: TranslationTable[]) {\n\t\tthis.form = title\n\t\tthis.description = description\n\t\tthis.id = id\n\t\tthis.keywords = keywords\n\t\tthis.sections = sections\n\t\tthis.codifications = codifications\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(\n\t\tjson: {\n\t\t\tform: string\n\t\t\tsections: Section[]\n\t\t\tid?: string\n\t\t\tdescription?: string\n\t\t\tkeywords?: string[]\n\t\t\tcodifications?: Codification[]\n\t\t\ttranslations?: TranslationTable[]\n\t\t\tsubForms?: { [key: string]: Form }\n\t\t},\n\t\tlibrary: Form[] = [],\n\t\tsubforms: { [key: string]: Form } = {},\n\t): Form {\n\t\tconst parsed = new Form(\n\t\t\tjson.form,\n\t\t\t(json.sections || []).map((s: Section) => Section.parse(s)),\n\t\t\tjson.id,\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t\tjson.codifications?.map((c: Codification) => Codification.parse(c)),\n\t\t\tjson.translations?.map((t: TranslationTable) => TranslationTable.parse(t)),\n\t\t)\n\n\t\tconst allSubforms = { ...subforms, ...(json.subForms || {}) }\n\n\t\tconst resolveAndCheckConsistencyInSubForm = (f: Subform, seenSubformId: string[]) => {\n\t\t\tif (seenSubformId.includes(f.id)) {\n\t\t\t\tthrow new Error(`Subform ${f.id} is already declared in this form`)\n\t\t\t}\n\t\t\tseenSubformId.push(f.id)\n\t\t\tObject.entries((f as Subform).forms ?? {}).forEach(([k, subForm]) => {\n\t\t\t\tf.forms[k] = Form.parse({ ...subForm, id: k }, library, allSubforms)\n\t\t\t})\n\t\t\t;(f as Subform).refs?.forEach((r) => {\n\t\t\t\tconst subForm = allSubforms?.[r]\n\t\t\t\tconst form = subForm ? Form.parse({ ...subForm, id: r }, library, allSubforms) : library.find((f) => f.id === r)\n\t\t\t\tif (!form) {\n\t\t\t\t\tthrow new Error(`Subform ${r} not found in top subForms declarations or the provided library of forms`)\n\t\t\t\t}\n\t\t\t\tf.forms[r] = form\n\t\t\t})\n\t\t\tObject.entries(f.forms).forEach(([, f]) => resolveAndCheckConsistencyInForm(f, seenSubformId))\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInForm = (f: Form, seenSubformId: string[] = []) => {\n\t\t\tf.sections.forEach((s: Section) => {\n\t\t\t\ts.fields.forEach((f: Field | Group | Subform) => {\n\t\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\treturn f\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInGroup = (g: Group, seenSubformId: string[]) => {\n\t\t\tg.fields?.forEach((f: Field | Group | Subform) => {\n\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn g\n\t\t}\n\n\t\treturn resolveAndCheckConsistencyInForm(parsed, [])\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tform: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tsections: { section: string; keywords?: string[]; description?: string; fields: any[] }[]\n\t} {\n\t\treturn {\n\t\t\tform: this.form,\n\t\t\tsections: this.sections.map((s: Section) => s.toJson()),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DocumentSchema, InlineSchema, StyledSchema } from '../icure-text-field/schema/markdown-schema'\nimport { TokensSchema } from '../icure-text-field/schema/token-schema'\nimport { ItemsListSchema } from '../icure-text-field/schema/items-list-schema'\nimport { DateSchema, DateTimeSchema, TimeSchema } from '../icure-text-field/schema/date-time-schema'\nimport { DecimalSchema } from '../icure-text-field/schema/decimal-schema'\nimport { MeasureSchema } from '../icure-text-field/schema/measure-schema'\n\nexport interface Code {\n\tid: string\n\tlabel?: { [key: string]: string }\n}\n\nexport interface FieldMetadata {\n\tlabel: string\n\tindex?: number\n\tvalueDate?: number\n\towner?: string\n\ttags?: Code[]\n\n\t//The metadata values that are considered as exceptional\n\tdiscordantMetadata?: () => Partial<FieldMetadata>\n}\n\nexport interface FieldValue {\n\tcontent: { [language: string]: PrimitiveType }\n\tcodes?: Code[]\n}\n\nexport type PrimitiveType = StringType | NumberType | BooleanType | TimestampType | DateTimeType | MeasureType | CompoundType\n\nexport interface StringType {\n\ttype: 'string'\n\tvalue: string\n}\n\nexport interface NumberType {\n\ttype: 'number'\n\tvalue: number\n}\n\nexport interface BooleanType {\n\ttype: 'boolean'\n\tvalue: boolean\n}\n\nexport interface TimestampType {\n\ttype: 'timestamp'\n\tvalue: number\n}\n\nexport interface DateTimeType {\n\ttype: 'datetime'\n\tvalue: number\n}\n\nexport interface MeasureType {\n\ttype: 'measure'\n\tvalue?: number\n\tunit?: string\n}\n\nexport interface CompoundType {\n\ttype: 'compound'\n\tvalue: { [label: string]: PrimitiveType }\n}\n\nfunction hasChanges<T>(target: T, properties: Partial<T>): boolean {\n\tconst keys = Object.keys(properties) as (keyof T)[]\n\treturn keys.length > 0 && keys.some((k) => target[k] !== properties[k])\n}\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom' | 'float' | 'add' | 'remove'\n\nexport type Labels = Partial<Record<Position, string>>\n\nexport interface SortOptions {\n\tsort: 'asc' | 'desc' | 'natural'\n\tpromotions?: string\n}\n\nexport const pteq = (a: PrimitiveType | undefined, b: PrimitiveType | undefined): boolean => {\n\tif (a === b) {\n\t\treturn true\n\t}\n\tif (a === undefined || b === undefined) {\n\t\treturn false\n\t}\n\tif (a?.type !== b?.type) {\n\t\treturn false\n\t}\n\tif (a.value === b.value && (a.type !== 'measure' || b.type !== 'measure' || a.unit === b.unit)) {\n\t\treturn true\n\t}\n\tif (a.type === 'compound' && b.type === 'compound') {\n\t\treturn Object.keys(a.value).every((k) => pteq(a.value[k], b.value[k]))\n\t}\n\treturn false\n}\n\nexport type IcureTextFieldSchema = DocumentSchema | TokensSchema | ItemsListSchema | StyledSchema | InlineSchema | DateSchema | TimeSchema | DateTimeSchema | DecimalSchema | MeasureSchema\n\ntype FieldType =\n\t| 'text-field'\n\t| 'measure-field'\n\t| 'number-field'\n\t| 'token-field'\n\t| 'items-list-field'\n\t| 'date-picker'\n\t| 'time-picker'\n\t| 'date-time-picker'\n\t| 'multiple-choice'\n\t| 'dropdown-field'\n\t| 'radio-button'\n\t| 'checkbox'\n\t| 'label'\n\t| 'action'\n\nexport interface Validator {\n\tvalidation: string\n\tmessage: string\n}\n\nexport abstract class Field {\n\tclazz = 'field' as const\n\tfield: string\n\ttype: FieldType\n\tshortLabel?: string\n\tspan?: number\n\trowSpan?: number\n\tgrows: boolean\n\tschema?: IcureTextFieldSchema\n\ttags?: string[]\n\tcodifications?: string[]\n\treadonly?: boolean\n\toptions?: { [_key: string]: unknown }\n\tlabels?: Labels\n\tvalue?: string\n\tunit?: string\n\tmultiline?: boolean\n\tcomputedProperties?: { [_key: string]: string }\n\tvalidators?: Validator[]\n\tnow?: boolean\n\ttranslate?: boolean\n\tsortOptions?: SortOptions\n\twidth?: number\n\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\thasOther?: boolean\n\tevent?: string\n\tpayload?: unknown\n\n\tlabel(): string {\n\t\treturn this.field\n\t}\n\n\tprotected constructor(\n\t\ttype: FieldType,\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t\tevent,\n\t\t\tpayload,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t\thasOther?: boolean\n\t\t\tevent?: string\n\t\t\tpayload?: unknown\n\t\t},\n\t) {\n\t\tthis.field = label\n\t\tthis.type = type\n\t\tthis.shortLabel = shortLabel\n\t\tthis.grows = grows === undefined ? true : grows\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.schema = schema\n\t\tthis.tags = tags\n\t\tthis.codifications = codifications\n\t\tthis.readonly = readonly || false\n\t\tthis.options = options\n\t\tthis.labels = labels\n\t\tthis.value = value\n\t\tthis.unit = unit\n\t\tthis.multiline = multiline || false\n\t\tthis.computedProperties = computedProperties\n\t\tthis.validators = validators\n\t\tthis.now = now\n\t\tthis.translate = translate ?? true\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.hasOther = hasOther\n\t\tthis.event = event\n\t\tthis.payload = payload\n\t}\n\n\tabstract copyIfNeeded(properties: Partial<Field>): Field\n\n\tstatic parse(json: Field): Field {\n\t\treturn (\n\t\t\t(\n\t\t\t\t{\n\t\t\t\t\t'text-field': () => new TextField(json.field, { ...json }),\n\t\t\t\t\t'measure-field': () => new MeasureField(json.field, { ...json }),\n\t\t\t\t\t'token-field': () => new TokenField(json.field, { ...json }),\n\t\t\t\t\t'items-list-field': () => new ItemsListField(json.field, { ...json }),\n\t\t\t\t\t'number-field': () => new NumberField(json.field, { ...json }),\n\t\t\t\t\t'date-picker': () => new DatePicker(json.field, { ...json }),\n\t\t\t\t\t'time-picker': () => new TimePicker(json.field, { ...json }),\n\t\t\t\t\t'date-time-picker': () => new DateTimePicker(json.field, { ...json }),\n\t\t\t\t\tdropdown: () => new DropdownField(json.field, { ...json }),\n\t\t\t\t\t'radio-button': () => new RadioButton(json.field, { ...json }),\n\t\t\t\t\tcheckbox: () => new CheckBox(json.field, { ...json }),\n\t\t\t\t\tlabel: () => new Label(json.field, { ...json }),\n\t\t\t\t\taction: () => new Button(json.field, { ...json }),\n\t\t\t\t} as { [key: string]: () => Field }\n\t\t\t)[json.type as string]?.() ?? new TextField(json.field, { ...json })\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tgrows: boolean | undefined\n\t\tschema: string | undefined\n\t\tspan: number | undefined\n\t\tcodifications: string[] | undefined\n\t\ttype:\n\t\t\t| 'text-field'\n\t\t\t| 'measure-field'\n\t\t\t| 'number-field'\n\t\t\t| 'token-field'\n\t\t\t| 'items-list-field'\n\t\t\t| 'date-picker'\n\t\t\t| 'time-picker'\n\t\t\t| 'date-time-picker'\n\t\t\t| 'multiple-choice'\n\t\t\t| 'dropdown-field'\n\t\t\t| 'radio-button'\n\t\t\t| 'checkbox'\n\t\t\t| 'label'\n\t\t\t| 'action'\n\t\ttranslate: boolean | undefined\n\t\ttags: string[] | undefined\n\t\tlabels: Labels | undefined\n\t\tunit: string | undefined\n\t\tfield: string\n\t\tstyleOptions: { width: number; direction: string; span: number; rows: number; alignItems: string } | undefined\n\t\tsortOptions: SortOptions | undefined\n\t\tmultiline: boolean | undefined\n\t\tnow: boolean | undefined\n\t\toptions: { [_key: string]: unknown } | undefined\n\t\twidth: number | undefined\n\t\tshortLabel: string | undefined\n\t\tcomputedProperties: { [key: string]: string } | undefined\n\t\tvalue: string | undefined\n\t} {\n\t\treturn {\n\t\t\tfield: this.field,\n\t\t\ttype: this.type,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tgrows: this.grows,\n\t\t\tspan: this.span,\n\t\t\tschema: this.schema?.toString(),\n\t\t\ttags: this.tags,\n\t\t\tcodifications: this.codifications,\n\t\t\toptions: this.options,\n\t\t\tlabels: this.labels,\n\t\t\tvalue: this.value,\n\t\t\tunit: this.unit,\n\t\t\tmultiline: this.multiline,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tnow: this.now,\n\t\t\ttranslate: this.translate,\n\t\t\tsortOptions: this.sortOptions,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\n\nexport class TextField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('text-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema: schema || 'styled-text-with-codes',\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline: multiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\n\toverride copyIfNeeded(properties: Partial<TextField>): TextField {\n\t\treturn hasChanges(this, properties) ? new TextField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class MeasureField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('measure-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<MeasureField>): MeasureField {\n\t\treturn hasChanges(this, properties) ? new MeasureField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class NumberField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('number-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<NumberField>): NumberField {\n\t\treturn hasChanges(this, properties) ? new NumberField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class TokenField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('token-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<TokenField>): TokenField {\n\t\treturn hasChanges(this, properties) ? new TokenField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class ItemsListField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('items-list-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<ItemsListField>): ItemsListField {\n\t\treturn hasChanges(this, properties) ? new ItemsListField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DatePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<DatePicker>): DatePicker {\n\t\treturn hasChanges(this, properties) ? new DatePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class TimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<TimePicker>): TimePicker {\n\t\treturn hasChanges(this, properties) ? new TimePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DateTimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<DateTimePicker>): DateTimePicker {\n\t\treturn hasChanges(this, properties) ? new DateTimePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DropdownField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\toptions: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('dropdown-field', label, {\n\t\t\tshortLabel: options.shortLabel,\n\t\t\tgrows: options.grows,\n\t\t\tspan: options.span,\n\t\t\ttags: options.tags,\n\t\t\tcodifications: options.codifications,\n\t\t\toptions: options.options,\n\t\t\tlabels: options.labels,\n\t\t\tvalidators: options.validators,\n\t\t\tvalue: options.value,\n\t\t\tcomputedProperties: options.computedProperties,\n\t\t\ttranslate: options.translate,\n\t\t\twidth: options.width,\n\t\t\tstyleOptions: options.styleOptions,\n\t\t})\n\t\tthis.sortOptions = options.sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<DropdownField>): DropdownField {\n\t\treturn hasChanges(this, properties) ? new DropdownField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class RadioButton extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\thasOther?: boolean\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('radio-button', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<RadioButton>): RadioButton {\n\t\treturn hasChanges(this, properties) ? new RadioButton(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class CheckBox extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('checkbox', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<CheckBox>): CheckBox {\n\t\treturn hasChanges(this, properties) ? new CheckBox(this.field, { ...this, ...properties }) : this\n\t}\n}\nexport class Label extends Field {\n\tconstructor(label: string, { shortLabel, grows, span }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number }) {\n\t\tsuper('label', label, { shortLabel, grows, span })\n\t}\n\toverride copyIfNeeded(properties: Partial<Label>): Label {\n\t\treturn hasChanges(this, properties) ? new Label(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class Button extends Field {\n\tconstructor(label: string, { shortLabel, grows, span, event, payload }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number; event?: string; payload?: unknown }) {\n\t\tsuper('action', label, { shortLabel, grows, span, event, payload })\n\t}\n\toverride copyIfNeeded(properties: Partial<Button>): Button {\n\t\treturn hasChanges(this, properties) ? new Button(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class Group {\n\tclazz = 'group' as const\n\tgroup: string\n\tborderless: boolean\n\ttranslate: boolean\n\tfields?: Array<Field | Group | Subform>\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\n\tconstructor(\n\t\ttitle: string,\n\t\tfields: Array<Field | Group | Subform>,\n\t\t{\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tborderless,\n\t\t\ttranslate,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tborderless?: boolean\n\t\t\ttranslate?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t},\n\t) {\n\t\tthis.group = title\n\t\tthis.fields = fields\n\t\tthis.borderless = borderless ?? false\n\t\tthis.translate = translate ?? true\n\t\tthis.fields = fields\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t}\n\n\tcopyIfNeeded(properties: Partial<Group>): Group {\n\t\treturn hasChanges(this, properties) ? new Group(this.group, this.fields ?? [], { ...this, ...properties }) : this\n\t}\n\n\tstatic parse({\n\t\tborderless,\n\t\tspan,\n\t\tcomputedProperties,\n\t\tfields,\n\t\tgroup,\n\t\ttranslate,\n\t\twidth,\n\t}: {\n\t\tgroup: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tborderless?: boolean\n\t\ttranslate?: boolean\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t}): Group {\n\t\treturn new Group(\n\t\t\tgroup,\n\t\t\t(fields || []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: span,\n\t\t\t\tborderless: borderless,\n\t\t\t\ttranslate: translate,\n\t\t\t\tcomputedProperties: computedProperties,\n\t\t\t\twidth: width,\n\t\t\t},\n\t\t)\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tgroup: this.group,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tfields: this.fields?.map((f: Field | Group) => f.toJson()),\n\t\t\tborderless: this.borderless,\n\t\t\ttranslatable: this.translate,\n\t\t\tspan: this.span,\n\t\t\twidth: this.width,\n\t\t}\n\t}\n}\n\nexport class Subform {\n\tclazz = 'subform' as const\n\tid: string\n\tshortLabel?: string\n\trefs?: string[]\n\tforms: { [key: string]: Form }\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\tlabels: Labels\n\n\tconstructor(\n\t\ttitle: string,\n\t\tforms: { [key: string]: Form },\n\t\t{\n\t\t\tid,\n\t\t\tshortLabel,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\trefs,\n\t\t\tlabels,\n\t\t}: {\n\t\t\tid?: string\n\t\t\tshortLabel?: string\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t\trefs?: string[]\n\t\t\tlabels?: Labels\n\t\t},\n\t) {\n\t\tthis.id = id || title\n\t\tthis.shortLabel = shortLabel\n\t\tthis.forms = forms\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.refs = refs\n\t\tthis.labels = labels ?? {}\n\t}\n\n\tcopyIfNeeded(properties: Partial<Subform>): Subform {\n\t\treturn hasChanges(this, properties) ? new Subform(this.id, this.forms, { ...this, ...properties }) : this\n\t}\n\n\tstatic parse(json: {\n\t\tsubform: string\n\t\tshortLabel?: string\n\t\tforms?: { [key: string]: Form }\n\t\trefs?: string[]\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t\tstyleOptions?: { [_key: string]: unknown }\n\t\tlabels?: Labels\n\t\tid: string\n\t}): Subform {\n\t\treturn new Subform(json.subform, json.forms ?? {}, {\n\t\t\tid: json.id,\n\t\t\tshortLabel: json.shortLabel,\n\t\t\tspan: json.span,\n\t\t\tcomputedProperties: json.computedProperties,\n\t\t\twidth: json.width,\n\t\t\tstyleOptions: json.styleOptions,\n\t\t\trefs: json.refs,\n\t\t\tlabels: json.labels,\n\t\t})\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tsubform: this.id,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tforms: Object.fromEntries(Object.entries(this.forms).map(([k, f]) => [k, f.toJson()])),\n\t\t\tspan: this.span,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\nexport class Section {\n\tsection: string\n\tfields: Array<Field | Group | Subform>\n\tdescription?: string\n\tkeywords?: string[]\n\n\tconstructor(title: string, fields: Array<Field | Group | Subform>, description?: string, keywords?: string[]) {\n\t\tthis.section = title\n\t\tthis.fields = fields\n\t\tthis.description = description\n\t\tthis.keywords = keywords\n\t}\n\n\tstatic parse(json: {\n\t\tsection: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tgroups?: Array<Field | Group | Subform>\n\t\tsections?: Array<Field | Group | Subform>\n\t\tdescription?: string\n\t\tkeywords?: string[]\n\t}): Section {\n\t\treturn new Section(\n\t\t\tjson.section,\n\t\t\t(json.fields ?? json.groups ?? json.sections ?? []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t)\n\t}\n\n\ttoJson(): {\n\t\tsection: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tfields: (Field | Group | Subform)[]\n\t} {\n\t\treturn {\n\t\t\tsection: this.section,\n\t\t\tfields: this.fields.map((f: Field | Group | Subform) => (f && f.toJson ? f.toJson() : JSON.stringify(f))),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n\nexport class Codification {\n\ttype: string\n\tcodes: Code[]\n\n\tconstructor(type: string, codes: Code[]) {\n\t\tthis.type = type\n\t\tthis.codes = codes\n\t}\n\n\tstatic parse(json: { type: string; codes: Code[] }): Codification {\n\t\treturn new Codification(\n\t\t\tjson.type,\n\t\t\tjson.codes.map((code) => {\n\t\t\t\tconst parts = code.id.split('|')\n\t\t\t\tif (parts.length === 1) {\n\t\t\t\t\treturn { ...code, id: `${json.type}|${code.id}|1` }\n\t\t\t\t} else if (parts.length === 2) {\n\t\t\t\t\treturn { ...code, id: `${code.id}|1` }\n\t\t\t\t} else {\n\t\t\t\t\treturn code\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { type: string; codes: Code[] } {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcodes: this.codes,\n\t\t}\n\t}\n}\n\nexport class TranslationTable {\n\tlanguage: string\n\ttranslations: { [key: string]: string }\n\n\tconstructor(language: string, translations: { [key: string]: string }) {\n\t\tthis.language = language\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(json: { language: string; translations: { [key: string]: string } }): TranslationTable {\n\t\treturn new TranslationTable(json.language, json.translations)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { language: string; translations: { [key: string]: string } } {\n\t\treturn {\n\t\t\tlanguage: this.language,\n\t\t\ttranslations: this.translations,\n\t\t}\n\t}\n}\n\nexport class Form {\n\tform: string\n\tsections: Section[]\n\tid?: string\n\tdescription?: string\n\tkeywords?: string[]\n\tcodifications?: Codification[]\n\ttranslations?: TranslationTable[]\n\n\tconstructor(title: string, sections: Section[], id?: string, description?: string, keywords?: string[], codifications?: Codification[], translations?: TranslationTable[]) {\n\t\tthis.form = title\n\t\tthis.description = description\n\t\tthis.id = id\n\t\tthis.keywords = keywords\n\t\tthis.sections = sections\n\t\tthis.codifications = codifications\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(\n\t\tjson: {\n\t\t\tform: string\n\t\t\tsections: Section[]\n\t\t\tid?: string\n\t\t\tdescription?: string\n\t\t\tkeywords?: string[]\n\t\t\tcodifications?: Codification[]\n\t\t\ttranslations?: TranslationTable[]\n\t\t\tsubForms?: { [key: string]: Form }\n\t\t},\n\t\tlibrary: Form[] = [],\n\t\tsubforms: { [key: string]: Form } = {},\n\t): Form {\n\t\tconst parsed = new Form(\n\t\t\tjson.form,\n\t\t\t(json.sections || []).map((s: Section) => Section.parse(s)),\n\t\t\tjson.id,\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t\tjson.codifications?.map((c: Codification) => Codification.parse(c)),\n\t\t\tjson.translations?.map((t: TranslationTable) => TranslationTable.parse(t)),\n\t\t)\n\n\t\tconst allSubforms = { ...subforms, ...(json.subForms || {}) }\n\n\t\tconst resolveAndCheckConsistencyInSubForm = (f: Subform, seenSubformId: string[]) => {\n\t\t\tif (seenSubformId.includes(f.id)) {\n\t\t\t\tthrow new Error(`Subform ${f.id} is already declared in this form`)\n\t\t\t}\n\t\t\tseenSubformId.push(f.id)\n\t\t\tObject.entries((f as Subform).forms ?? {}).forEach(([k, subForm]) => {\n\t\t\t\tf.forms[k] = Form.parse({ ...subForm, id: k }, library, allSubforms)\n\t\t\t})\n\t\t\t;(f as Subform).refs?.forEach((r) => {\n\t\t\t\tconst subForm = allSubforms?.[r]\n\t\t\t\tconst form = subForm ? Form.parse({ ...subForm, id: r }, library, allSubforms) : library.find((f) => f.id === r)\n\t\t\t\tif (!form) {\n\t\t\t\t\tthrow new Error(`Subform ${r} not found in top subForms declarations or the provided library of forms`)\n\t\t\t\t}\n\t\t\t\tf.forms[r] = form\n\t\t\t})\n\t\t\tObject.entries(f.forms).forEach(([, f]) => resolveAndCheckConsistencyInForm(f, seenSubformId))\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInForm = (f: Form, seenSubformId: string[] = []) => {\n\t\t\tf.sections.forEach((s: Section) => {\n\t\t\t\ts.fields.forEach((f: Field | Group | Subform) => {\n\t\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\treturn f\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInGroup = (g: Group, seenSubformId: string[]) => {\n\t\t\tg.fields?.forEach((f: Field | Group | Subform) => {\n\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn g\n\t\t}\n\n\t\treturn resolveAndCheckConsistencyInForm(parsed, [])\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tform: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tsections: { section: string; keywords?: string[]; description?: string; fields: any[] }[]\n\t} {\n\t\treturn {\n\t\t\tform: this.form,\n\t\t\tsections: this.sections.map((s: Section) => s.toJson()),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icure/form",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -23,8 +23,8 @@ export const sortCodes = (codes, language, sortOptions) => (sortOptions === null
23
23
  : codes.sort(naturalCodesComparator((sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter));
24
24
  export const sortSuggestions = (codes, language, sortOptions) => ((sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) && (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.sort) !== 'natural'
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
- : 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
- 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));
26
+ : codes.sort(naturalCodesComparator((sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.promotions) ? makePromoter(sortOptions.promotions.split(/ ?, ?/)) : defaultCodePromoter))).map((c) => { var _a, _b, _c; return ({ id: c.id, label: (_a = c.label) !== null && _a !== void 0 ? _a : { [language]: c.id }, text: (_c = (_b = c.label) === null || _b === void 0 ? void 0 : _b[language]) !== null && _c !== void 0 ? _c : c.id, terms: [] }); });
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) => { var _a, _b; return ((_b = (_a = x.label) === null || _a === void 0 ? void 0 : _a[language]) !== null && _b !== void 0 ? _b : x.id).toLowerCase().includes(st); })), language, fg.sortOptions));
28
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
@@ -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'\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
+ {"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 ?? { [language]: c.id }, text: c.label?.[language] ?? c.id, 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] ?? x.id).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"]}