@icure/form 1.1.26 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/components/common/metadata-buttons-bar.js +66 -15
  3. package/components/common/metadata-buttons-bar.js.map +1 -1
  4. package/components/icure-button/index.js +66 -15
  5. package/components/icure-button/index.js.map +1 -1
  6. package/components/icure-button-group/index.js +66 -15
  7. package/components/icure-button-group/index.js.map +1 -1
  8. package/components/icure-date-picker/index.js +70 -18
  9. package/components/icure-date-picker/index.js.map +1 -1
  10. package/components/icure-dropdown-field/index.js +66 -15
  11. package/components/icure-dropdown-field/index.js.map +1 -1
  12. package/components/icure-form/index.js +66 -15
  13. package/components/icure-form/index.js.map +1 -1
  14. package/components/icure-form/renderer/form/form-selection-button.d.ts +6 -1
  15. package/components/icure-form/renderer/form/form-selection-button.js +1126 -58
  16. package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
  17. package/components/icure-form/renderer/form/form.js +22 -19
  18. package/components/icure-form/renderer/form/form.js.map +1 -1
  19. package/components/icure-label/index.js +66 -15
  20. package/components/icure-label/index.js.map +1 -1
  21. package/components/icure-text-field/index.js +66 -15
  22. package/components/icure-text-field/index.js.map +1 -1
  23. package/components/model/index.d.ts +7 -1
  24. package/components/model/index.js +47 -3
  25. package/components/model/index.js.map +1 -1
  26. package/components/themes/default/index.js +2 -0
  27. package/components/themes/default/index.js.map +1 -1
  28. package/components/themes/icure-blue/index.js +2 -0
  29. package/components/themes/icure-blue/index.js.map +1 -1
  30. package/components/themes/kendo/index.js +2 -0
  31. package/components/themes/kendo/index.js.map +1 -1
  32. package/generic/model.d.ts +6 -5
  33. package/generic/model.js.map +1 -1
  34. package/icure/form-values-container.d.ts +31 -17
  35. package/icure/form-values-container.js +134 -75
  36. package/icure/form-values-container.js.map +1 -1
  37. package/package.json +1 -1
  38. package/utils/code-utils.d.ts +2 -0
  39. package/utils/code-utils.js +4 -1
  40. package/utils/code-utils.js.map +1 -1
  41. package/utils/fields-values-provider.d.ts +4 -9
  42. package/utils/fields-values-provider.js +6 -15
  43. package/utils/fields-values-provider.js.map +1 -1
  44. package/utils/form-value-container.d.ts +1 -1
  45. package/utils/form-value-container.js +25 -36
  46. package/utils/form-value-container.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"form-selection-button.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/renderer/form/form-selection-button.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAAoD;AACpD,qDAAmD;AAGnD,MAAa,mBAAoB,SAAQ,gBAAU;IAAnD;;QAEa,cAAS,GAAwC,GAAG,EAAE;YACjE,gBAAgB;QACjB,CAAC,CAAA;QACgB,gBAAW,GAAG,KAAK,CAAA;IAyErC,CAAC;IAxEA,MAAM,KAAK,MAAM;QAChB,OAAO,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDT,CAAA;IACF,CAAC;IACD,MAAM;;QACL,OAAO,IAAA,UAAI,EAAA;iCACoB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3D,IAAI,CAAC,WAAW;YACjB,CAAC,CAAC,IAAA,UAAI,EAAA;QACF,MAAA,IAAI,CAAC,KAAK,0CAAE,GAAG,CAChB,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CACd,IAAA,UAAI,EAAA;;kBAEM,GAAG,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YACzB,CAAC;;WAEC,EAAE;kBACK,CACX;aACM;YACT,CAAC,CAAC,aAAO;SACJ,CAAA;IACR,CAAC;CACD;AA9ED,kDA8EC;AA7EY;IAAX,IAAA,wBAAQ,GAAE;;kDAAyB;AACxB;IAAX,IAAA,wBAAQ,GAAE;;sDAEV;AACgB;IAAhB,IAAA,qBAAK,GAAE;;wDAA4B;AA0ErC,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAA","sourcesContent":["import { css, html, LitElement, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { Form } from '../../../model'\n\nexport class FormSelectionButton extends LitElement {\n\t@property() forms?: [string, Form][]\n\t@property() formAdded: (title: string, form: Form) => void = () => {\n\t\t/* Do nothing */\n\t}\n\t@state() private displayMenu = false\n\tstatic get styles() {\n\t\treturn css`\n\t\t\t.options-container {\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t.options {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: flex-start;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 30px;\n\t\t\t\tright: 0;\n\t\t\t\tz-index: 2;\n\t\t\t\tbackground: #fff;\n\t\t\t\tbox-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n\t\t\t\twidth: auto;\n\t\t\t\tmin-width: 100%;\n\t\t\t\toverflow-y: auto;\n\t\t\t\tmax-height: 280px;\n\t\t\t}\n\n\t\t\t.option {\n\t\t\t\theight: 28px;\n\t\t\t\tmin-height: 28px;\n\t\t\t\twidth: 100%;\n\t\t\t\tbackground: transparent;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tcolor: #545454;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-flow: row nowrap;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\tbox-shadow: none;\n\t\t\t\tborder: none;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow-x: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\tpadding: 4px 8px;\n\t\t\t\t-webkit-user-select: none; /* Safari */\n\t\t\t\t-ms-user-select: none; /* IE 10 and IE 11 */\n\t\t\t\tuser-select: none; /* Standard syntax */\n\t\t\t}\n\n\t\t\t.option:hover {\n\t\t\t\tcolor: #656565;\n\t\t\t\tbackground-color: #ededed;\n\t\t\t}\n\t\t`\n\t}\n\trender() {\n\t\treturn html`<div class=\"options-container\">\n\t\t\t<button class=\"btn\" @click=\"${() => (this.displayMenu = true)}\">+</button>\n\t\t\t${this.displayMenu\n\t\t\t\t? html`<div class=\"options\">\n\t\t\t\t\t\t${this.forms?.map(\n\t\t\t\t\t\t\t([id, form]) =>\n\t\t\t\t\t\t\t\thtml`<button\n\t\t\t\t\t\t\t\t\tclass=\"option\"\n\t\t\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\t\t\tthis.formAdded(id, form)\n\t\t\t\t\t\t\t\t\t\tthis.displayMenu = false\n\t\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\t\t${id}\n\t\t\t\t\t\t\t\t</button>`,\n\t\t\t\t\t\t)}\n\t\t\t\t </div>`\n\t\t\t\t: nothing}\n\t\t</div>`\n\t}\n}\ncustomElements.define('form-selection-button', FormSelectionButton)\n"]}
