@icure/form 2.0.11 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/.yarn/cache/@babel-runtime-npm-7.26.9-8369ff039f-838492d8a9.zip +0 -0
  2. package/.yarn/cache/@icure-motss-app-datepicker-npm-6.0.0-rc.36-66219db2d1-5f34375d97.zip +0 -0
  3. package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.3.0-6bfa115c08-c2003e8bb6.zip +0 -0
  4. package/.yarn/cache/@lit-reactive-element-npm-1.6.3-4828441e51-79b58631c3.zip +0 -0
  5. package/.yarn/cache/@lit-reactive-element-npm-2.0.4-4836436301-368d788d9e.zip +0 -0
  6. package/.yarn/cache/@material-animation-npm-14.0.0-canary.53b3cad2f.0-06a813cdea-9b5190654c.zip +0 -0
  7. package/.yarn/cache/@material-base-npm-14.0.0-canary.53b3cad2f.0-d195c1fdc4-9f4928d115.zip +0 -0
  8. package/.yarn/cache/@material-button-npm-14.0.0-canary.53b3cad2f.0-d4b070f508-873295c56a.zip +0 -0
  9. package/.yarn/cache/@material-density-npm-14.0.0-canary.53b3cad2f.0-48c1f65059-a23f00edfe.zip +0 -0
  10. package/.yarn/cache/@material-dialog-npm-14.0.0-canary.53b3cad2f.0-96168fa294-c1a498b81a.zip +0 -0
  11. package/.yarn/cache/@material-dom-npm-14.0.0-canary.53b3cad2f.0-ac009dc871-f5817f76dd.zip +0 -0
  12. package/.yarn/cache/@material-elevation-npm-14.0.0-canary.53b3cad2f.0-3312f06793-2f8945c7b6.zip +0 -0
  13. package/.yarn/cache/@material-feature-targeting-npm-14.0.0-canary.53b3cad2f.0-a919042d50-e7a1ed68f9.zip +0 -0
  14. package/.yarn/cache/@material-floating-label-npm-14.0.0-canary.53b3cad2f.0-eb8f330f2f-5295dc481d.zip +0 -0
  15. package/.yarn/cache/@material-focus-ring-npm-14.0.0-canary.53b3cad2f.0-b22f851a2e-92273b1247.zip +0 -0
  16. package/.yarn/cache/@material-icon-button-npm-14.0.0-canary.53b3cad2f.0-e158d26048-19b51665f2.zip +0 -0
  17. package/.yarn/cache/@material-line-ripple-npm-14.0.0-canary.53b3cad2f.0-d089468db9-6518961487.zip +0 -0
  18. package/.yarn/cache/@material-list-npm-14.0.0-canary.53b3cad2f.0-df9ce05084-6c977f518d.zip +0 -0
  19. package/.yarn/cache/@material-menu-npm-14.0.0-canary.53b3cad2f.0-9489b592c8-71b6a1f4dd.zip +0 -0
  20. package/.yarn/cache/@material-menu-surface-npm-14.0.0-canary.53b3cad2f.0-52212f38f4-ad48e168ca.zip +0 -0
  21. package/.yarn/cache/@material-mwc-base-npm-0.27.0-79caf3ef2b-07af17edfc.zip +0 -0
  22. package/.yarn/cache/@material-mwc-button-npm-0.27.0-4b85f2b26f-2ef5cc0951.zip +0 -0
  23. package/.yarn/cache/@material-mwc-checkbox-npm-0.27.0-e837031d8e-ba53a6ea8c.zip +0 -0
  24. package/.yarn/cache/@material-mwc-dialog-npm-0.27.0-77c6071543-ffab528e8e.zip +0 -0
  25. package/.yarn/cache/@material-mwc-floating-label-npm-0.27.0-80e62b22c0-fbbf4f2e42.zip +0 -0
  26. package/.yarn/cache/@material-mwc-icon-button-npm-0.27.0-41f82f135b-7315c0735b.zip +0 -0
  27. package/.yarn/cache/@material-mwc-icon-npm-0.27.0-98c9e8509f-6dfa5115d5.zip +0 -0
  28. package/.yarn/cache/@material-mwc-line-ripple-npm-0.27.0-e6704221e0-6862ede0f4.zip +0 -0
  29. package/.yarn/cache/@material-mwc-list-npm-0.27.0-5344fc9de4-6c2ae4f1c6.zip +0 -0
  30. package/.yarn/cache/@material-mwc-menu-npm-0.27.0-7c2bb47797-126f733659.zip +0 -0
  31. package/.yarn/cache/@material-mwc-notched-outline-npm-0.27.0-0e0d1c4d5f-2739032f76.zip +0 -0
  32. package/.yarn/cache/@material-mwc-radio-npm-0.27.0-aa2098a280-0b0a0a6b99.zip +0 -0
  33. package/.yarn/cache/@material-mwc-ripple-npm-0.27.0-ed37672f08-9cd73fdfe4.zip +0 -0
  34. package/.yarn/cache/@material-mwc-textfield-npm-0.27.0-dabd704f55-978c893aca.zip +0 -0
  35. package/.yarn/cache/@material-notched-outline-npm-14.0.0-canary.53b3cad2f.0-ecacde98db-1a9f8db4d8.zip +0 -0
  36. package/.yarn/cache/@material-radio-npm-14.0.0-canary.53b3cad2f.0-c50de64d41-898554f2b3.zip +0 -0
  37. package/.yarn/cache/@material-ripple-npm-14.0.0-canary.53b3cad2f.0-49060bfe7e-08b71917e2.zip +0 -0
  38. package/.yarn/cache/@material-rtl-npm-14.0.0-canary.53b3cad2f.0-daca794b76-3c1b8b48c6.zip +0 -0
  39. package/.yarn/cache/@material-shape-npm-14.0.0-canary.53b3cad2f.0-5bcff722a6-6ad9b020c0.zip +0 -0
  40. package/.yarn/cache/@material-textfield-npm-14.0.0-canary.53b3cad2f.0-4414808dda-7072e3c9df.zip +0 -0
  41. package/.yarn/cache/@material-theme-npm-14.0.0-canary.53b3cad2f.0-9a24e7b046-fd44e92917.zip +0 -0
  42. package/.yarn/cache/@material-tokens-npm-14.0.0-canary.53b3cad2f.0-f1c87523da-efa909f861.zip +0 -0
  43. package/.yarn/cache/@material-touch-target-npm-14.0.0-canary.53b3cad2f.0-fa6a2d0875-dbc13cbe7a.zip +0 -0
  44. package/.yarn/cache/@material-typography-npm-14.0.0-canary.53b3cad2f.0-f4a58946f1-fa2671df40.zip +0 -0
  45. package/.yarn/cache/@types-trusted-types-npm-2.0.7-a07fc44f59-8e4202766a.zip +0 -0
  46. package/.yarn/cache/@webcomponents-webcomponentsjs-npm-2.8.0-36c07db4d2-186373c030.zip +0 -0
  47. package/.yarn/cache/argparse-npm-2.0.1-faff7999e6-83644b5649.zip +0 -0
  48. package/.yarn/cache/blocking-elements-npm-0.1.1-423f51c76e-9a34084405.zip +0 -0
  49. package/.yarn/cache/date-fns-npm-2.30.0-895c790e0f-f7be015232.zip +0 -0
  50. package/.yarn/cache/entities-npm-4.5.0-7cdb83b832-853f8ebd5b.zip +0 -0
  51. package/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip +0 -0
  52. package/.yarn/cache/linkify-it-npm-5.0.0-adb5f9c96f-b0b86cadaf.zip +0 -0
  53. package/.yarn/cache/lit-element-npm-3.3.3-2f9f9e38c0-29a596fa55.zip +0 -0
  54. package/.yarn/cache/lit-element-npm-4.1.1-bb20932b82-74d0f2d6fb.zip +0 -0
  55. package/.yarn/cache/lit-html-npm-2.8.0-82f88d6ebf-2d70df0724.zip +0 -0
  56. package/.yarn/cache/lit-html-npm-3.2.1-1662fc597d-1bacd9f8b2.zip +0 -0
  57. package/.yarn/cache/lit-npm-2.8.0-92bb1333a4-2480e733f7.zip +0 -0
  58. package/.yarn/cache/lit-npm-3.2.1-27cb5b7782-ee22bbc53d.zip +0 -0
  59. package/.yarn/cache/markdown-it-npm-14.1.0-e337d75bfe-07296b45eb.zip +0 -0
  60. package/.yarn/cache/mdurl-npm-2.0.0-3259713daf-880bc289ef.zip +0 -0
  61. package/.yarn/cache/orderedmap-npm-2.1.1-64b8a0684f-082cf970b0.zip +0 -0
  62. package/.yarn/cache/prosemirror-commands-npm-1.5.2-27f8f3fee9-ff65063a8c.zip +0 -0
  63. package/.yarn/cache/prosemirror-history-npm-1.3.2-cc128c8ee6-b85fe6378a.zip +0 -0
  64. package/.yarn/cache/prosemirror-keymap-npm-1.2.2-efb8276b00-85fe4fc303.zip +0 -0
  65. package/.yarn/cache/prosemirror-markdown-npm-1.12.0-28e990f443-d7607ee1a6.zip +0 -0
  66. package/.yarn/cache/prosemirror-model-npm-1.19.4-4fd32211c8-12c277ed30.zip +0 -0
  67. package/.yarn/cache/prosemirror-model-npm-1.24.1-6467e55b40-386076e2ff.zip +0 -0
  68. package/.yarn/cache/prosemirror-schema-basic-npm-1.2.2-def7bf2ec7-1f93f8678c.zip +0 -0
  69. package/.yarn/cache/prosemirror-schema-list-npm-1.3.0-23c1830a7e-03654e37c8.zip +0 -0
  70. package/.yarn/cache/prosemirror-state-npm-1.4.3-d6540e44ad-28857d935c.zip +0 -0
  71. package/.yarn/cache/prosemirror-transform-npm-1.10.2-1c2da9123e-93b0c03aff.zip +0 -0
  72. package/.yarn/cache/prosemirror-transform-npm-1.8.0-ea3ca0411f-6d16ca4f95.zip +0 -0
  73. package/.yarn/cache/prosemirror-view-npm-1.32.7-63c3e4b182-40c9038a52.zip +0 -0
  74. package/.yarn/cache/prosemirror-view-npm-1.38.0-9061dc9cf4-0d0f17c1b2.zip +0 -0
  75. package/.yarn/cache/punycode.js-npm-2.3.1-9084ecbbf5-13466d7ed5.zip +0 -0
  76. package/.yarn/cache/regenerator-runtime-npm-0.14.1-a6c97c609a-9f57c93277.zip +0 -0
  77. package/.yarn/cache/rope-sequence-npm-1.3.4-3b09587e5f-95cca2f99a.zip +0 -0
  78. package/.yarn/cache/tslib-npm-2.8.1-66590b21b8-e4aba30e63.zip +0 -0
  79. package/.yarn/cache/uc.micro-npm-2.1.0-c45282c865-3719735824.zip +0 -0
  80. package/.yarn/cache/uuid-npm-9.0.1-39a8442bc6-39931f6da7.zip +0 -0
  81. package/.yarn/cache/w3c-keyname-npm-2.2.8-66d7d5317a-95bafa4c04.zip +0 -0
  82. package/.yarn/cache/wicg-inert-npm-3.1.3-38590e83f2-45b3cfec63.zip +0 -0
  83. package/.yarn/install-state.gz +0 -0
  84. package/components/common/field-with-options.js +9 -5
  85. package/components/common/field-with-options.js.map +1 -1
  86. package/components/common/field.js +25 -21
  87. package/components/common/field.js.map +1 -1
  88. package/components/common/index.js +17 -1
  89. package/components/common/index.js.map +1 -1
  90. package/components/common/metadata-buttons-bar.d.ts +1 -1
  91. package/components/common/metadata-buttons-bar.js +58 -65
  92. package/components/common/metadata-buttons-bar.js.map +1 -1
  93. package/components/common/styles/paths.js +13 -10
  94. package/components/common/styles/paths.js.map +1 -1
  95. package/components/common/utils.js +21 -11
  96. package/components/common/utils.js.map +1 -1
  97. package/components/icure-button/index.js +19 -15
  98. package/components/icure-button/index.js.map +1 -1
  99. package/components/icure-button-group/index.js +26 -22
  100. package/components/icure-button-group/index.js.map +1 -1
  101. package/components/icure-date-picker/index.d.ts +2 -2
  102. package/components/icure-date-picker/index.js +31 -27
  103. package/components/icure-date-picker/index.js.map +1 -1
  104. package/components/icure-dropdown-field/index.js +25 -21
  105. package/components/icure-dropdown-field/index.js.map +1 -1
  106. package/components/icure-form/fields/button/button.js +17 -13
  107. package/components/icure-form/fields/button/button.js.map +1 -1
  108. package/components/icure-form/fields/button/index.js +17 -1
  109. package/components/icure-form/fields/button/index.js.map +1 -1
  110. package/components/icure-form/fields/button-group/checkbox.js +14 -10
  111. package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
  112. package/components/icure-form/fields/button-group/index.js +18 -2
  113. package/components/icure-form/fields/button-group/index.js.map +1 -1
  114. package/components/icure-form/fields/button-group/radio-button.js +14 -10
  115. package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
  116. package/components/icure-form/fields/date-picker/date-picker.js +12 -8
  117. package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
  118. package/components/icure-form/fields/date-picker/date-time-picker.js +12 -8
  119. package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
  120. package/components/icure-form/fields/date-picker/index.js +19 -3
  121. package/components/icure-form/fields/date-picker/index.js.map +1 -1
  122. package/components/icure-form/fields/date-picker/time-picker.js +12 -8
  123. package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
  124. package/components/icure-form/fields/dropdown/dropdown-field.js +14 -10
  125. package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
  126. package/components/icure-form/fields/dropdown/index.js +17 -1
  127. package/components/icure-form/fields/dropdown/index.js.map +1 -1
  128. package/components/icure-form/fields/index.js +26 -10
  129. package/components/icure-form/fields/index.js.map +1 -1
  130. package/components/icure-form/fields/items-list-field/index.js +17 -1
  131. package/components/icure-form/fields/items-list-field/index.js.map +1 -1
  132. package/components/icure-form/fields/items-list-field/items-list-field.js +11 -7
  133. package/components/icure-form/fields/items-list-field/items-list-field.js.map +1 -1
  134. package/components/icure-form/fields/label/index.js +17 -1
  135. package/components/icure-form/fields/label/index.js.map +1 -1
  136. package/components/icure-form/fields/label/label.js +15 -11
  137. package/components/icure-form/fields/label/label.js.map +1 -1
  138. package/components/icure-form/fields/measure-field/index.js +17 -1
  139. package/components/icure-form/fields/measure-field/index.js.map +1 -1
  140. package/components/icure-form/fields/measure-field/measure-field.js +12 -8
  141. package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
  142. package/components/icure-form/fields/number-field/index.js +17 -1
  143. package/components/icure-form/fields/number-field/index.js.map +1 -1
  144. package/components/icure-form/fields/number-field/number-field.js +12 -8
  145. package/components/icure-form/fields/number-field/number-field.js.map +1 -1
  146. package/components/icure-form/fields/text-field/index.js +17 -1
  147. package/components/icure-form/fields/text-field/index.js.map +1 -1
  148. package/components/icure-form/fields/text-field/text-field.js +24 -20
  149. package/components/icure-form/fields/text-field/text-field.js.map +1 -1
  150. package/components/icure-form/fields/token-field/index.js +17 -1
  151. package/components/icure-form/fields/token-field/index.js.map +1 -1
  152. package/components/icure-form/fields/token-field/token-field.js +12 -8
  153. package/components/icure-form/fields/token-field/token-field.js.map +1 -1
  154. package/components/icure-form/fields/utils/index.js +13 -5
  155. package/components/icure-form/fields/utils/index.js.map +1 -1
  156. package/components/icure-form/index.js +32 -28
  157. package/components/icure-form/index.js.map +1 -1
  158. package/components/icure-form/renderer/form/form-selection-button.js +19 -15
  159. package/components/icure-form/renderer/form/form-selection-button.js.map +1 -1
  160. package/components/icure-form/renderer/form/form.js +127 -123
  161. package/components/icure-form/renderer/form/form.js.map +1 -1
  162. package/components/icure-form/renderer/index.js +2 -1
  163. package/components/icure-label/index.js +17 -13
  164. package/components/icure-label/index.js.map +1 -1
  165. package/components/icure-text-field/index.js +106 -98
  166. package/components/icure-text-field/index.js.map +1 -1
  167. package/components/icure-text-field/plugin/caret-fix-plugin.js +7 -3
  168. package/components/icure-text-field/plugin/caret-fix-plugin.js.map +1 -1
  169. package/components/icure-text-field/plugin/has-content-class-plugin.js +7 -3
  170. package/components/icure-text-field/plugin/has-content-class-plugin.js.map +1 -1
  171. package/components/icure-text-field/plugin/mask-plugin.js +11 -7
  172. package/components/icure-text-field/plugin/mask-plugin.js.map +1 -1
  173. package/components/icure-text-field/plugin/regexp-plugin.js +9 -5
  174. package/components/icure-text-field/plugin/regexp-plugin.js.map +1 -1
  175. package/components/icure-text-field/prosemirror-commands.js +15 -10
  176. package/components/icure-text-field/prosemirror-commands.js.map +1 -1
  177. package/components/icure-text-field/prosemirror-utils.js +5 -1
  178. package/components/icure-text-field/prosemirror-utils.js.map +1 -1
  179. package/components/icure-text-field/schema/common-marks.js +7 -3
  180. package/components/icure-text-field/schema/common-marks.js.map +1 -1
  181. package/components/icure-text-field/schema/date-time-schema.js +9 -3
  182. package/components/icure-text-field/schema/date-time-schema.js.map +1 -1
  183. package/components/icure-text-field/schema/decimal-schema.js +5 -1
  184. package/components/icure-text-field/schema/decimal-schema.js.map +1 -1
  185. package/components/icure-text-field/schema/index.js +21 -17
  186. package/components/icure-text-field/schema/index.js.map +1 -1
  187. package/components/icure-text-field/schema/items-list-schema.js +7 -3
  188. package/components/icure-text-field/schema/items-list-schema.js.map +1 -1
  189. package/components/icure-text-field/schema/markdown-schema.js +9 -5
  190. package/components/icure-text-field/schema/markdown-schema.js.map +1 -1
  191. package/components/icure-text-field/schema/measure-schema.js +12 -6
  192. package/components/icure-text-field/schema/measure-schema.js.map +1 -1
  193. package/components/icure-text-field/schema/token-schema.js +9 -5
  194. package/components/icure-text-field/schema/token-schema.js.map +1 -1
  195. package/components/icure-text-field/schema/utils.js +7 -2
  196. package/components/icure-text-field/schema/utils.js.map +1 -1
  197. package/components/icure-text-field/selection-companion.js +5 -1
  198. package/components/icure-text-field/selection-companion.js.map +1 -1
  199. package/components/icure-text-field/suggestion-palette.js +10 -3
  200. package/components/icure-text-field/suggestion-palette.js.map +1 -1
  201. package/components/index.js +21 -5
  202. package/components/index.js.map +1 -1
  203. package/components/model/index.js +46 -22
  204. package/components/model/index.js.map +1 -1
  205. package/components/themes/default/index.js +32 -30
  206. package/components/themes/default/index.js.map +1 -1
  207. package/components/themes/icure-blue/index.js +47 -45
  208. package/components/themes/icure-blue/index.js.map +1 -1
  209. package/components/themes/kendo/index.js +47 -45
  210. package/components/themes/kendo/index.js.map +1 -1
  211. package/conversion/ckmeans-grouping.js +10 -3
  212. package/conversion/ckmeans-grouping.js.map +1 -1
  213. package/conversion/ckmeans.js +3 -1
  214. package/conversion/ckmeans.js.map +1 -1
  215. package/generic/index.js +17 -1
  216. package/generic/index.js.map +1 -1
  217. package/generic/model.js +2 -1
  218. package/icure/form-values-container.d.ts +14 -14
  219. package/icure/form-values-container.js +45 -37
  220. package/icure/form-values-container.js.map +1 -1
  221. package/icure/icure-utils.d.ts +7 -7
  222. package/icure/icure-utils.js +28 -16
  223. package/icure/icure-utils.js.map +1 -1
  224. package/icure/index.js +18 -2
  225. package/icure/index.js.map +1 -1
  226. package/icure/model.d.ts +1 -1
  227. package/icure/model.js +2 -1
  228. package/icure/model.js.map +1 -1
  229. package/index.js +17 -1
  230. package/index.js.map +1 -1
  231. package/package.json +3 -2
  232. package/utils/code-utils.d.ts +10 -1
  233. package/utils/code-utils.js +59 -11
  234. package/utils/code-utils.js.map +1 -1
  235. package/utils/dates.js +21 -9
  236. package/utils/dates.js.map +1 -1
  237. package/utils/fields-values-provider.js +17 -8
  238. package/utils/fields-values-provider.js.map +1 -1
  239. package/utils/form-value-container.js +7 -3
  240. package/utils/form-value-container.js.map +1 -1
  241. package/utils/interpreter.js +5 -1
  242. package/utils/interpreter.js.map +1 -1
  243. package/utils/languages.js +8 -3
  244. package/utils/languages.js.map +1 -1
  245. package/utils/markdown.js +11 -6
  246. package/utils/markdown.js.map +1 -1
  247. package/utils/no-lodash.js +9 -3
  248. package/utils/no-lodash.js.map +1 -1
  249. package/utils/primitive.js +12 -7
  250. package/utils/primitive.js.map +1 -1
  251. package/conversion/icure-convert.d.ts +0 -3
  252. package/conversion/icure-convert.js +0 -161
  253. package/conversion/icure-convert.js.map +0 -1
