@icure/form 1.1.15 → 1.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.yarn/cache/{lit-element-npm-4.0.4-95110c5931-721b877743.zip → lit-element-npm-4.0.6-bfca4f9870-4f73cd1c0d.zip} +0 -0
  2. package/.yarn/cache/lit-html-npm-3.1.4-58e56c5010-428593679c.zip +0 -0
  3. package/.yarn/cache/{lit-npm-3.1.2-d289de97da-7776fc5f17.zip → lit-npm-3.1.4-b7dcc2d5a3-c6ffa5580f.zip} +0 -0
  4. package/.yarn/cache/markdown-it-npm-14.1.0-e337d75bfe-07296b45eb.zip +0 -0
  5. package/.yarn/cache/prosemirror-model-npm-1.22.2-9238026de4-f4004a4ebe.zip +0 -0
  6. package/.yarn/cache/prosemirror-transform-npm-1.9.0-fd256f82f0-c2d63c1fb0.zip +0 -0
  7. package/.yarn/cache/prosemirror-view-npm-1.33.9-dd77e3e48f-d3bd6cef56.zip +0 -0
  8. package/.yarn/cache/tslib-npm-2.6.3-0fd136b3be-74fce0e100.zip +0 -0
  9. package/.yarn/cache/uc.micro-npm-2.1.0-c45282c865-3719735824.zip +0 -0
  10. package/.yarn/install-state.gz +0 -0
  11. package/components/common/field-with-options.d.ts +1 -1
  12. package/components/common/field-with-options.js.map +1 -1
  13. package/components/common/field.d.ts +3 -1
  14. package/components/common/field.js +18 -8
  15. package/components/common/field.js.map +1 -1
  16. package/components/common/utils.js.map +1 -1
  17. package/components/icure-button-group/index.js +8 -2
  18. package/components/icure-button-group/index.js.map +1 -1
  19. package/components/icure-date-picker/index.js +11 -4
  20. package/components/icure-date-picker/index.js.map +1 -1
  21. package/components/icure-dropdown-field/index.d.ts +3 -1
  22. package/components/icure-dropdown-field/index.js +42 -9
  23. package/components/icure-dropdown-field/index.js.map +1 -1
  24. package/components/icure-form/fields/button-group/checkbox.js +4 -3
  25. package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
  26. package/components/icure-form/fields/button-group/radio-button.js +5 -4
  27. package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
  28. package/components/icure-form/fields/date-picker/date-picker.js +4 -3
  29. package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
  30. package/components/icure-form/fields/date-picker/date-time-picker.js +4 -3
  31. package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
  32. package/components/icure-form/fields/date-picker/time-picker.js +4 -3
  33. package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
  34. package/components/icure-form/fields/dropdown/dropdown-field.d.ts +2 -4
  35. package/components/icure-form/fields/dropdown/dropdown-field.js +6 -5
  36. package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
  37. package/components/icure-form/fields/items-list-field/items-list-field.js +4 -4
  38. package/components/icure-form/fields/items-list-field/items-list-field.js.map +1 -1
  39. package/components/icure-form/fields/label/label.js +1 -1
  40. package/components/icure-form/fields/label/label.js.map +1 -1
  41. package/components/icure-form/fields/measure-field/measure-field.js +4 -3
  42. package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
  43. package/components/icure-form/fields/number-field/number-field.js +4 -3
  44. package/components/icure-form/fields/number-field/number-field.js.map +1 -1
  45. package/components/icure-form/fields/text-field/text-field.d.ts +1 -1
  46. package/components/icure-form/fields/text-field/text-field.js +5 -4
  47. package/components/icure-form/fields/text-field/text-field.js.map +1 -1
  48. package/components/icure-form/fields/token-field/token-field.js +4 -4
  49. package/components/icure-form/fields/token-field/token-field.js.map +1 -1
  50. package/components/icure-form/fields/utils/index.d.ts +4 -6
  51. package/components/icure-form/fields/utils/index.js +1 -1
  52. package/components/icure-form/fields/utils/index.js.map +1 -1
  53. package/components/icure-form/index.d.ts +8 -8
  54. package/components/icure-form/index.js +17 -13
  55. package/components/icure-form/index.js.map +1 -1
  56. package/components/icure-form/renderer/form/form-selection-button.js +1 -1
  57. package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
  58. package/components/icure-form/renderer/form/form.js +67 -58
  59. package/components/icure-form/renderer/form/form.js.map +1 -1
  60. package/components/icure-form/renderer/index.d.ts +4 -6
  61. package/components/icure-form/renderer/index.js.map +1 -1
  62. package/components/icure-label/index.js +6 -1
  63. package/components/icure-label/index.js.map +1 -1
  64. package/components/icure-text-field/index.d.ts +7 -9
  65. package/components/icure-text-field/index.js +118 -51
  66. package/components/icure-text-field/index.js.map +1 -1
  67. package/components/icure-text-field/plugin/caret-fix-plugin.js.map +1 -1
  68. package/components/icure-text-field/plugin/mask-plugin.js.map +1 -1
  69. package/components/icure-text-field/plugin/regexp-plugin.js.map +1 -1
  70. package/components/icure-text-field/prosemirror-commands.d.ts +2 -2
  71. package/components/icure-text-field/prosemirror-commands.js.map +1 -1
  72. package/components/icure-text-field/prosemirror-utils.js.map +1 -1
  73. package/components/icure-text-field/schema/common-marks.js.map +1 -1
  74. package/components/icure-text-field/schema/measure-schema.js.map +1 -1
  75. package/components/icure-text-field/selection-companion.js.map +1 -1
  76. package/components/icure-text-field/suggestion-palette.js.map +1 -1
  77. package/components/model/index.d.ts +69 -137
  78. package/components/model/index.js +30 -103
  79. package/components/model/index.js.map +1 -1
  80. package/components/themes/icure-blue/index.d.ts +1 -0
  81. package/components/themes/icure-blue/index.js +321 -0
  82. package/components/themes/icure-blue/index.js.map +1 -0
  83. package/conversion/ckmeans-grouping.js.map +1 -1
  84. package/conversion/ckmeans.js.map +1 -1
  85. package/conversion/icure-convert.js.map +1 -1
  86. package/generic/model.d.ts +45 -1
  87. package/generic/model.js.map +1 -1
  88. package/icure/form-values-container.d.ts +42 -8
  89. package/icure/form-values-container.js +99 -52
  90. package/icure/form-values-container.js.map +1 -1
  91. package/icure/icure-utils.d.ts +19 -0
  92. package/icure/icure-utils.js +117 -0
  93. package/icure/icure-utils.js.map +1 -0
  94. package/icure/model.d.ts +1 -1
  95. package/icure/model.js.map +1 -1
  96. package/package.json +3 -4
  97. package/utils/code-utils.d.ts +3 -10
  98. package/utils/code-utils.js +3 -9
  99. package/utils/code-utils.js.map +1 -1
  100. package/utils/dates.d.ts +6 -0
  101. package/utils/dates.js +58 -0
  102. package/utils/dates.js.map +1 -0
  103. package/utils/fields-values-provider.d.ts +2 -1
  104. package/utils/fields-values-provider.js +11 -6
  105. package/utils/fields-values-provider.js.map +1 -1
  106. package/utils/form-value-container.js.map +1 -1
  107. package/utils/icure-utils.js.map +1 -1
  108. package/utils/interpreter.js +1 -2
  109. package/utils/interpreter.js.map +1 -1
  110. package/utils/languages.d.ts +1 -5
  111. package/utils/languages.js.map +1 -1
  112. package/utils/markdown.d.ts +2 -1
  113. package/utils/markdown.js +5 -1
  114. package/utils/markdown.js.map +1 -1
  115. package/utils/no-lodash.d.ts +3 -1
  116. package/utils/no-lodash.js +3 -1
  117. package/utils/no-lodash.js.map +1 -1
  118. package/utils/primitive.d.ts +0 -3
  119. package/utils/primitive.js +4 -59
  120. package/utils/primitive.js.map +1 -1
  121. package/.yarn/cache/@types-node-npm-18.19.15-63d17b58ca-8ebad6b0a0.zip +0 -0
  122. package/.yarn/cache/lit-html-npm-3.1.2-eef1e7cbd7-9a6f0326ae.zip +0 -0
  123. package/.yarn/cache/markdown-it-npm-14.0.0-e9aebdc7e3-f63bd8b39b.zip +0 -0
  124. package/.yarn/cache/tslib-npm-2.6.2-4fc8c068d9-329ea56123.zip +0 -0
  125. package/.yarn/cache/uc.micro-npm-2.0.0-9517366009-86e142c239.zip +0 -0
  126. package/.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-3192ef6f3f.zip +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"common-marks.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/common-marks.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarkSpec } from 'prosemirror-model'\n\nexport const colors: { [key: string]: [string, string] } = {\n\tI: ['#F44336', 'white'],\n\tII: ['#E91E63', 'white'],\n\tIII: ['#9C27B0', 'white'],\n\tIV: ['#673AB7', 'white'],\n\tV: ['#009688', 'white'],\n\tVI: ['#4CAF50', 'white'],\n\tVII: ['#8BC34A', 'white'],\n\tVIII: ['#03A9F4', 'white'],\n\tIX: ['#00BCD4', 'white'],\n\tX: ['#FFC107', 'black'],\n\tXI: ['#FF9800', 'black'],\n\tXII: ['#FF5722', 'white'],\n\tXIII: ['#795548', 'white'],\n\tXIV: ['#3949AB', 'white'],\n\tXV: ['#C0CA33', 'black'],\n\tXVI: ['#07F87F', 'black'],\n\tXVII: ['#FF6262', 'white'],\n\tXVIII: ['#718792', 'white'],\n\tXIX: ['#00ECB9', 'black'],\n\tXX: ['#FF20A3', 'black'],\n\tXXI: ['#FFCE38', 'black'],\n\tXXII: ['#721F01', 'white'],\n}\n\nconst getColor = (c: string) => colors[c] || [c, 'white']\n\nexport function getMarks(\n\tcontentProvider: (codes: { type: string; code: string }[]) => string,\n\tcolorProvider: (type: string, code: string, isCode: boolean) => string,\n): { [key: string]: MarkSpec } {\n\treturn {\n\t\tem: {\n\t\t\tparseDOM: [{ tag: 'i' }, { tag: 'em' }, { style: 'font-style', getAttrs: (value) => value === 'italic' && null }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['em']\n\t\t\t},\n\t\t},\n\n\t\tstrong: {\n\t\t\tparseDOM: [{ tag: 'b' }, { tag: 'strong' }, { style: 'font-weight', getAttrs: (value) => /^(bold(er)?|[5-9]\\d{2,})$/.test(value as string) && null }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['strong']\n\t\t\t},\n\t\t},\n\n\t\tlink: {\n\t\t\tattrs: {\n\t\t\t\thref: {},\n\t\t\t\ttitle: { default: null },\n\t\t\t},\n\t\t\tinclusive: false,\n\t\t\tparseDOM: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'span[data-href]',\n\t\t\t\t\tgetAttrs(dom) {\n\t\t\t\t\t\tconst el = dom as HTMLElement\n\t\t\t\t\t\treturn { href: el.dataset.href, title: el.dataset.title }\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\tconst urls: string = node.attrs.href\n\t\t\t\tif (urls) {\n\t\t\t\t\tconst refs = urls.split(',').map((url) => {\n\t\t\t\t\t\tconst pos = url.indexOf('://')\n\t\t\t\t\t\tconst protocol = url.substring(0, pos)\n\t\t\t\t\t\tconst code = url.substring(pos + 3)\n\t\t\t\t\t\tconst parts = protocol.split('-')\n\t\t\t\t\t\tconst category = parts[0]\n\t\t\t\t\t\tconst type = parts[1]\n\n\t\t\t\t\t\treturn { category, type, code }\n\t\t\t\t\t})\n\n\t\t\t\t\tconst codes = refs.filter((x) => x.category === 'c')\n\t\t\t\t\tconst ilinks = refs.filter((x) => x.category === 'i')\n\n\t\t\t\t\tconst classes = (refs.some((x) => x.category === 'x') ? ['ext-link'] : []).concat(codes.length ? [`code-count-${codes.length}`] : [])\n\n\t\t\t\t\tconst dataAttributes = (codes.length ? [{ 'data-content': contentProvider(codes) } as { [key: string]: string }] : []).concat(\n\t\t\t\t\t\tilinks.map((c, idx) => ({ [`data-link-color-${idx}`]: colorProvider(c.type, c.code, false) })),\n\t\t\t\t\t)\n\n\t\t\t\t\tconst styles = codes.map((c, idx) => {\n\t\t\t\t\t\tconst color = getColor(colorProvider(c.type, c.code, true))\n\t\t\t\t\t\treturn `--bg-code-color-${idx + 1}: ${color[0]}; --text-code-color-${idx + 1}: ${color[1]};`\n\t\t\t\t\t})\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\t'span',\n\t\t\t\t\t\tdataAttributes.reduce((acc, da) => Object.assign(da, acc), {\n\t\t\t\t\t\t\t['data-href']: node.attrs.href,\n\t\t\t\t\t\t\t['data-title']: node.attrs.title,\n\t\t\t\t\t\t\tclass: classes.join(' '),\n\t\t\t\t\t\t\tstyle: styles.join(''),\n\t\t\t\t\t\t}),\n\t\t\t\t\t]\n\t\t\t\t}\n\n\t\t\t\treturn ['span', { ['data-href']: node.attrs.href, ['data-title']: node.attrs.title }]\n\t\t\t},\n\t\t},\n\t}\n}\n"]}