1
+ {"version":3,"file":"form-selection-button.js","sourceRoot":"","sources":["../../../../../tmp/components/icure-form/renderer/form/form-selection-button.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { Form } from '../../../model'\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\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 max-height: 280px;\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: 14.4px;\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: 13.2px;\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: 9px;\n color: #084B83;\n align-items: center;\n 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 white-space: nowrap;\n text-overflow: ellipsis;\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 box-sizing: border-box;\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__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: calc(1.4em + 1px);\n left: 9px;\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}` \n\nexport class FormSelectionButton extends LitElement {\n\t@property() forms?: [string, Form][]\n\t@property() formAdded: (title: string, form: Form) => void = () => {\n\t\t/* Do nothing */\n\t}\n\t@property() translationProvider: (language: string, text: string) => string = (language, text) => text\n\t@property() language = 'en'\n\n\t@state() private displayMenu = false\n\tstatic get styles() {\n\t\treturn [baseCss]\n\t}\n\n\t_handleClickOutside(event: MouseEvent): void {\n\t\tif (!event.composedPath().includes(this)) {\n\t\t\tif (this.displayMenu) {\n\t\t\t\tthis.displayMenu = false\n\t\t\t}\n\t\t\tevent.stopPropagation()\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tdocument.addEventListener('click', this._handleClickOutside.bind(this))\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tdocument.removeEventListener('click', this._handleClickOutside.bind(this))\n\t}\n\n\trender() {\n\t\treturn html`<div class=\"options-container\">\n\t\t\t<button class=\"subform__addBtn\" @click=\"${() => (this.displayMenu = true)}\">Add subform</button>\n\t\t\t${this.displayMenu\n\t\t\t\t? html`<div class=\"options options--subformView\">\n\t\t\t\t\t\t${this.forms?.map(\n\t\t\t\t\t\t\t([id, form]) =>\n\t\t\t\t\t\t\t\thtml`<button\n\t\t\t\t\t\t\t\t\tclass=\"option\"\n\t\t\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\t\t\tthis.formAdded(id, form)\n\t\t\t\t\t\t\t\t\t\tthis.displayMenu = false\n\t\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\t\t${(this.translationProvider ? this.translationProvider(this.language, form.form) : form.form) ?? id}\n\t\t\t\t\t\t\t\t</button>`,\n\t\t\t\t\t\t)}\n\t\t\t\t </div>`\n\t\t\t\t: nothing}\n\t\t</div>`\n\t}\n}\n"]}
@@ -32,25 +32,25 @@ const render = (form, props, formsValueContainer, translationProvider, ownersPro
32
32
  return (_a = optionsProvider === null || optionsProvider === void 0 ? void 0 : optionsProvider(language, codifications, terms).then((codes) => (0, code_utils_1.sortSuggestions)(codes, language, sortOptions))) !== null && _a !== void 0 ? _a : Promise.resolve([]);
33
33
  }
