@icure/form 3.0.38 → 3.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/install-state.gz +0 -0
- package/components/common/field.d.ts +1 -0
- package/components/common/field.js +5 -0
- package/components/common/field.js.map +1 -1
- package/components/common/metadata-buttons-bar.js +4 -0
- package/components/common/metadata-buttons-bar.js.map +1 -1
- package/components/icure-button/index.js +4 -0
- package/components/icure-button/index.js.map +1 -1
- package/components/icure-button-group/index.js +4 -0
- package/components/icure-button-group/index.js.map +1 -1
- package/components/icure-date-picker/index.js +4 -0
- package/components/icure-date-picker/index.js.map +1 -1
- package/components/icure-dropdown-field/index.js +4 -0
- package/components/icure-dropdown-field/index.js.map +1 -1
- package/components/icure-form/fields/button-group/checkbox.d.ts +1 -0
- package/components/icure-form/fields/button-group/checkbox.js +39 -2
- package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
- package/components/icure-form/fields/button-group/radio-button.d.ts +1 -0
- package/components/icure-form/fields/button-group/radio-button.js +39 -2
- package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-picker.d.ts +1 -0
- package/components/icure-form/fields/date-picker/date-picker.js +54 -17
- package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/date-time-picker.d.ts +1 -0
- package/components/icure-form/fields/date-picker/date-time-picker.js +54 -17
- package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
- package/components/icure-form/fields/date-picker/time-picker.d.ts +1 -0
- package/components/icure-form/fields/date-picker/time-picker.js +54 -17
- package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
- package/components/icure-form/fields/dropdown/dropdown-field.d.ts +1 -0
- package/components/icure-form/fields/dropdown/dropdown-field.js +39 -2
- package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
- package/components/icure-form/fields/items-list-field/items-list-field.d.ts +1 -0
- package/components/icure-form/fields/items-list-field/items-list-field.js +55 -17
- package/components/icure-form/fields/items-list-field/items-list-field.js.map +1 -1
- package/components/icure-form/fields/measure-field/measure-field.d.ts +1 -0
- package/components/icure-form/fields/measure-field/measure-field.js +39 -2
- package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
- package/components/icure-form/fields/number-field/number-field.d.ts +1 -0
- package/components/icure-form/fields/number-field/number-field.js +55 -18
- package/components/icure-form/fields/number-field/number-field.js.map +1 -1
- package/components/icure-form/fields/text-field/text-field.d.ts +1 -0
- package/components/icure-form/fields/text-field/text-field.js +65 -28
- package/components/icure-form/fields/text-field/text-field.js.map +1 -1
- package/components/icure-form/fields/token-field/token-field.d.ts +1 -0
- package/components/icure-form/fields/token-field/token-field.js +55 -17
- package/components/icure-form/fields/token-field/token-field.js.map +1 -1
- package/components/icure-form/fields/utils/index.d.ts +1 -0
- package/components/icure-form/fields/utils/index.js +2 -0
- package/components/icure-form/fields/utils/index.js.map +1 -1
- package/components/icure-form/index.d.ts +1 -1
- package/components/icure-form/index.js +26 -5
- package/components/icure-form/index.js.map +1 -1
- package/components/icure-form/renderer/form/form-selection-button.js +4 -0
- package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
- package/components/icure-form/renderer/form/form.d.ts +7 -2
- package/components/icure-form/renderer/form/form.js +618 -454
- package/components/icure-form/renderer/form/form.js.map +1 -1
- package/components/icure-form/renderer/index.d.ts +1 -1
- package/components/icure-form/renderer/index.js.map +1 -1
- package/components/icure-label/index.js +4 -0
- package/components/icure-label/index.js.map +1 -1
- package/components/icure-text-field/index.js +10 -11
- package/components/icure-text-field/index.js.map +1 -1
- package/components/model/index.d.ts +15 -1
- package/components/model/index.js +13 -2
- package/components/model/index.js.map +1 -1
- package/generic/model.d.ts +6 -6
- package/generic/model.js.map +1 -1
- package/icure/form-values-container.d.ts +63 -42
- package/icure/form-values-container.js +180 -139
- package/icure/form-values-container.js.map +1 -1
- package/icure/icure-utils.js +30 -12
- package/icure/icure-utils.js.map +1 -1
- package/icure/model.d.ts +9 -2
- package/icure/model.js +7 -1
- package/icure/model.js.map +1 -1
- package/package.json +1 -1
- package/utils/code-utils.d.ts +3 -2
- package/utils/code-utils.js +5 -6
- package/utils/code-utils.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/icure-text-field/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Import the LitElement base class and html helper function\n//@ts-ignore\nimport { css, html, LitElement, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { EditorState, Plugin, TextSelection, Transaction } from 'prosemirror-state'\nimport { EditorView } from 'prosemirror-view'\nimport { Fragment, Node as ProsemirrorNode, Schema, Slice } from 'prosemirror-model'\nimport { history, redo, undo } from 'prosemirror-history'\nimport { keymap } from 'prosemirror-keymap'\nimport { baseKeymap, chainCommands, exitCode, joinDown, joinUp, setBlockType, toggleMark } from 'prosemirror-commands'\nimport { liftListItem, sinkListItem, splitListItem, wrapInList } from 'prosemirror-schema-list'\n\nimport { createSchema } from './schema'\nimport MarkdownIt from 'markdown-it'\nimport { defaultMarkdownSerializer, MarkdownParser, MarkdownSerializer } from 'prosemirror-markdown'\nimport { unwrapFrom, wrapInIfNeeded } from './prosemirror-commands'\nimport { SelectionCompanion } from './selection-companion'\nimport { SuggestionPalette } from './suggestion-palette'\nimport { hasMark } from './prosemirror-utils'\n\nimport { maskPlugin } from './plugin/mask-plugin'\nimport { hasContentClassPlugin } from './plugin/has-content-class-plugin'\nimport { regexpPlugin } from './plugin/regexp-plugin'\nimport { format, parse } from 'date-fns'\nimport { Field } from '../common'\nimport { Code, FieldMetadata, FieldValue, IcureTextFieldSchema, PrimitiveType, pteq, StringType } from '../model'\nimport { Suggestion, Version } from '../../generic'\nimport { generateLabels } from '../common/utils'\n\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n.tab-container .tab-bar li {\n display: inline-block;\n padding: 8px 16px;\n cursor: pointer;\n color: #000000;\n font-size: 14px;\n font-weight: 500;\n}\n.tab-container .tab-bar li.active {\n background-color: #656565;\n color: white;\n}\n.tab-container .tab-content .tab {\n display: none;\n}\n.tab-container .tab-content .tab.active {\n display: block;\n}\n\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n width: 100%;\n word-wrap: break-word;\n white-space: pre-wrap;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n padding: 6px 8px 2px 8px;\n line-height: 1.2;\n color: #274768;\n font-size: 14px;\n font-weight: 400;\n outline: none;\n}\n.ProseMirror p:last-child,\n.ProseMirror h1:last-child,\n.ProseMirror h2:last-child,\n.ProseMirror h3:last-child,\n.ProseMirror h4:last-child,\n.ProseMirror h5:last-child,\n.ProseMirror h6:last-child {\n margin-bottom: 2px;\n}\n.ProseMirror p {\n margin-bottom: 1em;\n}\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n.ProseMirror li {\n position: relative;\n}\n.ProseMirror ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\n.ProseMirror blockquote {\n padding-left: 1em;\n border-left: 3px solid #eee;\n margin-left: 0;\n margin-right: 0;\n}\n\n.ProseMirror-hideselection {\n caret-color: transparent;\n}\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-selectednode {\n outline: 2px solid #8cf;\n}\n\n/* Make sure li selections wrap around markers */\nli.ProseMirror-selectednode {\n outline: none;\n}\nli.ProseMirror-selectednode :after {\n content: \"\";\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n}\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n/* Add space around the hr to make clicking it easier */\n.ProseMirror-example-setup-style hr {\n padding: 2px 10px;\n border: none;\n margin: 1em 0;\n}\n.ProseMirror-example-setup-style hr:after {\n content: \"\";\n display: block;\n height: 1px;\n background: silver;\n line-height: 2px;\n}\n\n.ProseMirror-example-setup-style img {\n cursor: default;\n}\n\n.ProseMirror-prompt {\n background: white;\n padding: 5px 10px 5px 15px;\n border: 1px solid silver;\n position: fixed;\n border-radius: 3px;\n z-index: 11;\n box-shadow: -0.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\n.ProseMirror-prompt input[type=text] {\n padding: 0 4px;\n}\n\n.ProseMirror-prompt-close {\n position: absolute;\n left: 2px;\n top: 1px;\n color: #666;\n border: none;\n background: transparent;\n padding: 0;\n}\n.ProseMirror-prompt-close:after {\n content: \"✕\";\n font-size: 12px;\n}\n\n.ProseMirror-invalid {\n background: #ffc;\n border: 1px solid #cc7;\n border-radius: 4px;\n padding: 5px 10px;\n position: absolute;\n min-width: 10em;\n}\n\n.ProseMirror-prompt-buttons {\n margin-top: 5px;\n display: none;\n}\n\n#editor,\n.editor {\n color: rgb(101, 101, 101);\n background-clip: padding-box;\n border-radius: 4px;\n border: 2px solid rgba(0, 0, 0, 0.2);\n padding: 5px 0;\n display: flex;\n align-items: flex-end;\n}\n\n.icure-input {\n background: #edf2f7;\n border-radius: 8px;\n border: none;\n min-height: 28px;\n height: auto;\n display: flex;\n flex-flow: row nowrap;\n align-items: flex-start;\n justify-content: space-between;\n}\n\n#editor {\n background: transparent;\n border: none;\n padding: 0;\n flex-grow: 1;\n display: flex;\n align-items: stretch;\n}\n#editor.tokens-list .ProseMirror, #editor.styled-tokens-list .ProseMirror {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n#editor.tokens-list .ProseMirror li, #editor.styled-tokens-list .ProseMirror li {\n display: flex;\n flex-direction: row;\n border-radius: 8px;\n padding: 2px 4px;\n margin-right: 2px;\n background-color: #dadada;\n border-color: rgba(42, 61, 108, 0.44);\n min-height: 20px;\n}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n display: inline-block;\n min-height: 18px;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.items-list .ProseMirror {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: flex-start;\n gap: 6px;\n}\n#editor.items-list .ProseMirror li {\n list-style-type: none;\n width: 100%;\n padding-bottom: 4px;\n border-bottom: 1px dotted rgba(128, 128, 128, 0.5098039216);\n}\n#editor.items-list .ProseMirror li:last-child {\n border-bottom: none;\n}\n\n#content {\n position: relative;\n padding: 0;\n}\n\n* {\n font-family: \"Roboto\", Helvetica, sans-serif;\n}\n\np {\n margin-top: 0;\n}\n\nh3 {\n color: #274768;\n margin-top: 0;\n}\n\n.icure-input-metadata-container {\n display: flex;\n}\n.icure-input-metadata-container .icure-metadata-container {\n display: flex;\n flex-grow: 1;\n padding: 0 4px;\n border: 1px solid #DDE3E7;\n border-left: none;\n border-radius: 0 6px 6px 0;\n outline: 0;\n box-sizing: border-box;\n}\n.icure-input-metadata-container .icure-metadata-container__validationError {\n border-color: red;\n}\n\n.extra {\n min-width: 20px;\n width: auto;\n height: 20px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n.extra:hover .info {\n display: none;\n}\n.extra:hover .buttons-container .menu-container .btn {\n animation: slideIn 0.24s ease-in forwards;\n pointer-events: none;\n display: unset !important;\n}\n.extra.forced .info, .extra.forced .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n display: none;\n}\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n.extra--metadataButtonsBar {\n height: 100%;\n display: flex;\n align-items: center;\n padding: 0 4px;\n}\n.extra .info {\n color: #809ab4;\n font-size: 15px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: center;\n}\n.extra .info span {\n font-weight: 700;\n}\n.extra .info.hidden {\n display: none;\n}\n.extra .buttons-container {\n display: flex;\n height: 20px;\n width: auto;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n z-index: 1000;\n}\n.extra .buttons-container .btn {\n border: none;\n background: transparent;\n position: relative;\n top: 0;\n display: none;\n opacity: 0;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.extra .buttons-container .btn svg {\n width: 15px;\n height: 15px;\n}\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n.extra .buttons-container .btn:focus, .extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n.extra .buttons-container .menu-container .btn:hover::before {\n content: \"\";\n display: block;\n border-color: #274768 transparent transparent transparent;\n border-style: solid;\n border-width: 4px;\n position: absolute;\n top: -6px;\n}\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -21px;\n height: 16px;\n left: 50%;\n transform: translateX(-50%);\n border-radius: 8px;\n background: #274768;\n color: white;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n text-transform: capitalize;\n white-space: nowrap;\n padding: 0 12px;\n font-size: 12px;\n line-height: 0;\n}\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n@keyframes slideIn {\n 0% {\n top: 0;\n opacity: 0;\n pointer-events: none;\n }\n 100% {\n top: 0;\n opacity: 1;\n pointer-events: all;\n }\n}\n.menu-container {\n display: flex;\n align-items: center;\n height: fit-content;\n}\n.menu-container .item {\n height: 30px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #274768;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.menu-container .item.existing {\n background-color: #BFE8EA;\n}\n.menu-container .item.selected {\n color: white;\n background-color: #084B83;\n}\n.menu-container .item:hover {\n background: #DCE7F2;\n color: #274768;\n font-weight: 500;\n border-radius: 4px;\n}\n\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n position: absolute;\n top: 32px;\n right: -12px;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n padding: 8px;\n width: 220px;\n min-height: 120px;\n max-height: 320px;\n overflow-y: scroll;\n}\n.menu .input-container {\n background: #edf2f7;\n border-radius: 4px;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n height: 32px;\n margin-bottom: 4px;\n padding: 0 4px;\n}\n.menu .input-container:hover {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2);\n}\n.menu .input-container:focus-within {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2), 0 0 0 1px rgb(40, 151, 255);\n}\n.menu .input-container input {\n background: transparent;\n border: none;\n flex-grow: 1;\n height: 100%;\n}\n.menu .input-container input:focus {\n background: transparent;\n border: none;\n outline: none;\n}\n\n.menu-trigger:focus .menu {\n display: flex;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\nspan.date {\n margin-right: 1px;\n}\nspan.time {\n margin-left: 1px;\n}\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\nspan[data-content]:hover::after {\n position: absolute;\n content: attr(data-content);\n background: #274768;\n color: #ffffff;\n font-size: 9px;\n line-height: 12px;\n top: -12px;\n left: 0px;\n padding: 0px 2px;\n}\nspan[data-content]::before {\n position: absolute;\n content: \"\";\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n opacity: 0.3;\n}\n\n.masked {\n display: none;\n}\n\n.companion {\n position: absolute;\n width: 15px;\n background-color: hsl(194, 100%, 50%);\n color: white;\n z-index: 20;\n padding: 0;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0 2px 2px 0;\n}\n.companion:hover {\n font-weight: 700;\n background: hsl(202, 100%, 50%);\n}\n\n*::selection {\n background-color: hsla(194, 100%, 50%, 0.2);\n}\n\n.suggestion-palette {\n position: absolute;\n z-index: 20;\n max-width: 380px;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 4px;\n border: none;\n border-radius: 8px;\n background: white;\n box-shadow: 0 1.1px 1.1px rgba(0, 0, 0, 0.022), 0 2.7px 2.7px rgba(0, 0, 0, 0.032), 0 5px 5px rgba(0, 0, 0, 0.04), 0 8.9px 8.9px rgba(0, 0, 0, 0.048), 0 16.7px 16.7px rgba(0, 0, 0, 0.058), 0 40px 40px rgba(0, 0, 0, 0.08);\n}\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn, .suggestion-palette ul.focused li:first-child svg.tab-icn {\n height: 0;\n width: 0;\n transform: scale(0);\n opacity: 0;\n}\n.suggestion-palette ul li {\n padding: 0 8px;\n font-size: 11px;\n height: 20px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px;\n color: rgb(39, 71, 104);\n}\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\n}\n.suggestion-palette ul li svg {\n height: 12px;\n width: 12px;\n border-radius: 4px;\n transform-origin: center center;\n}\n.suggestion-palette ul li svg path {\n fill: rgb(128, 154, 180);\n}\n\n@keyframes growIn {\n 0% {\n transform: scale(0.5);\n }\n 90% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n}\nspan.code-count-1::after,\nspan.code-count-1::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n}\n\nspan.code-count-2::after,\nspan.code-count-2::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n /*background: repeating-linear-gradient(*/\n /*\t45deg,*/\n /*\tvar(--bg-code-color-1),*/\n /*\tvar(--bg-code-color-1) 10px,*/\n /*\tvar(--bg-code-color-2) 10px,*/\n /*\tvar(--bg-code-color-2) 20px*/\n /*);*/\n /* PAS STRIPES */\n background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);\n}\n\nspan.code-count-3::after,\nspan.code-count-3::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n background: repeating-linear-gradient(45deg, var(--bg-code-color-1), var(--bg-code-color-1) 10px, var(--bg-code-color-2) 10px, var(--bg-code-color-2) 20px);\n /* PAS STRIPES */\n /* background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);*/\n}\n\n.selected-option {\n padding: 2px;\n margin-right: 5px;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: auto;\n min-width: 100%;\n overflow-y: auto;\n padding: 2px;\n border-radius: 6px;\n}\n.options--subformView {\n top: 46px;\n min-width: unset;\n left: unset;\n right: 0;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: 260px;\n overflow-y: auto;\n max-height: 280px;\n}\n\napp-date-picker {\n --app-primary: #084B83;\n --app-hover: #5b7da2;\n --app-selected-hover: #5b7da2;\n}\n\n.option {\n height: 28px;\n min-height: 28px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #545454;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n padding: 4px 8px;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n cursor: pointer;\n}\n.option:hover {\n color: #656565;\n background-color: #ededed;\n}\n\n.select-arrow {\n border: none;\n background: 0px 0px;\n position: relative;\n top: 0px;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0px;\n}\n\n.hidden {\n display: none;\n}\n\n.container {\n position: relative;\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n display: grid;\n position: relative;\n padding: 8px;\n border-radius: 6px;\n background-color: #e7f0fd;\n gap: 12px;\n}\n.subform__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: auto;\n}\n.subform__heading__title {\n padding: 0;\n margin: 0;\n}\n.subform__addBtn, .subform__removeBtn {\n cursor: pointer;\n background-color: #084B83;\n color: white;\n height: 32px;\n padding: 0 16px;\n border-radius: 6px;\n border: none;\n outline: none;\n}\n.subform__addBtn:hover, .subform__removeBtn:hover {\n background-color: #3D87C5;\n}\n.subform__removeBtn {\n justify-self: end;\n border: 1px solid #DDE3E7;\n background-color: #FCFCFD;\n color: #084B83;\n}\n.subform__removeBtn:hover {\n background-color: #F2F2F2;\n}\n.subform__child {\n display: grid;\n grid-template-rows: auto;\n gap: 8px;\n padding: 8px;\n border-radius: 6px;\n background: white;\n border: 1px solid #3D87C5;\n}\n.subform__child__title {\n padding: 12px !important;\n border-radius: 6px;\n margin: 0;\n background-color: #BFE8EA;\n}\n.subform__child .subform {\n background: unset;\n margin: 0;\n padding: 0;\n}\n\n.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 16px 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n.icure-form hr {\n display: block;\n margin-top: 20px;\n border-top: 1px solid rgba(8, 75, 131, 0.13);\n margin-bottom: 20px;\n}\n.icure-form h2 {\n font-size: add-two(12px, 0, 1.2);\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: add-two(12px, 0, 1.1);\n font-weight: 500;\n color: #084B83;\n padding: 6px;\n}\n.icure-form .group.bordered {\n background: #f6f6f6;\n border-radius: 12px;\n}\n\n.icure-form-field {\n display: grid;\n align-items: flex-start;\n}\n\n.error {\n color: red;\n font-size: 12px;\n margin-top: 4px;\n}\n\n.icure-text-field .icure-label-extra, .icure-button-group .icure-label-extra {\n display: flex;\n width: 100%;\n gap: 12px;\n}\n.icure-text-field .icure-label, .icure-button-group .icure-label {\n z-index: 1;\n pointer-events: none;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n left: add-two(8px, 1px);\n color: #084B83;\n align-items: center;\n text-wrap: auto;\n min-height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-text-field .icure-label.float, .icure-button-group .icure-label.float {\n display: flex;\n overflow: hidden;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n}\n.icure-text-field > .icure-label {\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n}\n.icure-text-field > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-text-field > .icure-label.side {\n position: relative;\n}\n.icure-text-field > .icure-label.side.left {\n order: -1;\n margin-right: 1em;\n}\n.icure-text-field > .icure-label.side.right {\n order: 1;\n margin-left: 1em;\n}\n.icure-text-field .icure-input,\n.icure-text-field .input-container {\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-color: #DDE3E7;\n border-radius: 2px;\n outline: 0;\n font: inherit;\n font-size: 14px;\n line-height: 1.4em;\n display: flex;\n align-items: center;\n vertical-align: middle;\n position: relative;\n -webkit-appearance: none;\n background-color: #ffffff;\n color: #000000;\n}\n.icure-text-field .icure-input .reset-button,\n.icure-text-field .input-container .reset-button {\n position: absolute;\n right: 0;\n border: none;\n background: transparent;\n top: 0;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.icure-text-field .icure-input .reset-button svg,\n.icure-text-field .input-container .reset-button svg {\n width: 15px;\n height: 15px;\n}\n.icure-text-field .icure-input__validationError,\n.icure-text-field .input-container__validationError {\n border-color: red;\n}\n.icure-text-field .icure-input__withMetadata,\n.icure-text-field .input-container__withMetadata {\n border-radius: 6px 0 0 6px;\n}\n.icure-text-field .icure-input:focus, .icure-text-field .icure-input:focus-within,\n.icure-text-field .input-container:focus,\n.icure-text-field .input-container:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input:hover,\n.icure-text-field .input-container:hover {\n border-color: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n}\n.icure-text-field .icure-input:hover:focus, .icure-text-field .icure-input:hover:focus-within,\n.icure-text-field .input-container:hover:focus,\n.icure-text-field .input-container:hover:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input .ProseMirror,\n.icure-text-field .input-container .ProseMirror {\n padding: 0;\n font-size: 14px;\n line-height: 1.4em;\n color: #000000;\n}\n.icure-text-field .icure-input .ProseMirror .date,\n.icure-text-field .input-container .ProseMirror .date {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror .time,\n.icure-text-field .input-container .ProseMirror .time {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror:focus .focused,\n.icure-text-field .input-container .ProseMirror:focus .focused {\n background-color: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n border-color: rgba(0, 0, 0, 0.1);\n}\n.icure-text-field .icure-input > svg,\n.icure-text-field .input-container > svg {\n opacity: 0.5;\n}\n.icure-text-field .icure-input > svg path,\n.icure-text-field .input-container > svg path {\n fill: #656565;\n}\n.icure-text-field .icure-input .extra,\n.icure-text-field .input-container .extra {\n height: 20px;\n}\n.icure-text-field .icure-input .extra > .info,\n.icure-text-field .input-container .extra > .info {\n color: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path,\n.icure-text-field .input-container .extra .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path:hover,\n.icure-text-field .input-container .extra .btn svg path:hover {\n fill: #656565;\n opacity: 1;\n}\n\ninput[type=radio] {\n margin-top: -1px;\n vertical-align: middle;\n}\n\n.icure-checkbox:checked {\n accent-color: #06a070;\n}\n\n.icure-button {\n display: flex;\n height: 32px;\n padding: 0 16px;\n background-color: #084B83;\n color: white;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: normal;\n}\n.icure-button:hover {\n background-color: #3D87C5;\n}\n\n.icure-button-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.icure-button-group > div {\n display: grid;\n}\n.icure-button-group > div > div {\n display: flex;\n align-items: center;\n}\n.icure-button-group > div > div > .icure-button-group-label {\n z-index: 1;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n top: add-three(1.4em, 1px, 0);\n left: add-two(8px, 1px);\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n color: #084B83;\n display: flex;\n align-items: center;\n height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-button-group > div > div > .icure-button-group-label > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n padding-right: 8px;\n}\n.icure-button-group > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-button-group > .icure-label {\n transform: translate(0, 0) scale(1);\n}\n.icure-button-group > .icure-label.above, .icure-button-group.has-content > .icure-label, .icure-button-group:focus > .icure-label, .icure-button-group:focus-within > .icure-label {\n font-weight: 500;\n height: 1.4em;\n}` \n\nimport { extractSingleValue, extractValues } from '../icure-form/fields/utils'\nimport { preprocessEmptyNodes, SpacePreservingMarkdownParser } from '../../utils/markdown'\nimport { measureOnFocusHandler, measureTransactionMapper } from './schema/measure-schema'\nimport { anyDateToDate } from '../../utils/dates'\nimport { icureFormLogging } from '../../index'\nimport { resetPicto } from '../common/styles/paths'\n\n// Extend the LitElement base class\nexport class IcureTextField extends Field {\n\t@property() placeholder = ''\n\t@property() multiline: boolean | string = false\n\t@property() lines = 1\n\t@property() suggestionStopWords: Set<string> = new Set<string>()\n\t@property({ type: Boolean }) displayOwnerMenu = false\n\t@property({ type: Boolean }) suggestions = false\n\t@property({ type: Boolean }) links = false\n\t@property() linksProvider: (sug: Suggestion) => Promise<{ href: string; title: string } | undefined> = async () => undefined\n\t@property() suggestionProvider: (terms: string[]) => Promise<Suggestion[]> = async () => []\n\t@property() codeColorProvider: (type: string, code: string) => string = () => 'XI'\n\t@property() linkColorProvider: (type: string, code: string) => string = () => 'cat1'\n\t@property() codeContentProvider: (codes: { type: string; code: string }[]) => string = (codes) => codes.map((c) => c.code).join(',')\n\t@property() schema: IcureTextFieldSchema = 'styled-text-with-codes'\n\n\tprivate proseMirrorSchema?: Schema\n\tprivate parser?: SpacePreservingMarkdownParser | { parse: (value: PrimitiveType, id?: string, renderHash?: number) => ProsemirrorNode | undefined }\n\tprivate serializer: MarkdownSerializer | { serialize: (content: ProsemirrorNode) => string } = {\n\t\tserialize: (content: ProsemirrorNode) => content.textBetween(0, content.nodeSize - 2, ' '),\n\t}\n\tprivate primitiveTypeExtractor: (doc?: ProsemirrorNode) => PrimitiveType | undefined = () => undefined\n\tprivate primitiveTypesExtractor: (doc?: ProsemirrorNode) => [string, PrimitiveType][] = () => []\n\tprivate codesExtractor: (doc?: ProsemirrorNode) => Code[] = () => []\n\n\t@state() private view?: EditorView\n\n\tprivate container?: HTMLElement\n\tprivate readonly windowListeners: [string, () => void][] = []\n\tprivate suggestionPalette?: SuggestionPalette\n\tprivate mouseCount = 0\n\tprivate trToSave?: Transaction = undefined\n\n\tconstructor() {\n\t\tsuper()\n\t}\n\n\t_handleClickOutside(event: MouseEvent): void {\n\t\tconst pm = this.shadowRoot?.querySelectorAll('.ProseMirror')[0] as HTMLDivElement\n\t\tif (!event.composedPath().includes(this)) {\n\t\t\tevent.stopPropagation()\n\t\t} else if (pm && !event.composedPath().includes(pm)) {\n\t\t\tpm.focus()\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tconst cmu = this.mouseUp.bind(this)\n\t\tconst cmd = this.mouseDown.bind(this)\n\n\t\tdocument.addEventListener('click', this._handleClickOutside.bind(this))\n\n\t\tthis.windowListeners.push(['mouseup', cmu], ['mousedown', cmd])\n\t\twindow.addEventListener('mouseup', cmu)\n\t\twindow.addEventListener('mousedown', cmd)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\n\t\tdocument.removeEventListener('click', this._handleClickOutside.bind(this))\n\n\t\tthis.windowListeners.forEach((wl) => window.removeEventListener(wl[0], wl[1]))\n\t}\n\n\tstatic get styles() {\n\t\treturn [\n\t\t\tcss`\n\t\t\t\t.unit::before {\n\t\t\t\t\tcontent: ' ';\n\t\t\t\t}\n\t\t\t`,\n\t\t\tbaseCss,\n\t\t]\n\t}\n\n\tprivate isMultivalued() {\n\t\treturn this.schema.includes('tokens-list') || this.schema.includes('items-list')\n\t}\n\n\tprivate updateValue(tr: Transaction) {\n\t\tif (this.isMultivalued()) {\n\t\t\tconst values = extractValues(this.valueProvider?.(), this.metadataProvider ?? (() => ({})))\n\t\t\tconst valuesFromField = this.primitiveTypesExtractor?.(tr.doc) ?? []\n\n\t\t\tconst unchangedIds: string[] = []\n\t\t\tconst newAndModifiedValues: typeof valuesFromField = []\n\t\t\tvaluesFromField.forEach(([tid, value]) => {\n\t\t\t\tconst id = tid.length > 0 ? tid : undefined\n\t\t\t\tconst oldValue = id && values.find(([vid, v]) => vid === id && pteq(v[0].value?.content?.[this.language()], value))\n\t\t\t\tconst idPresent = newAndModifiedValues.some(([ttid]) => ttid === tid)\n\t\t\t\tif (!oldValue || idPresent) {\n\t\t\t\t\tnewAndModifiedValues.push([idPresent ? '' : tid, value])\n\t\t\t\t} else {\n\t\t\t\t\tunchangedIds.push(tid)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tnewAndModifiedValues.forEach(([tid, value]) => {\n\t\t\t\tconst id = tid.length > 0 && !unchangedIds.includes(tid) ? tid : undefined\n\t\t\t\tthis.handleValueChanged?.(\n\t\t\t\t\tthis.label,\n\t\t\t\t\tthis.language(),\n\t\t\t\t\tvalue\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tcontent: { [this.language()]: value },\n\t\t\t\t\t\t\t\tcodes: [],\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tid,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\tvalues\n\t\t\t\t.filter(([vid]) => !valuesFromField.some(([vvid]) => vvid === vid))\n\t\t\t\t.forEach(([id]) => {\n\t\t\t\t\tthis.handleValueChanged?.(this.label, this.language(), undefined, id)\n\t\t\t\t})\n\t\t} else {\n\t\t\tconst [valueId] = extractSingleValue(this.valueProvider?.())\n\t\t\tconst value = this.primitiveTypeExtractor?.(tr.doc)\n\t\t\tthis.handleValueChanged?.(\n\t\t\t\tthis.label,\n\t\t\t\tthis.language(),\n\t\t\t\tvalue\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tcontent: { [this.language()]: value },\n\t\t\t\t\t\t\tcodes: this.codesExtractor?.(tr.doc) ?? [],\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t\tvalueId,\n\t\t\t) && (this.selectedRevision = undefined)\n\t\t}\n\t}\n\n\toverride renderSync({ validationErrors }: { validationErrors: [FieldMetadata, string][] }) {\n\t\tconst renderHash = Math.random()\n\t\tlet metadata: FieldMetadata | undefined\n\t\tlet rev: string | null | undefined\n\t\tlet versions: Version<FieldValue>[] | undefined\n\t\tconst validationError = validationErrors.length\n\t\tlet valueForExistingLanguages: string[] | undefined = undefined\n\n\t\tif (icureFormLogging) {\n\t\t\tconsole.log(`Rendering text-field ${this.schema} ${this.label} [${this.displayedLabels}]`)\n\t\t}\n\n\t\tif (this.view) {\n\t\t\tlet parsedDoc: ProsemirrorNode | undefined\n\n\t\t\tconst data = this.valueProvider?.()\n\t\t\tif (icureFormLogging) {\n\t\t\t\tconsole.log(`Data for ${this.label} is ${JSON.stringify(data)}`)\n\t\t\t}\n\n\t\t\tif (this.isMultivalued()) {\n\t\t\t\tconst values = extractValues(data, this.metadataProvider ?? (() => ({})))\n\t\t\t\tparsedDoc =\n\t\t\t\t\tthis.proseMirrorSchema?.topNodeType.createAndFill(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tvalues.map(([id, value]) => this.parser?.parse(value?.[0]?.value?.content?.[this.language()] ?? '', id, renderHash)).filter((x) => !!x) as ProsemirrorNode[],\n\t\t\t\t\t) ?? undefined\n\t\t\t} else {\n\t\t\t\tlet id\n\t\t\t\t;[id, versions] = extractSingleValue(data)\n\t\t\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\t\t\t\tconst valueForLanguage = version?.value?.content?.[this.language()] ?? ''\n\t\t\t\tvalueForExistingLanguages = Object.keys(version?.value?.content ?? {})\n\n\t\t\t\tparsedDoc = valueForLanguage ? this.parser?.parse(valueForLanguage) ?? undefined : undefined\n\t\t\t\trev = version?.revision\n\t\t\t\tmetadata = id && rev !== undefined ? this.metadataProvider?.(id, versions?.map((v) => v.revision) ?? [])?.[id]?.find((m) => m.revision === rev)?.value : undefined\n\t\t\t}\n\n\t\t\tif (parsedDoc) {\n\t\t\t\tconst selection = this.view.state.selection\n\t\t\t\tconst selAnchor = selection.$anchor.pos\n\t\t\t\tconst selHead = selection.$head.pos\n\t\t\t\tconst lastPos = this.schema === 'text-document' ? parsedDoc.content.size - 1 : parsedDoc.content.size\n\n\t\t\t\tif (lastPos < selAnchor || lastPos < selHead) {\n\t\t\t\t\tconsole.log(`Constraining selection to ${Math.min(selAnchor, lastPos)} - ${Math.min(selHead, lastPos)}`)\n\t\t\t\t}\n\n\t\t\t\tconst newState = EditorState.create({\n\t\t\t\t\tschema: this.view.state.schema,\n\t\t\t\t\tdoc: parsedDoc,\n\t\t\t\t\tplugins: this.view.state.plugins,\n\t\t\t\t\tselection: new TextSelection(parsedDoc.resolve(Math.min(selAnchor, lastPos)), parsedDoc.resolve(Math.min(selHead, lastPos))),\n\t\t\t\t})\n\t\t\t\tthis.view.updateState(newState)\n\t\t\t} else {\n\t\t\t\tthis.view.updateState(\n\t\t\t\t\tEditorState.create({\n\t\t\t\t\t\tschema: this.view.state.schema,\n\t\t\t\t\t\tdoc: undefined,\n\t\t\t\t\t\tplugins: this.view.state.plugins,\n\t\t\t\t\t\tselection: undefined,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn html`\n\t\t\t<div id=\"root\" class=\"${this.visible ? 'icure-text-field' : 'hidden'}\" data-placeholder=${this.placeholder}>\n\t\t\t\t${this.displayedLabels ? generateLabels(this.displayedLabels, this.language(), this.translate ? this.translationProvider : undefined) : nothing}\n\t\t\t\t<div class=\"icure-input-metadata-container\">\n\t\t\t\t\t<div class=\"icure-input ${validationError ? 'icure-input__validationError' : ''} ${this.displayMetadata && metadata ? 'icure-input__withMetadata' : ''}\">\n\t\t\t\t\t\t<div id=\"editor\" class=\"${this.schema}\" style=\"min-height: calc( ${this.lines}rem + 5px )\"></div>\n\t\t\t\t\t\t${!this.displayMetadata && this.defaultValueProvider ? html`<div id=\"reset\" class=\"reset-button\" @click=\"${async () => await this.reset(renderHash)}\">${resetPicto}</div` : nothing}\n\t\t\t\t\t</div>\n\t\t\t\t\t\t${\n\t\t\t\t\t\t\tthis.displayMetadata && metadata\n\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t<div class=\"icure-metadata-container ${validationError ? 'icure-metadata-container__validationError' : ''}\">\n\t\t\t\t\t\t\t\t\t\t\t<icure-metadata-buttons-bar\n\t\t\t\t\t\t\t\t\t\t\t\t.metadata=\"${metadata}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.revision=\"${rev}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.versions=\"${versions ?? []}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.valueId=\"${extractSingleValue(this.valueProvider?.())?.[0]}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.selectedLanguage=\"${this.selectedLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleReset=\"${() => this.reset(renderHash)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleMetadataChanged=\"${this.handleMetadataChanged}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleLanguageSelected=\"${(iso: string) => (this.selectedLanguage = iso)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleRevisionSelected=\"${(rev: string) => (this.selectedRevision = rev)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.ownersProvider=\"${this.ownersProvider}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.existingLanguages=\"${valueForExistingLanguages ?? undefined}\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t `\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"error\">${validationErrors.map(([, error]) => html`<div>${this.translationProvider?.(this.language(), error)}</div>`)}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\tprivate async reset(renderHash: number) {\n\t\tif (this.view) {\n\t\t\tconst defaultValue = await this.defaultValueProvider?.()\n\t\t\tconst contentForLanguage = defaultValue?.content?.[this.language()] ?? defaultValue?.content?.[this.defaultLanguage] ?? defaultValue?.content?.['*']\n\t\t\tconst newState = EditorState.create({\n\t\t\t\tschema: this.view.state.schema,\n\t\t\t\tdoc:\n\t\t\t\t\tthis.parser?.parse(\n\t\t\t\t\t\tcontentForLanguage ?? {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\trenderHash,\n\t\t\t\t\t) ?? undefined,\n\t\t\t\tplugins: this.view.state.plugins,\n\t\t\t\tselection: undefined,\n\t\t\t})\n\t\t\tthis.view.updateState(newState)\n\t\t}\n\t}\n\n\tmouseDown() {\n\t\tthis.mouseCount++\n\t}\n\n\tmouseUp() {\n\t\tthis.mouseCount = 0\n\t\tif (!this.view?.dom?.classList?.contains('ProseMirror-focused')) {\n\t\t\tthis.view?.dom?.parentElement?.querySelectorAll('.companion')?.forEach((x) => {\n\t\t\t\t;(x as HTMLElement).style.display = 'none'\n\t\t\t})\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\tconst cmp = this\n\t\tconst pms: Schema = (this.proseMirrorSchema = createSchema(this.schema, (t, c, isC) => (isC ? this.codeColorProvider(t, c) : this.linkColorProvider(t, c)), this.codeContentProvider))\n\n\t\tthis.parser = this.makeParser(this.schema, pms)\n\t\tthis.serializer = this.makeSerializer(this.schema, pms)\n\t\tthis.primitiveTypeExtractor = this.makePrimitiveExtractor(this.schema)\n\t\tthis.primitiveTypesExtractor = this.makePrimitivesExtractor(this.schema)\n\t\tthis.codesExtractor = this.makeCodesExtractor(this.schema)\n\n\t\tthis.container = this.shadowRoot?.getElementById('editor') || undefined\n\n\t\tif (this.container) {\n\t\t\tconst br = pms.nodes.hard_break\n\t\t\tconst hard_break = chainCommands(exitCode, (state, dispatch) => {\n\t\t\t\tdispatch && dispatch(state.tr.replaceSelectionWith(br.create()).scrollIntoView())\n\t\t\t\treturn true\n\t\t\t})\n\n\t\t\tconst replaceRangeWithSuggestion = async (from: number, to: number, sug: Suggestion) => {\n\t\t\t\tconst link = await this.linksProvider(sug)\n\t\t\t\treturn (link && cmp.view && cmp.view.state.tr.replaceWith(from, to, pms.text(sug.text, [pms.mark('link', link)]))) || undefined\n\t\t\t}\n\n\t\t\tconst headingsKeymap = keymap(\n\t\t\t\t[1, 2, 3, 4, 5, 6].reduce((acc, idx) => {\n\t\t\t\t\treturn Object.assign(acc, { [`Mod-ctrl-${idx}`]: setBlockType(pms.nodes.heading, { level: '' + idx }) })\n\t\t\t\t}, {}),\n\t\t\t)\n\n\t\t\t//Currently take the first piece of data if it is available\n\t\t\tthis.view = new EditorView(this.container, {\n\t\t\t\tstate: EditorState.create({\n\t\t\t\t\tdoc: undefined,\n\t\t\t\t\tschema: this.proseMirrorSchema,\n\t\t\t\t\tplugins: [\n\t\t\t\t\t\thistory(),\n\t\t\t\t\t\tthis.links\n\t\t\t\t\t\t\t? new Plugin({\n\t\t\t\t\t\t\t\t\tview(editorView) {\n\t\t\t\t\t\t\t\t\t\treturn new SelectionCompanion(editorView, () => cmp.mouseCount > 0)\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tthis.suggestions\n\t\t\t\t\t\t\t? new Plugin({\n\t\t\t\t\t\t\t\t\tview(editorView) {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette = new SuggestionPalette(\n\t\t\t\t\t\t\t\t\t\t\tpms,\n\t\t\t\t\t\t\t\t\t\t\teditorView,\n\t\t\t\t\t\t\t\t\t\t\t(terms: string[]) => cmp.suggestionProvider(terms),\n\t\t\t\t\t\t\t\t\t\t\t() => cmp.suggestionStopWords,\n\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tthis.suggestions\n\t\t\t\t\t\t\t? keymap({\n\t\t\t\t\t\t\t\t\tTab: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && this.view && cmp.suggestionPalette.focusOrInsert(this.view, replaceRangeWithSuggestion)) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tArrowUp: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && cmp.suggestionPalette.arrowUp()) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tArrowDown: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && cmp.suggestionPalette.arrowDown()) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tEnter: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && this.view && cmp.suggestionPalette.insert(this.view, replaceRangeWithSuggestion)) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tkeymap({ 'Mod-z': undo, 'Mod-Shift-z': redo }),\n\t\t\t\t\t\tkeymap(\n\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\tpms.marks.strong ? { 'Mod-b': toggleMark(pms.marks.strong) } : {},\n\t\t\t\t\t\t\t\tpms.marks.em ? { 'Mod-i': toggleMark(pms.marks.em) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Alt-ArrowUp': joinUp } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Alt-ArrowDown': joinDown } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Alt-Enter': hard_break } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Shift-Enter': hard_break } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list ? { 'Shift-ctrl-1': wrapInList(pms.nodes.ordered_list) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.bullet_list ? { 'Shift-ctrl-*': wrapInList(pms.nodes.bullet_list) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.blockquote ? { 'Shift-ctrl-w': wrapInIfNeeded(pms.nodes.blockquote) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.blockquote ? { 'Shift-ctrl-u': unwrapFrom(pms.nodes.blockquote) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Mod-ctrl-0': setBlockType(pms.nodes.paragraph) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Shift-ctrl-0': setBlockType(pms.nodes.paragraph) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.list_item ? { Enter: splitListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-(': liftListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-[': liftListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-)': sinkListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-]': sinkListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tpms.nodes.heading ? headingsKeymap : null,\n\t\t\t\t\t\tmaskPlugin(),\n\t\t\t\t\t\tregexpPlugin(),\n\t\t\t\t\t\thasContentClassPlugin(this.shadowRoot || undefined),\n\t\t\t\t\t\tnew Plugin({\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\ttransformPasted(slice) {\n\t\t\t\t\t\t\t\t\tlet ok = true\n\t\t\t\t\t\t\t\t\tslice.content.forEach((node) => {\n\t\t\t\t\t\t\t\t\t\tif (!pms.nodes[node.type.name]) {\n\t\t\t\t\t\t\t\t\t\t\tok = false\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\tif (ok) {\n\t\t\t\t\t\t\t\t\t\treturn slice\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (pms.nodes.paragraph)\n\t\t\t\t\t\t\t\t\t\treturn new Slice(\n\t\t\t\t\t\t\t\t\t\t\tFragment.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\tslice.content\n\t\t\t\t\t\t\t\t\t\t\t\t\t.textBetween(0, slice.content.size, ' ')\n\t\t\t\t\t\t\t\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map((line) => pms.nodes.paragraph.create({}, [pms.text(line)])),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\telse return new Slice(Fragment.fromArray([pms.text(slice.content.textBetween(0, slice.content.size, ' ').split('\\n').join(' '))]), 0, 0)\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tkeymap(baseKeymap),\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter((x) => !!x)\n\t\t\t\t\t\t.map((x) => x as Plugin),\n\t\t\t\t}),\n\t\t\t\thandleDOMEvents: {\n\t\t\t\t\tblur: (view) => {\n\t\t\t\t\t\tthis.trToSave = undefined\n\t\t\t\t\t\tthis.updateValue(view.state.tr)\n\t\t\t\t\t},\n\t\t\t\t\tfocus: (view) => {\n\t\t\t\t\t\tthis.schema === 'measure' && measureOnFocusHandler(view)\n\t\t\t\t\t},\n\t\t\t\t\tclick: (view, event) => {\n\t\t\t\t\t\tif (this.schema.includes('tokens-list')) {\n\t\t\t\t\t\t\tconst el = event.target as HTMLElement\n\t\t\t\t\t\t\tif (el?.classList.contains('token') && Math.abs(el.getBoundingClientRect().right - 10 - event.x) < 6 && Math.abs(el.getBoundingClientRect().bottom - 9 - event.y) < 6) {\n\t\t\t\t\t\t\t\tconst pos = view.posAtCoords({ left: event.x, top: event.y })\n\t\t\t\t\t\t\t\tif (pos?.pos) {\n\t\t\t\t\t\t\t\t\tconst rp = view.state.tr.doc.resolve(pos?.pos)\n\t\t\t\t\t\t\t\t\tthis.view?.dispatch(view.state.tr.deleteRange(rp.before(), rp.after()))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdispatchTransaction: (tro) => {\n\t\t\t\t\tconst tr = this.schema === 'measure' ? measureTransactionMapper(tro) : tro\n\t\t\t\t\tconsole.log(`Setting selection to ${tr.selection.from} - ${tr.selection.to}`)\n\t\t\t\t\tthis.view && this.view.updateState(this.view.state.apply(tr))\n\t\t\t\t\tif (this.view && tr.doc != tr.before && this.handleValueChanged) {\n\t\t\t\t\t\tthis.trToSave = tr\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\t\tif (this.trToSave === tr) {\n\t\t\t\t\t\t\t\tthis.updateValue(tr)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 10000)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\teditable: () => {\n\t\t\t\t\treturn !this.readonly\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate makeParser(schemaName: string, pms: Schema) {\n\t\tconst tokenizer = MarkdownIt('commonmark', { html: false })\n\t\treturn schemaName.includes('tokens-list')\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType, id?: string, renderHash?: number) => {\n\t\t\t\t\t\treturn pms.node('token', { id, renderHash }, value.value ? [pms.text((value as StringType).value)] : [])\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName.includes('items-list')\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType, id?: string, renderHash?: number) => {\n\t\t\t\t\t\treturn pms.node('item', { id, renderHash }, value.value ? [pms.text((value as StringType).value)] : [])\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'date'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tif (value?.type === 'datetime') {\n\t\t\t\t\t\t\tconst dateString = anyDateToDate(value.value)?.toISOString().replace(/T.*/, '')\n\t\t\t\t\t\t\treturn pms.node('paragraph', {}, [pms.node('date', {}, value ? [pms.text(dateString ?? '')] : [])])\n\t\t\t\t\t\t} else if (value?.type === 'timestamp') {\n\t\t\t\t\t\t\tconst dateString = new Date(value.value)?.toISOString().replace(/T.*/, '')\n\t\t\t\t\t\t\treturn pms.node('paragraph', {}, [pms.node('date', {}, value ? [pms.text(dateString ?? '')] : [])])\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'time'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tconst time =\n\t\t\t\t\t\t\tvalue.type === 'number'\n\t\t\t\t\t\t\t\t? pms.node('paragraph', {}, [\n\t\t\t\t\t\t\t\t\t\tpms.node(\n\t\t\t\t\t\t\t\t\t\t\t'time',\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t\t\t\t? [pms.text(('00' + Math.floor(value.value / 10000)).slice(-2) + ':' + ('00' + Math.floor((value.value / 100) % 100)).slice(-2) + ':' + ('00' + (value.value % 100)).slice(-2))]\n\t\t\t\t\t\t\t\t\t\t\t\t: [],\n\t\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: value.type === 'datetime'\n\t\t\t\t\t\t\t\t? pms.node('paragraph', {}, [\n\t\t\t\t\t\t\t\t\t\tpms.node(\n\t\t\t\t\t\t\t\t\t\t\t'time',\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t\t\t\t? [pms.text(('00' + Math.floor(value.value / 10000)).slice(-2) + ':' + ('00' + Math.floor((value.value / 100) % 100)).slice(-2) + ':' + ('00' + (value.value % 100)).slice(-2))]\n\t\t\t\t\t\t\t\t\t\t\t\t: [],\n\t\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: undefined\n\t\t\t\t\t\tconsole.log(`Parsing time ${value.value} to: ${time}`)\n\t\t\t\t\t\treturn time\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'measure'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tif (value.type !== 'measure') {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst decimal =\n\t\t\t\t\t\t\tvalue.value !== undefined\n\t\t\t\t\t\t\t\t? value.value.toFixed(this.styleOptions?.decimalPlaces || this.styleOptions?.decimalPlaces?.toString() === '0' ? parseInt(this.styleOptions.decimalPlaces.toString()) : 2)\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\tconst unit = value.unit\n\n\t\t\t\t\t\treturn pms.node(\n\t\t\t\t\t\t\t'paragraph',\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t[pms.node('decimal', {}, decimal && decimal.length ? [pms.text(decimal)] : [])].concat(unit && unit.length ? [pms.node('unit', {}, [pms.text(unit)])] : []),\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'decimal'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\treturn value.type === 'number'\n\t\t\t\t\t\t\t? pms.node('paragraph', {}, [\n\t\t\t\t\t\t\t\t\tpms.node('decimal', {}, [\n\t\t\t\t\t\t\t\t\t\tpms.text(value.value.toFixed(this.styleOptions?.decimalPlaces || this.styleOptions?.decimalPlaces?.toString() === '0' ? parseInt(this.styleOptions.decimalPlaces.toString()) : 2)),\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ])\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'date-time'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tif (value.type !== 'datetime') {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst date = anyDateToDate(value.value)?.toISOString().replace(/T.*/, '')\n\t\t\t\t\t\tconst time = anyDateToDate(value.value)\n\t\t\t\t\t\t\t?.toISOString()\n\t\t\t\t\t\t\t.replace(/.+?T(..):(..).*/, '$1:$2')\n\n\t\t\t\t\t\treturn pms.node('paragraph', {}, [\n\t\t\t\t\t\t\tpms.node('date', {}, date && date.length ? [pms.text(date)] : [pms.text(' ')]),\n\t\t\t\t\t\t\tpms.node('time', {}, time && time.length ? [pms.text(time)] : [pms.text(' ')]),\n\t\t\t\t\t\t])\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'text-document'\n\t\t\t? new SpacePreservingMarkdownParser(\n\t\t\t\t\tnew MarkdownParser(pms, MarkdownIt('commonmark', { html: false }), {\n\t\t\t\t\t\tblockquote: { block: 'blockquote' },\n\t\t\t\t\t\tparagraph: { block: 'paragraph' },\n\t\t\t\t\t\tlist_item: { block: 'list_item' },\n\t\t\t\t\t\tbullet_list: { block: 'bullet_list' },\n\t\t\t\t\t\tordered_list: { block: 'ordered_list', getAttrs: (tok) => ({ order: +(tok.attrGet('start') || 1) }) },\n\t\t\t\t\t\theading: { block: 'heading', getAttrs: (tok) => ({ level: +tok.tag.slice(1) }) },\n\t\t\t\t\t\thr: { node: 'horizontal_rule' },\n\t\t\t\t\t\timage: {\n\t\t\t\t\t\t\tnode: 'image',\n\t\t\t\t\t\t\tgetAttrs: (tok) => ({\n\t\t\t\t\t\t\t\tsrc: tok.attrGet('src'),\n\t\t\t\t\t\t\t\ttitle: tok.attrGet('title') || null,\n\t\t\t\t\t\t\t\talt: (tok.children || [])[0]?.content || null,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t\thard_break: { node: 'hard_break' },\n\n\t\t\t\t\t\tem: hasMark(pms.spec.marks, 'em') ? { mark: 'em' } : { ignore: true },\n\t\t\t\t\t\tstrong: hasMark(pms.spec.marks, 'strong') ? { mark: 'strong' } : { ignore: true },\n\t\t\t\t\t\tlink: hasMark(pms.spec.marks, 'link')\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tmark: 'link',\n\t\t\t\t\t\t\t\t\tgetAttrs: (tok) => ({\n\t\t\t\t\t\t\t\t\t\thref: tok.attrGet('href'),\n\t\t\t\t\t\t\t\t\t\ttitle: tok.attrGet('title') || null,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: { ignore: true },\n\t\t\t\t\t}),\n\t\t\t )\n\t\t\t: new SpacePreservingMarkdownParser(\n\t\t\t\t\tnew MarkdownParser(\n\t\t\t\t\t\tpms,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparse: (src: string, env: unknown): unknown[] => {\n\t\t\t\t\t\t\t\treturn tokenizer.parse(src, env).filter((t) => !t.type.startsWith('paragraph_'))\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} as MarkdownIt,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tem: hasMark(pms.spec.marks, 'em') ? { mark: 'em' } : { ignore: true },\n\t\t\t\t\t\t\tstrong: hasMark(pms.spec.marks, 'strong') ? { mark: 'strong' } : { ignore: true },\n\t\t\t\t\t\t\tlink: hasMark(pms.spec.marks, 'link')\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tmark: 'link',\n\t\t\t\t\t\t\t\t\t\tgetAttrs: (tok) => ({\n\t\t\t\t\t\t\t\t\t\t\thref: tok.attrGet('href'),\n\t\t\t\t\t\t\t\t\t\t\ttitle: tok.attrGet('title') || null,\n\t\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: { ignore: true },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t )\n\t}\n\n\tprivate makeSerializer(schemaName: string, pms: Schema) {\n\t\treturn schemaName === 'text-document'\n\t\t\t? {\n\t\t\t\t\tserialize: (content: ProsemirrorNode) => defaultMarkdownSerializer.serialize(preprocessEmptyNodes(content, pms)),\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tserialize: (content: ProsemirrorNode) => content.textBetween(0, content.nodeSize - 2, ' '),\n\t\t\t }\n\t}\n\n\tprivate makeCodesExtractor(schemaName: string): (doc?: ProsemirrorNode) => Code[] {\n\t\treturn schemaName === 'measure'\n\t\t\t? (doc?: ProsemirrorNode) => {\n\t\t\t\t\tconst unit = (doc?.childCount ?? 0) > 1 ? doc?.child(1)?.textContent : undefined\n\t\t\t\t\treturn unit ? [{ id: `CD-UNIT|${unit}|1`, label: { [this.selectedLanguage ?? this.defaultLanguage ?? 'en']: unit } }] : []\n\t\t\t }\n\t\t\t: schemaName === 'measure'\n\t\t\t? (doc?: ProsemirrorNode) => {\n\t\t\t\t\tconst unit = doc?.child(1)?.textContent\n\t\t\t\t\treturn unit ? [{ id: `CD-UNIT|${unit}|1`, label: { [this.selectedLanguage ?? this.defaultLanguage ?? 'en']: unit } }] : []\n\t\t\t }\n\t\t\t: () => []\n\t}\n\n\tprivate makePrimitiveExtractor(schemaName: string): (doc?: ProsemirrorNode) => PrimitiveType | undefined {\n\t\treturn schemaName === 'date'\n\t\t\t? (doc?: ProsemirrorNode) => (doc?.firstChild?.textContent ? { type: 'datetime', value: parseInt(format(parse(doc.firstChild.textContent, 'dd/MM/yyyy', new Date()), 'yyyyMMdd')) } : undefined)\n\t\t\t: schemaName === 'time'\n\t\t\t? (doc?: ProsemirrorNode) => {\n\t\t\t\t\tif (doc?.firstChild?.textContent && !doc.firstChild.textContent.startsWith('--:')) {\n\t\t\t\t\t\tconst value = parseInt(format(parse(doc.firstChild.textContent.replaceAll('-', '0'), 'HH:mm:ss', new Date()), 'HHmmss'))\n\t\t\t\t\t\tconsole.log(`Converted time to: ${value}`)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: 'datetime',\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: schemaName === 'measure'\n\t\t\t? (doc?: ProsemirrorNode) => ({\n\t\t\t\t\ttype: 'measure',\n\t\t\t\t\tvalue: (() => {\n\t\t\t\t\t\tif (doc?.firstChild?.textContent?.length) {\n\t\t\t\t\t\t\tconst parsed = parseFloat(doc.firstChild.textContent.replaceAll(',', '.'))\n\t\t\t\t\t\t\treturn isNaN(parsed) ? undefined : parsed\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t})(),\n\t\t\t\t\tunit: (doc?.childCount ?? 0) > 1 ? doc?.child(1)?.textContent : undefined,\n\t\t\t })\n\t\t\t: schemaName === 'decimal'\n\t\t\t? (doc?: ProsemirrorNode) => (doc?.firstChild?.textContent?.length ? { type: 'number', value: parseFloat(doc.firstChild.textContent.replace(/,/g, '.')) } : undefined)\n\t\t\t: schemaName === 'date-time'\n\t\t\t? (doc?: ProsemirrorNode) =>\n\t\t\t\t\tdoc?.firstChild?.textContent && doc?.lastChild?.textContent\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\ttype: 'datetime',\n\t\t\t\t\t\t\t\tvalue: parseInt(format(parse(doc.firstChild.textContent + ' ' + doc.lastChild.textContent, 'dd/MM/yyyy HH:mm:ss', new Date()), 'yyyyMMddHHmmss')),\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: undefined\n\t\t\t: (doc?: ProsemirrorNode) => (doc ? { type: 'string', value: this.serializer.serialize(doc) } : undefined)\n\t}\n\n\tprivate makePrimitivesExtractor(schemaName: string): (doc?: ProsemirrorNode) => [string, PrimitiveType][] {\n\t\treturn schemaName.includes('tokens-list') || schemaName.includes('items-list')\n\t\t\t? (doc?: ProsemirrorNode) =>\n\t\t\t\t\tdoc?.childCount\n\t\t\t\t\t\t? [...Array(doc.childCount).keys()].map((idx) => {\n\t\t\t\t\t\t\t\tconst child = doc.child(idx)\n\t\t\t\t\t\t\t\tconst id = child.attrs.id ?? ''\n\t\t\t\t\t\t\t\treturn [id, { type: 'string', value: this.serializer.serialize(child) }]\n\t\t\t\t\t\t })\n\t\t\t\t\t\t: []\n\t\t\t: () => []\n\t}\n}\n\n// Register the new element with the browser.\nexport class MetadataButtonBarWrapper extends LitElement {\n\t@property() id: string\n\t@property() rerender: string\n\t@state() private selectedRevision?: string\n\n\trender() {\n\t\tconsole.log('Rendering metadata buttons')\n\t\tconst parent = (this.shadowRoot?.host?.closest('div#root')?.parentNode as ShadowRoot)?.host as IcureTextField\n\t\tif (!parent || !this.id) {\n\t\t\treturn\n\t\t}\n\n\t\tconst data = parent.valueProvider?.() ?? {}\n\t\tconst versions = data[this.id]\n\n\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\n\t\tconst rev = version?.revision\n\t\tconst metadata = this.id && rev !== undefined ? parent.metadataProvider?.(this.id, versions?.map((v) => v.revision) ?? [])?.[this.id]?.find((m) => m.revision === rev)?.value : undefined\n\n\t\tconst op = (terms: string[], ids?: string[], specialties?: string[]) => {\n\t\t\treturn parent.ownersProvider(terms, ids, specialties)\n\t\t}\n\n\t\treturn html`<icure-metadata-buttons-bar .metadata=\"${metadata}\" .revision=\"${rev}\" .versions=\"${versions}\" .valueId=\"${extractSingleValue(parent.valueProvider?.())?.[0]}\"\n\t\t.defaultLanguage=\"${parent.defaultLanguage}\" .selectedLanguage=\"${parent.selectedLanguage}\" .languages=\"${parent.languages}\" .handleMetadataChanged=\"${parent.handleMetadataChanged}\"\n\t\t.handleLanguageSelected=\"${(iso: string) => (parent.selectedLanguage = iso)}\" .handleRevisionSelected=\"${(rev: string) => (parent.selectedRevision = rev)}\" .ownersProvider=\"${op}\"\n\t\tstyle=\"white-space: nowrap; padding-top: 1px\" \" />`\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/icure-text-field/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Import the LitElement base class and html helper function\n//@ts-ignore\nimport { css, html, LitElement, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { EditorState, Plugin, TextSelection, Transaction } from 'prosemirror-state'\nimport { EditorView } from 'prosemirror-view'\nimport { Fragment, Node as ProsemirrorNode, Schema, Slice } from 'prosemirror-model'\nimport { history, redo, undo } from 'prosemirror-history'\nimport { keymap } from 'prosemirror-keymap'\nimport { baseKeymap, chainCommands, exitCode, joinDown, joinUp, setBlockType, toggleMark } from 'prosemirror-commands'\nimport { liftListItem, sinkListItem, splitListItem, wrapInList } from 'prosemirror-schema-list'\n\nimport { createSchema } from './schema'\nimport MarkdownIt from 'markdown-it'\nimport { defaultMarkdownSerializer, MarkdownParser, MarkdownSerializer } from 'prosemirror-markdown'\nimport { unwrapFrom, wrapInIfNeeded } from './prosemirror-commands'\nimport { SelectionCompanion } from './selection-companion'\nimport { SuggestionPalette } from './suggestion-palette'\nimport { hasMark } from './prosemirror-utils'\n\nimport { maskPlugin } from './plugin/mask-plugin'\nimport { hasContentClassPlugin } from './plugin/has-content-class-plugin'\nimport { regexpPlugin } from './plugin/regexp-plugin'\nimport { format, parse } from 'date-fns'\nimport { Field } from '../common'\nimport { Code, FieldMetadata, FieldValue, IcureTextFieldSchema, PrimitiveType, pteq, StringType } from '../model'\nimport { Suggestion, Version } from '../../generic'\nimport { generateLabels } from '../common/utils'\n\n// @ts-ignore\nimport { css } from 'lit';\nconst baseCss = css`@charset \"UTF-8\";\n.tab-container .tab-bar li {\n display: inline-block;\n padding: 8px 16px;\n cursor: pointer;\n color: #000000;\n font-size: 14px;\n font-weight: 500;\n}\n.tab-container .tab-bar li.active {\n background-color: #656565;\n color: white;\n}\n.tab-container .tab-content .tab {\n display: none;\n}\n.tab-container .tab-content .tab.active {\n display: block;\n}\n\n:host {\n --bg-color-1: #f44336;\n}\n\n.ProseMirror {\n position: relative;\n width: 100%;\n word-wrap: break-word;\n white-space: pre-wrap;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n padding: 6px 8px 2px 8px;\n line-height: 1.2;\n color: #274768;\n font-size: 14px;\n font-weight: 400;\n outline: none;\n}\n.ProseMirror p:last-child,\n.ProseMirror h1:last-child,\n.ProseMirror h2:last-child,\n.ProseMirror h3:last-child,\n.ProseMirror h4:last-child,\n.ProseMirror h5:last-child,\n.ProseMirror h6:last-child {\n margin-bottom: 2px;\n}\n.ProseMirror p {\n margin-bottom: 1em;\n}\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n.ProseMirror li {\n position: relative;\n}\n.ProseMirror ul,\n.ProseMirror ol {\n padding-left: 30px;\n}\n.ProseMirror blockquote {\n padding-left: 1em;\n border-left: 3px solid #eee;\n margin-left: 0;\n margin-right: 0;\n}\n\n.ProseMirror-hideselection {\n caret-color: transparent;\n}\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-selectednode {\n outline: 2px solid #8cf;\n}\n\n/* Make sure li selections wrap around markers */\nli.ProseMirror-selectednode {\n outline: none;\n}\nli.ProseMirror-selectednode :after {\n content: \"\";\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n}\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n/* Add space around the hr to make clicking it easier */\n.ProseMirror-example-setup-style hr {\n padding: 2px 10px;\n border: none;\n margin: 1em 0;\n}\n.ProseMirror-example-setup-style hr:after {\n content: \"\";\n display: block;\n height: 1px;\n background: silver;\n line-height: 2px;\n}\n\n.ProseMirror-example-setup-style img {\n cursor: default;\n}\n\n.ProseMirror-prompt {\n background: white;\n padding: 5px 10px 5px 15px;\n border: 1px solid silver;\n position: fixed;\n border-radius: 3px;\n z-index: 11;\n box-shadow: -0.5px 2px 5px rgba(0, 0, 0, 0.2);\n}\n.ProseMirror-prompt h5 {\n margin: 0;\n font-weight: normal;\n font-size: 100%;\n color: #444;\n}\n.ProseMirror-prompt input[type=text],\n.ProseMirror-prompt textarea {\n background: #eee;\n border: none;\n outline: none;\n}\n.ProseMirror-prompt input[type=text] {\n padding: 0 4px;\n}\n\n.ProseMirror-prompt-close {\n position: absolute;\n left: 2px;\n top: 1px;\n color: #666;\n border: none;\n background: transparent;\n padding: 0;\n}\n.ProseMirror-prompt-close:after {\n content: \"✕\";\n font-size: 12px;\n}\n\n.ProseMirror-invalid {\n background: #ffc;\n border: 1px solid #cc7;\n border-radius: 4px;\n padding: 5px 10px;\n position: absolute;\n min-width: 10em;\n}\n\n.ProseMirror-prompt-buttons {\n margin-top: 5px;\n display: none;\n}\n\n#editor,\n.editor {\n color: rgb(101, 101, 101);\n background-clip: padding-box;\n border-radius: 4px;\n border: 2px solid rgba(0, 0, 0, 0.2);\n padding: 5px 0;\n display: flex;\n align-items: flex-end;\n}\n\n.icure-input {\n background: #edf2f7;\n border-radius: 8px;\n border: none;\n min-height: 28px;\n height: auto;\n display: flex;\n flex-flow: row nowrap;\n align-items: flex-start;\n justify-content: space-between;\n}\n\n#editor {\n background: transparent;\n border: none;\n padding: 0;\n flex-grow: 1;\n display: flex;\n align-items: stretch;\n}\n#editor.tokens-list .ProseMirror, #editor.styled-tokens-list .ProseMirror {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n#editor.tokens-list .ProseMirror li, #editor.styled-tokens-list .ProseMirror li {\n display: flex;\n flex-direction: row;\n border-radius: 8px;\n padding: 2px 4px;\n margin-right: 2px;\n background-color: #dadada;\n border-color: rgba(42, 61, 108, 0.44);\n min-height: 20px;\n}\n#editor.tokens-list .ProseMirror li span, #editor.styled-tokens-list .ProseMirror li span {\n display: inline-block;\n min-height: 18px;\n}\n#editor.tokens-list .ProseMirror li span br, #editor.styled-tokens-list .ProseMirror li span br {\n display: none;\n}\n#editor.items-list .ProseMirror {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: flex-start;\n gap: 6px;\n}\n#editor.items-list .ProseMirror li {\n list-style-type: none;\n width: 100%;\n padding-bottom: 4px;\n border-bottom: 1px dotted rgba(128, 128, 128, 0.5098039216);\n}\n#editor.items-list .ProseMirror li:last-child {\n border-bottom: none;\n}\n\n#content {\n position: relative;\n padding: 0;\n}\n\n* {\n font-family: \"Roboto\", Helvetica, sans-serif;\n}\n\np {\n margin-top: 0;\n}\n\nh3 {\n color: #274768;\n margin-top: 0;\n}\n\n.icure-input-metadata-container {\n display: flex;\n}\n.icure-input-metadata-container .icure-metadata-container {\n display: flex;\n flex-grow: 1;\n padding: 0 4px;\n border: 1px solid #DDE3E7;\n border-left: none;\n border-radius: 0 6px 6px 0;\n outline: 0;\n box-sizing: border-box;\n}\n.icure-input-metadata-container .icure-metadata-container__validationError {\n border-color: red;\n}\n\n.extra {\n min-width: 20px;\n width: auto;\n height: 20px;\n transition: all 0.24s cubic-bezier(0.42, 0.01, 1, 0.62);\n}\n.extra:hover .info {\n display: none;\n}\n.extra:hover .buttons-container .menu-container .btn {\n animation: slideIn 0.24s ease-in forwards;\n pointer-events: none;\n display: unset !important;\n}\n.extra.forced .info, .extra.forced .extra .info.hidden {\n opacity: 0 !important;\n z-index: 0 !important;\n display: none;\n}\n.extra.forced .buttons-container .btn {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra.forced:hover .buttons-container .menu-container .btn {\n animation: none;\n pointer-events: all;\n}\n.extra--metadataButtonsBar {\n height: 100%;\n display: flex;\n align-items: center;\n padding: 0 4px;\n}\n.extra .info {\n color: #809ab4;\n font-size: 15px;\n width: 100%;\n height: auto;\n overflow: hidden;\n pointer-events: none;\n text-align: center;\n}\n.extra .info span {\n font-weight: 700;\n}\n.extra .info.hidden {\n display: none;\n}\n.extra .buttons-container {\n display: flex;\n height: 20px;\n width: auto;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n transition: all 0.24s cubic-bezier(0.14, 0.69, 0.87, 0.54);\n z-index: 1000;\n}\n.extra .buttons-container .btn {\n border: none;\n background: transparent;\n position: relative;\n top: 0;\n display: none;\n opacity: 0;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.extra .buttons-container .btn svg {\n width: 15px;\n height: 15px;\n}\n.extra .buttons-container .btn svg path {\n fill: #809ab4;\n}\n.extra .buttons-container .btn.forced {\n opacity: 1 !important;\n display: unset !important;\n}\n.extra .buttons-container .btn.forced svg path {\n fill: crimson !important;\n}\n.extra .buttons-container .btn:focus, .extra .buttons-container .btn:focus-within {\n border: none;\n outline: none;\n}\n.extra .buttons-container .btn:hover svg path {\n fill: #274768;\n}\n.extra .buttons-container .menu-container .btn:hover::before {\n content: \"\";\n display: block;\n border-color: #274768 transparent transparent transparent;\n border-style: solid;\n border-width: 4px;\n position: absolute;\n top: -6px;\n}\n.extra .buttons-container .menu-container .btn:hover::after {\n content: attr(data-content);\n position: absolute;\n top: -21px;\n height: 16px;\n left: 50%;\n transform: translateX(-50%);\n border-radius: 8px;\n background: #274768;\n color: white;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n text-transform: capitalize;\n white-space: nowrap;\n padding: 0 12px;\n font-size: 12px;\n line-height: 0;\n}\n.extra .buttons-container .menu-container:last-child .btn {\n margin-right: 0;\n}\n\n@keyframes slideIn {\n 0% {\n top: 0;\n opacity: 0;\n pointer-events: none;\n }\n 100% {\n top: 0;\n opacity: 1;\n pointer-events: all;\n }\n}\n.menu-container {\n display: flex;\n align-items: center;\n height: fit-content;\n}\n.menu-container .item {\n height: 30px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #274768;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.menu-container .item.existing {\n background-color: #BFE8EA;\n}\n.menu-container .item.selected {\n color: white;\n background-color: #084B83;\n}\n.menu-container .item:hover {\n background: #DCE7F2;\n color: #274768;\n font-weight: 500;\n border-radius: 4px;\n}\n\n.value-date-menu {\n width: unset !important;\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n position: absolute;\n top: 32px;\n right: -12px;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n border-radius: 8px;\n padding: 8px;\n width: 220px;\n min-height: 120px;\n max-height: 320px;\n overflow-y: scroll;\n}\n.menu .input-container {\n background: #edf2f7;\n border-radius: 4px;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n height: 32px;\n margin-bottom: 4px;\n padding: 0 4px;\n}\n.menu .input-container:hover {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2);\n}\n.menu .input-container:focus-within {\n box-shadow: 0 0 0 3px rgba(40, 151, 255, 0.2), 0 0 0 1px rgb(40, 151, 255);\n}\n.menu .input-container input {\n background: transparent;\n border: none;\n flex-grow: 1;\n height: 100%;\n}\n.menu .input-container input:focus {\n background: transparent;\n border: none;\n outline: none;\n}\n\n.menu-trigger:focus .menu {\n display: flex;\n}\n\nspan {\n position: relative;\n z-index: 1;\n}\nspan.date {\n margin-right: 1px;\n}\nspan.time {\n margin-left: 1px;\n}\nspan.measure {\n display: inline-block;\n margin-right: 1px;\n}\nspan.unit {\n margin-left: 1px;\n display: inline-block;\n}\nspan[data-content]:hover::after {\n position: absolute;\n content: attr(data-content);\n background: #274768;\n color: #ffffff;\n font-size: 9px;\n line-height: 12px;\n top: -12px;\n left: 0px;\n padding: 0px 2px;\n}\nspan[data-content]::before {\n position: absolute;\n content: \"\";\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n opacity: 0.3;\n}\n\n.masked {\n display: none;\n}\n\n.companion {\n position: absolute;\n width: 15px;\n background-color: hsl(194, 100%, 50%);\n color: white;\n z-index: 20;\n padding: 0;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 0 2px 2px 0;\n}\n.companion:hover {\n font-weight: 700;\n background: hsl(202, 100%, 50%);\n}\n\n*::selection {\n background-color: hsla(194, 100%, 50%, 0.2);\n}\n\n.suggestion-palette {\n position: absolute;\n z-index: 20;\n max-width: 380px;\n font-size: 11px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 4px;\n border: none;\n border-radius: 8px;\n background: white;\n box-shadow: 0 1.1px 1.1px rgba(0, 0, 0, 0.022), 0 2.7px 2.7px rgba(0, 0, 0, 0.032), 0 5px 5px rgba(0, 0, 0, 0.04), 0 8.9px 8.9px rgba(0, 0, 0, 0.048), 0 16.7px 16.7px rgba(0, 0, 0, 0.058), 0 40px 40px rgba(0, 0, 0, 0.08);\n}\n.suggestion-palette ul {\n white-space: nowrap;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.suggestion-palette ul li:not(:first-child) svg.tab-icn,\n.suggestion-palette ul li:not(.focused) svg.return-icn, .suggestion-palette ul.focused li:first-child svg.tab-icn {\n height: 0;\n width: 0;\n transform: scale(0);\n opacity: 0;\n}\n.suggestion-palette ul li {\n padding: 0 8px;\n font-size: 11px;\n height: 20px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px;\n color: rgb(39, 71, 104);\n}\n.suggestion-palette ul li.focused {\n background-color: rgb(237, 242, 247);\n}\n.suggestion-palette ul li.focused svg.return-icn {\n animation: growIn 0.24s ease-in forwards;\n}\n.suggestion-palette ul li svg {\n height: 12px;\n width: 12px;\n border-radius: 4px;\n transform-origin: center center;\n}\n.suggestion-palette ul li svg path {\n fill: rgb(128, 154, 180);\n}\n\n@keyframes growIn {\n 0% {\n transform: scale(0.5);\n }\n 90% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n }\n}\nspan.code-count-1::after,\nspan.code-count-1::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n}\n\nspan.code-count-2::after,\nspan.code-count-2::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n /*background: repeating-linear-gradient(*/\n /*\t45deg,*/\n /*\tvar(--bg-code-color-1),*/\n /*\tvar(--bg-code-color-1) 10px,*/\n /*\tvar(--bg-code-color-2) 10px,*/\n /*\tvar(--bg-code-color-2) 20px*/\n /*);*/\n /* PAS STRIPES */\n background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);\n}\n\nspan.code-count-3::after,\nspan.code-count-3::before {\n background: var(--bg-code-color-1);\n color: var(--text-code-color-1);\n /* STRIPES */\n background: repeating-linear-gradient(45deg, var(--bg-code-color-1), var(--bg-code-color-1) 10px, var(--bg-code-color-2) 10px, var(--bg-code-color-2) 20px);\n /* PAS STRIPES */\n /* background: linear-gradient(90deg, var(--bg-code-color-1) 0%, var(--bg-code-color-2) 100%);*/\n}\n\n.selected-option {\n padding: 2px;\n margin-right: 5px;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: auto;\n min-width: 100%;\n overflow-y: auto;\n padding: 2px;\n border-radius: 6px;\n}\n.options--subformView {\n top: 46px;\n min-width: unset;\n left: unset;\n right: 0;\n}\n\n.date-picker {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 2;\n background: #fff;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n width: 260px;\n overflow-y: auto;\n max-height: 280px;\n}\n\napp-date-picker {\n --app-primary: #084B83;\n --app-hover: #5b7da2;\n --app-selected-hover: #5b7da2;\n}\n\n.option {\n height: 28px;\n min-height: 28px;\n width: 100%;\n background: transparent;\n border-radius: 4px;\n font-size: 14px;\n color: #545454;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n box-shadow: none;\n border: none;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n padding: 4px 8px;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n cursor: pointer;\n}\n.option:hover {\n color: #656565;\n background-color: #ededed;\n}\n\n.select-arrow {\n border: none;\n background: 0px 0px;\n position: relative;\n top: 0px;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n width: 10px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0px;\n}\n\n.hidden {\n display: none;\n}\n\n.container {\n position: relative;\n}\n\n.group {\n align-items: end;\n display: grid;\n}\n\n.subform {\n display: grid;\n position: relative;\n padding: 8px;\n border-radius: 6px;\n background-color: #e7f0fd;\n gap: 12px;\n}\n.subform__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: auto;\n}\n.subform__heading__title {\n padding: 0;\n margin: 0;\n}\n.subform__addBtn, .subform__removeBtn {\n cursor: pointer;\n background-color: #084B83;\n color: white;\n height: 32px;\n padding: 0 16px;\n border-radius: 6px;\n border: none;\n outline: none;\n}\n.subform__addBtn:hover, .subform__removeBtn:hover {\n background-color: #3D87C5;\n}\n.subform__removeBtn {\n justify-self: end;\n border: 1px solid #DDE3E7;\n background-color: #FCFCFD;\n color: #084B83;\n}\n.subform__removeBtn:hover {\n background-color: #F2F2F2;\n}\n.subform__child {\n display: grid;\n grid-template-rows: auto;\n gap: 8px;\n padding: 8px;\n border-radius: 6px;\n background: white;\n border: 1px solid #3D87C5;\n}\n.subform__child__title {\n padding: 12px !important;\n border-radius: 6px;\n margin: 0;\n background-color: #BFE8EA;\n}\n.subform__child .subform {\n background: unset;\n margin: 0;\n padding: 0;\n}\n\n.icure-form {\n background-color: rgba(0, 0, 0, 0);\n display: grid;\n gap: 16px 6px;\n grid-template-columns: repeat(24, 1fr);\n}\n.icure-form hr {\n display: block;\n margin-top: 20px;\n border-top: 1px solid rgba(8, 75, 131, 0.13);\n margin-bottom: 20px;\n}\n.icure-form h2 {\n font-size: add-two(12px, 0, 1.2);\n font-weight: 700;\n color: #084B83;\n padding: 2px;\n}\n.icure-form h3 {\n font-size: add-two(12px, 0, 1.1);\n font-weight: 500;\n color: #084B83;\n padding: 6px;\n}\n.icure-form .group.bordered {\n background: #f6f6f6;\n border-radius: 12px;\n}\n\n.icure-form-field {\n display: grid;\n align-items: flex-start;\n}\n\n.error {\n color: red;\n font-size: 12px;\n margin-top: 4px;\n}\n\n.icure-text-field .icure-label-extra, .icure-button-group .icure-label-extra {\n display: flex;\n width: 100%;\n gap: 12px;\n}\n.icure-text-field .icure-label, .icure-button-group .icure-label {\n z-index: 1;\n pointer-events: none;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n left: add-two(8px, 1px);\n color: #084B83;\n align-items: center;\n text-wrap: auto;\n min-height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-text-field .icure-label.float, .icure-button-group .icure-label.float {\n display: flex;\n overflow: hidden;\n}\n\n.loading {\n position: relative;\n}\n\n.icure-text-field {\n position: relative;\n width: 100%;\n}\n.icure-text-field > .icure-label {\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n}\n.icure-text-field > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-text-field > .icure-label.side {\n position: relative;\n}\n.icure-text-field > .icure-label.side.left {\n order: -1;\n margin-right: 1em;\n}\n.icure-text-field > .icure-label.side.right {\n order: 1;\n margin-left: 1em;\n}\n.icure-text-field .icure-input,\n.icure-text-field .input-container {\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-color: #DDE3E7;\n border-radius: 2px;\n outline: 0;\n font: inherit;\n font-size: 14px;\n line-height: 1.4em;\n display: flex;\n align-items: center;\n vertical-align: middle;\n position: relative;\n -webkit-appearance: none;\n background-color: #ffffff;\n color: #000000;\n}\n.icure-text-field .icure-input .reset-button,\n.icure-text-field .input-container .reset-button {\n position: absolute;\n right: 0;\n border: none;\n background: transparent;\n top: 0;\n opacity: 0.5;\n cursor: pointer;\n height: 20px;\n margin-left: 4px;\n margin-right: 4px;\n padding: 0;\n}\n.icure-text-field .icure-input .reset-button svg,\n.icure-text-field .input-container .reset-button svg {\n width: 15px;\n height: 15px;\n}\n.icure-text-field .icure-input__validationError,\n.icure-text-field .input-container__validationError {\n border-color: red;\n}\n.icure-text-field .icure-input__withMetadata,\n.icure-text-field .input-container__withMetadata {\n border-radius: 6px 0 0 6px;\n}\n.icure-text-field .icure-input:focus, .icure-text-field .icure-input:focus-within,\n.icure-text-field .input-container:focus,\n.icure-text-field .input-container:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input:hover,\n.icure-text-field .input-container:hover {\n border-color: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n}\n.icure-text-field .icure-input:hover:focus, .icure-text-field .icure-input:hover:focus-within,\n.icure-text-field .input-container:hover:focus,\n.icure-text-field .input-container:hover:focus-within {\n box-shadow: 0 2px 2px 1px rgba(0, 0, 0, 0.06);\n}\n.icure-text-field .icure-input .ProseMirror,\n.icure-text-field .input-container .ProseMirror {\n padding: 0;\n font-size: 14px;\n line-height: 1.4em;\n color: #000000;\n}\n.icure-text-field .icure-input .ProseMirror .date,\n.icure-text-field .input-container .ProseMirror .date {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror .time,\n.icure-text-field .input-container .ProseMirror .time {\n padding: 1px;\n}\n.icure-text-field .icure-input .ProseMirror:focus .focused,\n.icure-text-field .input-container .ProseMirror:focus .focused {\n background-color: rgba(0, 0, 0, 0.05);\n border-radius: 3px;\n border-color: rgba(0, 0, 0, 0.1);\n}\n.icure-text-field .icure-input > svg,\n.icure-text-field .input-container > svg {\n opacity: 0.5;\n}\n.icure-text-field .icure-input > svg path,\n.icure-text-field .input-container > svg path {\n fill: #656565;\n}\n.icure-text-field .icure-input .extra,\n.icure-text-field .input-container .extra {\n height: 20px;\n}\n.icure-text-field .icure-input .extra > .info,\n.icure-text-field .input-container .extra > .info {\n color: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path,\n.icure-text-field .input-container .extra .btn svg path {\n fill: #656565;\n opacity: 0.5;\n}\n.icure-text-field .icure-input .extra .btn svg path:hover,\n.icure-text-field .input-container .extra .btn svg path:hover {\n fill: #656565;\n opacity: 1;\n}\n\ninput[type=radio] {\n margin-top: -1px;\n vertical-align: middle;\n}\n\n.icure-checkbox:checked {\n accent-color: #06a070;\n}\n\n.icure-button {\n display: flex;\n height: 32px;\n padding: 0 16px;\n background-color: #084B83;\n color: white;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: normal;\n}\n.icure-button:hover {\n background-color: #3D87C5;\n}\n\n.icure-button-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.icure-button-group > div {\n display: grid;\n}\n.icure-button-group > div > div {\n display: flex;\n align-items: center;\n}\n.icure-button-group > div > div > .icure-button-group-label {\n z-index: 1;\n line-height: 1.4em;\n cursor: text;\n font-size: 12px;\n top: add-three(1.4em, 1px, 0);\n left: add-two(8px, 1px);\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n color: #084B83;\n display: flex;\n align-items: center;\n height: 28px;\n max-width: 85%;\n min-width: 0;\n}\n.icure-button-group > div > div > .icure-button-group-label > span {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n padding-right: 8px;\n}\n.icure-button-group > .icure-input {\n flex: 1 1 auto;\n width: auto;\n}\n.icure-button-group > .icure-label {\n transform: translate(0, 0) scale(1);\n}\n.icure-button-group > .icure-label.above, .icure-button-group.has-content > .icure-label, .icure-button-group:focus > .icure-label, .icure-button-group:focus-within > .icure-label {\n font-weight: 500;\n height: 1.4em;\n}` \n\nimport { extractSingleValue, extractValues } from '../icure-form/fields/utils'\nimport { preprocessEmptyNodes, SpacePreservingMarkdownParser } from '../../utils/markdown'\nimport { measureOnFocusHandler, measureTransactionMapper } from './schema/measure-schema'\nimport { anyDateToDate } from '../../utils/dates'\nimport { icureFormLogging } from '../../index'\nimport { resetPicto } from '../common/styles/paths'\n\n// Extend the LitElement base class\nexport class IcureTextField extends Field {\n\t@property() placeholder = ''\n\t@property() multiline: boolean | string = false\n\t@property() lines = 1\n\t@property() suggestionStopWords: Set<string> = new Set<string>()\n\t@property({ type: Boolean }) displayOwnerMenu = false\n\t@property({ type: Boolean }) suggestions = false\n\t@property({ type: Boolean }) links = false\n\t@property() linksProvider: (sug: Suggestion) => Promise<{ href: string; title: string } | undefined> = async () => undefined\n\t@property() suggestionProvider: (terms: string[]) => Promise<Suggestion[]> = async () => []\n\t@property() codeColorProvider: (type: string, code: string) => string = () => 'XI'\n\t@property() linkColorProvider: (type: string, code: string) => string = () => 'cat1'\n\t@property() codeContentProvider: (codes: { type: string; code: string }[]) => string = (codes) => codes.map((c) => c.code).join(',')\n\t@property() schema: IcureTextFieldSchema = 'styled-text-with-codes'\n\n\tprivate proseMirrorSchema?: Schema\n\tprivate parser?: SpacePreservingMarkdownParser | { parse: (value: PrimitiveType, id?: string, renderHash?: number) => ProsemirrorNode | undefined }\n\tprivate serializer: MarkdownSerializer | { serialize: (content: ProsemirrorNode) => string } = {\n\t\tserialize: (content: ProsemirrorNode) => content.textBetween(0, content.nodeSize - 2, ' '),\n\t}\n\tprivate primitiveTypeExtractor: (doc?: ProsemirrorNode) => PrimitiveType | undefined = () => undefined\n\tprivate primitiveTypesExtractor: (doc?: ProsemirrorNode) => [string, PrimitiveType][] = () => []\n\tprivate codesExtractor: (doc?: ProsemirrorNode) => Code[] = () => []\n\n\t@state() private view?: EditorView\n\n\tprivate container?: HTMLElement\n\tprivate readonly windowListeners: [string, () => void][] = []\n\tprivate suggestionPalette?: SuggestionPalette\n\tprivate mouseCount = 0\n\tprivate trToSave?: Transaction = undefined\n\n\tconstructor() {\n\t\tsuper()\n\t}\n\n\t_handleClickOutside(event: MouseEvent): void {\n\t\tconst pm = this.shadowRoot?.querySelectorAll('.ProseMirror')[0] as HTMLDivElement\n\t\tif (!event.composedPath().includes(this)) {\n\t\t\tevent.stopPropagation()\n\t\t} else if (pm && !event.composedPath().includes(pm)) {\n\t\t\tpm.focus()\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tconst cmu = this.mouseUp.bind(this)\n\t\tconst cmd = this.mouseDown.bind(this)\n\n\t\tdocument.addEventListener('click', this._handleClickOutside.bind(this))\n\n\t\tthis.windowListeners.push(['mouseup', cmu], ['mousedown', cmd])\n\t\twindow.addEventListener('mouseup', cmu)\n\t\twindow.addEventListener('mousedown', cmd)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\n\t\tdocument.removeEventListener('click', this._handleClickOutside.bind(this))\n\n\t\tthis.windowListeners.forEach((wl) => window.removeEventListener(wl[0], wl[1]))\n\t}\n\n\tstatic get styles() {\n\t\treturn [\n\t\t\tcss`\n\t\t\t\t.unit::before {\n\t\t\t\t\tcontent: ' ';\n\t\t\t\t}\n\t\t\t`,\n\t\t\tbaseCss,\n\t\t]\n\t}\n\n\tprivate isMultivalued() {\n\t\treturn this.schema.includes('tokens-list') || this.schema.includes('items-list')\n\t}\n\n\tprivate updateValue(tr: Transaction) {\n\t\tif (this.isMultivalued()) {\n\t\t\tconst values = extractValues(this.valueProvider?.(), this.metadataProvider ?? (() => ({})))\n\t\t\tconst valuesFromField = this.primitiveTypesExtractor?.(tr.doc) ?? []\n\n\t\t\tconst unchangedIds: string[] = []\n\t\t\tconst newAndModifiedValues: typeof valuesFromField = []\n\t\t\tvaluesFromField.forEach(([tid, value]) => {\n\t\t\t\tconst id = tid.length > 0 ? tid : undefined\n\t\t\t\tconst oldValue = id && values.find(([vid, v]) => vid === id && pteq(v[0].value?.content?.[this.language()], value))\n\t\t\t\tconst idPresent = newAndModifiedValues.some(([ttid]) => ttid === tid)\n\t\t\t\tif (!oldValue || idPresent) {\n\t\t\t\t\tnewAndModifiedValues.push([idPresent ? '' : tid, value])\n\t\t\t\t} else {\n\t\t\t\t\tunchangedIds.push(tid)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tnewAndModifiedValues.forEach(([tid, value]) => {\n\t\t\t\tconst id = tid.length > 0 && !unchangedIds.includes(tid) ? tid : undefined\n\t\t\t\tthis.handleValueChanged?.(\n\t\t\t\t\tthis.label,\n\t\t\t\t\tthis.language(),\n\t\t\t\t\tvalue\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tcontent: { [this.language()]: value },\n\t\t\t\t\t\t\t\tcodes: [],\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tid,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\tvalues\n\t\t\t\t.filter(([vid]) => !valuesFromField.some(([vvid]) => vvid === vid))\n\t\t\t\t.forEach(([id]) => {\n\t\t\t\t\tthis.handleValueChanged?.(this.label, this.language(), undefined, id)\n\t\t\t\t})\n\t\t} else {\n\t\t\tconst [valueId] = extractSingleValue(this.valueProvider?.())\n\t\t\tconst value = this.primitiveTypeExtractor?.(tr.doc)\n\t\t\tthis.handleValueChanged?.(\n\t\t\t\tthis.label,\n\t\t\t\tthis.language(),\n\t\t\t\tvalue\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tcontent: { [this.language()]: value },\n\t\t\t\t\t\t\tcodes: this.codesExtractor?.(tr.doc) ?? [],\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t\tvalueId,\n\t\t\t) && (this.selectedRevision = undefined)\n\t\t}\n\t}\n\n\toverride renderSync({ validationErrors }: { validationErrors: [FieldMetadata, string][] }) {\n\t\tconst renderHash = Math.random()\n\t\tlet metadata: FieldMetadata | undefined\n\t\tlet rev: string | null | undefined\n\t\tlet versions: Version<FieldValue>[] | undefined\n\t\tconst validationError = validationErrors.length\n\t\tlet valueForExistingLanguages: string[] | undefined = undefined\n\n\t\tif (icureFormLogging) {\n\t\t\tconsole.log(`Rendering text-field ${this.schema} ${this.label} [${this.displayedLabels}]`)\n\t\t}\n\n\t\tif (this.view) {\n\t\t\tlet parsedDoc: ProsemirrorNode | undefined\n\n\t\t\tconst data = this.valueProvider?.()\n\t\t\tif (icureFormLogging) {\n\t\t\t\tconsole.log(`Data for ${this.label} is ${JSON.stringify(data)}`)\n\t\t\t}\n\n\t\t\tif (this.isMultivalued()) {\n\t\t\t\tconst values = extractValues(data, this.metadataProvider ?? (() => ({})))\n\t\t\t\tparsedDoc =\n\t\t\t\t\tthis.proseMirrorSchema?.topNodeType.createAndFill(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tvalues.map(([id, value]) => this.parser?.parse(value?.[0]?.value?.content?.[this.language()] ?? '', id, renderHash)).filter((x) => !!x) as ProsemirrorNode[],\n\t\t\t\t\t) ?? undefined\n\t\t\t} else {\n\t\t\t\tlet id\n\t\t\t\t;[id, versions] = extractSingleValue(data)\n\t\t\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\t\t\t\tconst valueForLanguage = version?.value?.content?.[this.language()] ?? ''\n\t\t\t\tvalueForExistingLanguages = Object.keys(version?.value?.content ?? {})\n\n\t\t\t\tparsedDoc = valueForLanguage ? this.parser?.parse(valueForLanguage) ?? undefined : undefined\n\t\t\t\trev = version?.revision\n\t\t\t\tmetadata = id && rev !== undefined ? this.metadataProvider?.(id, versions?.map((v) => v.revision) ?? [])?.[id]?.find((m) => m.revision === rev)?.value : undefined\n\t\t\t}\n\n\t\t\tif (parsedDoc) {\n\t\t\t\tconst selection = this.view.state.selection\n\t\t\t\tconst selAnchor = selection.$anchor.pos\n\t\t\t\tconst selHead = selection.$head.pos\n\t\t\t\tconst lastPos = this.schema === 'text-document' ? parsedDoc.content.size - 1 : parsedDoc.content.size\n\n\t\t\t\tif (lastPos < selAnchor || lastPos < selHead) {\n\t\t\t\t\tconsole.log(`Constraining selection to ${Math.min(selAnchor, lastPos)} - ${Math.min(selHead, lastPos)}`)\n\t\t\t\t}\n\n\t\t\t\tconst newState = EditorState.create({\n\t\t\t\t\tschema: this.view.state.schema,\n\t\t\t\t\tdoc: parsedDoc,\n\t\t\t\t\tplugins: this.view.state.plugins,\n\t\t\t\t\tselection: new TextSelection(parsedDoc.resolve(Math.min(selAnchor, lastPos)), parsedDoc.resolve(Math.min(selHead, lastPos))),\n\t\t\t\t})\n\t\t\t\tthis.view.updateState(newState)\n\t\t\t} else {\n\t\t\t\tthis.view.updateState(\n\t\t\t\t\tEditorState.create({\n\t\t\t\t\t\tschema: this.view.state.schema,\n\t\t\t\t\t\tdoc: undefined,\n\t\t\t\t\t\tplugins: this.view.state.plugins,\n\t\t\t\t\t\tselection: undefined,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn html`\n\t\t\t<div id=\"root\" class=\"${this.visible ? 'icure-text-field' : 'hidden'}\" data-placeholder=${this.placeholder}>\n\t\t\t\t${this.displayedLabels ? generateLabels(this.displayedLabels, this.language(), this.translate ? this.translationProvider : undefined) : nothing}\n\t\t\t\t<div class=\"icure-input-metadata-container\">\n\t\t\t\t\t<div class=\"icure-input ${validationError ? 'icure-input__validationError' : ''} ${this.displayMetadata && metadata ? 'icure-input__withMetadata' : ''}\">\n\t\t\t\t\t\t<div id=\"editor\" class=\"${this.schema}\" style=\"min-height: calc( ${this.lines}rem + 5px )\"></div>\n\t\t\t\t\t\t${!this.displayMetadata && this.defaultValueProvider ? html`<div id=\"reset\" class=\"reset-button\" @click=\"${async () => await this.reset(renderHash)}\">${resetPicto}</div` : nothing}\n\t\t\t\t\t</div>\n\t\t\t\t\t\t${\n\t\t\t\t\t\t\tthis.displayMetadata && metadata\n\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t<div class=\"icure-metadata-container ${validationError ? 'icure-metadata-container__validationError' : ''}\">\n\t\t\t\t\t\t\t\t\t\t\t<icure-metadata-buttons-bar\n\t\t\t\t\t\t\t\t\t\t\t\t.metadata=\"${metadata}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.revision=\"${rev}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.versions=\"${versions ?? []}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.valueId=\"${extractSingleValue(this.valueProvider?.())?.[0]}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.defaultLanguage=\"${this.defaultLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.selectedLanguage=\"${this.selectedLanguage}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.languages=\"${this.languages}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleReset=\"${() => this.reset(renderHash)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleMetadataChanged=\"${this.handleMetadataChanged}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleLanguageSelected=\"${(iso: string) => (this.selectedLanguage = iso)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.handleRevisionSelected=\"${(rev: string) => (this.selectedRevision = rev)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.ownersProvider=\"${this.ownersProvider}\"\n\t\t\t\t\t\t\t\t\t\t\t\t.existingLanguages=\"${valueForExistingLanguages ?? undefined}\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t `\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"error\">${validationErrors.map(([, error]) => html`<div>${this.translationProvider?.(this.language(), error)}</div>`)}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\tprivate async reset(renderHash: number) {\n\t\tif (this.view) {\n\t\t\tconst defaultValue = await this.defaultValueProvider?.()\n\nconst contentForLanguage = defaultValue?.content?.[this.language()] ?? defaultValue?.content?.[this.defaultLanguage] ?? defaultValue?.content?.['*']\n\t\t\tconst tr = this.view.state.tr\n\t\t\tthis.view.dispatch(\n\t\t\t\ttr.replaceWith(\n\t\t\t\t\t0,\n\t\t\t\t\ttr.doc.content.size,\n\t\t\t\t\tthis.parser?.parse(\n\t\t\t\t\t\tcontentForLanguage ??\n\t\t\t\t\t\t\tdefaultValue?.content?.['*'] ??\n\t\t\t\t\t\t\tObject.values(defaultValue?.content ?? {}).find((v) => v.type === 'string') ?? {\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\trenderHash,\n\t\t\t\t\t) ?? this.view.state.schema.text(''),\n\t\t\t\t),\n\t\t\t)\n\t\t}\n\t}\n\n\tmouseDown() {\n\t\tthis.mouseCount++\n\t}\n\n\tmouseUp() {\n\t\tthis.mouseCount = 0\n\t\tif (!this.view?.dom?.classList?.contains('ProseMirror-focused')) {\n\t\t\tthis.view?.dom?.parentElement?.querySelectorAll('.companion')?.forEach((x) => {\n\t\t\t\t;(x as HTMLElement).style.display = 'none'\n\t\t\t})\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\tconst cmp = this\n\t\tconst pms: Schema = (this.proseMirrorSchema = createSchema(this.schema, (t, c, isC) => (isC ? this.codeColorProvider(t, c) : this.linkColorProvider(t, c)), this.codeContentProvider))\n\n\t\tthis.parser = this.makeParser(this.schema, pms)\n\t\tthis.serializer = this.makeSerializer(this.schema, pms)\n\t\tthis.primitiveTypeExtractor = this.makePrimitiveExtractor(this.schema)\n\t\tthis.primitiveTypesExtractor = this.makePrimitivesExtractor(this.schema)\n\t\tthis.codesExtractor = this.makeCodesExtractor(this.schema)\n\n\t\tthis.container = this.shadowRoot?.getElementById('editor') || undefined\n\n\t\tif (this.container) {\n\t\t\tconst br = pms.nodes.hard_break\n\t\t\tconst hard_break = chainCommands(exitCode, (state, dispatch) => {\n\t\t\t\tdispatch && dispatch(state.tr.replaceSelectionWith(br.create()).scrollIntoView())\n\t\t\t\treturn true\n\t\t\t})\n\n\t\t\tconst replaceRangeWithSuggestion = async (from: number, to: number, sug: Suggestion) => {\n\t\t\t\tconst link = await this.linksProvider(sug)\n\t\t\t\treturn (link && cmp.view && cmp.view.state.tr.replaceWith(from, to, pms.text(sug.text, [pms.mark('link', link)]))) || undefined\n\t\t\t}\n\n\t\t\tconst headingsKeymap = keymap(\n\t\t\t\t[1, 2, 3, 4, 5, 6].reduce((acc, idx) => {\n\t\t\t\t\treturn Object.assign(acc, { [`Mod-ctrl-${idx}`]: setBlockType(pms.nodes.heading, { level: '' + idx }) })\n\t\t\t\t}, {}),\n\t\t\t)\n\n\t\t\t//Currently take the first piece of data if it is available\n\t\t\tthis.view = new EditorView(this.container, {\n\t\t\t\tstate: EditorState.create({\n\t\t\t\t\tdoc: undefined,\n\t\t\t\t\tschema: this.proseMirrorSchema,\n\t\t\t\t\tplugins: [\n\t\t\t\t\t\thistory(),\n\t\t\t\t\t\tthis.links\n\t\t\t\t\t\t\t? new Plugin({\n\t\t\t\t\t\t\t\t\tview(editorView) {\n\t\t\t\t\t\t\t\t\t\treturn new SelectionCompanion(editorView, () => cmp.mouseCount > 0)\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tthis.suggestions\n\t\t\t\t\t\t\t? new Plugin({\n\t\t\t\t\t\t\t\t\tview(editorView) {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette = new SuggestionPalette(\n\t\t\t\t\t\t\t\t\t\t\tpms,\n\t\t\t\t\t\t\t\t\t\t\teditorView,\n\t\t\t\t\t\t\t\t\t\t\t(terms: string[]) => cmp.suggestionProvider(terms),\n\t\t\t\t\t\t\t\t\t\t\t() => cmp.suggestionStopWords,\n\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tthis.suggestions\n\t\t\t\t\t\t\t? keymap({\n\t\t\t\t\t\t\t\t\tTab: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && this.view && cmp.suggestionPalette.focusOrInsert(this.view, replaceRangeWithSuggestion)) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tArrowUp: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && cmp.suggestionPalette.arrowUp()) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tArrowDown: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && cmp.suggestionPalette.arrowDown()) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tEnter: () => {\n\t\t\t\t\t\t\t\t\t\treturn (cmp.suggestionPalette && this.view && cmp.suggestionPalette.insert(this.view, replaceRangeWithSuggestion)) || false\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tkeymap({ 'Mod-z': undo, 'Mod-Shift-z': redo }),\n\t\t\t\t\t\tkeymap(\n\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\tpms.marks.strong ? { 'Mod-b': toggleMark(pms.marks.strong) } : {},\n\t\t\t\t\t\t\t\tpms.marks.em ? { 'Mod-i': toggleMark(pms.marks.em) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Alt-ArrowUp': joinUp } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Alt-ArrowDown': joinDown } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Alt-Enter': hard_break } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Shift-Enter': hard_break } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list ? { 'Shift-ctrl-1': wrapInList(pms.nodes.ordered_list) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.bullet_list ? { 'Shift-ctrl-*': wrapInList(pms.nodes.bullet_list) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.blockquote ? { 'Shift-ctrl-w': wrapInIfNeeded(pms.nodes.blockquote) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.blockquote ? { 'Shift-ctrl-u': unwrapFrom(pms.nodes.blockquote) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Mod-ctrl-0': setBlockType(pms.nodes.paragraph) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.paragraph ? { 'Shift-ctrl-0': setBlockType(pms.nodes.paragraph) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.list_item ? { Enter: splitListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-(': liftListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-[': liftListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-)': sinkListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t\tpms.nodes.ordered_list || pms.nodes.bullet_list ? { 'Mod-]': sinkListItem(pms.nodes.list_item) } : {},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tpms.nodes.heading ? headingsKeymap : null,\n\t\t\t\t\t\tmaskPlugin(),\n\t\t\t\t\t\tregexpPlugin(),\n\t\t\t\t\t\thasContentClassPlugin(this.shadowRoot || undefined),\n\t\t\t\t\t\tnew Plugin({\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\ttransformPasted(slice) {\n\t\t\t\t\t\t\t\t\tlet ok = true\n\t\t\t\t\t\t\t\t\tslice.content.forEach((node) => {\n\t\t\t\t\t\t\t\t\t\tif (!pms.nodes[node.type.name]) {\n\t\t\t\t\t\t\t\t\t\t\tok = false\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\tif (ok) {\n\t\t\t\t\t\t\t\t\t\treturn slice\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (pms.nodes.paragraph)\n\t\t\t\t\t\t\t\t\t\treturn new Slice(\n\t\t\t\t\t\t\t\t\t\t\tFragment.fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\tslice.content\n\t\t\t\t\t\t\t\t\t\t\t\t\t.textBetween(0, slice.content.size, ' ')\n\t\t\t\t\t\t\t\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map((line) => pms.nodes.paragraph.create({}, [pms.text(line)])),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\telse return new Slice(Fragment.fromArray([pms.text(slice.content.textBetween(0, slice.content.size, ' ').split('\\n').join(' '))]), 0, 0)\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tkeymap(baseKeymap),\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter((x) => !!x)\n\t\t\t\t\t\t.map((x) => x as Plugin),\n\t\t\t\t}),\n\t\t\t\thandleDOMEvents: {\n\t\t\t\t\tblur: (view) => {\n\t\t\t\t\t\tthis.trToSave = undefined\n\t\t\t\t\t\tthis.updateValue(view.state.tr)\n\t\t\t\t\t},\n\t\t\t\t\tfocus: (view) => {\n\t\t\t\t\t\tthis.schema === 'measure' && measureOnFocusHandler(view)\n\t\t\t\t\t},\n\t\t\t\t\tclick: (view, event) => {\n\t\t\t\t\t\tif (this.schema.includes('tokens-list')) {\n\t\t\t\t\t\t\tconst el = event.target as HTMLElement\n\t\t\t\t\t\t\tif (el?.classList.contains('token') && Math.abs(el.getBoundingClientRect().right - 10 - event.x) < 6 && Math.abs(el.getBoundingClientRect().bottom - 9 - event.y) < 6) {\n\t\t\t\t\t\t\t\tconst pos = view.posAtCoords({ left: event.x, top: event.y })\n\t\t\t\t\t\t\t\tif (pos?.pos) {\n\t\t\t\t\t\t\t\t\tconst rp = view.state.tr.doc.resolve(pos?.pos)\n\t\t\t\t\t\t\t\t\tthis.view?.dispatch(view.state.tr.deleteRange(rp.before(), rp.after()))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdispatchTransaction: (tro) => {\n\t\t\t\t\tconst tr = this.schema === 'measure' ? measureTransactionMapper(tro) : tro\n\t\t\t\t\tconsole.log(`Setting selection to ${tr.selection.from} - ${tr.selection.to}`)\n\t\t\t\t\tthis.view && this.view.updateState(this.view.state.apply(tr))\n\t\t\t\t\tif (this.view && tr.doc != tr.before && this.handleValueChanged) {\n\t\t\t\t\t\tthis.trToSave = tr\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t// eslint-disable-next-line max-len\n\t\t\t\t\t\t\tif (this.trToSave === tr) {\n\t\t\t\t\t\t\t\tthis.updateValue(tr)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 10000)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\teditable: () => {\n\t\t\t\t\treturn !this.readonly\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate makeParser(schemaName: string, pms: Schema) {\n\t\tconst tokenizer = MarkdownIt('commonmark', { html: false })\n\t\treturn schemaName.includes('tokens-list')\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType, id?: string, renderHash?: number) => {\n\t\t\t\t\t\treturn pms.node('token', { id, renderHash }, value.value ? [pms.text((value as StringType).value)] : [])\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName.includes('items-list')\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType, id?: string, renderHash?: number) => {\n\t\t\t\t\t\treturn pms.node('item', { id, renderHash }, value.value ? [pms.text((value as StringType).value)] : [])\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'date'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tif (value?.type === 'datetime') {\n\t\t\t\t\t\t\tconst dateString = anyDateToDate(value.value)?.toISOString().replace(/T.*/, '')\n\t\t\t\t\t\t\treturn pms.node('paragraph', {}, [pms.node('date', {}, value ? [pms.text(dateString ?? '')] : [])])\n\t\t\t\t\t\t} else if (value?.type === 'timestamp') {\n\t\t\t\t\t\t\tconst dateString = new Date(value.value)?.toISOString().replace(/T.*/, '')\n\t\t\t\t\t\t\treturn pms.node('paragraph', {}, [pms.node('date', {}, value ? [pms.text(dateString ?? '')] : [])])\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'time'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tconst time =\n\t\t\t\t\t\t\tvalue.type === 'number'\n\t\t\t\t\t\t\t\t? pms.node('paragraph', {}, [\n\t\t\t\t\t\t\t\t\t\tpms.node(\n\t\t\t\t\t\t\t\t\t\t\t'time',\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t\t\t\t? [pms.text(('00' + Math.floor(value.value / 10000)).slice(-2) + ':' + ('00' + Math.floor((value.value / 100) % 100)).slice(-2) + ':' + ('00' + (value.value % 100)).slice(-2))]\n\t\t\t\t\t\t\t\t\t\t\t\t: [],\n\t\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: value.type === 'datetime'\n\t\t\t\t\t\t\t\t? pms.node('paragraph', {}, [\n\t\t\t\t\t\t\t\t\t\tpms.node(\n\t\t\t\t\t\t\t\t\t\t\t'time',\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t\t\t\t? [pms.text(('00' + Math.floor(value.value / 10000)).slice(-2) + ':' + ('00' + Math.floor((value.value / 100) % 100)).slice(-2) + ':' + ('00' + (value.value % 100)).slice(-2))]\n\t\t\t\t\t\t\t\t\t\t\t\t: [],\n\t\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: undefined\n\t\t\t\t\t\tconsole.log(`Parsing time ${value.value} to: ${time}`)\n\t\t\t\t\t\treturn time\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'measure'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tif (value.type !== 'measure') {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst decimal =\n\t\t\t\t\t\t\tvalue.value !== undefined\n\t\t\t\t\t\t\t\t? value.value.toFixed(this.styleOptions?.decimalPlaces || this.styleOptions?.decimalPlaces?.toString() === '0' ? parseInt(this.styleOptions.decimalPlaces.toString()) : 2)\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\tconst unit = value.unit\n\n\t\t\t\t\t\treturn pms.node(\n\t\t\t\t\t\t\t'paragraph',\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t[pms.node('decimal', {}, decimal && decimal.length ? [pms.text(decimal)] : [])].concat(unit && unit.length ? [pms.node('unit', {}, [pms.text(unit)])] : []),\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'decimal'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\treturn value.type === 'number'\n\t\t\t\t\t\t\t? pms.node('paragraph', {}, [\n\t\t\t\t\t\t\t\t\tpms.node('decimal', {}, [\n\t\t\t\t\t\t\t\t\t\tpms.text(value.value.toFixed(this.styleOptions?.decimalPlaces || this.styleOptions?.decimalPlaces?.toString() === '0' ? parseInt(this.styleOptions.decimalPlaces.toString()) : 2)),\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ])\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'date-time'\n\t\t\t? {\n\t\t\t\t\tparse: (value: PrimitiveType) => {\n\t\t\t\t\t\tif (value.type !== 'datetime') {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst date = anyDateToDate(value.value)?.toISOString().replace(/T.*/, '')\n\t\t\t\t\t\tconst time = anyDateToDate(value.value)\n\t\t\t\t\t\t\t?.toISOString()\n\t\t\t\t\t\t\t.replace(/.+?T(..):(..).*/, '$1:$2')\n\n\t\t\t\t\t\treturn pms.node('paragraph', {}, [\n\t\t\t\t\t\t\tpms.node('date', {}, date && date.length ? [pms.text(date)] : [pms.text(' ')]),\n\t\t\t\t\t\t\tpms.node('time', {}, time && time.length ? [pms.text(time)] : [pms.text(' ')]),\n\t\t\t\t\t\t])\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: schemaName === 'text-document'\n\t\t\t? new SpacePreservingMarkdownParser(\n\t\t\t\t\tnew MarkdownParser(pms, MarkdownIt('commonmark', { html: false }), {\n\t\t\t\t\t\tblockquote: { block: 'blockquote' },\n\t\t\t\t\t\tparagraph: { block: 'paragraph' },\n\t\t\t\t\t\tlist_item: { block: 'list_item' },\n\t\t\t\t\t\tbullet_list: { block: 'bullet_list' },\n\t\t\t\t\t\tordered_list: { block: 'ordered_list', getAttrs: (tok) => ({ order: +(tok.attrGet('start') || 1) }) },\n\t\t\t\t\t\theading: { block: 'heading', getAttrs: (tok) => ({ level: +tok.tag.slice(1) }) },\n\t\t\t\t\t\thr: { node: 'horizontal_rule' },\n\t\t\t\t\t\timage: {\n\t\t\t\t\t\t\tnode: 'image',\n\t\t\t\t\t\t\tgetAttrs: (tok) => ({\n\t\t\t\t\t\t\t\tsrc: tok.attrGet('src'),\n\t\t\t\t\t\t\t\ttitle: tok.attrGet('title') || null,\n\t\t\t\t\t\t\t\talt: (tok.children || [])[0]?.content || null,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t\thard_break: { node: 'hard_break' },\n\n\t\t\t\t\t\tem: hasMark(pms.spec.marks, 'em') ? { mark: 'em' } : { ignore: true },\n\t\t\t\t\t\tstrong: hasMark(pms.spec.marks, 'strong') ? { mark: 'strong' } : { ignore: true },\n\t\t\t\t\t\tlink: hasMark(pms.spec.marks, 'link')\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tmark: 'link',\n\t\t\t\t\t\t\t\t\tgetAttrs: (tok) => ({\n\t\t\t\t\t\t\t\t\t\thref: tok.attrGet('href'),\n\t\t\t\t\t\t\t\t\t\ttitle: tok.attrGet('title') || null,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: { ignore: true },\n\t\t\t\t\t}),\n\t\t\t )\n\t\t\t: new SpacePreservingMarkdownParser(\n\t\t\t\t\tnew MarkdownParser(\n\t\t\t\t\t\tpms,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparse: (src: string, env: unknown): unknown[] => {\n\t\t\t\t\t\t\t\treturn tokenizer.parse(src, env).filter((t) => !t.type.startsWith('paragraph_'))\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} as MarkdownIt,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tem: hasMark(pms.spec.marks, 'em') ? { mark: 'em' } : { ignore: true },\n\t\t\t\t\t\t\tstrong: hasMark(pms.spec.marks, 'strong') ? { mark: 'strong' } : { ignore: true },\n\t\t\t\t\t\t\tlink: hasMark(pms.spec.marks, 'link')\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tmark: 'link',\n\t\t\t\t\t\t\t\t\t\tgetAttrs: (tok) => ({\n\t\t\t\t\t\t\t\t\t\t\thref: tok.attrGet('href'),\n\t\t\t\t\t\t\t\t\t\t\ttitle: tok.attrGet('title') || null,\n\t\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: { ignore: true },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t )\n\t}\n\n\tprivate makeSerializer(schemaName: string, pms: Schema) {\n\t\treturn schemaName === 'text-document'\n\t\t\t? {\n\t\t\t\t\tserialize: (content: ProsemirrorNode) => defaultMarkdownSerializer.serialize(preprocessEmptyNodes(content, pms)),\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tserialize: (content: ProsemirrorNode) => content.textBetween(0, content.nodeSize - 2, ' '),\n\t\t\t }\n\t}\n\n\tprivate makeCodesExtractor(schemaName: string): (doc?: ProsemirrorNode) => Code[] {\n\t\treturn schemaName === 'measure'\n\t\t\t? (doc?: ProsemirrorNode) => {\n\t\t\t\t\tconst unit = (doc?.childCount ?? 0) > 1 ? doc?.child(1)?.textContent : undefined\n\t\t\t\t\treturn unit ? [{ id: `CD-UNIT|${unit}|1`, label: { [this.selectedLanguage ?? this.defaultLanguage ?? 'en']: unit } }] : []\n\t\t\t }\n\t\t\t: schemaName === 'measure'\n\t\t\t? (doc?: ProsemirrorNode) => {\n\t\t\t\t\tconst unit = doc?.child(1)?.textContent\n\t\t\t\t\treturn unit ? [{ id: `CD-UNIT|${unit}|1`, label: { [this.selectedLanguage ?? this.defaultLanguage ?? 'en']: unit } }] : []\n\t\t\t }\n\t\t\t: () => []\n\t}\n\n\tprivate makePrimitiveExtractor(schemaName: string): (doc?: ProsemirrorNode) => PrimitiveType | undefined {\n\t\treturn schemaName === 'date'\n\t\t\t? (doc?: ProsemirrorNode) => (doc?.firstChild?.textContent ? { type: 'datetime', value: parseInt(format(parse(doc.firstChild.textContent, 'dd/MM/yyyy', new Date()), 'yyyyMMdd')) } : undefined)\n\t\t\t: schemaName === 'time'\n\t\t\t? (doc?: ProsemirrorNode) => {\n\t\t\t\t\tif (doc?.firstChild?.textContent && !doc.firstChild.textContent.startsWith('--:')) {\n\t\t\t\t\t\tconst value = parseInt(format(parse(doc.firstChild.textContent.replaceAll('-', '0'), 'HH:mm:ss', new Date()), 'HHmmss'))\n\t\t\t\t\t\tconsole.log(`Converted time to: ${value}`)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: 'datetime',\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: schemaName === 'measure'\n\t\t\t? (doc?: ProsemirrorNode) => ({\n\t\t\t\t\ttype: 'measure',\n\t\t\t\t\tvalue: (() => {\n\t\t\t\t\t\tif (doc?.firstChild?.textContent?.length) {\n\t\t\t\t\t\t\tconst parsed = parseFloat(doc.firstChild.textContent.replaceAll(',', '.'))\n\t\t\t\t\t\t\treturn isNaN(parsed) ? undefined : parsed\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t})(),\n\t\t\t\t\tunit: (doc?.childCount ?? 0) > 1 ? doc?.child(1)?.textContent : undefined,\n\t\t\t })\n\t\t\t: schemaName === 'decimal'\n\t\t\t? (doc?: ProsemirrorNode) => (doc?.firstChild?.textContent?.length ? { type: 'number', value: parseFloat(doc.firstChild.textContent.replace(/,/g, '.')) } : undefined)\n\t\t\t: schemaName === 'date-time'\n\t\t\t? (doc?: ProsemirrorNode) =>\n\t\t\t\t\tdoc?.firstChild?.textContent && doc?.lastChild?.textContent\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\ttype: 'datetime',\n\t\t\t\t\t\t\t\tvalue: parseInt(format(parse(doc.firstChild.textContent + ' ' + doc.lastChild.textContent, 'dd/MM/yyyy HH:mm:ss', new Date()), 'yyyyMMddHHmmss')),\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: undefined\n\t\t\t: (doc?: ProsemirrorNode) => (doc ? { type: 'string', value: this.serializer.serialize(doc) } : undefined)\n\t}\n\n\tprivate makePrimitivesExtractor(schemaName: string): (doc?: ProsemirrorNode) => [string, PrimitiveType][] {\n\t\treturn schemaName.includes('tokens-list') || schemaName.includes('items-list')\n\t\t\t? (doc?: ProsemirrorNode) =>\n\t\t\t\t\tdoc?.childCount\n\t\t\t\t\t\t? [...Array(doc.childCount).keys()].map((idx) => {\n\t\t\t\t\t\t\t\tconst child = doc.child(idx)\n\t\t\t\t\t\t\t\tconst id = child.attrs.id ?? ''\n\t\t\t\t\t\t\t\treturn [id, { type: 'string', value: this.serializer.serialize(child) }]\n\t\t\t\t\t\t })\n\t\t\t\t\t\t: []\n\t\t\t: () => []\n\t}\n}\n\n// Register the new element with the browser.\nexport class MetadataButtonBarWrapper extends LitElement {\n\t@property() id: string\n\t@property() rerender: string\n\t@state() private selectedRevision?: string\n\n\trender() {\n\t\tconsole.log('Rendering metadata buttons')\n\t\tconst parent = (this.shadowRoot?.host?.closest('div#root')?.parentNode as ShadowRoot)?.host as IcureTextField\n\t\tif (!parent || !this.id) {\n\t\t\treturn\n\t\t}\n\n\t\tconst data = parent.valueProvider?.() ?? {}\n\t\tconst versions = data[this.id]\n\n\t\tconst version = this.selectedRevision ? versions?.find((v) => v.revision === this.selectedRevision) : versions?.[0]\n\n\t\tconst rev = version?.revision\n\t\tconst metadata = this.id && rev !== undefined ? parent.metadataProvider?.(this.id, versions?.map((v) => v.revision) ?? [])?.[this.id]?.find((m) => m.revision === rev)?.value : undefined\n\n\t\tconst op = (terms: string[], ids?: string[], specialties?: string[]) => {\n\t\t\treturn parent.ownersProvider(terms, ids, specialties)\n\t\t}\n\n\t\treturn html`<icure-metadata-buttons-bar .metadata=\"${metadata}\" .revision=\"${rev}\" .versions=\"${versions}\" .valueId=\"${extractSingleValue(parent.valueProvider?.())?.[0]}\"\n\t\t.defaultLanguage=\"${parent.defaultLanguage}\" .selectedLanguage=\"${parent.selectedLanguage}\" .languages=\"${parent.languages}\" .handleMetadataChanged=\"${parent.handleMetadataChanged}\"\n\t\t.handleLanguageSelected=\"${(iso: string) => (parent.selectedLanguage = iso)}\" .handleRevisionSelected=\"${(rev: string) => (parent.selectedRevision = rev)}\" .ownersProvider=\"${op}\"\n\t\tstyle=\"white-space: nowrap; padding-top: 1px\" \" />`\n\t}\n}\n"]}
|
|
@@ -10,7 +10,15 @@ export interface Code {
|
|
|
10
10
|
[key: string]: string;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
13
|
+
export interface Metadata {
|
|
14
|
+
label: string;
|
|
15
|
+
index?: number;
|
|
16
|
+
valueDate?: number;
|
|
17
|
+
tags?: {
|
|
18
|
+
id: string;
|
|
19
|
+
}[];
|
|
20
|
+
}
|
|
21
|
+
export interface FieldMetadata extends Metadata {
|
|
14
22
|
label: string;
|
|
15
23
|
index?: number;
|
|
16
24
|
valueDate?: number;
|
|
@@ -91,6 +99,9 @@ export declare abstract class Field {
|
|
|
91
99
|
computedProperties?: {
|
|
92
100
|
[_key: string]: string;
|
|
93
101
|
};
|
|
102
|
+
computedPropertiesDependencies?: {
|
|
103
|
+
[_key: string]: string[] | undefined;
|
|
104
|
+
};
|
|
94
105
|
validators?: Validator[];
|
|
95
106
|
now?: boolean;
|
|
96
107
|
translate?: boolean;
|
|
@@ -551,6 +562,9 @@ export declare class Group {
|
|
|
551
562
|
computedProperties?: {
|
|
552
563
|
[_key: string]: string;
|
|
553
564
|
};
|
|
565
|
+
computedPropertiesDependencies?: {
|
|
566
|
+
[_key: string]: string[] | undefined;
|
|
567
|
+
};
|
|
554
568
|
width?: number;
|
|
555
569
|
styleOptions?: {
|
|
556
570
|
[_key: string]: unknown;
|
|
@@ -37,7 +37,7 @@ export class Field {
|
|
|
37
37
|
this.value = value;
|
|
38
38
|
this.unit = unit;
|
|
39
39
|
this.multiline = multiline || false;
|
|
40
|
-
this.computedProperties = computedProperties;
|
|
40
|
+
[this.computedProperties, this.computedPropertiesDependencies] = canonizeAndComputeDependencies(computedProperties);
|
|
41
41
|
this.validators = validators;
|
|
42
42
|
this.now = now;
|
|
43
43
|
this.translate = translate !== null && translate !== void 0 ? translate : true;
|
|
@@ -385,6 +385,17 @@ export class Button extends Field {
|
|
|
385
385
|
return new Button(this.field, Object.assign(Object.assign({}, this), properties));
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
|
+
function canonizeAndComputeDependencies(computedProperties) {
|
|
389
|
+
return [
|
|
390
|
+
Object.entries(computedProperties !== null && computedProperties !== void 0 ? computedProperties : {}).reduce((acc, [key, value]) => (Object.assign(Object.assign({}, acc), { [key.replace(/\(.*\)/, '')]: value })), {}),
|
|
391
|
+
Object.keys(computedProperties !== null && computedProperties !== void 0 ? computedProperties : {}).reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key.replace(/\(.*\)/, '')]: key.includes('(')
|
|
392
|
+
? key
|
|
393
|
+
.replace(/.+\((.*)\)/, '$1')
|
|
394
|
+
.split(',')
|
|
395
|
+
.filter((x) => x.length)
|
|
396
|
+
: undefined })), {}),
|
|
397
|
+
];
|
|
398
|
+
}
|
|
388
399
|
export class Group {
|
|
389
400
|
constructor(title, fields, { span, rowSpan, borderless, translate, computedProperties, width, styleOptions, }) {
|
|
390
401
|
this.clazz = 'group';
|
|
@@ -395,7 +406,7 @@ export class Group {
|
|
|
395
406
|
this.fields = fields;
|
|
396
407
|
this.span = span;
|
|
397
408
|
this.rowSpan = rowSpan;
|
|
398
|
-
this.computedProperties = computedProperties;
|
|
409
|
+
[this.computedProperties, this.computedPropertiesDependencies] = canonizeAndComputeDependencies(computedProperties);
|
|
399
410
|
this.width = width;
|
|
400
411
|
this.styleOptions = styleOptions;
|
|
401
412
|
}
|