1
+ {"version":3,"file":"common-marks.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/common-marks.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarkSpec } from 'prosemirror-model'\n\nexport const colors: { [key: string]: [string, string] } = {\n\tI: ['#F44336', 'white'],\n\tII: ['#E91E63', 'white'],\n\tIII: ['#9C27B0', 'white'],\n\tIV: ['#673AB7', 'white'],\n\tV: ['#009688', 'white'],\n\tVI: ['#4CAF50', 'white'],\n\tVII: ['#8BC34A', 'white'],\n\tVIII: ['#03A9F4', 'white'],\n\tIX: ['#00BCD4', 'white'],\n\tX: ['#FFC107', 'black'],\n\tXI: ['#FF9800', 'black'],\n\tXII: ['#FF5722', 'white'],\n\tXIII: ['#795548', 'white'],\n\tXIV: ['#3949AB', 'white'],\n\tXV: ['#C0CA33', 'black'],\n\tXVI: ['#07F87F', 'black'],\n\tXVII: ['#FF6262', 'white'],\n\tXVIII: ['#718792', 'white'],\n\tXIX: ['#00ECB9', 'black'],\n\tXX: ['#FF20A3', 'black'],\n\tXXI: ['#FFCE38', 'black'],\n\tXXII: ['#721F01', 'white'],\n}\n\nconst getColor = (c: string) => colors[c] || [c, 'white']\n\nexport function getMarks(\n\tcontentProvider: (codes: { type: string; code: string }[]) => string,\n\tcolorProvider: (type: string, code: string, isCode: boolean) => string,\n): { [key: string]: MarkSpec } {\n\treturn {\n\t\tem: {\n\t\t\tparseDOM: [{ tag: 'i' }, { tag: 'em' }, { style: 'font-style', getAttrs: (value) => value === 'italic' && null }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['em']\n\t\t\t},\n\t\t},\n\n\t\tstrong: {\n\t\t\tparseDOM: [{ tag: 'b' }, { tag: 'strong' }, { style: 'font-weight', getAttrs: (value) => /^(bold(er)?|[5-9]\\d{2,})$/.test(value as string) && null }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['strong']\n\t\t\t},\n\t\t},\n\n\t\tlink: {\n\t\t\tattrs: {\n\t\t\t\thref: {},\n\t\t\t\ttitle: { default: null },\n\t\t\t},\n\t\t\tinclusive: false,\n\t\t\tparseDOM: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'span[data-href]',\n\t\t\t\t\tgetAttrs(dom) {\n\t\t\t\t\t\tconst el = dom as HTMLElement\n\t\t\t\t\t\treturn { href: el.dataset.href, title: el.dataset.title }\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\tconst urls: string = node.attrs.href\n\t\t\t\tif (urls) {\n\t\t\t\t\tconst refs = urls.split(',').map((url) => {\n\t\t\t\t\t\tconst pos = url.indexOf('://')\n\t\t\t\t\t\tconst protocol = url.substring(0, pos)\n\t\t\t\t\t\tconst code = url.substring(pos + 3)\n\t\t\t\t\t\tconst parts = protocol.split('-')\n\t\t\t\t\t\tconst category = parts[0]\n\t\t\t\t\t\tconst type = parts[1]\n\n\t\t\t\t\t\treturn { category, type, code }\n\t\t\t\t\t})\n\n\t\t\t\t\tconst codes = refs.filter((x) => x.category === 'c')\n\t\t\t\t\tconst ilinks = refs.filter((x) => x.category === 'i')\n\n\t\t\t\t\tconst classes = (refs.some((x) => x.category === 'x') ? ['ext-link'] : []).concat(codes.length ? [`code-count-${codes.length}`] : [])\n\n\t\t\t\t\tconst dataAttributes = (codes.length ? [{ 'data-content': contentProvider(codes) } as { [key: string]: string }] : []).concat(\n\t\t\t\t\t\tilinks.map((c, idx) => ({ [`data-link-color-${idx}`]: colorProvider(c.type, c.code, false) })),\n\t\t\t\t\t)\n\n\t\t\t\t\tconst styles = codes.map((c, idx) => {\n\t\t\t\t\t\tconst color = getColor(colorProvider(c.type, c.code, true))\n\t\t\t\t\t\treturn `--bg-code-color-${idx + 1}: ${color[0]}; --text-code-color-${idx + 1}: ${color[1]};`\n\t\t\t\t\t})\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\t'span',\n\t\t\t\t\t\tdataAttributes.reduce((acc, da) => Object.assign(da, acc), {\n\t\t\t\t\t\t\t['data-href']: node.attrs.href,\n\t\t\t\t\t\t\t['data-title']: node.attrs.title,\n\t\t\t\t\t\t\tclass: classes.join(' '),\n\t\t\t\t\t\t\tstyle: styles.join(''),\n\t\t\t\t\t\t}),\n\t\t\t\t\t]\n\t\t\t\t}\n\n\t\t\t\treturn ['span', { ['data-href']: node.attrs.href, ['data-title']: node.attrs.title }]\n\t\t\t},\n\t\t},\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"measure-schema.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/measure-schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, SchemaSpec } from 'prosemirror-model'\nimport { TextSelection, Transaction } from 'prosemirror-state'\nimport { EditorView } from 'prosemirror-view'\n\nexport type MeasureSchema = 'measure'\n\nexport function getMeasureSpec(): SchemaSpec {\n\treturn {\n\t\ttopNode: 'paragraph',\n\t\tnodes: {\n\t\t\tparagraph: {\n\t\t\t\tcontent: 'decimal unit?',\n\t\t\t\tparseDOM: [{ tag: 'p' }],\n\t\t\t},\n\n\t\t\tdecimal: {\n\t\t\t\tcontent: 'inline*',\n\t\t\t\tgroup: 'block',\n\t\t\t\tparseDOM: [{ tag: 'span' }],\n\t\t\t\ttoDOM() {\n\t\t\t\t\treturn ['span', { class: 'measure' }, 0]\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tunit: {\n\t\t\t\tcontent: 'inline*',\n\t\t\t\tgroup: 'block',\n\t\t\t\tparseDOM: [{ tag: 'span.unit' }],\n\t\t\t\ttoDOM() {\n\t\t\t\t\treturn ['span', { class: 'unit' }, 0]\n\t\t\t\t},\n\t\t\t\teditable: false,\n\t\t\t},\n\n\t\t\ttext: {\n\t\t\t\tgroup: 'inline',\n\t\t\t},\n\t\t},\n\t\tmarks: {},\n\t}\n}\n\nexport const measureTransactionMapper = (tr: Transaction) => {\n\tconst decimal = tr.doc.childCount && tr.doc.child(0).type.name === 'decimal' ? tr.doc.child(0) : null\n\tconst decimalText = decimal?.textContent ?? ''\n\tconst unit = tr.doc.childCount > 1 && tr.doc.child(1).type.name === 'unit' ? tr.doc.child(1) : null\n\tconst unitText = unit?.textContent\n\tconst schema = tr.doc.type.schema\n\n\tconst from = tr.selection.from\n\n\tconsole.log(`[${decimalText}] <${unitText}> : ${from} - ${tr.selection.to}`)\n\n\tif (decimalText?.match(/^[0-9.,-]+$/)) {\n\t\treturn tr\n\t}\n\n\tconst combinedText = (decimalText ?? '') + (unitText ?? '')\n\n\tconst newUnitText = combinedText.replace(/^[0-9.,-]*/, '').trimStart()\n\tconst newDecimalText = combinedText.replace(/^([0-9.,-]*) *.*$/, '$1').trim()\n\n\tif (newDecimalText === decimalText && newUnitText === unitText) {\n\t\treturn tr\n\t}\n\n\tconst patchedTr = tr.replaceWith(0, tr.doc.content.size, [\n\t\tschema.nodes['paragraph'].create(\n\t\t\t{},\n\t\t\t[\n\t\t\t\tschema.nodes['decimal'].create({}, newDecimalText.length ? [schema.text(newDecimalText)] : []),\n\t\t\t\tnewUnitText?.length ? schema.nodes['unit'].create({}, schema.text(newUnitText)) : undefined,\n\t\t\t].filter((x) => !!x) as Node[],\n\t\t),\n\t])\n\n\tconst newFrom =\n\t\tpatchedTr.steps.slice(tr.steps.length).reduce((acc, step) => step.getMap().map(acc), from) +\n\t\t(newUnitText?.charAt(0) !== unitText?.charAt(0) && (newUnitText?.length ?? 0) > (unitText?.length ?? 0) ? 2 : 0) +\n\t\t((newDecimalText?.length ?? 0) > (decimalText?.length ?? 0) && (newUnitText?.length ?? 0) < (unitText?.length ?? 0) ? -2 : 0)\n\n\treturn patchedTr.setSelection(TextSelection.create(patchedTr.doc, Math.min(newFrom, tr.doc.content.size - 1)))\n}\n\nexport const measureOnFocusHandler = (view: EditorView) => {\n\tconst doc = view.state.tr.doc\n\tconst decimal = doc.childCount && doc.child(0).type.name === 'decimal' ? doc.child(0) : null\n\tconst decimalText = decimal?.textContent ?? ''\n\tconst unit = doc.childCount > 1 && doc.child(1).type.name === 'unit' ? doc.child(1) : null\n\tconst unitText = unit?.textContent\n\n\tif (unitText?.length && !decimalText?.length) {\n\t\tconsole.log('Setting selection to 1')\n\t\tview.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, 1)))\n\t}\n}\n"]}
1
+ {"version":3,"file":"measure-schema.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/measure-schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, SchemaSpec } from 'prosemirror-model'\nimport { TextSelection, Transaction } from 'prosemirror-state'\nimport { EditorView } from 'prosemirror-view'\n\nexport type MeasureSchema = 'measure'\n\nexport function getMeasureSpec(): SchemaSpec {\n\treturn {\n\t\ttopNode: 'paragraph',\n\t\tnodes: {\n\t\t\tparagraph: {\n\t\t\t\tcontent: 'decimal unit?',\n\t\t\t\tparseDOM: [{ tag: 'p' }],\n\t\t\t},\n\n\t\t\tdecimal: {\n\t\t\t\tcontent: 'inline*',\n\t\t\t\tgroup: 'block',\n\t\t\t\tparseDOM: [{ tag: 'span' }],\n\t\t\t\ttoDOM() {\n\t\t\t\t\treturn ['span', { class: 'measure' }, 0]\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tunit: {\n\t\t\t\tcontent: 'inline*',\n\t\t\t\tgroup: 'block',\n\t\t\t\tparseDOM: [{ tag: 'span.unit' }],\n\t\t\t\ttoDOM() {\n\t\t\t\t\treturn ['span', { class: 'unit' }, 0]\n\t\t\t\t},\n\t\t\t\teditable: false,\n\t\t\t},\n\n\t\t\ttext: {\n\t\t\t\tgroup: 'inline',\n\t\t\t},\n\t\t},\n\t\tmarks: {},\n\t}\n}\n\nexport const measureTransactionMapper = (tr: Transaction) => {\n\tconst decimal = tr.doc.childCount && tr.doc.child(0).type.name === 'decimal' ? tr.doc.child(0) : null\n\tconst decimalText = decimal?.textContent ?? ''\n\tconst unit = tr.doc.childCount > 1 && tr.doc.child(1).type.name === 'unit' ? tr.doc.child(1) : null\n\tconst unitText = unit?.textContent\n\tconst schema = tr.doc.type.schema\n\n\tconst from = tr.selection.from\n\n\tconsole.log(`[${decimalText}] <${unitText}> : ${from} - ${tr.selection.to}`)\n\n\tif (decimalText?.match(/^[0-9.,-]+$/)) {\n\t\treturn tr\n\t}\n\n\tconst combinedText = (decimalText ?? '') + (unitText ?? '')\n\n\tconst newUnitText = combinedText.replace(/^[0-9.,-]*/, '').trimStart()\n\tconst newDecimalText = combinedText.replace(/^([0-9.,-]*) *.*$/, '$1').trim()\n\n\tif (newDecimalText === decimalText && newUnitText === unitText) {\n\t\treturn tr\n\t}\n\n\tconst patchedTr = tr.replaceWith(0, tr.doc.content.size, [\n\t\tschema.nodes['paragraph'].create(\n\t\t\t{},\n\t\t\t[\n\t\t\t\tschema.nodes['decimal'].create({}, newDecimalText.length ? [schema.text(newDecimalText)] : []),\n\t\t\t\tnewUnitText?.length ? schema.nodes['unit'].create({}, schema.text(newUnitText)) : undefined,\n\t\t\t].filter((x) => !!x) as Node[],\n\t\t),\n\t])\n\n\tconst newFrom =\n\t\tpatchedTr.steps.slice(tr.steps.length).reduce((acc, step) => step.getMap().map(acc), from) +\n\t\t(newUnitText?.charAt(0) !== unitText?.charAt(0) && (newUnitText?.length ?? 0) > (unitText?.length ?? 0) ? 2 : 0) +\n\t\t((newDecimalText?.length ?? 0) > (decimalText?.length ?? 0) && (newUnitText?.length ?? 0) < (unitText?.length ?? 0) ? -2 : 0)\n\n\treturn patchedTr.setSelection(TextSelection.create(patchedTr.doc, Math.min(newFrom, tr.doc.content.size - 1)))\n}\n\nexport const measureOnFocusHandler = (view: EditorView) => {\n\tconst doc = view.state.tr.doc\n\tconst decimal = doc.childCount && doc.child(0).type.name === 'decimal' ? doc.child(0) : null\n\tconst decimalText = decimal?.textContent ?? ''\n\tconst unit = doc.childCount > 1 && doc.child(1).type.name === 'unit' ? doc.child(1) : null\n\tconst unitText = unit?.textContent\n\n\tif (unitText?.length && !decimalText?.length) {\n\t\tconsole.log('Setting selection to 1')\n\t\tview.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, 1)))\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"selection-companion.js","sourceRoot":"","sources":["../../../tmp/components/icure-text-field/selection-companion.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IAK9B,YAAY,IAAgB,EAAE,KAAoB;;QAH1C,UAAK,GAAkB,GAAG,EAAE,CAAC,KAAK,CAAA;QAClC,aAAQ,GAAG,CAAC,CAAA;QAGnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW,CAAA;QAEtC,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,UAAU,0CAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAEjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,IAAgB,EAAE,SAAuB;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,4DAA4D;QAC5D,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACxF,OAAM;SACN;QAED,+CAA+C;QAC/C,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YACrC,OAAM;SACN;QAED,kDAAkD;QAClD,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;QAC9B,kCAAkC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACjD,CAAC;IAEO,OAAO,CAAC,GAAiE,EAAE,IAAY;;QAC9F,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAM;QAClC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YACjB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC9C,OAAM;SACN;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QACjC,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,YAAY,0CAAE,qBAAqB,EAAE,CAAA;QAChE,IAAI,GAAG,EAAE;YACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAA;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAA;YAC7D,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG,CAAA;SAChC;IACF,CAAC;IAED,OAAO;QACN,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC;CACD;AAvDD,gDAuDC","sourcesContent":["import { EditorView } from 'prosemirror-view'\nimport { EditorState } from 'prosemirror-state'\n\nexport class SelectionCompanion {\n\tprivate readonly companion: HTMLDivElement\n\tprivate delay: () => boolean = () => false\n\tprivate lastTime = 0\n\n\tconstructor(view: EditorView, delay: () => boolean) {\n\t\tthis.companion = document.createElement('div')\n\t\tthis.companion.className = 'companion'\n\n\t\tview.dom?.parentNode?.appendChild(this.companion)\n\n\t\tthis.delay = delay\n\n\t\tthis.update(view, undefined)\n\t}\n\n\tupdate(view: EditorView, lastState?: EditorState): void {\n\t\tconst state = view.state\n\t\t// Don't do anything if the document/selection didn't change\n\t\tif (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Hide the companion if the selection is empty\n\t\tif (state.selection.empty) {\n\t\t\tthis.companion.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\t// Otherwise, reposition it and update its content\n\t\tconst { to } = state.selection\n\t\t// These are in screen coordinates\n\t\tconst end = view.coordsAtPos(to)\n\t\tthis.display(end, (this.lastTime = +new Date()))\n\t}\n\n\tprivate display(pos: { left: number; right: number; top: number; bottom: number }, time: number) {\n\t\tif (time !== this.lastTime) return\n\t\tif (this.delay()) {\n\t\t\tsetTimeout(() => this.display(pos, time), 100)\n\t\t\treturn\n\t\t}\n\t\tthis.companion.style.display = ''\n\t\tconst box = this.companion.offsetParent?.getBoundingClientRect()\n\t\tif (box) {\n\t\t\tthis.companion.style.left = pos.right - box.left + 'px'\n\t\t\tthis.companion.style.top = pos.top - box.top - 2 + 'px'\n\t\t\tthis.companion.style.height = pos.bottom - pos.top + 2 + 'px'\n\t\t\tthis.companion.textContent = '+'\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.companion.remove()\n\t}\n}\n"]}
1
+ {"version":3,"file":"selection-companion.js","sourceRoot":"","sources":["../../../tmp/components/icure-text-field/selection-companion.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IAK9B,YAAY,IAAgB,EAAE,KAAoB;;QAH1C,UAAK,GAAkB,GAAG,EAAE,CAAC,KAAK,CAAA;QAClC,aAAQ,GAAG,CAAC,CAAA;QAGnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW,CAAA;QAEtC,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,UAAU,0CAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAEjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,IAAgB,EAAE,SAAuB;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,4DAA4D;QAC5D,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACzF,OAAM;QACP,CAAC;QAED,+CAA+C;QAC/C,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YACrC,OAAM;QACP,CAAC;QAED,kDAAkD;QAClD,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;QAC9B,kCAAkC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACjD,CAAC;IAEO,OAAO,CAAC,GAAiE,EAAE,IAAY;;QAC9F,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAM;QAClC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC9C,OAAM;QACP,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QACjC,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,YAAY,0CAAE,qBAAqB,EAAE,CAAA;QAChE,IAAI,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAA;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAA;YAC7D,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG,CAAA;QACjC,CAAC;IACF,CAAC;IAED,OAAO;QACN,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC;CACD;AAvDD,gDAuDC","sourcesContent":["import { EditorView } from 'prosemirror-view'\nimport { EditorState } from 'prosemirror-state'\n\nexport class SelectionCompanion {\n\tprivate readonly companion: HTMLDivElement\n\tprivate delay: () => boolean = () => false\n\tprivate lastTime = 0\n\n\tconstructor(view: EditorView, delay: () => boolean) {\n\t\tthis.companion = document.createElement('div')\n\t\tthis.companion.className = 'companion'\n\n\t\tview.dom?.parentNode?.appendChild(this.companion)\n\n\t\tthis.delay = delay\n\n\t\tthis.update(view, undefined)\n\t}\n\n\tupdate(view: EditorView, lastState?: EditorState): void {\n\t\tconst state = view.state\n\t\t// Don't do anything if the document/selection didn't change\n\t\tif (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) {\n\t\t\treturn\n\t\t}\n\n\t\t// Hide the companion if the selection is empty\n\t\tif (state.selection.empty) {\n\t\t\tthis.companion.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\t// Otherwise, reposition it and update its content\n\t\tconst { to } = state.selection\n\t\t// These are in screen coordinates\n\t\tconst end = view.coordsAtPos(to)\n\t\tthis.display(end, (this.lastTime = +new Date()))\n\t}\n\n\tprivate display(pos: { left: number; right: number; top: number; bottom: number }, time: number) {\n\t\tif (time !== this.lastTime) return\n\t\tif (this.delay()) {\n\t\t\tsetTimeout(() => this.display(pos, time), 100)\n\t\t\treturn\n\t\t}\n\t\tthis.companion.style.display = ''\n\t\tconst box = this.companion.offsetParent?.getBoundingClientRect()\n\t\tif (box) {\n\t\t\tthis.companion.style.left = pos.right - box.left + 'px'\n\t\t\tthis.companion.style.top = pos.top - box.top - 2 + 'px'\n\t\t\tthis.companion.style.height = pos.bottom - pos.top + 2 + 'px'\n\t\t\tthis.companion.textContent = '+'\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.companion.remove()\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"suggestion-palette.js","sourceRoot":"","sources":["../../../tmp/components/icure-text-field/suggestion-palette.ts"],"names":[],"mappings":"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","sourcesContent":["import equal from 'fast-deep-equal'\n\nimport { EditorView } from 'prosemirror-view'\nimport { EditorState, Transaction } from 'prosemirror-state'\nimport { Schema } from 'prosemirror-model'\nimport { Suggestion } from '../../generic'\n\nexport class SuggestionPalette {\n\tprivate readonly palette: HTMLDivElement\n\tprivate delay: () => boolean = () => false\n\tprivate lastTime = 0\n\tprivate suggestionProvider: (terms: string[]) => Promise<Suggestion[]>\n\tprivate previousFingerprint?: string\n\n\tprivate suggestionStopWordsProvider: () => Set<string>\n\tprivate currentFocus?: number\n\tprivate hasFocus = false\n\tprivate suggestions: Suggestion[] = []\n\tprivate schema: Schema\n\n\tconstructor(\n\t\tschema: Schema,\n\t\tview: EditorView,\n\t\tsuggestionProvider: (terms: string[]) => Promise<Suggestion[]>,\n\t\tsuggestionStopWordsProvider: () => Set<string>,\n\t\tdelay?: () => boolean,\n\t) {\n\t\tthis.schema = schema\n\t\tthis.suggestionStopWordsProvider = suggestionStopWordsProvider\n\t\tthis.suggestionProvider = suggestionProvider\n\t\tthis.palette = document.createElement('div')\n\t\tthis.palette.className = 'suggestion-palette'\n\n\t\tview.dom?.parentNode?.appendChild(this.palette)\n\n\t\tdelay && (this.delay = delay)\n\n\t\tthis.update(view, undefined)\n\t}\n\n\tfocusItem(idx?: number): void {\n\t\tconst ul = this.palette.getElementsByTagName('ul')[0]\n\t\tif (ul) {\n\t\t\tul.classList.add('focused')\n\t\t\tconst lis = ul.getElementsByTagName('li')\n\t\t\tthis.currentFocus !== undefined && (lis[this.currentFocus] as HTMLElement).classList.remove('focused')\n\t\t\tidx !== undefined && (lis[idx] as HTMLElement).classList.add('focused')\n\n\t\t\tthis.currentFocus = idx\n\t\t}\n\t}\n\n\tfocus(): boolean {\n\t\tif (this.palette.style.display === 'none') return false\n\t\tthis.hasFocus = true\n\t\tthis.focusItem(0)\n\t\treturn true\n\t}\n\n\tfocusOrInsert(view: EditorView, transactionProvider: (from: number, to: number, sug: Suggestion) => Promise<Transaction | undefined>): boolean {\n\t\tif (this.palette.style.display === 'none') return false\n\t\treturn this.hasFocus ? this.insert(view, transactionProvider) : this.focus()\n\t}\n\n\tinsert(view: EditorView, transactionProvider: (from: number, to: number, sug: Suggestion) => Promise<Transaction | undefined>): boolean {\n\t\tif (this.palette.style.display === 'none' || !this.hasFocus || this.currentFocus === undefined) return false\n\t\tconst sug = this.suggestions[this.currentFocus]\n\t\tif (sug) {\n\t\t\tconst sel = view.state.selection\n\t\t\tconst stopWords = this.suggestionStopWordsProvider()\n\n\t\t\tlet length = sug.terms.join(' ').length - 1\n\t\t\twhile (\n\t\t\t\tsel.to - length >= 0 &&\n\t\t\t\t!equal(\n\t\t\t\t\tview.state.doc\n\t\t\t\t\t\t.textBetween(sel.to - length, sel.to)\n\t\t\t\t\t\t.split(/\\s+/)\n\t\t\t\t\t\t.filter((x) => !stopWords.has(x)),\n\t\t\t\t\tsug.terms,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tlength++\n\t\t\t}\n\t\t\tif (length > sel.to) {\n\t\t\t\tlength = sug.terms.join(' ').length\n\t\t\t\twhile (sel.to - length >= 0 && !view.state.doc.textBetween(sel.to - length, sel.to).startsWith(sug.terms[0])) {\n\t\t\t\t\tlength++\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (length <= sel.to) {\n\t\t\t\ttransactionProvider(sel.to - length, sel.to, sug).then((tr) => tr && view.dispatch(tr.scrollIntoView()))\n\t\t\t}\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tarrowUp(): boolean {\n\t\tif (!this.hasFocus) return false\n\t\tthis.currentFocus && this.focusItem(this.currentFocus - 1)\n\t\treturn true\n\t}\n\n\tarrowDown(): boolean {\n\t\tif (!this.hasFocus) return false\n\t\tthis.currentFocus !== undefined && this.currentFocus < this.palette.getElementsByTagName('ul')[0].childElementCount - 1 && this.focusItem(this.currentFocus + 1)\n\t\treturn true\n\t}\n\n\tupdate(view: EditorView, lastState?: EditorState): void {\n\t\tconst state = view.state\n\n\t\t// Hide the palette if the selection is not empty\n\t\tthis.focusItem(undefined)\n\t\tthis.hasFocus = false\n\n\t\tif (!state.selection.empty) {\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\tconst $pos = state.selection.$head\n\t\tif (lastState?.doc.textContent === state.doc.textContent) {\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\tconst text = state.doc.textBetween($pos.pos && $pos.depth ? $pos.before() + 1 : 0, $pos.pos)\n\n\t\tconst words = text.split(/\\s+/)\n\t\tconst lastWordDelta = Math.min(\n\t\t\twords\n\t\t\t\t.concat()\n\t\t\t\t.reverse()\n\t\t\t\t.reduce((d, w) => (d < 0 ? d : w.length ? -d - w.length : d + 1), 0),\n\t\t\t-1,\n\t\t)\n\t\tconsole.log('lwd', lastWordDelta)\n\t\tif ($pos.pos > 1 && state.doc.rangeHasMark($pos.pos + lastWordDelta, $pos.pos, this.schema.marks['link'])) {\n\t\t\tconsole.log('Skip suggestion')\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\tconst terms = words.filter((x) => x.length > 2 && !this.suggestionStopWordsProvider().has(x))\n\t\tconst lastTerms = terms.length > 3 ? terms.slice(length - 3) : terms\n\t\tconst fingerprint = lastTerms.join(' ')\n\n\t\tconst { to } = state.selection\n\n\t\tif (this.previousFingerprint !== fingerprint) {\n\t\t\tthis.previousFingerprint = fingerprint\n\t\t\tsetTimeout(async () => {\n\t\t\t\tif (this.previousFingerprint !== fingerprint) return\n\t\t\t\tconst res = await this.suggestionProvider(lastTerms)\n\t\t\t\tthis.suggestions = res\n\t\t\t\tif (res.length) {\n\t\t\t\t\tthis.palette.innerHTML = `<ul>${res\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(x) =>\n\t\t\t\t\t\t\t\t`<li id=\"${x.id}\" data-code=\"${x.code}\">${x.text}<div class=\"icn-container\"><svg class=\"tab-icn\" viewBox=\"0 0 24 24\"><path d=\"M12.29 8.12L15.17 11H2c-.55 0-1 .45-1 1s.45 1 1 1h13.17l-2.88 2.88c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41L13.7 6.7c-.39-.39-1.02-.39-1.41 0-.38.39-.39 1.03 0 1.42zM20 7v10c0 .55.45 1 1 1s1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1z\"/></svg><svg class=\"return-icn\" viewBox=\"0 0 24 24\"><path d=\"M19 8v3H5.83l2.88-2.88c.39-.39.39-1.02 0-1.41-.39-.39-1.02-.39-1.41 0L2.71 11.3c-.39.39-.39 1.02 0 1.41L7.3 17.3c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L5.83 13H20c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1s-1 .45-1 1z\"/></svg></div></li>`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('\\n')}</ul>`\n\t\t\t\t\t// These are in screen coordinates\n\t\t\t\t\tconst end = view.coordsAtPos(to)\n\t\t\t\t\tconst start = view.coordsAtPos(Math.max(0, to - terms[terms.length - 1].length))\n\n\t\t\t\t\tthis.display(start.left > end.left ? end : start, (this.lastTime = +new Date()))\n\t\t\t\t} else {\n\t\t\t\t\tthis.palette.style.display = 'none'\n\t\t\t\t}\n\t\t\t}, 30)\n\t\t}\n\t}\n\n\tprivate display(pos: { left: number; right: number; top: number; bottom: number }, time: number): void {\n\t\tif (time !== this.lastTime) return\n\t\tif (this.delay()) {\n\t\t\tsetTimeout(() => this.display(pos, time), 100)\n\t\t\treturn\n\t\t}\n\t\tthis.palette.style.display = ''\n\t\tconst box = this.palette.offsetParent?.getBoundingClientRect()\n\t\tconst palBox = this.palette.getBoundingClientRect()\n\t\tif (box) {\n\t\t\tthis.palette.style.left = Math.max(0, Math.min(pos.left - box.left - 12, box.width - palBox.width)) + 'px'\n\t\t\tthis.palette.style.top = pos.bottom - box.top + 4 + 'px'\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.palette.remove()\n\t}\n}\n"]}
1
+ {"version":3,"file":"suggestion-palette.js","sourceRoot":"","sources":["../../../tmp/components/icure-text-field/suggestion-palette.ts"],"names":[],"mappings":"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","sourcesContent":["import equal from 'fast-deep-equal'\n\nimport { EditorView } from 'prosemirror-view'\nimport { EditorState, Transaction } from 'prosemirror-state'\nimport { Schema } from 'prosemirror-model'\nimport { Suggestion } from '../../generic'\n\nexport class SuggestionPalette {\n\tprivate readonly palette: HTMLDivElement\n\tprivate delay: () => boolean = () => false\n\tprivate lastTime = 0\n\tprivate suggestionProvider: (terms: string[]) => Promise<Suggestion[]>\n\tprivate previousFingerprint?: string\n\n\tprivate suggestionStopWordsProvider: () => Set<string>\n\tprivate currentFocus?: number\n\tprivate hasFocus = false\n\tprivate suggestions: Suggestion[] = []\n\tprivate schema: Schema\n\n\tconstructor(\n\t\tschema: Schema,\n\t\tview: EditorView,\n\t\tsuggestionProvider: (terms: string[]) => Promise<Suggestion[]>,\n\t\tsuggestionStopWordsProvider: () => Set<string>,\n\t\tdelay?: () => boolean,\n\t) {\n\t\tthis.schema = schema\n\t\tthis.suggestionStopWordsProvider = suggestionStopWordsProvider\n\t\tthis.suggestionProvider = suggestionProvider\n\t\tthis.palette = document.createElement('div')\n\t\tthis.palette.className = 'suggestion-palette'\n\n\t\tview.dom?.parentNode?.appendChild(this.palette)\n\n\t\tdelay && (this.delay = delay)\n\n\t\tthis.update(view, undefined)\n\t}\n\n\tfocusItem(idx?: number): void {\n\t\tconst ul = this.palette.getElementsByTagName('ul')[0]\n\t\tif (ul) {\n\t\t\tul.classList.add('focused')\n\t\t\tconst lis = ul.getElementsByTagName('li')\n\t\t\tthis.currentFocus !== undefined && (lis[this.currentFocus] as HTMLElement).classList.remove('focused')\n\t\t\tidx !== undefined && (lis[idx] as HTMLElement).classList.add('focused')\n\n\t\t\tthis.currentFocus = idx\n\t\t}\n\t}\n\n\tfocus(): boolean {\n\t\tif (this.palette.style.display === 'none') return false\n\t\tthis.hasFocus = true\n\t\tthis.focusItem(0)\n\t\treturn true\n\t}\n\n\tfocusOrInsert(view: EditorView, transactionProvider: (from: number, to: number, sug: Suggestion) => Promise<Transaction | undefined>): boolean {\n\t\tif (this.palette.style.display === 'none') return false\n\t\treturn this.hasFocus ? this.insert(view, transactionProvider) : this.focus()\n\t}\n\n\tinsert(view: EditorView, transactionProvider: (from: number, to: number, sug: Suggestion) => Promise<Transaction | undefined>): boolean {\n\t\tif (this.palette.style.display === 'none' || !this.hasFocus || this.currentFocus === undefined) return false\n\t\tconst sug = this.suggestions[this.currentFocus]\n\t\tif (sug) {\n\t\t\tconst sel = view.state.selection\n\t\t\tconst stopWords = this.suggestionStopWordsProvider()\n\n\t\t\tlet length = sug.terms.join(' ').length - 1\n\t\t\twhile (\n\t\t\t\tsel.to - length >= 0 &&\n\t\t\t\t!equal(\n\t\t\t\t\tview.state.doc\n\t\t\t\t\t\t.textBetween(sel.to - length, sel.to)\n\t\t\t\t\t\t.split(/\\s+/)\n\t\t\t\t\t\t.filter((x) => !stopWords.has(x)),\n\t\t\t\t\tsug.terms,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tlength++\n\t\t\t}\n\t\t\tif (length > sel.to) {\n\t\t\t\tlength = sug.terms.join(' ').length\n\t\t\t\twhile (sel.to - length >= 0 && !view.state.doc.textBetween(sel.to - length, sel.to).startsWith(sug.terms[0])) {\n\t\t\t\t\tlength++\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (length <= sel.to) {\n\t\t\t\ttransactionProvider(sel.to - length, sel.to, sug).then((tr) => tr && view.dispatch(tr.scrollIntoView()))\n\t\t\t}\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tarrowUp(): boolean {\n\t\tif (!this.hasFocus) return false\n\t\tthis.currentFocus && this.focusItem(this.currentFocus - 1)\n\t\treturn true\n\t}\n\n\tarrowDown(): boolean {\n\t\tif (!this.hasFocus) return false\n\t\tthis.currentFocus !== undefined && this.currentFocus < this.palette.getElementsByTagName('ul')[0].childElementCount - 1 && this.focusItem(this.currentFocus + 1)\n\t\treturn true\n\t}\n\n\tupdate(view: EditorView, lastState?: EditorState): void {\n\t\tconst state = view.state\n\n\t\t// Hide the palette if the selection is not empty\n\t\tthis.focusItem(undefined)\n\t\tthis.hasFocus = false\n\n\t\tif (!state.selection.empty) {\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\tconst $pos = state.selection.$head\n\t\tif (lastState?.doc.textContent === state.doc.textContent) {\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\tconst text = state.doc.textBetween($pos.pos && $pos.depth ? $pos.before() + 1 : 0, $pos.pos)\n\n\t\tconst words = text.split(/\\s+/)\n\t\tconst lastWordDelta = Math.min(\n\t\t\twords\n\t\t\t\t.concat()\n\t\t\t\t.reverse()\n\t\t\t\t.reduce((d, w) => (d < 0 ? d : w.length ? -d - w.length : d + 1), 0),\n\t\t\t-1,\n\t\t)\n\t\tconsole.log('lwd', lastWordDelta)\n\t\tif ($pos.pos > 1 && state.doc.rangeHasMark($pos.pos + lastWordDelta, $pos.pos, this.schema.marks['link'])) {\n\t\t\tconsole.log('Skip suggestion')\n\t\t\tthis.palette.style.display = 'none'\n\t\t\treturn\n\t\t}\n\n\t\tconst terms = words.filter((x) => x.length > 2 && !this.suggestionStopWordsProvider().has(x))\n\t\tconst lastTerms = terms.length > 3 ? terms.slice(length - 3) : terms\n\t\tconst fingerprint = lastTerms.join(' ')\n\n\t\tconst { to } = state.selection\n\n\t\tif (this.previousFingerprint !== fingerprint) {\n\t\t\tthis.previousFingerprint = fingerprint\n\t\t\tsetTimeout(async () => {\n\t\t\t\tif (this.previousFingerprint !== fingerprint) return\n\t\t\t\tconst res = await this.suggestionProvider(lastTerms)\n\t\t\t\tthis.suggestions = res\n\t\t\t\tif (res.length) {\n\t\t\t\t\tthis.palette.innerHTML = `<ul>${res\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(x) =>\n\t\t\t\t\t\t\t\t`<li id=\"${x.id}\" data-code=\"${x.code}\">${x.text}<div class=\"icn-container\"><svg class=\"tab-icn\" viewBox=\"0 0 24 24\"><path d=\"M12.29 8.12L15.17 11H2c-.55 0-1 .45-1 1s.45 1 1 1h13.17l-2.88 2.88c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41L13.7 6.7c-.39-.39-1.02-.39-1.41 0-.38.39-.39 1.03 0 1.42zM20 7v10c0 .55.45 1 1 1s1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1z\"/></svg><svg class=\"return-icn\" viewBox=\"0 0 24 24\"><path d=\"M19 8v3H5.83l2.88-2.88c.39-.39.39-1.02 0-1.41-.39-.39-1.02-.39-1.41 0L2.71 11.3c-.39.39-.39 1.02 0 1.41L7.3 17.3c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L5.83 13H20c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1s-1 .45-1 1z\"/></svg></div></li>`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('\\n')}</ul>`\n\t\t\t\t\t// These are in screen coordinates\n\t\t\t\t\tconst end = view.coordsAtPos(to)\n\t\t\t\t\tconst start = view.coordsAtPos(Math.max(0, to - terms[terms.length - 1].length))\n\n\t\t\t\t\tthis.display(start.left > end.left ? end : start, (this.lastTime = +new Date()))\n\t\t\t\t} else {\n\t\t\t\t\tthis.palette.style.display = 'none'\n\t\t\t\t}\n\t\t\t}, 30)\n\t\t}\n\t}\n\n\tprivate display(pos: { left: number; right: number; top: number; bottom: number }, time: number): void {\n\t\tif (time !== this.lastTime) return\n\t\tif (this.delay()) {\n\t\t\tsetTimeout(() => this.display(pos, time), 100)\n\t\t\treturn\n\t\t}\n\t\tthis.palette.style.display = ''\n\t\tconst box = this.palette.offsetParent?.getBoundingClientRect()\n\t\tconst palBox = this.palette.getBoundingClientRect()\n\t\tif (box) {\n\t\t\tthis.palette.style.left = Math.max(0, Math.min(pos.left - box.left - 12, box.width - palBox.width)) + 'px'\n\t\t\tthis.palette.style.top = pos.bottom - box.top + 4 + 'px'\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.palette.remove()\n\t}\n}\n"]}