34
34
  : undefined;
35
- const h = function (level, content) {
35
+ const h = function (level, className = '', content) {
36
36
  return level === 1
37
- ? (0, lit_1.html) `<h1>${content}</h1>`
37
+ ? (0, lit_1.html) `<h1 class="${className}">${content}</h1>`
38
38
  : level === 2
39
- ? (0, lit_1.html) `<h2>${content}</h2>`
39
+ ? (0, lit_1.html) `<h2 class="${className}">${content}</h2>`
40
40
  : level === 3
41
- ? (0, lit_1.html) `<h3>${content}</h3>`
41
+ ? (0, lit_1.html) `<h3 class="${className}">${content}</h3>`
42
42
  : level === 4
43
- ? (0, lit_1.html) `<h4>${content}</h4>`
43
+ ? (0, lit_1.html) `<h4 class="${className}">${content}</h4>`
44
44
  : level === 5
45
- ? (0, lit_1.html) `<h5>${content}</h5>`
46
- : (0, lit_1.html) `<h6>${content}</h6>`;
45
+ ? (0, lit_1.html) `<h5 class="${className}">${content}</h5>`
46
+ : (0, lit_1.html) `<h6 class="${className}">${content}</h6>`;
47
47
  };
48
48
  function renderGroup(fg, fgSpan, level) {
49
49
  var _a;
50
50
  const subElements = ((_a = fg.fields) !== null && _a !== void 0 ? _a : []).map((fieldOrGroup) => renderFieldGroupOrSubform(fieldOrGroup, level + 1)).filter((x) => !!x && x !== lit_1.nothing);
51
51
  return subElements.length
52
52
  ? (0, lit_1.html) `<div class="${['group', fg.borderless ? undefined : 'bordered'].filter((x) => !!x).join(' ')}" style="${calculateFieldOrGroupSize(fgSpan, 1)}">
53
- ${fg.borderless ? lit_1.nothing : (0, lit_1.html) `<div>${h(level, (0, lit_1.html) `${fg.group}`)}</div>`}
53
+ ${fg.borderless ? lit_1.nothing : (0, lit_1.html) `<div>${h(level, '', (0, lit_1.html) `${fg.group}`)}</div>`}
54
54
  <div class="icure-form">${subElements}</div>
55
55
  </div>`
56
56
  : lit_1.nothing;
@@ -59,28 +59,31 @@ const render = (form, props, formsValueContainer, translationProvider, ownersPro
59
59
  var _a, _b, _c;
60
60
  const children = (_a = formsValueContainer === null || formsValueContainer === void 0 ? void 0 : formsValueContainer.getChildren()) === null || _a === void 0 ? void 0 : _a.filter((c) => c.getLabel() === fg.id);
61
61
  return (0, lit_1.html) `<div class="subform" style="${calculateFieldOrGroupSize(fgSpan, 1)}">
62
- <div>
63
- ${h(level, (0, lit_1.html) `${(_c = (props.language && fg.shortLabel
62
+ <div class="subform__heading">
63
+ ${h(level, 'subform__heading__title', (0, lit_1.html) `${(_c = (props.language && fg.shortLabel
64
64
  ? (_b = (translationProvider !== null && translationProvider !== void 0 ? translationProvider : (form.translations && (0, languages_1.defaultTranslationProvider)(form.translations)))) === null || _b === void 0 ? void 0 : _b(props.language, fg.shortLabel)
65
65
  : fg.shortLabel)) !== null && _c !== void 0 ? _c : ''}`)}
66
- </div>
67
- <form-selection-button
68
- class="float-right-btn top"
69
- .forms="${Object.entries(fg.forms)}"
70
- .formAdded="${(title, form) => {
66
+ <form-selection-button
67
+ .forms="${Object.entries(fg.forms)}"
68
+ .formAdded="${(title, form) => {
71
69
  var _a;
72
70
  form.id && (formsValueContainer === null || formsValueContainer === void 0 ? void 0 : formsValueContainer.addChild(fg.id, form.id, (_a = fg.shortLabel) !== null && _a !== void 0 ? _a : ''));
73
71
  }}"
74
- ></form-selection-button>
72
+ .translationProvider="${translationProvider !== null && translationProvider !== void 0 ? translationProvider : (form.translations && (0, languages_1.defaultTranslationProvider)(form.translations))}"
73
+ .language="${props.language}"
74
+ ></form-selection-button>
75
+ </div>
75
76
  ${children === null || children === void 0 ? void 0 : children.map((child) => {
77
+ var _a;
76
78
  const childForm = Object.values(fg.forms).find((f) => f.id === child.getFormId());
77
79
  return (childForm &&
78
80
  (0, lit_1.html) `
79
- <div class="container">
81
+ <div class="subform__child">
82
+ <h3 class="subform__child__title">${(_a = childForm.form) !== null && _a !== void 0 ? _a : childForm.description}</h3>
80
83
  ${(0, exports.render)(childForm, props, child, translationProvider, ownersProvider, optionsProvider, actionListener, languages, readonly, displayMetadata)}
81
- <button @click="${() => { var _a; return (_a = formsValueContainer === null || formsValueContainer === void 0 ? void 0 : formsValueContainer.removeChild) === null || _a === void 0 ? void 0 : _a.call(formsValueContainer, child); }}" class="float-right-btn bottom">-</button>
82
- <hr />
84
+ <button class="subform__removeBtn" @click="${() => { var _a; return (_a = formsValueContainer === null || formsValueContainer === void 0 ? void 0 : formsValueContainer.removeChild) === null || _a === void 0 ? void 0 : _a.call(formsValueContainer, child); }}">Remove</button>
83
85
  </div>
86
+
84
87
  `);
85
88
  }).filter((x) => !!x)}
86
89
  </div>`;
@@ -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, getValidationError, 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 = (\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) => {\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, content: TemplateResult): TemplateResult {\n\t\treturn level === 1\n\t\t\t? html`<h1>${content}</h1>`\n\t\t\t: level === 2\n\t\t\t? html`<h2>${content}</h2>`\n\t\t\t: level === 3\n\t\t\t? html`<h3>${content}</h3>`\n\t\t\t: level === 4\n\t\t\t? html`<h4>${content}</h4>`\n\t\t\t: level === 5\n\t\t\t? html`<h5>${content}</h5>`\n\t\t\t: html`<h6>${content}</h6>`\n\t}\n\n\tfunction renderGroup(fg: Group, fgSpan: number, level: number) {\n\t\tconst subElements = (fg.fields ?? []).map((fieldOrGroup: Field | Group) => renderFieldGroupOrSubform(fieldOrGroup, level + 1)).filter((x) => !!x && x !== nothing)\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`${fg.group}`)}</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\tfunction renderSubform(fg: Subform, fgSpan: number, level: number) {\n\t\tconst children = formsValueContainer?.getChildren()?.filter((c) => c.getLabel() === fg.id)\n\t\treturn html`<div class=\"subform\" style=\"${calculateFieldOrGroupSize(fgSpan, 1)}\">\n\t\t\t<div>\n\t\t\t\t${h(\n\t\t\t\t\tlevel,\n\t\t\t\t\thtml`${(props.language && fg.shortLabel\n\t\t\t\t\t\t? (translationProvider ?? (form.translations && defaultTranslationProvider(form.translations)))?.(props.language, fg.shortLabel)\n\t\t\t\t\t\t: fg.shortLabel) ?? ''}`,\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<form-selection-button\n\t\t\t\tclass=\"float-right-btn top\"\n\t\t\t\t.forms=\"${Object.entries(fg.forms)}\"\n\t\t\t\t.formAdded=\"${(title: string, form: Form) => {\n\t\t\t\t\tform.id && formsValueContainer?.addChild(fg.id, form.id, fg.shortLabel ?? '')\n\t\t\t\t}}\"\n\t\t\t></form-selection-button>\n\t\t\t${children\n\t\t\t\t?.map((child) => {\n\t\t\t\t\tconst childForm = Object.values(fg.forms).find((f) => f.id === child.getFormId())\n\t\t\t\t\treturn (\n\t\t\t\t\t\tchildForm &&\n\t\t\t\t\t\thtml`\n\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t${render(childForm, props, child, translationProvider, ownersProvider, optionsProvider, actionListener, languages, readonly, displayMetadata)}\n\t\t\t\t\t\t\t\t<button @click=\"${() => formsValueContainer?.removeChild?.(child)}\" class=\"float-right-btn bottom\">-</button>\n\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t\t.filter((x) => !!x)}\n\t\t</div>`\n\t}\n\n\tfunction 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=\"${getValidationError(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.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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-text-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-token-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-items-list-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-measure-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-number-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-date-picker>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-time-picker>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-date-time-picker>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-dropdown-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-radio-button>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-checkbox>`\n\t}\n\n\tfunction 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=\"${getValidationError(formsValueContainer, fg)}\"\n\t\t\t.actionListener=\"${actionListener}\"\n\t\t\t.event=\"${fg.event !== undefined ? fg.event : fg.computedProperties?.event ? !formsValueContainer?.compute(fg.computedProperties?.event) : 'submit'}\"\n\t\t\t.payload=\"${fg.payload !== undefined ? fg.payload : fg.computedProperties?.payload ? !formsValueContainer?.compute(fg.computedProperties?.payload) : undefined}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t></icure-form-button>`\n\t}\n\n\tfunction 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.field}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationError(formsValueContainer, fg)}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-label>`\n\t}\n\n\tconst renderFieldGroupOrSubform = function (fg: Field | Group | Subform, level: number): TemplateResult | TemplateResult[] | typeof nothing {\n\t\tif (!fg) {\n\t\t\treturn nothing\n\t\t}\n\t\tconst computedProperties = Object.keys(fg.computedProperties ?? {}).reduce(\n\t\t\t(acc, k) => ({ ...acc, [k]: fg.computedProperties?.[k] && formsValueContainer?.compute(fg.computedProperties[k]) }),\n\t\t\t{},\n\t\t) as { [key: string]: string | number | boolean | undefined }\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 renderGroup((fg as Group).copy({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'subform' && (fg.id || computedProperties['title'])) {\n\t\t\treturn renderSubform((fg as Subform).copy({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'field') {\n\t\t\tconst field = fg.copy({ ...computedProperties })\n\t\t\treturn html`${fg.type === 'text-field'\n\t\t\t\t? renderTextField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'measure-field'\n\t\t\t\t? renderMeasureField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'token-field'\n\t\t\t\t? renderTokenField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'items-list-field'\n\t\t\t\t? renderItemsListField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'number-field'\n\t\t\t\t? renderNumberField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-picker'\n\t\t\t\t? renderDatePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'time-picker'\n\t\t\t\t? renderTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-time-picker'\n\t\t\t\t? renderDateTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'dropdown-field'\n\t\t\t\t? renderDropdownField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'radio-button'\n\t\t\t\t? renderRadioButtons(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'checkbox'\n\t\t\t\t? renderCheckboxes(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'label'\n\t\t\t\t? renderLabel(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'action'\n\t\t\t\t? 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 = (form: Form) => {\n\t\treturn form.sections.map((s) => html`<div class=\"icure-form\">${s.fields.map((fieldOrGroup: Field | Group | Subform) => renderFieldGroupOrSubform(fieldOrGroup, 3))}</div>`)\n\t}\n\n\treturn html` ${renderForm(form)} `\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, getValidationError, 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 = (\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) => {\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\tfunction renderGroup(fg: Group, fgSpan: number, level: number) {\n\t\tconst subElements = (fg.fields ?? []).map((fieldOrGroup: Field | Group) => renderFieldGroupOrSubform(fieldOrGroup, level + 1)).filter((x) => !!x && x !== nothing)\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`${fg.group}`)}</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\tfunction renderSubform(fg: Subform, fgSpan: number, level: number) {\n\t\tconst children = formsValueContainer?.getChildren()?.filter((c) => c.getLabel() === fg.id)\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(\n\t\t\t\t\tlevel,\n\t\t\t\t\t'subform__heading__title',\n\t\t\t\t\thtml`${(props.language && fg.shortLabel\n\t\t\t\t\t\t? (translationProvider ?? (form.translations && defaultTranslationProvider(form.translations)))?.(props.language, fg.shortLabel)\n\t\t\t\t\t\t: fg.shortLabel) ?? ''}`,\n\t\t\t\t)}\n\t\t\t\t<form-selection-button\n\t\t\t\t\t.forms=\"${Object.entries(fg.forms)}\"\n\t\t\t\t\t.formAdded=\"${(title: string, form: Form) => {\n\t\t\t\t\t\tform.id && formsValueContainer?.addChild(fg.id, form.id, fg.shortLabel ?? '')\n\t\t\t\t\t}}\"\n\t\t\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t\t\t.language=\"${props.language}\"\n\t\t\t\t></form-selection-button>\n\t\t\t</div>\n\t\t\t${children\n\t\t\t\t?.map((child) => {\n\t\t\t\t\tconst childForm = Object.values(fg.forms).find((f) => f.id === child.getFormId())\n\t\t\t\t\treturn (\n\t\t\t\t\t\tchildForm &&\n\t\t\t\t\t\thtml`\n\t\t\t\t\t\t\t<div class=\"subform__child\">\n\t\t\t\t\t\t\t\t<h3 class=\"subform__child__title\">${childForm.form ?? childForm.description}</h3>\n\t\t\t\t\t\t\t\t${render(childForm, props, child, translationProvider, ownersProvider, optionsProvider, actionListener, languages, readonly, displayMetadata)}\n\t\t\t\t\t\t\t\t<button class=\"subform__removeBtn\" @click=\"${() => formsValueContainer?.removeChild?.(child)}\">Remove</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t`\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t\t.filter((x) => !!x)}\n\t\t</div>`\n\t}\n\n\tfunction 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=\"${getValidationError(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.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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-text-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-token-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-items-list-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-measure-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-number-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-date-picker>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-time-picker>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-date-time-picker>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-dropdown-field>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-radio-button>`\n\t}\n\n\tfunction 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=\"${getValidationError(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 ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-checkbox>`\n\t}\n\n\tfunction 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=\"${getValidationError(formsValueContainer, fg)}\"\n\t\t\t.actionListener=\"${actionListener}\"\n\t\t\t.event=\"${fg.event !== undefined ? fg.event : fg.computedProperties?.event ? !formsValueContainer?.compute(fg.computedProperties?.event) : 'submit'}\"\n\t\t\t.payload=\"${fg.payload !== undefined ? fg.payload : fg.computedProperties?.payload ? !formsValueContainer?.compute(fg.computedProperties?.payload) : undefined}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t></icure-form-button>`\n\t}\n\n\tfunction 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.field}\"\n\t\t\t.translationProvider=\"${translationProvider ?? (form.translations && defaultTranslationProvider(form.translations))}\"\n\t\t\t.validationErrorsProvider=\"${getValidationError(formsValueContainer, fg)}\"\n\t\t\t.styleOptions=\"${fg.styleOptions}\"\n\t\t\t.readonly=\"${readonly || fg.readonly || (fg.computedProperties?.readonly ? !formsValueContainer?.compute(fg.computedProperties?.readonly) : false)}\"\n\t\t></icure-form-label>`\n\t}\n\n\tconst renderFieldGroupOrSubform = function (fg: Field | Group | Subform, level: number): TemplateResult | TemplateResult[] | typeof nothing {\n\t\tif (!fg) {\n\t\t\treturn nothing\n\t\t}\n\t\tconst computedProperties = Object.keys(fg.computedProperties ?? {}).reduce(\n\t\t\t(acc, k) => ({ ...acc, [k]: fg.computedProperties?.[k] && formsValueContainer?.compute(fg.computedProperties[k]) }),\n\t\t\t{},\n\t\t) as { [key: string]: string | number | boolean | undefined }\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 renderGroup((fg as Group).copy({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'subform' && (fg.id || computedProperties['title'])) {\n\t\t\treturn renderSubform((fg as Subform).copy({ ...computedProperties }), fgSpan, level)\n\t\t} else if (fg.clazz === 'field') {\n\t\t\tconst field = fg.copy({ ...computedProperties })\n\t\t\treturn html`${fg.type === 'text-field'\n\t\t\t\t? renderTextField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'measure-field'\n\t\t\t\t? renderMeasureField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'token-field'\n\t\t\t\t? renderTokenField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'items-list-field'\n\t\t\t\t? renderItemsListField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'number-field'\n\t\t\t\t? renderNumberField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-picker'\n\t\t\t\t? renderDatePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'time-picker'\n\t\t\t\t? renderTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'date-time-picker'\n\t\t\t\t? renderDateTimePicker(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'dropdown-field'\n\t\t\t\t? renderDropdownField(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'radio-button'\n\t\t\t\t? renderRadioButtons(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'checkbox'\n\t\t\t\t? renderCheckboxes(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'label'\n\t\t\t\t? renderLabel(fgSpan, fgRowSpan, field)\n\t\t\t\t: fg.type === 'action'\n\t\t\t\t? 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 = (form: Form) => {\n\t\treturn form.sections.map((s) => html`<div class=\"icure-form\">${s.fields.map((fieldOrGroup: Field | Group | Subform) => renderFieldGroupOrSubform(fieldOrGroup, 3))}</div>`)\n\t}\n\n\treturn html` ${renderForm(form)} `\n}\n"]}
@@ -704,6 +704,14 @@ span.code-count-3::before {
704
704
  min-width: 100%;
705
705
  overflow-y: auto;
706
706
  max-height: 280px;
707
+ padding: 2px;
708
+ border-radius: 6px;
709
+ }
710
+ .options--subformView {
711
+ top: 46px;
712
+ min-width: unset;
713
+ left: unset;
714
+ right: 0;
707
715
  }
708
716
 
709
717
  .date-picker {
@@ -748,6 +756,7 @@ app-date-picker {
748
756
  -webkit-user-select: none; /* Safari */
749
757
  -ms-user-select: none; /* IE 10 and IE 11 */
750
758
  user-select: none; /* Standard syntax */
759
+ cursor: pointer;
751
760
  }
752
761
  .option:hover {
753
762
  color: #656565;
@@ -782,13 +791,64 @@ app-date-picker {
782
791
  }
783
792
 
784
793
  .subform {
785
- align-items: end;
786
794
  display: grid;
787
795
  position: relative;
788
- margin: 8px -8px 8px;
789
- padding: 0 8px 0;
790
- min-height: 64px;
796
+ padding: 8px;
797
+ border-radius: 6px;
791
798
  background-color: #e7f0fd;
799
+ gap: 12px;
800
+ }
801
+ .subform__heading {
802
+ display: flex;
803
+ justify-content: space-between;
804
+ align-items: center;
805
+ height: auto;
806
+ }
807
+ .subform__heading__title {
808
+ padding: 0;
809
+ margin: 0;
810
+ }
811
+ .subform__addBtn, .subform__removeBtn {
812
+ cursor: pointer;
813
+ background-color: #084B83;
814
+ color: white;
815
+ height: 32px;
816
+ padding: 0 16px;
817
+ border-radius: 6px;
818
+ border: none;
819
+ outline: none;
820
+ }
821
+ .subform__addBtn:hover, .subform__removeBtn:hover {
822
+ background-color: #3D87C5;
823
+ }
824
+ .subform__removeBtn {
825
+ justify-self: end;
826
+ border: 1px solid #DDE3E7;
827
+ background-color: #FCFCFD;
828
+ color: #084B83;
829
+ }
830
+ .subform__removeBtn:hover {
831
+ background-color: #F2F2F2;
832
+ }
833
+ .subform__child {
834
+ display: grid;
835
+ grid-template-rows: auto;
836
+ gap: 8px;
837
+ padding: 8px;
838
+ border-radius: 6px;
839
+ background: white;
840
+ border: 1px solid #3D87C5;
841
+ }
842
+ .subform__child__title {
843
+ padding: 12px !important;
844
+ border-radius: 6px;
845
+ margin: 0;
846
+ background-color: #BFE8EA;
847
+ }
848
+ .subform__child .subform {
849
+ background: unset;
850
+ margin: 0;
851
+ padding: 0;
792
852
  }
793
853
 
794
854
  .icure-form {
@@ -819,17 +879,6 @@ app-date-picker {
819
879
  background: #f6f6f6;
820
880
  border-radius: 12px;
821
881
  }
822
- .icure-form .float-right-btn {
823
- position: absolute;
824
- right: 10px;
825
- cursor: pointer;
826
- }
827
- .icure-form .float-right-btn.top {
828
- top: 6px;
829
- }
830
- .icure-form .float-right-btn.bottom {
831
- bottom: -8px;
832
- }
833
882
 
834
883
  .icure-form-field {
835
884
  display: grid;
@@ -1000,6 +1049,8 @@ input[type=radio] {
1000
1049
  color: white;
1001
1050
  border-radius: 6px;
1002
1051
  cursor: pointer;
1052
+ font-size: 14px;
1053
+ font-weight: normal;
1003
1054
  }
1004
1055
  .icure-button:hover {
1005
1056
  background-color: #3D87C5;