@@ -1,5 +1,8 @@
1
- import { TextSelection } from 'prosemirror-state';
2
- export function getMeasureSpec() {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.measureOnFocusHandler = exports.measureTransactionMapper = exports.getMeasureSpec = void 0;
4
+ const prosemirror_state_1 = require("prosemirror-state");
5
+ function getMeasureSpec() {
3
6
  return {
4
7
  topNode: 'paragraph',
5
8
  nodes: {
@@ -31,7 +34,8 @@ export function getMeasureSpec() {
31
34
  marks: {},
32
35
  };
33
36
  }
34
- export const measureTransactionMapper = (tr) => {
37
+ exports.getMeasureSpec = getMeasureSpec;
38
+ const measureTransactionMapper = (tr) => {
35
39
  var _a, _b, _c, _d, _e, _f, _g;
36
40
  const decimal = tr.doc.childCount && tr.doc.child(0).type.name === 'decimal' ? tr.doc.child(0) : null;
37
41
  const decimalText = (_a = decimal === null || decimal === void 0 ? void 0 : decimal.textContent) !== null && _a !== void 0 ? _a : '';
@@ -58,9 +62,10 @@ export const measureTransactionMapper = (tr) => {
58
62
  const newFrom = patchedTr.steps.slice(tr.steps.length).reduce((acc, step) => step.getMap().map(acc), from) +
59
63
  ((newUnitText === null || newUnitText === void 0 ? void 0 : newUnitText.charAt(0)) !== (unitText === null || unitText === void 0 ? void 0 : unitText.charAt(0)) && ((_b = newUnitText === null || newUnitText === void 0 ? void 0 : newUnitText.length) !== null && _b !== void 0 ? _b : 0) > ((_c = unitText === null || unitText === void 0 ? void 0 : unitText.length) !== null && _c !== void 0 ? _c : 0) ? 2 : 0) +
60
64
  (((_d = newDecimalText === null || newDecimalText === void 0 ? void 0 : newDecimalText.length) !== null && _d !== void 0 ? _d : 0) > ((_e = decimalText === null || decimalText === void 0 ? void 0 : decimalText.length) !== null && _e !== void 0 ? _e : 0) && ((_f = newUnitText === null || newUnitText === void 0 ? void 0 : newUnitText.length) !== null && _f !== void 0 ? _f : 0) < ((_g = unitText === null || unitText === void 0 ? void 0 : unitText.length) !== null && _g !== void 0 ? _g : 0) ? -2 : 0);
61
- return patchedTr.setSelection(TextSelection.create(patchedTr.doc, Math.min(newFrom, tr.doc.content.size - 1)));
65
+ return patchedTr.setSelection(prosemirror_state_1.TextSelection.create(patchedTr.doc, Math.min(newFrom, tr.doc.content.size - 1)));
62
66
  };
63
- export const measureOnFocusHandler = (view) => {
67
+ exports.measureTransactionMapper = measureTransactionMapper;
68
+ const measureOnFocusHandler = (view) => {
64
69
  var _a;
65
70
  const doc = view.state.tr.doc;
66
71
  const decimal = doc.childCount && doc.child(0).type.name === 'decimal' ? doc.child(0) : null;
@@ -69,7 +74,8 @@ export const measureOnFocusHandler = (view) => {
69
74
  const unitText = unit === null || unit === void 0 ? void 0 : unit.textContent;
70
75
  if ((unitText === null || unitText === void 0 ? void 0 : unitText.length) && !(decimalText === null || decimalText === void 0 ? void 0 : decimalText.length)) {
71
76
  console.log('Setting selection to 1');
72
- view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, 1)));
77
+ view.dispatch(view.state.tr.setSelection(prosemirror_state_1.TextSelection.create(view.state.tr.doc, 1)));
73
78
  }
74
79
  };
80
+ exports.measureOnFocusHandler = measureOnFocusHandler;
75
81
  //# sourceMappingURL=measure-schema.js.map
@@ -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,6 +1,9 @@
1
- import { reduceMarks, reduceNodes } from './utils';
2
- import { getMarks } from './common-marks';
3
- export function getTokensSpec(type, contentProvider, colorProvider) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTokensSpec = void 0;
4
+ const utils_1 = require("./utils");
5
+ const common_marks_1 = require("./common-marks");
6
+ function getTokensSpec(type, contentProvider, colorProvider) {
4
7
  const marksSelector = (key) => {
5
8
  // noinspection RedundantConditionalExpressionJS
6
9
  return key !== 'link' && ['styled-tokens-list', 'styled-tokens-list-with-codes'].includes(type)
@@ -10,7 +13,7 @@ export function getTokensSpec(type, contentProvider, colorProvider) {
10
13
  : false;
11
14
  };
12
15
  return {
13
- nodes: reduceNodes({
16
+ nodes: (0, utils_1.reduceNodes)({
14
17
  doc: {
15
18
  content: 'token*',
16
19
  },
@@ -27,7 +30,8 @@ export function getTokensSpec(type, contentProvider, colorProvider) {
27
30
  group: 'inline',
28
31
  },
29
32
  }),
30
- marks: reduceMarks(getMarks(contentProvider, colorProvider), marksSelector),
33
+ marks: (0, utils_1.reduceMarks)((0, common_marks_1.getMarks)(contentProvider, colorProvider), marksSelector),
31
34
  };
32
35
  }
36
+ exports.getTokensSpec = getTokensSpec;
33
37
  //# sourceMappingURL=token-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-schema.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/token-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,MAAM,UAAU,aAAa,CAC5B,IAAkB,EAClB,eAAoE,EACpE,aAAsE;IAEtE,MAAM,aAAa,GAA6C,CAAC,GAAW,EAAE,EAAE;QAC/E,gDAAgD;QAChD,OAAO,GAAG,KAAK,MAAM,IAAI,CAAC,oBAAoB,EAAE,+BAA+B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9F,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;gBACxE,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK,CAAA;IACT,CAAC,CAAA;IACD,OAAO;QACN,KAAK,EAAE,WAAW,CAAC;YAClB,GAAG,EAAE;gBACJ,OAAO,EAAE,QAAQ;aACjB;YAED,KAAK,EAAE;gBACN,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;gBACrC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI;oBACT,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,oCAAoC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;gBAClH,CAAC;aACD;YAED,IAAI,EAAE;gBACL,KAAK,EAAE,QAAQ;aACf;SACD,CAAC;QACF,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC;KAC3E,CAAA;AACF,CAAC","sourcesContent":["import { MarkSpec, SchemaSpec } from 'prosemirror-model'\nimport { reduceMarks, reduceNodes } from './utils'\nimport { getMarks } from './common-marks'\n\nexport type TokensSchema = 'tokens-list' | 'styled-tokens-list' | 'tokens-list-with-codes' | 'styled-tokens-list-with-codes'\n\nexport function getTokensSpec(\n\ttype: TokensSchema,\n\tcontentProvider: (codes: { type: string; code: string }[]) => string,\n\tcolorProvider: (type: string, code: string, isCode: boolean) => string,\n): SchemaSpec {\n\tconst marksSelector: (key: string, spec: MarkSpec) => boolean = (key: string) => {\n\t\t// noinspection RedundantConditionalExpressionJS\n\t\treturn key !== 'link' && ['styled-tokens-list', 'styled-tokens-list-with-codes'].includes(type)\n\t\t\t? true\n\t\t\t: key === 'link' && ['tokens-list-with-codes', 'styled-text-with-codes']\n\t\t\t? true\n\t\t\t: false\n\t}\n\treturn {\n\t\tnodes: reduceNodes({\n\t\t\tdoc: {\n\t\t\t\tcontent: 'token*',\n\t\t\t},\n\n\t\t\ttoken: {\n\t\t\t\tcontent: 'inline*',\n\t\t\t\tgroup: 'block',\n\t\t\t\tattrs: { id: { default: undefined } },\n\t\t\t\tparseDOM: [{ tag: 'li' }],\n\t\t\t\ttoDOM(node) {\n\t\t\t\t\treturn ['li', {}, ['span', { class: 'token' }, 0], ['icure-metadata-buttons-bar-wrapper', { id: node.attrs.id }]]\n\t\t\t\t},\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: reduceMarks(getMarks(contentProvider, colorProvider), marksSelector),\n\t}\n}\n"]}
1
+ {"version":3,"file":"token-schema.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/token-schema.ts"],"names":[],"mappings":";;;AACA,mCAAkD;AAClD,iDAAyC;AAIzC,SAAgB,aAAa,CAC5B,IAAkB,EAClB,eAAoE,EACpE,aAAsE;IAEtE,MAAM,aAAa,GAA6C,CAAC,GAAW,EAAE,EAAE;QAC/E,gDAAgD;QAChD,OAAO,GAAG,KAAK,MAAM,IAAI,CAAC,oBAAoB,EAAE,+BAA+B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9F,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;gBACxE,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK,CAAA;IACT,CAAC,CAAA;IACD,OAAO;QACN,KAAK,EAAE,IAAA,mBAAW,EAAC;YAClB,GAAG,EAAE;gBACJ,OAAO,EAAE,QAAQ;aACjB;YAED,KAAK,EAAE;gBACN,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;gBACrC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI;oBACT,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,oCAAoC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;gBAClH,CAAC;aACD;YAED,IAAI,EAAE;gBACL,KAAK,EAAE,QAAQ;aACf;SACD,CAAC;QACF,KAAK,EAAE,IAAA,mBAAW,EAAC,IAAA,uBAAQ,EAAC,eAAe,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC;KAC3E,CAAA;AACF,CAAC;AAnCD,sCAmCC","sourcesContent":["import { MarkSpec, SchemaSpec } from 'prosemirror-model'\nimport { reduceMarks, reduceNodes } from './utils'\nimport { getMarks } from './common-marks'\n\nexport type TokensSchema = 'tokens-list' | 'styled-tokens-list' | 'tokens-list-with-codes' | 'styled-tokens-list-with-codes'\n\nexport function getTokensSpec(\n\ttype: TokensSchema,\n\tcontentProvider: (codes: { type: string; code: string }[]) => string,\n\tcolorProvider: (type: string, code: string, isCode: boolean) => string,\n): SchemaSpec {\n\tconst marksSelector: (key: string, spec: MarkSpec) => boolean = (key: string) => {\n\t\t// noinspection RedundantConditionalExpressionJS\n\t\treturn key !== 'link' && ['styled-tokens-list', 'styled-tokens-list-with-codes'].includes(type)\n\t\t\t? true\n\t\t\t: key === 'link' && ['tokens-list-with-codes', 'styled-text-with-codes']\n\t\t\t? true\n\t\t\t: false\n\t}\n\treturn {\n\t\tnodes: reduceNodes({\n\t\t\tdoc: {\n\t\t\t\tcontent: 'token*',\n\t\t\t},\n\n\t\t\ttoken: {\n\t\t\t\tcontent: 'inline*',\n\t\t\t\tgroup: 'block',\n\t\t\t\tattrs: { id: { default: undefined } },\n\t\t\t\tparseDOM: [{ tag: 'li' }],\n\t\t\t\ttoDOM(node) {\n\t\t\t\t\treturn ['li', {}, ['span', { class: 'token' }, 0], ['icure-metadata-buttons-bar-wrapper', { id: node.attrs.id }]]\n\t\t\t\t},\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: reduceMarks(getMarks(contentProvider, colorProvider), marksSelector),\n\t}\n}\n"]}
@@ -1,7 +1,12 @@
1
- export function reduceNodes(nodes, selector = () => true) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reduceMarks = exports.reduceNodes = void 0;
4
+ function reduceNodes(nodes, selector = () => true) {
2
5
  return Object.keys(nodes).reduce((r, k) => (selector(k, nodes[k]) ? Object.assign(r, { [k]: nodes[k] }) : r), {});
3
6
  }
4
- export function reduceMarks(marks, selector = () => true) {
7
+ exports.reduceNodes = reduceNodes;
8
+ function reduceMarks(marks, selector = () => true) {
5
9
  return Object.keys(marks).reduce((r, k) => (selector(k, marks[k]) ? Object.assign(r, { [k]: marks[k] }) : r), {});
6
10
  }
11
+ exports.reduceMarks = reduceMarks;
7
12
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAkC,EAAE,WAAqD,GAAG,EAAE,CAAC,IAAI;IAC9H,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAiC,CAAC,CAAA;AACjJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAkC,EAAE,WAAqD,GAAG,EAAE,CAAC,IAAI;IAC9H,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAiC,CAAC,CAAA;AACjJ,CAAC","sourcesContent":["import { MarkSpec, NodeSpec } from 'prosemirror-model'\n\nexport function reduceNodes(nodes: { [key: string]: NodeSpec }, selector: (key: string, spec: NodeSpec) => boolean = () => true): { [key: string]: NodeSpec } {\n\treturn Object.keys(nodes).reduce((r, k) => (selector(k, nodes[k]) ? Object.assign(r, { [k]: nodes[k] }) : r), {} as { [key: string]: NodeSpec })\n}\n\nexport function reduceMarks(marks: { [key: string]: MarkSpec }, selector: (key: string, spec: MarkSpec) => boolean = () => true): { [key: string]: MarkSpec } {\n\treturn Object.keys(marks).reduce((r, k) => (selector(k, marks[k]) ? Object.assign(r, { [k]: marks[k] }) : r), {} as { [key: string]: MarkSpec })\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../tmp/components/icure-text-field/schema/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CAAC,KAAkC,EAAE,WAAqD,GAAG,EAAE,CAAC,IAAI;IAC9H,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAiC,CAAC,CAAA;AACjJ,CAAC;AAFD,kCAEC;AAED,SAAgB,WAAW,CAAC,KAAkC,EAAE,WAAqD,GAAG,EAAE,CAAC,IAAI;IAC9H,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAiC,CAAC,CAAA;AACjJ,CAAC;AAFD,kCAEC","sourcesContent":["import { MarkSpec, NodeSpec } from 'prosemirror-model'\n\nexport function reduceNodes(nodes: { [key: string]: NodeSpec }, selector: (key: string, spec: NodeSpec) => boolean = () => true): { [key: string]: NodeSpec } {\n\treturn Object.keys(nodes).reduce((r, k) => (selector(k, nodes[k]) ? Object.assign(r, { [k]: nodes[k] }) : r), {} as { [key: string]: NodeSpec })\n}\n\nexport function reduceMarks(marks: { [key: string]: MarkSpec }, selector: (key: string, spec: MarkSpec) => boolean = () => true): { [key: string]: MarkSpec } {\n\treturn Object.keys(marks).reduce((r, k) => (selector(k, marks[k]) ? Object.assign(r, { [k]: marks[k] }) : r), {} as { [key: string]: MarkSpec })\n}\n"]}
@@ -1,4 +1,7 @@
1
- export class SelectionCompanion {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectionCompanion = void 0;
4
+ class SelectionCompanion {
2
5
  constructor(view, delay) {
3
6
  var _a, _b;
4
7
  this.delay = () => false;
@@ -47,4 +50,5 @@ export class SelectionCompanion {
47
50
  this.companion.remove();
48
51
  }
49
52
  }
53
+ exports.SelectionCompanion = SelectionCompanion;
50
54
  //# sourceMappingURL=selection-companion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selection-companion.js","sourceRoot":"","sources":["../../../tmp/components/icure-text-field/selection-companion.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,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","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,3 +1,4 @@
1
+ "use strict";
1
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -7,8 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
- import equal from 'fast-deep-equal';
11
- export class SuggestionPalette {
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SuggestionPalette = void 0;
16
+ const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
17
+ class SuggestionPalette {
12
18
  constructor(schema, view, suggestionProvider, suggestionStopWordsProvider, delay) {
13
19
  var _a, _b;
14
20
  this.delay = () => false;
@@ -55,7 +61,7 @@ export class SuggestionPalette {
55
61
  const stopWords = this.suggestionStopWordsProvider();
56
62
  let length = sug.terms.join(' ').length - 1;
57
63
  while (sel.to - length >= 0 &&
58
- !equal(view.state.doc
64
+ !(0, fast_deep_equal_1.default)(view.state.doc
59
65
  .textBetween(sel.to - length, sel.to)
60
66
  .split(/\s+/)
61
67
  .filter((x) => !stopWords.has(x)), sug.terms)) {
@@ -159,4 +165,5 @@ export class SuggestionPalette {
159
165
  this.palette.remove();
160
166
  }
161
167
  }
168
+ exports.SuggestionPalette = SuggestionPalette;
162
169
  //# sourceMappingURL=suggestion-palette.js.map
@@ -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":";;;;;;;;;;;;;;;AAAA,sEAAmC;AAOnC,MAAa,iBAAiB;IAa7B,YACC,MAAc,EACd,IAAgB,EAChB,kBAA8D,EAC9D,2BAA8C,EAC9C,KAAqB;;QAhBd,UAAK,GAAkB,GAAG,EAAE,CAAC,KAAK,CAAA;QAClC,aAAQ,GAAG,CAAC,CAAA;QAMZ,aAAQ,GAAG,KAAK,CAAA;QAChB,gBAAW,GAAiB,EAAE,CAAA;QAUrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAA;QAC9D,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,oBAAoB,CAAA;QAE7C,MAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,UAAU,0CAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/C,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,SAAS,CAAC,GAAY;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,EAAE,EAAE,CAAC;YACR,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACtG,GAAG,KAAK,SAAS,IAAK,GAAG,CAAC,GAAG,CAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAEvE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QACxB,CAAC;IACF,CAAC;IAED,KAAK;QACJ,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO,KAAK,CAAA;QACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,aAAa,CAAC,IAAgB,EAAE,mBAAoG;QACnI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO,KAAK,CAAA;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAC7E,CAAC;IAED,MAAM,CAAC,IAAgB,EAAE,mBAAoG;QAC5H,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QAC5G,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC/C,IAAI,GAAG,EAAE,CAAC;YACT,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAA;YAEpD,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;YAC3C,OACC,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC;gBACpB,CAAC,IAAA,yBAAK,EACL,IAAI,CAAC,KAAK,CAAC,GAAG;qBACZ,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;qBACpC,KAAK,CAAC,KAAK,CAAC;qBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAClC,GAAG,CAAC,KAAK,CACT,EACA,CAAC;gBACF,MAAM,EAAE,CAAA;YACT,CAAC;YACD,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;gBACnC,OAAO,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9G,MAAM,EAAE,CAAA;gBACT,CAAC;YACF,CAAC;YACD,IAAI,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACtB,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;YACzG,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YACnC,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,OAAO;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAChC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS;QACR,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAChC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;QAChK,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,IAAgB,EAAE,SAAuB;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,iDAAiD;QACjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QAErB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YACnC,OAAM;QACP,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAA;QAClC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,WAAW,MAAK,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YACnC,OAAM;QACP,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAE5F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC7B,KAAK;aACH,MAAM,EAAE;aACR,OAAO,EAAE;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACrE,CAAC,CAAC,CACF,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACjC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC3G,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YACnC,OAAM;QACP,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7F,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACpE,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEvC,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;QAE9B,IAAI,IAAI,CAAC,mBAAmB,KAAK,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAA;YACtC,UAAU,CAAC,GAAS,EAAE;gBACrB,IAAI,IAAI,CAAC,mBAAmB,KAAK,WAAW;oBAAE,OAAM;gBACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;gBACpD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;gBACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG;yBACjC,GAAG,CACH,CAAC,CAAC,EAAE,EAAE,CACL,WAAW,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,goBAAgoB,CACjrB;yBACA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;oBACnB,kCAAkC;oBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;oBAEhF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;gBACjF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;gBACpC,CAAC;YACF,CAAC,CAAA,EAAE,EAAE,CAAC,CAAA;QACP,CAAC;IACF,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,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QAC/B,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,YAAY,0CAAE,qBAAqB,EAAE,CAAA;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAA;QACnD,IAAI,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;YAC1G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAA;QACzD,CAAC;IACF,CAAC;IAED,OAAO;QACN,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;CACD;AA5LD,8CA4LC","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,6 +1,22 @@
1
- export * from './common';
2
- export * from './icure-form';
3
- export * from './icure-date-picker';
4
- export * from './icure-button-group';
5
- export * from './icure-label';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./common"), exports);
18
+ __exportStar(require("./icure-form"), exports);
19
+ __exportStar(require("./icure-date-picker"), exports);
20
+ __exportStar(require("./icure-button-group"), exports);
21
+ __exportStar(require("./icure-label"), exports);
6
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tmp/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA","sourcesContent":["export * from './common'\nexport * from './icure-form'\nexport * from './icure-date-picker'\nexport * from './icure-button-group'\nexport * from './icure-label'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tmp/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,+CAA4B;AAC5B,sDAAmC;AACnC,uDAAoC;AACpC,gDAA6B","sourcesContent":["export * from './common'\nexport * from './icure-form'\nexport * from './icure-date-picker'\nexport * from './icure-button-group'\nexport * from './icure-label'\n"]}
@@ -1,4 +1,7 @@
1
- export const pteq = (a, b) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Form = exports.TranslationTable = exports.Codification = exports.Section = exports.Subform = exports.Group = exports.Button = exports.Label = exports.CheckBox = exports.RadioButton = exports.DropdownField = exports.DateTimePicker = exports.TimePicker = exports.DatePicker = exports.ItemsListField = exports.TokenField = exports.NumberField = exports.MeasureField = exports.TextField = exports.Field = exports.pteq = void 0;
4
+ const pteq = (a, b) => {
2
5
  if (a === b) {
3
6
  return true;
4
7
  }
@@ -12,11 +15,12 @@ export const pteq = (a, b) => {
12
15
  return true;
13
16
  }
14
17
  if (a.type === 'compound' && b.type === 'compound') {
15
- return Object.keys(a.value).every((k) => pteq(a.value[k], b.value[k]));
18
+ return Object.keys(a.value).every((k) => (0, exports.pteq)(a.value[k], b.value[k]));
16
19
  }
17
20
  return false;
18
21
  };
19
- export class Field {
22
+ exports.pteq = pteq;
23
+ class Field {
20
24
  label() {
21
25
  return this.field;
22
26
  }
@@ -91,7 +95,8 @@ export class Field {
91
95
  };
92
96
  }
93
97
  }
94
- export class TextField extends Field {
98
+ exports.Field = Field;
99
+ class TextField extends Field {
95
100
  constructor(label, { shortLabel, grows, span, rowSpan, schema, tags, codifications, readonly, options, labels, value, unit, multiline, computedProperties, validators, translate, width, styleOptions, }) {
96
101
  super('text-field', label, {
97
102
  shortLabel,
@@ -118,7 +123,8 @@ export class TextField extends Field {
118
123
  return new TextField(this.field, Object.assign(Object.assign({}, this), properties));
119
124
  }
120
125
  }
121
- export class MeasureField extends Field {
126
+ exports.TextField = TextField;
127
+ class MeasureField extends Field {
122
128
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }) {
123
129
  super('measure-field', label, {
124
130
  shortLabel,
@@ -143,7 +149,8 @@ export class MeasureField extends Field {
143
149
  return new MeasureField(this.field, Object.assign(Object.assign({}, this), properties));
144
150
  }
145
151
  }
146
- export class NumberField extends Field {
152
+ exports.MeasureField = MeasureField;
153
+ class NumberField extends Field {
147
154
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }) {
148
155
  super('number-field', label, {
149
156
  shortLabel,
@@ -168,7 +175,8 @@ export class NumberField extends Field {
168
175
  return new NumberField(this.field, Object.assign(Object.assign({}, this), properties));
169
176
  }
170
177
  }
171
- export class TokenField extends Field {
178
+ exports.NumberField = NumberField;
179
+ class TokenField extends Field {
172
180
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }) {
173
181
  super('token-field', label, {
174
182
  shortLabel,
@@ -193,7 +201,8 @@ export class TokenField extends Field {
193
201
  return new TokenField(this.field, Object.assign(Object.assign({}, this), properties));
194
202
  }
195
203
  }
196
- export class ItemsListField extends Field {
204
+ exports.TokenField = TokenField;
205
+ class ItemsListField extends Field {
197
206
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }) {
198
207
  super('items-list-field', label, {
199
208
  shortLabel,
@@ -218,7 +227,8 @@ export class ItemsListField extends Field {
218
227
  return new ItemsListField(this.field, Object.assign(Object.assign({}, this), properties));
219
228
  }
220
229
  }
221
- export class DatePicker extends Field {
230
+ exports.ItemsListField = ItemsListField;
231
+ class DatePicker extends Field {
222
232
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, now, translate, width, styleOptions, }) {
223
233
  super('date-picker', label, {
224
234
  shortLabel,
@@ -244,7 +254,8 @@ export class DatePicker extends Field {
244
254
  return new DatePicker(this.field, Object.assign(Object.assign({}, this), properties));
245
255
  }
246
256
  }
247
- export class TimePicker extends Field {
257
+ exports.DatePicker = DatePicker;
258
+ class TimePicker extends Field {
248
259
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, now, translate, width, styleOptions, }) {
249
260
  super('time-picker', label, {
250
261
  shortLabel,
@@ -270,7 +281,8 @@ export class TimePicker extends Field {
270
281
  return new TimePicker(this.field, Object.assign(Object.assign({}, this), properties));
271
282
  }
272
283
  }
273
- export class DateTimePicker extends Field {
284
+ exports.TimePicker = TimePicker;
285
+ class DateTimePicker extends Field {
274
286
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, now, translate, width, styleOptions, }) {
275
287
  super('date-time-picker', label, {
276
288
  shortLabel,
@@ -296,7 +308,8 @@ export class DateTimePicker extends Field {
296
308
  return new DateTimePicker(this.field, Object.assign(Object.assign({}, this), properties));
297
309
  }
298
310
  }
299
- export class DropdownField extends Field {
311
+ exports.DateTimePicker = DateTimePicker;
312
+ class DropdownField extends Field {
300
313
  constructor(label, options) {
301
314
  var _a;
302
315
  super('dropdown-field', label, {
@@ -320,7 +333,8 @@ export class DropdownField extends Field {
320
333
  return new DropdownField(this.field, Object.assign(Object.assign({}, this), properties));
321
334
  }
322
335
  }
323
- export class RadioButton extends Field {
336
+ exports.DropdownField = DropdownField;
337
+ class RadioButton extends Field {
324
338
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, value, computedProperties, validators, translate, sortOptions, width, styleOptions, hasOther, }) {
325
339
  super('radio-button', label, {
326
340
  shortLabel,
@@ -345,7 +359,8 @@ export class RadioButton extends Field {
345
359
  return new RadioButton(this.field, Object.assign(Object.assign({}, this), properties));
346
360
  }
347
361
  }
348
- export class CheckBox extends Field {
362
+ exports.RadioButton = RadioButton;
363
+ class CheckBox extends Field {
349
364
  constructor(label, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, value, computedProperties, validators, translate, sortOptions, width, styleOptions, }) {
350
365
  super('checkbox', label, {
351
366
  shortLabel,
@@ -369,7 +384,8 @@ export class CheckBox extends Field {
369
384
  return new CheckBox(this.field, Object.assign(Object.assign({}, this), properties));
370
385
  }
371
386
  }
372
- export class Label extends Field {
387
+ exports.CheckBox = CheckBox;
388
+ class Label extends Field {
373
389
  constructor(label, { shortLabel, grows, span }) {
374
390
  super('label', label, { shortLabel, grows, span });
375
391
  }
@@ -377,7 +393,8 @@ export class Label extends Field {
377
393
  return new Label(this.field, Object.assign(Object.assign({}, this), properties));
378
394
  }
379
395
  }
380
- export class Button extends Field {
396
+ exports.Label = Label;
397
+ class Button extends Field {
381
398
  constructor(label, { shortLabel, grows, span, event, payload }) {
382
399
  super('action', label, { shortLabel, grows, span, event, payload });
383
400
  }
@@ -385,7 +402,8 @@ export class Button extends Field {
385
402
  return new Button(this.field, Object.assign(Object.assign({}, this), properties));
386
403
  }
387
404
  }
388
- export class Group {
405
+ exports.Button = Button;
406
+ class Group {
389
407
  constructor(title, fields, { span, rowSpan, borderless, translate, computedProperties, width, styleOptions, }) {
390
408
  this.clazz = 'group';
391
409
  this.group = title;
@@ -429,7 +447,8 @@ export class Group {
429
447
  };
430
448
  }
431
449
  }
432
- export class Subform {
450
+ exports.Group = Group;
451
+ class Subform {
433
452
  constructor(title, forms, { id, shortLabel, span, rowSpan, computedProperties, width, styleOptions, refs, labels, }) {
434
453
  this.clazz = 'subform';
435
454
  this.id = id || title;
@@ -471,7 +490,8 @@ export class Subform {
471
490
  };
472
491
  }
473
492
  }
474
- export class Section {
493
+ exports.Subform = Subform;
494
+ class Section {
475
495
  constructor(title, fields, description, keywords) {
476
496
  this.section = title;
477
497
  this.fields = fields;
@@ -495,7 +515,8 @@ export class Section {
495
515
  };
496
516
  }
497
517
  }
498
- export class Codification {
518
+ exports.Section = Section;
519
+ class Codification {
499
520
  constructor(type, codes) {
500
521
  this.type = type;
501
522
  this.codes = codes;
@@ -522,7 +543,8 @@ export class Codification {
522
543
  };
523
544
  }
524
545
  }
525
- export class TranslationTable {
546
+ exports.Codification = Codification;
547
+ class TranslationTable {
526
548
  constructor(language, translations) {
527
549
  this.language = language;
528
550
  this.translations = translations;
@@ -538,7 +560,8 @@ export class TranslationTable {
538
560
  };
539
561
  }
540
562
  }
541
- export class Form {
563
+ exports.TranslationTable = TranslationTable;
564
+ class Form {
542
565
  constructor(title, sections, id, description, keywords, codifications, translations) {
543
566
  this.form = title;
544
567
  this.description = description;
@@ -608,4 +631,5 @@ export class Form {
608
631
  };
609
632
  }
610
633
  }
634
+ exports.Form = Form;
611
635
  //# sourceMappingURL=index.js.map