@atlaskit/jql-editor 4.0.0

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 (750) hide show
  1. package/CHANGELOG.md +1048 -0
  2. package/LICENSE.md +13 -0
  3. package/README.md +3 -0
  4. package/dist/cjs/accessibility/index.js +12 -0
  5. package/dist/cjs/accessibility/styled.js +12 -0
  6. package/dist/cjs/analytics/constants.js +27 -0
  7. package/dist/cjs/analytics/index.js +57 -0
  8. package/dist/cjs/analytics/listener/analytics-web-client-wrapper.js +77 -0
  9. package/dist/cjs/analytics/listener/handle-event.js +21 -0
  10. package/dist/cjs/analytics/listener/helpers/logger.js +89 -0
  11. package/dist/cjs/analytics/listener/index.js +13 -0
  12. package/dist/cjs/analytics/listener/jql-editor-analytics-listener.js +52 -0
  13. package/dist/cjs/analytics/listener/process-event-payload.js +44 -0
  14. package/dist/cjs/analytics/listener/types.js +5 -0
  15. package/dist/cjs/analytics/types.js +5 -0
  16. package/dist/cjs/analytics/util.js +10 -0
  17. package/dist/cjs/async.js +34 -0
  18. package/dist/cjs/commands/select-error-command/index.js +30 -0
  19. package/dist/cjs/common/constants.js +11 -0
  20. package/dist/cjs/common/messages.js +14 -0
  21. package/dist/cjs/common/styled.js +15 -0
  22. package/dist/cjs/hooks/use-editor-theme/index.js +53 -0
  23. package/dist/cjs/hooks/use-editor-view-has-infos/index.js +16 -0
  24. package/dist/cjs/hooks/use-editor-view-has-warnings/index.js +19 -0
  25. package/dist/cjs/hooks/use-editor-view-is-invalid/index.js +52 -0
  26. package/dist/cjs/i18n/cs.js +68 -0
  27. package/dist/cjs/i18n/da.js +68 -0
  28. package/dist/cjs/i18n/de.js +68 -0
  29. package/dist/cjs/i18n/en.js +68 -0
  30. package/dist/cjs/i18n/en_GB.js +68 -0
  31. package/dist/cjs/i18n/en_ZZ.js +68 -0
  32. package/dist/cjs/i18n/es.js +68 -0
  33. package/dist/cjs/i18n/et.js +14 -0
  34. package/dist/cjs/i18n/fi.js +68 -0
  35. package/dist/cjs/i18n/fr.js +68 -0
  36. package/dist/cjs/i18n/hu.js +68 -0
  37. package/dist/cjs/i18n/index.js +132 -0
  38. package/dist/cjs/i18n/it.js +68 -0
  39. package/dist/cjs/i18n/ja.js +68 -0
  40. package/dist/cjs/i18n/ko.js +68 -0
  41. package/dist/cjs/i18n/nb.js +68 -0
  42. package/dist/cjs/i18n/nl.js +68 -0
  43. package/dist/cjs/i18n/pl.js +68 -0
  44. package/dist/cjs/i18n/pt_BR.js +68 -0
  45. package/dist/cjs/i18n/pt_PT.js +14 -0
  46. package/dist/cjs/i18n/ru.js +68 -0
  47. package/dist/cjs/i18n/sk.js +14 -0
  48. package/dist/cjs/i18n/sv.js +68 -0
  49. package/dist/cjs/i18n/th.js +68 -0
  50. package/dist/cjs/i18n/tr.js +68 -0
  51. package/dist/cjs/i18n/uk.js +68 -0
  52. package/dist/cjs/i18n/vi.js +68 -0
  53. package/dist/cjs/i18n/zh.js +68 -0
  54. package/dist/cjs/i18n/zh_TW.js +68 -0
  55. package/dist/cjs/index.js +52 -0
  56. package/dist/cjs/plugins/autocomplete/components/autocomplete/index.js +48 -0
  57. package/dist/cjs/plugins/autocomplete/components/autocomplete-dropdown/index.js +278 -0
  58. package/dist/cjs/plugins/autocomplete/components/autocomplete-dropdown/styled.js +22 -0
  59. package/dist/cjs/plugins/autocomplete/components/autocomplete-option/glyphs.js +104 -0
  60. package/dist/cjs/plugins/autocomplete/components/autocomplete-option/index.js +175 -0
  61. package/dist/cjs/plugins/autocomplete/components/autocomplete-option/messages.js +19 -0
  62. package/dist/cjs/plugins/autocomplete/components/autocomplete-option/styled.js +26 -0
  63. package/dist/cjs/plugins/autocomplete/components/types.js +5 -0
  64. package/dist/cjs/plugins/autocomplete/constants.js +35 -0
  65. package/dist/cjs/plugins/autocomplete/index.js +37 -0
  66. package/dist/cjs/plugins/autocomplete/messages.js +14 -0
  67. package/dist/cjs/plugins/autocomplete/types.js +5 -0
  68. package/dist/cjs/plugins/autocomplete/view.js +125 -0
  69. package/dist/cjs/plugins/common/get-document-position/index.js +99 -0
  70. package/dist/cjs/plugins/common/plugin-keymap.js +50 -0
  71. package/dist/cjs/plugins/common/react-plugin-view.js +93 -0
  72. package/dist/cjs/plugins/index.js +41 -0
  73. package/dist/cjs/plugins/jql-ast/JQLEditorErrorStrategy.js +218 -0
  74. package/dist/cjs/plugins/jql-ast/constants.js +15 -0
  75. package/dist/cjs/plugins/jql-ast/error-handlers/CustomFieldRuleErrorHandler.js +13 -0
  76. package/dist/cjs/plugins/jql-ast/error-handlers/ExpectedTokensErrorHandler.js +62 -0
  77. package/dist/cjs/plugins/jql-ast/error-handlers/FieldPropertyIdErrorHandler.js +17 -0
  78. package/dist/cjs/plugins/jql-ast/error-handlers/FieldRuleErrorHandler.js +20 -0
  79. package/dist/cjs/plugins/jql-ast/error-handlers/FunctionArgumentRuleErrorHandler.js +17 -0
  80. package/dist/cjs/plugins/jql-ast/error-handlers/OperandRuleErrorHandler.js +66 -0
  81. package/dist/cjs/plugins/jql-ast/error-handlers/OperatorRuleErrorHandler.js +18 -0
  82. package/dist/cjs/plugins/jql-ast/index.js +46 -0
  83. package/dist/cjs/plugins/jql-ast/messages.js +179 -0
  84. package/dist/cjs/plugins/jql-ast/utils.js +23 -0
  85. package/dist/cjs/plugins/jql-syntax-highlighting/index.js +69 -0
  86. package/dist/cjs/plugins/jql-syntax-highlighting/types.js +5 -0
  87. package/dist/cjs/plugins/jql-syntax-highlighting/visitor.js +89 -0
  88. package/dist/cjs/plugins/rich-inline-nodes/constants.js +9 -0
  89. package/dist/cjs/plugins/rich-inline-nodes/index.js +63 -0
  90. package/dist/cjs/plugins/rich-inline-nodes/nodes/index.js +10 -0
  91. package/dist/cjs/plugins/rich-inline-nodes/nodes/types.js +5 -0
  92. package/dist/cjs/plugins/rich-inline-nodes/nodes/user/index.js +41 -0
  93. package/dist/cjs/plugins/rich-inline-nodes/nodes/user/styled.js +35 -0
  94. package/dist/cjs/plugins/rich-inline-nodes/types.js +5 -0
  95. package/dist/cjs/plugins/rich-inline-nodes/util/create-node-spec.js +37 -0
  96. package/dist/cjs/plugins/rich-inline-nodes/util/react-node-view.js +129 -0
  97. package/dist/cjs/plugins/rich-inline-nodes/util/replace-nodes-transaction.js +138 -0
  98. package/dist/cjs/plugins/types.js +5 -0
  99. package/dist/cjs/plugins/validation-tooltip/constants.js +11 -0
  100. package/dist/cjs/plugins/validation-tooltip/index.js +58 -0
  101. package/dist/cjs/plugins/validation-tooltip/view.js +74 -0
  102. package/dist/cjs/schema/index.js +137 -0
  103. package/dist/cjs/state/analytics/index.js +56 -0
  104. package/dist/cjs/state/autocomplete/index.js +23 -0
  105. package/dist/cjs/state/hydration/index.js +92 -0
  106. package/dist/cjs/state/hydration/util.js +89 -0
  107. package/dist/cjs/state/index.js +997 -0
  108. package/dist/cjs/state/types.js +5 -0
  109. package/dist/cjs/state/util.js +176 -0
  110. package/dist/cjs/types.js +5 -0
  111. package/dist/cjs/ui/error-boundary/index.js +81 -0
  112. package/dist/cjs/ui/index.js +11 -0
  113. package/dist/cjs/ui/intl-provider/index.js +23 -0
  114. package/dist/cjs/ui/jql-editor/index.js +75 -0
  115. package/dist/cjs/ui/jql-editor/types.js +5 -0
  116. package/dist/cjs/ui/jql-editor-controls-content/base-expand-toggle/index.js +55 -0
  117. package/dist/cjs/ui/jql-editor-controls-content/base-expand-toggle/styled.js +12 -0
  118. package/dist/cjs/ui/jql-editor-controls-content/base-search/index.js +44 -0
  119. package/dist/cjs/ui/jql-editor-controls-content/base-syntax-help/index.js +33 -0
  120. package/dist/cjs/ui/jql-editor-controls-content/base-syntax-help/styled.js +12 -0
  121. package/dist/cjs/ui/jql-editor-controls-content/expand-toggle/index.js +67 -0
  122. package/dist/cjs/ui/jql-editor-controls-content/expand-toggle/messages.js +24 -0
  123. package/dist/cjs/ui/jql-editor-controls-content/index.js +17 -0
  124. package/dist/cjs/ui/jql-editor-controls-content/read-only-controls-content/index.js +38 -0
  125. package/dist/cjs/ui/jql-editor-controls-content/search/index.js +40 -0
  126. package/dist/cjs/ui/jql-editor-controls-content/search/messages.js +14 -0
  127. package/dist/cjs/ui/jql-editor-controls-content/syntax-help/index.js +62 -0
  128. package/dist/cjs/ui/jql-editor-controls-content/syntax-help/messages.js +19 -0
  129. package/dist/cjs/ui/jql-editor-footer-content/index.js +34 -0
  130. package/dist/cjs/ui/jql-editor-footer-content/jql-editor-help/index.js +42 -0
  131. package/dist/cjs/ui/jql-editor-footer-content/jql-editor-help/messages.js +24 -0
  132. package/dist/cjs/ui/jql-editor-footer-content/jql-editor-help/styled.js +15 -0
  133. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/errors/index.js +70 -0
  134. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/errors/messages.js +14 -0
  135. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/format/index.js +34 -0
  136. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/format/styled.js +14 -0
  137. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/index.js +26 -0
  138. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/infos/index.js +41 -0
  139. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/warnings/index.js +110 -0
  140. package/dist/cjs/ui/jql-editor-footer-content/jql-messages/warnings/messages.js +24 -0
  141. package/dist/cjs/ui/jql-editor-layout/index.js +104 -0
  142. package/dist/cjs/ui/jql-editor-layout/styled.js +61 -0
  143. package/dist/cjs/ui/jql-editor-portal-provider/context.js +17 -0
  144. package/dist/cjs/ui/jql-editor-portal-provider/index.js +116 -0
  145. package/dist/cjs/ui/jql-editor-portal-provider/types.js +5 -0
  146. package/dist/cjs/ui/jql-editor-view/index.js +198 -0
  147. package/dist/cjs/ui/messages.js +14 -0
  148. package/dist/cjs/ui/tooltip-tag/index.js +19 -0
  149. package/dist/cjs/ui/tooltip-tag/styled.js +11 -0
  150. package/dist/cjs/ui/types.js +5 -0
  151. package/dist/cjs/utils/document-text/index.js +43 -0
  152. package/dist/cjs/utils/split-text-by-new-line/index.js +12 -0
  153. package/dist/es2019/accessibility/index.js +1 -0
  154. package/dist/es2019/accessibility/styled.js +5 -0
  155. package/dist/es2019/analytics/constants.js +21 -0
  156. package/dist/es2019/analytics/index.js +5 -0
  157. package/dist/es2019/analytics/listener/analytics-web-client-wrapper.js +57 -0
  158. package/dist/es2019/analytics/listener/handle-event.js +15 -0
  159. package/dist/es2019/analytics/listener/helpers/logger.js +49 -0
  160. package/dist/es2019/analytics/listener/index.js +7 -0
  161. package/dist/es2019/analytics/listener/jql-editor-analytics-listener.js +30 -0
  162. package/dist/es2019/analytics/listener/process-event-payload.js +29 -0
  163. package/dist/es2019/analytics/listener/types.js +1 -0
  164. package/dist/es2019/analytics/types.js +1 -0
  165. package/dist/es2019/analytics/util.js +4 -0
  166. package/dist/es2019/async.js +19 -0
  167. package/dist/es2019/commands/select-error-command/index.js +23 -0
  168. package/dist/es2019/common/constants.js +5 -0
  169. package/dist/es2019/common/messages.js +8 -0
  170. package/dist/es2019/common/styled.js +19 -0
  171. package/dist/es2019/hooks/use-editor-theme/index.js +33 -0
  172. package/dist/es2019/hooks/use-editor-view-has-infos/index.js +8 -0
  173. package/dist/es2019/hooks/use-editor-view-has-warnings/index.js +9 -0
  174. package/dist/es2019/hooks/use-editor-view-is-invalid/index.js +38 -0
  175. package/dist/es2019/i18n/cs.js +62 -0
  176. package/dist/es2019/i18n/da.js +62 -0
  177. package/dist/es2019/i18n/de.js +62 -0
  178. package/dist/es2019/i18n/en.js +62 -0
  179. package/dist/es2019/i18n/en_GB.js +62 -0
  180. package/dist/es2019/i18n/en_ZZ.js +62 -0
  181. package/dist/es2019/i18n/es.js +62 -0
  182. package/dist/es2019/i18n/et.js +8 -0
  183. package/dist/es2019/i18n/fi.js +62 -0
  184. package/dist/es2019/i18n/fr.js +62 -0
  185. package/dist/es2019/i18n/hu.js +62 -0
  186. package/dist/es2019/i18n/index.js +24 -0
  187. package/dist/es2019/i18n/it.js +62 -0
  188. package/dist/es2019/i18n/ja.js +62 -0
  189. package/dist/es2019/i18n/ko.js +62 -0
  190. package/dist/es2019/i18n/nb.js +62 -0
  191. package/dist/es2019/i18n/nl.js +62 -0
  192. package/dist/es2019/i18n/pl.js +62 -0
  193. package/dist/es2019/i18n/pt_BR.js +62 -0
  194. package/dist/es2019/i18n/pt_PT.js +8 -0
  195. package/dist/es2019/i18n/ru.js +62 -0
  196. package/dist/es2019/i18n/sk.js +8 -0
  197. package/dist/es2019/i18n/sv.js +62 -0
  198. package/dist/es2019/i18n/th.js +62 -0
  199. package/dist/es2019/i18n/tr.js +62 -0
  200. package/dist/es2019/i18n/uk.js +62 -0
  201. package/dist/es2019/i18n/vi.js +62 -0
  202. package/dist/es2019/i18n/zh.js +62 -0
  203. package/dist/es2019/i18n/zh_TW.js +62 -0
  204. package/dist/es2019/index.js +4 -0
  205. package/dist/es2019/plugins/autocomplete/components/autocomplete/index.js +33 -0
  206. package/dist/es2019/plugins/autocomplete/components/autocomplete-dropdown/index.js +245 -0
  207. package/dist/es2019/plugins/autocomplete/components/autocomplete-dropdown/styled.js +46 -0
  208. package/dist/es2019/plugins/autocomplete/components/autocomplete-option/glyphs.js +80 -0
  209. package/dist/es2019/plugins/autocomplete/components/autocomplete-option/index.js +159 -0
  210. package/dist/es2019/plugins/autocomplete/components/autocomplete-option/messages.js +13 -0
  211. package/dist/es2019/plugins/autocomplete/components/autocomplete-option/styled.js +51 -0
  212. package/dist/es2019/plugins/autocomplete/components/types.js +1 -0
  213. package/dist/es2019/plugins/autocomplete/constants.js +21 -0
  214. package/dist/es2019/plugins/autocomplete/index.js +36 -0
  215. package/dist/es2019/plugins/autocomplete/messages.js +8 -0
  216. package/dist/es2019/plugins/autocomplete/types.js +1 -0
  217. package/dist/es2019/plugins/autocomplete/view.js +102 -0
  218. package/dist/es2019/plugins/common/get-document-position/index.js +92 -0
  219. package/dist/es2019/plugins/common/plugin-keymap.js +30 -0
  220. package/dist/es2019/plugins/common/react-plugin-view.js +67 -0
  221. package/dist/es2019/plugins/index.js +5 -0
  222. package/dist/es2019/plugins/jql-ast/JQLEditorErrorStrategy.js +183 -0
  223. package/dist/es2019/plugins/jql-ast/constants.js +9 -0
  224. package/dist/es2019/plugins/jql-ast/error-handlers/CustomFieldRuleErrorHandler.js +8 -0
  225. package/dist/es2019/plugins/jql-ast/error-handlers/ExpectedTokensErrorHandler.js +53 -0
  226. package/dist/es2019/plugins/jql-ast/error-handlers/FieldPropertyIdErrorHandler.js +12 -0
  227. package/dist/es2019/plugins/jql-ast/error-handlers/FieldRuleErrorHandler.js +15 -0
  228. package/dist/es2019/plugins/jql-ast/error-handlers/FunctionArgumentRuleErrorHandler.js +12 -0
  229. package/dist/es2019/plugins/jql-ast/error-handlers/OperandRuleErrorHandler.js +61 -0
  230. package/dist/es2019/plugins/jql-ast/error-handlers/OperatorRuleErrorHandler.js +13 -0
  231. package/dist/es2019/plugins/jql-ast/index.js +40 -0
  232. package/dist/es2019/plugins/jql-ast/messages.js +173 -0
  233. package/dist/es2019/plugins/jql-ast/utils.js +13 -0
  234. package/dist/es2019/plugins/jql-syntax-highlighting/index.js +59 -0
  235. package/dist/es2019/plugins/jql-syntax-highlighting/types.js +1 -0
  236. package/dist/es2019/plugins/jql-syntax-highlighting/visitor.js +55 -0
  237. package/dist/es2019/plugins/rich-inline-nodes/constants.js +3 -0
  238. package/dist/es2019/plugins/rich-inline-nodes/index.js +48 -0
  239. package/dist/es2019/plugins/rich-inline-nodes/nodes/index.js +4 -0
  240. package/dist/es2019/plugins/rich-inline-nodes/nodes/types.js +1 -0
  241. package/dist/es2019/plugins/rich-inline-nodes/nodes/user/index.js +32 -0
  242. package/dist/es2019/plugins/rich-inline-nodes/nodes/user/styled.js +77 -0
  243. package/dist/es2019/plugins/rich-inline-nodes/types.js +1 -0
  244. package/dist/es2019/plugins/rich-inline-nodes/util/create-node-spec.js +26 -0
  245. package/dist/es2019/plugins/rich-inline-nodes/util/react-node-view.js +101 -0
  246. package/dist/es2019/plugins/rich-inline-nodes/util/replace-nodes-transaction.js +104 -0
  247. package/dist/es2019/plugins/types.js +1 -0
  248. package/dist/es2019/plugins/validation-tooltip/constants.js +5 -0
  249. package/dist/es2019/plugins/validation-tooltip/index.js +52 -0
  250. package/dist/es2019/plugins/validation-tooltip/view.js +55 -0
  251. package/dist/es2019/schema/index.js +117 -0
  252. package/dist/es2019/state/analytics/index.js +49 -0
  253. package/dist/es2019/state/autocomplete/index.js +15 -0
  254. package/dist/es2019/state/hydration/index.js +63 -0
  255. package/dist/es2019/state/hydration/util.js +57 -0
  256. package/dist/es2019/state/index.js +968 -0
  257. package/dist/es2019/state/types.js +1 -0
  258. package/dist/es2019/state/util.js +144 -0
  259. package/dist/es2019/types.js +1 -0
  260. package/dist/es2019/ui/error-boundary/index.js +55 -0
  261. package/dist/es2019/ui/index.js +4 -0
  262. package/dist/es2019/ui/intl-provider/index.js +16 -0
  263. package/dist/es2019/ui/jql-editor/index.js +63 -0
  264. package/dist/es2019/ui/jql-editor/types.js +1 -0
  265. package/dist/es2019/ui/jql-editor-controls-content/base-expand-toggle/index.js +48 -0
  266. package/dist/es2019/ui/jql-editor-controls-content/base-expand-toggle/styled.js +20 -0
  267. package/dist/es2019/ui/jql-editor-controls-content/base-search/index.js +35 -0
  268. package/dist/es2019/ui/jql-editor-controls-content/base-syntax-help/index.js +27 -0
  269. package/dist/es2019/ui/jql-editor-controls-content/base-syntax-help/styled.js +29 -0
  270. package/dist/es2019/ui/jql-editor-controls-content/expand-toggle/index.js +51 -0
  271. package/dist/es2019/ui/jql-editor-controls-content/expand-toggle/messages.js +18 -0
  272. package/dist/es2019/ui/jql-editor-controls-content/index.js +11 -0
  273. package/dist/es2019/ui/jql-editor-controls-content/read-only-controls-content/index.js +29 -0
  274. package/dist/es2019/ui/jql-editor-controls-content/search/index.js +26 -0
  275. package/dist/es2019/ui/jql-editor-controls-content/search/messages.js +8 -0
  276. package/dist/es2019/ui/jql-editor-controls-content/syntax-help/index.js +44 -0
  277. package/dist/es2019/ui/jql-editor-controls-content/syntax-help/messages.js +13 -0
  278. package/dist/es2019/ui/jql-editor-footer-content/index.js +28 -0
  279. package/dist/es2019/ui/jql-editor-footer-content/jql-editor-help/index.js +27 -0
  280. package/dist/es2019/ui/jql-editor-footer-content/jql-editor-help/messages.js +18 -0
  281. package/dist/es2019/ui/jql-editor-footer-content/jql-editor-help/styled.js +23 -0
  282. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/errors/index.js +55 -0
  283. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/errors/messages.js +8 -0
  284. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/format/index.js +29 -0
  285. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/format/styled.js +8 -0
  286. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/index.js +3 -0
  287. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/infos/index.js +30 -0
  288. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/warnings/index.js +84 -0
  289. package/dist/es2019/ui/jql-editor-footer-content/jql-messages/warnings/messages.js +18 -0
  290. package/dist/es2019/ui/jql-editor-layout/index.js +100 -0
  291. package/dist/es2019/ui/jql-editor-layout/styled.js +223 -0
  292. package/dist/es2019/ui/jql-editor-portal-provider/context.js +8 -0
  293. package/dist/es2019/ui/jql-editor-portal-provider/index.js +99 -0
  294. package/dist/es2019/ui/jql-editor-portal-provider/types.js +1 -0
  295. package/dist/es2019/ui/jql-editor-view/index.js +167 -0
  296. package/dist/es2019/ui/messages.js +8 -0
  297. package/dist/es2019/ui/tooltip-tag/index.js +8 -0
  298. package/dist/es2019/ui/tooltip-tag/styled.js +4 -0
  299. package/dist/es2019/ui/types.js +1 -0
  300. package/dist/es2019/utils/document-text/index.js +37 -0
  301. package/dist/es2019/utils/split-text-by-new-line/index.js +4 -0
  302. package/dist/esm/accessibility/index.js +1 -0
  303. package/dist/esm/accessibility/styled.js +5 -0
  304. package/dist/esm/analytics/constants.js +21 -0
  305. package/dist/esm/analytics/index.js +5 -0
  306. package/dist/esm/analytics/listener/analytics-web-client-wrapper.js +70 -0
  307. package/dist/esm/analytics/listener/handle-event.js +15 -0
  308. package/dist/esm/analytics/listener/helpers/logger.js +83 -0
  309. package/dist/esm/analytics/listener/index.js +7 -0
  310. package/dist/esm/analytics/listener/jql-editor-analytics-listener.js +48 -0
  311. package/dist/esm/analytics/listener/process-event-payload.js +39 -0
  312. package/dist/esm/analytics/listener/types.js +1 -0
  313. package/dist/esm/analytics/types.js +1 -0
  314. package/dist/esm/analytics/util.js +4 -0
  315. package/dist/esm/async.js +22 -0
  316. package/dist/esm/commands/select-error-command/index.js +23 -0
  317. package/dist/esm/common/constants.js +5 -0
  318. package/dist/esm/common/messages.js +8 -0
  319. package/dist/esm/common/styled.js +9 -0
  320. package/dist/esm/hooks/use-editor-theme/index.js +46 -0
  321. package/dist/esm/hooks/use-editor-view-has-infos/index.js +9 -0
  322. package/dist/esm/hooks/use-editor-view-has-warnings/index.js +12 -0
  323. package/dist/esm/hooks/use-editor-view-is-invalid/index.js +46 -0
  324. package/dist/esm/i18n/cs.js +62 -0
  325. package/dist/esm/i18n/da.js +62 -0
  326. package/dist/esm/i18n/de.js +62 -0
  327. package/dist/esm/i18n/en.js +62 -0
  328. package/dist/esm/i18n/en_GB.js +62 -0
  329. package/dist/esm/i18n/en_ZZ.js +62 -0
  330. package/dist/esm/i18n/es.js +62 -0
  331. package/dist/esm/i18n/et.js +8 -0
  332. package/dist/esm/i18n/fi.js +62 -0
  333. package/dist/esm/i18n/fr.js +62 -0
  334. package/dist/esm/i18n/hu.js +62 -0
  335. package/dist/esm/i18n/index.js +24 -0
  336. package/dist/esm/i18n/it.js +62 -0
  337. package/dist/esm/i18n/ja.js +62 -0
  338. package/dist/esm/i18n/ko.js +62 -0
  339. package/dist/esm/i18n/nb.js +62 -0
  340. package/dist/esm/i18n/nl.js +62 -0
  341. package/dist/esm/i18n/pl.js +62 -0
  342. package/dist/esm/i18n/pt_BR.js +62 -0
  343. package/dist/esm/i18n/pt_PT.js +8 -0
  344. package/dist/esm/i18n/ru.js +62 -0
  345. package/dist/esm/i18n/sk.js +8 -0
  346. package/dist/esm/i18n/sv.js +62 -0
  347. package/dist/esm/i18n/th.js +62 -0
  348. package/dist/esm/i18n/tr.js +62 -0
  349. package/dist/esm/i18n/uk.js +62 -0
  350. package/dist/esm/i18n/vi.js +62 -0
  351. package/dist/esm/i18n/zh.js +62 -0
  352. package/dist/esm/i18n/zh_TW.js +62 -0
  353. package/dist/esm/index.js +4 -0
  354. package/dist/esm/plugins/autocomplete/components/autocomplete/index.js +38 -0
  355. package/dist/esm/plugins/autocomplete/components/autocomplete-dropdown/index.js +268 -0
  356. package/dist/esm/plugins/autocomplete/components/autocomplete-dropdown/styled.js +16 -0
  357. package/dist/esm/plugins/autocomplete/components/autocomplete-option/glyphs.js +98 -0
  358. package/dist/esm/plugins/autocomplete/components/autocomplete-option/index.js +165 -0
  359. package/dist/esm/plugins/autocomplete/components/autocomplete-option/messages.js +13 -0
  360. package/dist/esm/plugins/autocomplete/components/autocomplete-option/styled.js +21 -0
  361. package/dist/esm/plugins/autocomplete/components/types.js +1 -0
  362. package/dist/esm/plugins/autocomplete/constants.js +29 -0
  363. package/dist/esm/plugins/autocomplete/index.js +30 -0
  364. package/dist/esm/plugins/autocomplete/messages.js +8 -0
  365. package/dist/esm/plugins/autocomplete/types.js +1 -0
  366. package/dist/esm/plugins/autocomplete/view.js +120 -0
  367. package/dist/esm/plugins/common/get-document-position/index.js +93 -0
  368. package/dist/esm/plugins/common/plugin-keymap.js +43 -0
  369. package/dist/esm/plugins/common/react-plugin-view.js +84 -0
  370. package/dist/esm/plugins/index.js +5 -0
  371. package/dist/esm/plugins/jql-ast/JQLEditorErrorStrategy.js +212 -0
  372. package/dist/esm/plugins/jql-ast/constants.js +9 -0
  373. package/dist/esm/plugins/jql-ast/error-handlers/CustomFieldRuleErrorHandler.js +8 -0
  374. package/dist/esm/plugins/jql-ast/error-handlers/ExpectedTokensErrorHandler.js +57 -0
  375. package/dist/esm/plugins/jql-ast/error-handlers/FieldPropertyIdErrorHandler.js +12 -0
  376. package/dist/esm/plugins/jql-ast/error-handlers/FieldRuleErrorHandler.js +15 -0
  377. package/dist/esm/plugins/jql-ast/error-handlers/FunctionArgumentRuleErrorHandler.js +12 -0
  378. package/dist/esm/plugins/jql-ast/error-handlers/OperandRuleErrorHandler.js +61 -0
  379. package/dist/esm/plugins/jql-ast/error-handlers/OperatorRuleErrorHandler.js +13 -0
  380. package/dist/esm/plugins/jql-ast/index.js +39 -0
  381. package/dist/esm/plugins/jql-ast/messages.js +173 -0
  382. package/dist/esm/plugins/jql-ast/utils.js +17 -0
  383. package/dist/esm/plugins/jql-syntax-highlighting/index.js +62 -0
  384. package/dist/esm/plugins/jql-syntax-highlighting/types.js +1 -0
  385. package/dist/esm/plugins/jql-syntax-highlighting/visitor.js +82 -0
  386. package/dist/esm/plugins/rich-inline-nodes/constants.js +3 -0
  387. package/dist/esm/plugins/rich-inline-nodes/index.js +56 -0
  388. package/dist/esm/plugins/rich-inline-nodes/nodes/index.js +4 -0
  389. package/dist/esm/plugins/rich-inline-nodes/nodes/types.js +1 -0
  390. package/dist/esm/plugins/rich-inline-nodes/nodes/user/index.js +34 -0
  391. package/dist/esm/plugins/rich-inline-nodes/nodes/user/styled.js +28 -0
  392. package/dist/esm/plugins/rich-inline-nodes/types.js +1 -0
  393. package/dist/esm/plugins/rich-inline-nodes/util/create-node-spec.js +30 -0
  394. package/dist/esm/plugins/rich-inline-nodes/util/react-node-view.js +119 -0
  395. package/dist/esm/plugins/rich-inline-nodes/util/replace-nodes-transaction.js +131 -0
  396. package/dist/esm/plugins/types.js +1 -0
  397. package/dist/esm/plugins/validation-tooltip/constants.js +5 -0
  398. package/dist/esm/plugins/validation-tooltip/index.js +52 -0
  399. package/dist/esm/plugins/validation-tooltip/view.js +67 -0
  400. package/dist/esm/schema/index.js +129 -0
  401. package/dist/esm/state/analytics/index.js +50 -0
  402. package/dist/esm/state/autocomplete/index.js +17 -0
  403. package/dist/esm/state/hydration/index.js +85 -0
  404. package/dist/esm/state/hydration/util.js +83 -0
  405. package/dist/esm/state/index.js +991 -0
  406. package/dist/esm/state/types.js +1 -0
  407. package/dist/esm/state/util.js +169 -0
  408. package/dist/esm/types.js +1 -0
  409. package/dist/esm/ui/error-boundary/index.js +73 -0
  410. package/dist/esm/ui/index.js +4 -0
  411. package/dist/esm/ui/intl-provider/index.js +16 -0
  412. package/dist/esm/ui/jql-editor/index.js +63 -0
  413. package/dist/esm/ui/jql-editor/types.js +1 -0
  414. package/dist/esm/ui/jql-editor-controls-content/base-expand-toggle/index.js +49 -0
  415. package/dist/esm/ui/jql-editor-controls-content/base-expand-toggle/styled.js +5 -0
  416. package/dist/esm/ui/jql-editor-controls-content/base-search/index.js +34 -0
  417. package/dist/esm/ui/jql-editor-controls-content/base-syntax-help/index.js +26 -0
  418. package/dist/esm/ui/jql-editor-controls-content/base-syntax-help/styled.js +5 -0
  419. package/dist/esm/ui/jql-editor-controls-content/expand-toggle/index.js +55 -0
  420. package/dist/esm/ui/jql-editor-controls-content/expand-toggle/messages.js +18 -0
  421. package/dist/esm/ui/jql-editor-controls-content/index.js +10 -0
  422. package/dist/esm/ui/jql-editor-controls-content/read-only-controls-content/index.js +28 -0
  423. package/dist/esm/ui/jql-editor-controls-content/search/index.js +31 -0
  424. package/dist/esm/ui/jql-editor-controls-content/search/messages.js +8 -0
  425. package/dist/esm/ui/jql-editor-controls-content/syntax-help/index.js +50 -0
  426. package/dist/esm/ui/jql-editor-controls-content/syntax-help/messages.js +13 -0
  427. package/dist/esm/ui/jql-editor-footer-content/index.js +28 -0
  428. package/dist/esm/ui/jql-editor-footer-content/jql-editor-help/index.js +35 -0
  429. package/dist/esm/ui/jql-editor-footer-content/jql-editor-help/messages.js +18 -0
  430. package/dist/esm/ui/jql-editor-footer-content/jql-editor-help/styled.js +8 -0
  431. package/dist/esm/ui/jql-editor-footer-content/jql-messages/errors/index.js +60 -0
  432. package/dist/esm/ui/jql-editor-footer-content/jql-messages/errors/messages.js +8 -0
  433. package/dist/esm/ui/jql-editor-footer-content/jql-messages/format/index.js +28 -0
  434. package/dist/esm/ui/jql-editor-footer-content/jql-messages/format/styled.js +7 -0
  435. package/dist/esm/ui/jql-editor-footer-content/jql-messages/index.js +3 -0
  436. package/dist/esm/ui/jql-editor-footer-content/jql-messages/infos/index.js +31 -0
  437. package/dist/esm/ui/jql-editor-footer-content/jql-messages/warnings/index.js +100 -0
  438. package/dist/esm/ui/jql-editor-footer-content/jql-messages/warnings/messages.js +18 -0
  439. package/dist/esm/ui/jql-editor-layout/index.js +98 -0
  440. package/dist/esm/ui/jql-editor-layout/styled.js +56 -0
  441. package/dist/esm/ui/jql-editor-portal-provider/context.js +10 -0
  442. package/dist/esm/ui/jql-editor-portal-provider/index.js +107 -0
  443. package/dist/esm/ui/jql-editor-portal-provider/types.js +1 -0
  444. package/dist/esm/ui/jql-editor-view/index.js +190 -0
  445. package/dist/esm/ui/messages.js +8 -0
  446. package/dist/esm/ui/tooltip-tag/index.js +10 -0
  447. package/dist/esm/ui/tooltip-tag/styled.js +4 -0
  448. package/dist/esm/ui/types.js +1 -0
  449. package/dist/esm/utils/document-text/index.js +37 -0
  450. package/dist/esm/utils/split-text-by-new-line/index.js +6 -0
  451. package/dist/types/accessibility/index.d.ts +1 -0
  452. package/dist/types/accessibility/styled.d.ts +2 -0
  453. package/dist/types/analytics/constants.d.ts +18 -0
  454. package/dist/types/analytics/index.d.ts +7 -0
  455. package/dist/types/analytics/listener/analytics-web-client-wrapper.d.ts +9 -0
  456. package/dist/types/analytics/listener/handle-event.d.ts +9 -0
  457. package/dist/types/analytics/listener/helpers/logger.d.ts +24 -0
  458. package/dist/types/analytics/listener/index.d.ts +7 -0
  459. package/dist/types/analytics/listener/jql-editor-analytics-listener.d.ts +20 -0
  460. package/dist/types/analytics/listener/process-event-payload.d.ts +8 -0
  461. package/dist/types/analytics/listener/types.d.ts +7 -0
  462. package/dist/types/analytics/types.d.ts +3 -0
  463. package/dist/types/analytics/util.d.ts +4 -0
  464. package/dist/types/async.d.ts +3 -0
  465. package/dist/types/commands/select-error-command/index.d.ts +5 -0
  466. package/dist/types/common/constants.d.ts +5 -0
  467. package/dist/types/common/messages.d.ts +7 -0
  468. package/dist/types/common/styled.d.ts +3 -0
  469. package/dist/types/hooks/use-editor-theme/index.d.ts +38 -0
  470. package/dist/types/hooks/use-editor-view-has-infos/index.d.ts +1 -0
  471. package/dist/types/hooks/use-editor-view-has-warnings/index.d.ts +1 -0
  472. package/dist/types/hooks/use-editor-view-is-invalid/index.d.ts +11 -0
  473. package/dist/types/i18n/cs.d.ts +61 -0
  474. package/dist/types/i18n/da.d.ts +61 -0
  475. package/dist/types/i18n/de.d.ts +61 -0
  476. package/dist/types/i18n/en.d.ts +61 -0
  477. package/dist/types/i18n/en_GB.d.ts +61 -0
  478. package/dist/types/i18n/en_ZZ.d.ts +61 -0
  479. package/dist/types/i18n/es.d.ts +61 -0
  480. package/dist/types/i18n/et.d.ts +8 -0
  481. package/dist/types/i18n/fi.d.ts +61 -0
  482. package/dist/types/i18n/fr.d.ts +61 -0
  483. package/dist/types/i18n/hu.d.ts +61 -0
  484. package/dist/types/i18n/index.d.ts +24 -0
  485. package/dist/types/i18n/it.d.ts +61 -0
  486. package/dist/types/i18n/ja.d.ts +61 -0
  487. package/dist/types/i18n/ko.d.ts +61 -0
  488. package/dist/types/i18n/nb.d.ts +61 -0
  489. package/dist/types/i18n/nl.d.ts +61 -0
  490. package/dist/types/i18n/pl.d.ts +61 -0
  491. package/dist/types/i18n/pt_BR.d.ts +61 -0
  492. package/dist/types/i18n/pt_PT.d.ts +8 -0
  493. package/dist/types/i18n/ru.d.ts +61 -0
  494. package/dist/types/i18n/sk.d.ts +8 -0
  495. package/dist/types/i18n/sv.d.ts +61 -0
  496. package/dist/types/i18n/th.d.ts +61 -0
  497. package/dist/types/i18n/tr.d.ts +61 -0
  498. package/dist/types/i18n/uk.d.ts +61 -0
  499. package/dist/types/i18n/vi.d.ts +61 -0
  500. package/dist/types/i18n/zh.d.ts +61 -0
  501. package/dist/types/i18n/zh_TW.d.ts +61 -0
  502. package/dist/types/index.d.ts +5 -0
  503. package/dist/types/plugins/autocomplete/components/autocomplete/index.d.ts +4 -0
  504. package/dist/types/plugins/autocomplete/components/autocomplete-dropdown/index.d.ts +11 -0
  505. package/dist/types/plugins/autocomplete/components/autocomplete-dropdown/styled.d.ts +9 -0
  506. package/dist/types/plugins/autocomplete/components/autocomplete-option/glyphs.d.ts +10 -0
  507. package/dist/types/plugins/autocomplete/components/autocomplete-option/index.d.ts +10 -0
  508. package/dist/types/plugins/autocomplete/components/autocomplete-option/messages.d.ts +12 -0
  509. package/dist/types/plugins/autocomplete/components/autocomplete-option/styled.d.ts +11 -0
  510. package/dist/types/plugins/autocomplete/components/types.d.ts +38 -0
  511. package/dist/types/plugins/autocomplete/constants.d.ts +14 -0
  512. package/dist/types/plugins/autocomplete/index.d.ts +4 -0
  513. package/dist/types/plugins/autocomplete/messages.d.ts +7 -0
  514. package/dist/types/plugins/autocomplete/types.d.ts +1 -0
  515. package/dist/types/plugins/autocomplete/view.d.ts +19 -0
  516. package/dist/types/plugins/common/get-document-position/index.d.ts +9 -0
  517. package/dist/types/plugins/common/plugin-keymap.d.ts +7 -0
  518. package/dist/types/plugins/common/react-plugin-view.d.ts +48 -0
  519. package/dist/types/plugins/index.d.ts +5 -0
  520. package/dist/types/plugins/jql-ast/JQLEditorErrorStrategy.d.ts +17 -0
  521. package/dist/types/plugins/jql-ast/constants.d.ts +3 -0
  522. package/dist/types/plugins/jql-ast/error-handlers/CustomFieldRuleErrorHandler.d.ts +5 -0
  523. package/dist/types/plugins/jql-ast/error-handlers/ExpectedTokensErrorHandler.d.ts +11 -0
  524. package/dist/types/plugins/jql-ast/error-handlers/FieldPropertyIdErrorHandler.d.ts +6 -0
  525. package/dist/types/plugins/jql-ast/error-handlers/FieldRuleErrorHandler.d.ts +6 -0
  526. package/dist/types/plugins/jql-ast/error-handlers/FunctionArgumentRuleErrorHandler.d.ts +6 -0
  527. package/dist/types/plugins/jql-ast/error-handlers/OperandRuleErrorHandler.d.ts +9 -0
  528. package/dist/types/plugins/jql-ast/error-handlers/OperatorRuleErrorHandler.d.ts +6 -0
  529. package/dist/types/plugins/jql-ast/index.d.ts +7 -0
  530. package/dist/types/plugins/jql-ast/messages.d.ts +172 -0
  531. package/dist/types/plugins/jql-ast/utils.d.ts +4 -0
  532. package/dist/types/plugins/jql-syntax-highlighting/index.d.ts +4 -0
  533. package/dist/types/plugins/jql-syntax-highlighting/types.d.ts +5 -0
  534. package/dist/types/plugins/jql-syntax-highlighting/visitor.d.ts +19 -0
  535. package/dist/types/plugins/rich-inline-nodes/constants.d.ts +3 -0
  536. package/dist/types/plugins/rich-inline-nodes/index.d.ts +4 -0
  537. package/dist/types/plugins/rich-inline-nodes/nodes/index.d.ts +3 -0
  538. package/dist/types/plugins/rich-inline-nodes/nodes/types.d.ts +9 -0
  539. package/dist/types/plugins/rich-inline-nodes/nodes/user/index.d.ts +7 -0
  540. package/dist/types/plugins/rich-inline-nodes/nodes/user/styled.d.ts +7 -0
  541. package/dist/types/plugins/rich-inline-nodes/types.d.ts +2 -0
  542. package/dist/types/plugins/rich-inline-nodes/util/create-node-spec.d.ts +4 -0
  543. package/dist/types/plugins/rich-inline-nodes/util/react-node-view.d.ts +24 -0
  544. package/dist/types/plugins/rich-inline-nodes/util/replace-nodes-transaction.d.ts +3 -0
  545. package/dist/types/plugins/types.d.ts +16 -0
  546. package/dist/types/plugins/validation-tooltip/constants.d.ts +5 -0
  547. package/dist/types/plugins/validation-tooltip/index.d.ts +3 -0
  548. package/dist/types/plugins/validation-tooltip/view.d.ts +18 -0
  549. package/dist/types/schema/index.d.ts +28 -0
  550. package/dist/types/state/analytics/index.d.ts +9 -0
  551. package/dist/types/state/autocomplete/index.d.ts +4 -0
  552. package/dist/types/state/hydration/index.d.ts +3 -0
  553. package/dist/types/state/hydration/util.d.ts +23 -0
  554. package/dist/types/state/index.d.ts +796 -0
  555. package/dist/types/state/types.d.ts +242 -0
  556. package/dist/types/state/util.d.ts +16 -0
  557. package/dist/types/types.d.ts +5 -0
  558. package/dist/types/ui/error-boundary/index.d.ts +25 -0
  559. package/dist/types/ui/index.d.ts +4 -0
  560. package/dist/types/ui/intl-provider/index.d.ts +10 -0
  561. package/dist/types/ui/jql-editor/index.d.ts +13 -0
  562. package/dist/types/ui/jql-editor/types.d.ts +101 -0
  563. package/dist/types/ui/jql-editor-controls-content/base-expand-toggle/index.d.ts +10 -0
  564. package/dist/types/ui/jql-editor-controls-content/base-expand-toggle/styled.d.ts +2 -0
  565. package/dist/types/ui/jql-editor-controls-content/base-search/index.d.ts +9 -0
  566. package/dist/types/ui/jql-editor-controls-content/base-syntax-help/index.d.ts +9 -0
  567. package/dist/types/ui/jql-editor-controls-content/base-syntax-help/styled.d.ts +2 -0
  568. package/dist/types/ui/jql-editor-controls-content/expand-toggle/index.d.ts +2 -0
  569. package/dist/types/ui/jql-editor-controls-content/expand-toggle/messages.d.ts +17 -0
  570. package/dist/types/ui/jql-editor-controls-content/index.d.ts +2 -0
  571. package/dist/types/ui/jql-editor-controls-content/read-only-controls-content/index.d.ts +2 -0
  572. package/dist/types/ui/jql-editor-controls-content/search/index.d.ts +2 -0
  573. package/dist/types/ui/jql-editor-controls-content/search/messages.d.ts +7 -0
  574. package/dist/types/ui/jql-editor-controls-content/syntax-help/index.d.ts +2 -0
  575. package/dist/types/ui/jql-editor-controls-content/syntax-help/messages.d.ts +12 -0
  576. package/dist/types/ui/jql-editor-footer-content/index.d.ts +6 -0
  577. package/dist/types/ui/jql-editor-footer-content/jql-editor-help/index.d.ts +2 -0
  578. package/dist/types/ui/jql-editor-footer-content/jql-editor-help/messages.d.ts +17 -0
  579. package/dist/types/ui/jql-editor-footer-content/jql-editor-help/styled.d.ts +6 -0
  580. package/dist/types/ui/jql-editor-footer-content/jql-messages/errors/index.d.ts +2 -0
  581. package/dist/types/ui/jql-editor-footer-content/jql-messages/errors/messages.d.ts +7 -0
  582. package/dist/types/ui/jql-editor-footer-content/jql-messages/format/index.d.ts +8 -0
  583. package/dist/types/ui/jql-editor-footer-content/jql-messages/format/styled.d.ts +5 -0
  584. package/dist/types/ui/jql-editor-footer-content/jql-messages/index.d.ts +3 -0
  585. package/dist/types/ui/jql-editor-footer-content/jql-messages/infos/index.d.ts +3 -0
  586. package/dist/types/ui/jql-editor-footer-content/jql-messages/warnings/index.d.ts +3 -0
  587. package/dist/types/ui/jql-editor-footer-content/jql-messages/warnings/messages.d.ts +17 -0
  588. package/dist/types/ui/jql-editor-layout/index.d.ts +64 -0
  589. package/dist/types/ui/jql-editor-layout/styled.d.ts +65 -0
  590. package/dist/types/ui/jql-editor-portal-provider/context.d.ts +4 -0
  591. package/dist/types/ui/jql-editor-portal-provider/index.d.ts +7 -0
  592. package/dist/types/ui/jql-editor-portal-provider/types.d.ts +38 -0
  593. package/dist/types/ui/jql-editor-view/index.d.ts +10 -0
  594. package/dist/types/ui/messages.d.ts +7 -0
  595. package/dist/types/ui/tooltip-tag/index.d.ts +2 -0
  596. package/dist/types/ui/tooltip-tag/styled.d.ts +2 -0
  597. package/dist/types/ui/types.d.ts +9 -0
  598. package/dist/types/utils/document-text/index.d.ts +9 -0
  599. package/dist/types/utils/split-text-by-new-line/index.d.ts +4 -0
  600. package/dist/types-ts4.5/accessibility/index.d.ts +1 -0
  601. package/dist/types-ts4.5/accessibility/styled.d.ts +2 -0
  602. package/dist/types-ts4.5/analytics/constants.d.ts +18 -0
  603. package/dist/types-ts4.5/analytics/index.d.ts +7 -0
  604. package/dist/types-ts4.5/analytics/listener/analytics-web-client-wrapper.d.ts +9 -0
  605. package/dist/types-ts4.5/analytics/listener/handle-event.d.ts +9 -0
  606. package/dist/types-ts4.5/analytics/listener/helpers/logger.d.ts +24 -0
  607. package/dist/types-ts4.5/analytics/listener/index.d.ts +7 -0
  608. package/dist/types-ts4.5/analytics/listener/jql-editor-analytics-listener.d.ts +20 -0
  609. package/dist/types-ts4.5/analytics/listener/process-event-payload.d.ts +8 -0
  610. package/dist/types-ts4.5/analytics/listener/types.d.ts +7 -0
  611. package/dist/types-ts4.5/analytics/types.d.ts +3 -0
  612. package/dist/types-ts4.5/analytics/util.d.ts +4 -0
  613. package/dist/types-ts4.5/async.d.ts +3 -0
  614. package/dist/types-ts4.5/commands/select-error-command/index.d.ts +5 -0
  615. package/dist/types-ts4.5/common/constants.d.ts +5 -0
  616. package/dist/types-ts4.5/common/messages.d.ts +7 -0
  617. package/dist/types-ts4.5/common/styled.d.ts +3 -0
  618. package/dist/types-ts4.5/hooks/use-editor-theme/index.d.ts +38 -0
  619. package/dist/types-ts4.5/hooks/use-editor-view-has-infos/index.d.ts +1 -0
  620. package/dist/types-ts4.5/hooks/use-editor-view-has-warnings/index.d.ts +1 -0
  621. package/dist/types-ts4.5/hooks/use-editor-view-is-invalid/index.d.ts +11 -0
  622. package/dist/types-ts4.5/i18n/cs.d.ts +61 -0
  623. package/dist/types-ts4.5/i18n/da.d.ts +61 -0
  624. package/dist/types-ts4.5/i18n/de.d.ts +61 -0
  625. package/dist/types-ts4.5/i18n/en.d.ts +61 -0
  626. package/dist/types-ts4.5/i18n/en_GB.d.ts +61 -0
  627. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +61 -0
  628. package/dist/types-ts4.5/i18n/es.d.ts +61 -0
  629. package/dist/types-ts4.5/i18n/et.d.ts +8 -0
  630. package/dist/types-ts4.5/i18n/fi.d.ts +61 -0
  631. package/dist/types-ts4.5/i18n/fr.d.ts +61 -0
  632. package/dist/types-ts4.5/i18n/hu.d.ts +61 -0
  633. package/dist/types-ts4.5/i18n/index.d.ts +24 -0
  634. package/dist/types-ts4.5/i18n/it.d.ts +61 -0
  635. package/dist/types-ts4.5/i18n/ja.d.ts +61 -0
  636. package/dist/types-ts4.5/i18n/ko.d.ts +61 -0
  637. package/dist/types-ts4.5/i18n/nb.d.ts +61 -0
  638. package/dist/types-ts4.5/i18n/nl.d.ts +61 -0
  639. package/dist/types-ts4.5/i18n/pl.d.ts +61 -0
  640. package/dist/types-ts4.5/i18n/pt_BR.d.ts +61 -0
  641. package/dist/types-ts4.5/i18n/pt_PT.d.ts +8 -0
  642. package/dist/types-ts4.5/i18n/ru.d.ts +61 -0
  643. package/dist/types-ts4.5/i18n/sk.d.ts +8 -0
  644. package/dist/types-ts4.5/i18n/sv.d.ts +61 -0
  645. package/dist/types-ts4.5/i18n/th.d.ts +61 -0
  646. package/dist/types-ts4.5/i18n/tr.d.ts +61 -0
  647. package/dist/types-ts4.5/i18n/uk.d.ts +61 -0
  648. package/dist/types-ts4.5/i18n/vi.d.ts +61 -0
  649. package/dist/types-ts4.5/i18n/zh.d.ts +61 -0
  650. package/dist/types-ts4.5/i18n/zh_TW.d.ts +61 -0
  651. package/dist/types-ts4.5/index.d.ts +5 -0
  652. package/dist/types-ts4.5/plugins/autocomplete/components/autocomplete/index.d.ts +4 -0
  653. package/dist/types-ts4.5/plugins/autocomplete/components/autocomplete-dropdown/index.d.ts +11 -0
  654. package/dist/types-ts4.5/plugins/autocomplete/components/autocomplete-dropdown/styled.d.ts +9 -0
  655. package/dist/types-ts4.5/plugins/autocomplete/components/autocomplete-option/glyphs.d.ts +10 -0
  656. package/dist/types-ts4.5/plugins/autocomplete/components/autocomplete-option/index.d.ts +10 -0
  657. package/dist/types-ts4.5/plugins/autocomplete/components/autocomplete-option/messages.d.ts +12 -0
  658. package/dist/types-ts4.5/plugins/autocomplete/components/autocomplete-option/styled.d.ts +11 -0
  659. package/dist/types-ts4.5/plugins/autocomplete/components/types.d.ts +38 -0
  660. package/dist/types-ts4.5/plugins/autocomplete/constants.d.ts +14 -0
  661. package/dist/types-ts4.5/plugins/autocomplete/index.d.ts +4 -0
  662. package/dist/types-ts4.5/plugins/autocomplete/messages.d.ts +7 -0
  663. package/dist/types-ts4.5/plugins/autocomplete/types.d.ts +1 -0
  664. package/dist/types-ts4.5/plugins/autocomplete/view.d.ts +19 -0
  665. package/dist/types-ts4.5/plugins/common/get-document-position/index.d.ts +9 -0
  666. package/dist/types-ts4.5/plugins/common/plugin-keymap.d.ts +7 -0
  667. package/dist/types-ts4.5/plugins/common/react-plugin-view.d.ts +48 -0
  668. package/dist/types-ts4.5/plugins/index.d.ts +5 -0
  669. package/dist/types-ts4.5/plugins/jql-ast/JQLEditorErrorStrategy.d.ts +17 -0
  670. package/dist/types-ts4.5/plugins/jql-ast/constants.d.ts +3 -0
  671. package/dist/types-ts4.5/plugins/jql-ast/error-handlers/CustomFieldRuleErrorHandler.d.ts +5 -0
  672. package/dist/types-ts4.5/plugins/jql-ast/error-handlers/ExpectedTokensErrorHandler.d.ts +11 -0
  673. package/dist/types-ts4.5/plugins/jql-ast/error-handlers/FieldPropertyIdErrorHandler.d.ts +6 -0
  674. package/dist/types-ts4.5/plugins/jql-ast/error-handlers/FieldRuleErrorHandler.d.ts +6 -0
  675. package/dist/types-ts4.5/plugins/jql-ast/error-handlers/FunctionArgumentRuleErrorHandler.d.ts +6 -0
  676. package/dist/types-ts4.5/plugins/jql-ast/error-handlers/OperandRuleErrorHandler.d.ts +9 -0
  677. package/dist/types-ts4.5/plugins/jql-ast/error-handlers/OperatorRuleErrorHandler.d.ts +6 -0
  678. package/dist/types-ts4.5/plugins/jql-ast/index.d.ts +7 -0
  679. package/dist/types-ts4.5/plugins/jql-ast/messages.d.ts +172 -0
  680. package/dist/types-ts4.5/plugins/jql-ast/utils.d.ts +4 -0
  681. package/dist/types-ts4.5/plugins/jql-syntax-highlighting/index.d.ts +4 -0
  682. package/dist/types-ts4.5/plugins/jql-syntax-highlighting/types.d.ts +5 -0
  683. package/dist/types-ts4.5/plugins/jql-syntax-highlighting/visitor.d.ts +19 -0
  684. package/dist/types-ts4.5/plugins/rich-inline-nodes/constants.d.ts +3 -0
  685. package/dist/types-ts4.5/plugins/rich-inline-nodes/index.d.ts +4 -0
  686. package/dist/types-ts4.5/plugins/rich-inline-nodes/nodes/index.d.ts +3 -0
  687. package/dist/types-ts4.5/plugins/rich-inline-nodes/nodes/types.d.ts +9 -0
  688. package/dist/types-ts4.5/plugins/rich-inline-nodes/nodes/user/index.d.ts +7 -0
  689. package/dist/types-ts4.5/plugins/rich-inline-nodes/nodes/user/styled.d.ts +7 -0
  690. package/dist/types-ts4.5/plugins/rich-inline-nodes/types.d.ts +2 -0
  691. package/dist/types-ts4.5/plugins/rich-inline-nodes/util/create-node-spec.d.ts +4 -0
  692. package/dist/types-ts4.5/plugins/rich-inline-nodes/util/react-node-view.d.ts +24 -0
  693. package/dist/types-ts4.5/plugins/rich-inline-nodes/util/replace-nodes-transaction.d.ts +3 -0
  694. package/dist/types-ts4.5/plugins/types.d.ts +16 -0
  695. package/dist/types-ts4.5/plugins/validation-tooltip/constants.d.ts +5 -0
  696. package/dist/types-ts4.5/plugins/validation-tooltip/index.d.ts +3 -0
  697. package/dist/types-ts4.5/plugins/validation-tooltip/view.d.ts +18 -0
  698. package/dist/types-ts4.5/schema/index.d.ts +28 -0
  699. package/dist/types-ts4.5/state/analytics/index.d.ts +9 -0
  700. package/dist/types-ts4.5/state/autocomplete/index.d.ts +4 -0
  701. package/dist/types-ts4.5/state/hydration/index.d.ts +3 -0
  702. package/dist/types-ts4.5/state/hydration/util.d.ts +23 -0
  703. package/dist/types-ts4.5/state/index.d.ts +796 -0
  704. package/dist/types-ts4.5/state/types.d.ts +242 -0
  705. package/dist/types-ts4.5/state/util.d.ts +16 -0
  706. package/dist/types-ts4.5/types.d.ts +5 -0
  707. package/dist/types-ts4.5/ui/error-boundary/index.d.ts +25 -0
  708. package/dist/types-ts4.5/ui/index.d.ts +4 -0
  709. package/dist/types-ts4.5/ui/intl-provider/index.d.ts +10 -0
  710. package/dist/types-ts4.5/ui/jql-editor/index.d.ts +13 -0
  711. package/dist/types-ts4.5/ui/jql-editor/types.d.ts +101 -0
  712. package/dist/types-ts4.5/ui/jql-editor-controls-content/base-expand-toggle/index.d.ts +10 -0
  713. package/dist/types-ts4.5/ui/jql-editor-controls-content/base-expand-toggle/styled.d.ts +2 -0
  714. package/dist/types-ts4.5/ui/jql-editor-controls-content/base-search/index.d.ts +9 -0
  715. package/dist/types-ts4.5/ui/jql-editor-controls-content/base-syntax-help/index.d.ts +9 -0
  716. package/dist/types-ts4.5/ui/jql-editor-controls-content/base-syntax-help/styled.d.ts +2 -0
  717. package/dist/types-ts4.5/ui/jql-editor-controls-content/expand-toggle/index.d.ts +2 -0
  718. package/dist/types-ts4.5/ui/jql-editor-controls-content/expand-toggle/messages.d.ts +17 -0
  719. package/dist/types-ts4.5/ui/jql-editor-controls-content/index.d.ts +2 -0
  720. package/dist/types-ts4.5/ui/jql-editor-controls-content/read-only-controls-content/index.d.ts +2 -0
  721. package/dist/types-ts4.5/ui/jql-editor-controls-content/search/index.d.ts +2 -0
  722. package/dist/types-ts4.5/ui/jql-editor-controls-content/search/messages.d.ts +7 -0
  723. package/dist/types-ts4.5/ui/jql-editor-controls-content/syntax-help/index.d.ts +2 -0
  724. package/dist/types-ts4.5/ui/jql-editor-controls-content/syntax-help/messages.d.ts +12 -0
  725. package/dist/types-ts4.5/ui/jql-editor-footer-content/index.d.ts +6 -0
  726. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-editor-help/index.d.ts +2 -0
  727. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-editor-help/messages.d.ts +17 -0
  728. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-editor-help/styled.d.ts +6 -0
  729. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/errors/index.d.ts +2 -0
  730. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/errors/messages.d.ts +7 -0
  731. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/format/index.d.ts +8 -0
  732. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/format/styled.d.ts +5 -0
  733. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/index.d.ts +3 -0
  734. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/infos/index.d.ts +3 -0
  735. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/warnings/index.d.ts +3 -0
  736. package/dist/types-ts4.5/ui/jql-editor-footer-content/jql-messages/warnings/messages.d.ts +17 -0
  737. package/dist/types-ts4.5/ui/jql-editor-layout/index.d.ts +64 -0
  738. package/dist/types-ts4.5/ui/jql-editor-layout/styled.d.ts +65 -0
  739. package/dist/types-ts4.5/ui/jql-editor-portal-provider/context.d.ts +4 -0
  740. package/dist/types-ts4.5/ui/jql-editor-portal-provider/index.d.ts +7 -0
  741. package/dist/types-ts4.5/ui/jql-editor-portal-provider/types.d.ts +38 -0
  742. package/dist/types-ts4.5/ui/jql-editor-view/index.d.ts +10 -0
  743. package/dist/types-ts4.5/ui/messages.d.ts +7 -0
  744. package/dist/types-ts4.5/ui/tooltip-tag/index.d.ts +2 -0
  745. package/dist/types-ts4.5/ui/tooltip-tag/styled.d.ts +2 -0
  746. package/dist/types-ts4.5/ui/types.d.ts +9 -0
  747. package/dist/types-ts4.5/utils/document-text/index.d.ts +9 -0
  748. package/dist/types-ts4.5/utils/split-text-by-new-line/index.d.ts +4 -0
  749. package/i18n/package.json +15 -0
  750. package/package.json +127 -0
@@ -0,0 +1,968 @@
1
+ import clamp from 'lodash/clamp';
2
+ import groupBy from 'lodash/groupBy';
3
+ import { createIntl } from 'react-intl-next';
4
+ import { createContainer, createHook, createSelector, createStore } from 'react-sweet-state';
5
+ import { merge } from 'rxjs/observable/merge';
6
+ import { tap } from 'rxjs/operators/tap';
7
+ import { v4 as uuidv4 } from 'uuid';
8
+ import { EditorView } from '@atlaskit/editor-prosemirror/view';
9
+ import { computeJqlInsights, isListOperator } from '@atlaskit/jql-ast';
10
+ import { JQLAutocomplete } from '@atlaskit/jql-autocomplete';
11
+ // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
12
+ import { gridSize } from '@atlaskit/theme/constants';
13
+ import { ActionSubject, ActionSubjectId, Action as AnalyticsAction, EventType } from '../analytics';
14
+ import { selectErrorCommand } from '../commands/select-error-command';
15
+ import { JQL_EDITOR_MAIN_ID } from '../common/constants';
16
+ import { defaultAutocompleteProvider, JQLAutocompletePluginKey } from '../plugins/autocomplete/constants';
17
+ import { getJastFromState } from '../plugins/jql-ast';
18
+ import { clipboardTextParser, clipboardTextSerializer, configurePlugins, defaultEditorState } from '../schema';
19
+ import { getNodeText } from '../utils/document-text';
20
+ import { onStartAutocompleteEvent } from './analytics';
21
+ import { sortOperators } from './autocomplete';
22
+ import { hydrateQuery } from './hydration';
23
+ import { getAutocompleteOptionId, getAutocompletePosition, getFieldNodes, getReplacePositionStart, sendDebugMessage, tokensToAutocompleteOptions } from './util';
24
+ const initialIntl = createIntl({
25
+ locale: 'en'
26
+ });
27
+ const defaultAutocompleteOptions = {
28
+ tokens: [],
29
+ fields: [],
30
+ operators: [],
31
+ values: [],
32
+ functions: []
33
+ };
34
+ export const initialState = {
35
+ controlledQuery: '',
36
+ query: '',
37
+ externalMessages: [],
38
+ isSearching: undefined,
39
+ editorState: defaultEditorState,
40
+ editorView: undefined,
41
+ intlRef: {
42
+ current: initialIntl
43
+ },
44
+ autocompleteProvider: defaultAutocompleteProvider,
45
+ idPrefix: '',
46
+ editorViewHasFocus: false,
47
+ editorViewBlurTimeout: null,
48
+ lineNumbersVisible: false,
49
+ jqlError: null,
50
+ autocomplete: {
51
+ // Keep autocomplete closed until user modifies query
52
+ shouldStayClosedOnNextUpdate: true,
53
+ shouldStayClosed: true,
54
+ selectedOptionId: undefined,
55
+ loading: false,
56
+ options: defaultAutocompleteOptions,
57
+ subscription: null,
58
+ analyticsSubscription: null,
59
+ container: null,
60
+ offsetParentRect: undefined,
61
+ replacePositionStart: 0
62
+ },
63
+ enableRichInlineNodes: false,
64
+ hydratedValues: {},
65
+ resizeObserver: undefined,
66
+ editorViewContainer: undefined,
67
+ editorViewContainerRect: undefined,
68
+ editorViewContainerScroll: 0,
69
+ onDebugUnsafeMessage: undefined
70
+ };
71
+
72
+ /**
73
+ * Line numbers should be shown if there are more than 1 paragraph blocks in the document.
74
+ */
75
+ const isLineNumbersVisible = editorState => editorState.doc.childCount > 1;
76
+ export const actions = {
77
+ onEditorViewBlur: () => ({
78
+ setState,
79
+ dispatch
80
+ }) => {
81
+ // Set editorViewHasFocus within a timeout, to handle the scenario where a dropdown option is clicked. Without the
82
+ // timeout, a blur event would be fired for the editor on mousedown, which would cause the dropdown to be hidden
83
+ // before the click event is fired.
84
+ const editorViewBlurTimeout = window.setTimeout(() => {
85
+ setState({
86
+ editorViewHasFocus: false
87
+ });
88
+ dispatch(actions.setSelectedAutocompleteOptionId(undefined));
89
+ });
90
+ setState({
91
+ editorViewBlurTimeout
92
+ });
93
+ },
94
+ onEditorViewFocus: event => ({
95
+ setState,
96
+ getState
97
+ }, {
98
+ onFocus
99
+ }) => {
100
+ const {
101
+ autocomplete,
102
+ editorViewBlurTimeout,
103
+ editorViewHasFocus
104
+ } = getState();
105
+ editorViewBlurTimeout && clearTimeout(editorViewBlurTimeout);
106
+ if (!editorViewHasFocus) {
107
+ var _autocomplete$contain, _autocomplete$contain2;
108
+ setState({
109
+ autocomplete: {
110
+ ...autocomplete,
111
+ // This is a performance optimization to avoid querying this rect on every autocomplete dropdown render.
112
+ // We assume that autocomplete offset parent rect is not going to change while user interacts with the editor,
113
+ // so we only recompute this on focus.
114
+ offsetParentRect: (_autocomplete$contain = autocomplete.container) === null || _autocomplete$contain === void 0 ? void 0 : (_autocomplete$contain2 = _autocomplete$contain.offsetParent) === null || _autocomplete$contain2 === void 0 ? void 0 : _autocomplete$contain2.getBoundingClientRect()
115
+ },
116
+ editorViewHasFocus: true
117
+ });
118
+ onFocus && onFocus(event);
119
+ }
120
+ },
121
+ openAutocompleteOnNextUpdate: () => ({
122
+ setState,
123
+ getState
124
+ }) => {
125
+ const autocompleteState = getState().autocomplete;
126
+ setState({
127
+ autocomplete: {
128
+ ...autocompleteState,
129
+ // Schedule open for next update of autocomplete suggestions so dropdown doesn't incur in layout shifts
130
+ shouldStayClosedOnNextUpdate: false
131
+ }
132
+ });
133
+ },
134
+ closeAutocomplete: () => ({
135
+ setState,
136
+ getState
137
+ }) => {
138
+ const autocompleteState = getState().autocomplete;
139
+ setState({
140
+ autocomplete: {
141
+ ...autocompleteState,
142
+ // Closing autocomplete can be done immediately as it won't incur in layout shifts
143
+ shouldStayClosed: true,
144
+ shouldStayClosedOnNextUpdate: true
145
+ }
146
+ });
147
+ },
148
+ setSelectedAutocompleteOptionId: selectedOptionId => ({
149
+ setState,
150
+ getState
151
+ }) => {
152
+ const autocompleteState = getState().autocomplete;
153
+ setState({
154
+ autocomplete: {
155
+ ...autocompleteState,
156
+ selectedOptionId
157
+ }
158
+ });
159
+ },
160
+ getAutocompleteSuggestions: editorState => ({
161
+ getState,
162
+ dispatch
163
+ }) => {
164
+ // No need to process suggestions if autocomplete is going to stay closed on next update
165
+ if (!getState().autocomplete.shouldStayClosedOnNextUpdate) {
166
+ const {
167
+ from,
168
+ to
169
+ } = editorState.selection;
170
+ const text = getNodeText(editorState.doc, 0, editorState.doc.content.size);
171
+ const textBeforeSelectionStart = getNodeText(editorState.doc, 0, from);
172
+ const textBeforeSelectionEnd = getNodeText(editorState.doc, 0, to);
173
+ const textPositionStart = textBeforeSelectionStart.length;
174
+ const textPositionStop = textBeforeSelectionEnd.length;
175
+ const autocomplete = JQLAutocomplete.fromText(text);
176
+ const suggestions = autocomplete.getJQLSuggestionsForCaretPosition([textPositionStart, textPositionStop]);
177
+ const {
178
+ rules,
179
+ tokens
180
+ } = suggestions;
181
+
182
+ // In some situations (e.g. "issuetype in "), autocomplete expects a list, but we want to display operands
183
+ // to the user as a shortcut – so they don't have to manually type the opening parenthesis. There is logic
184
+ // on autocomplete option selection that will auto-insert this opening parenthesis.
185
+ if (rules.list && rules.list.context && !rules.list.context.isList) {
186
+ if (!tokens.values.includes('EMPTY')) {
187
+ tokens.values.push('EMPTY');
188
+ tokens.context = rules.list.context;
189
+ }
190
+ if (!rules.value) {
191
+ rules.value = rules.list;
192
+ }
193
+ if (!rules.function) {
194
+ rules.function = rules.list;
195
+ }
196
+ }
197
+ dispatch(actions.getAutocompleteOptions(suggestions));
198
+ }
199
+ },
200
+ getAutocompleteOptions: suggestions => ({
201
+ setState,
202
+ getState,
203
+ dispatch
204
+ }) => {
205
+ const {
206
+ autocomplete,
207
+ editorView
208
+ } = getState();
209
+ const {
210
+ shouldStayClosedOnNextUpdate
211
+ } = autocomplete;
212
+ setState({
213
+ autocomplete: {
214
+ ...autocomplete,
215
+ options: {
216
+ ...defaultAutocompleteOptions,
217
+ tokens: tokensToAutocompleteOptions(suggestions.tokens)
218
+ },
219
+ // Set replace position start in the same update as initial options to avoid visible layout shifts
220
+ ...(editorView && {
221
+ replacePositionStart: getReplacePositionStart(suggestions)
222
+ }),
223
+ // Update autocomplete visibility in the same update as initial options to avoid visible layout shifts
224
+ shouldStayClosed: shouldStayClosedOnNextUpdate
225
+ }
226
+ });
227
+ dispatch(actions.cancelSubscription());
228
+ dispatch(actions.callAutocompleteProviders(suggestions));
229
+ },
230
+ appendOptionsForObservable: (key, observable, rule, type) => ({
231
+ getState,
232
+ setState
233
+ }) => {
234
+ const {
235
+ context,
236
+ matchedText,
237
+ replacePosition
238
+ } = rule;
239
+ return observable.pipe(tap(data => {
240
+ const nextSuggestions = data.map(option => ({
241
+ ...option,
242
+ context,
243
+ matchedText,
244
+ replacePosition,
245
+ type,
246
+ id: getAutocompleteOptionId(option.value)
247
+ }));
248
+ const {
249
+ autocomplete
250
+ } = getState();
251
+ const {
252
+ options
253
+ } = autocomplete;
254
+ setState({
255
+ autocomplete: {
256
+ ...autocomplete,
257
+ options: {
258
+ ...options,
259
+ [key]: options[key].concat(nextSuggestions)
260
+ }
261
+ }
262
+ });
263
+ }));
264
+ },
265
+ cancelSubscription: () => ({
266
+ setState,
267
+ getState
268
+ }) => {
269
+ const autocompleteState = getState().autocomplete;
270
+ const {
271
+ subscription,
272
+ analyticsSubscription
273
+ } = autocompleteState;
274
+ // Cancel any in-flight subscriptions
275
+ subscription && subscription.unsubscribe();
276
+ analyticsSubscription && analyticsSubscription.unsubscribe();
277
+ setState({
278
+ autocomplete: {
279
+ ...autocompleteState,
280
+ subscription: null,
281
+ analyticsSubscription: null,
282
+ // Setting loading back to false on unsubscribe as this won't call error or complete callbacks
283
+ // in the observer, and we don't seem to have any other way to handle this from the observer itself
284
+ loading: false
285
+ }
286
+ });
287
+ },
288
+ setLoading: loading => ({
289
+ setState,
290
+ getState
291
+ }) => {
292
+ const {
293
+ autocomplete
294
+ } = getState();
295
+ setState({
296
+ autocomplete: {
297
+ ...autocomplete,
298
+ loading
299
+ }
300
+ });
301
+ },
302
+ setAutocompleteOptions: options => ({
303
+ setState,
304
+ getState
305
+ }) => {
306
+ const autocompleteState = getState().autocomplete;
307
+ setState({
308
+ autocomplete: {
309
+ ...autocompleteState,
310
+ options
311
+ }
312
+ });
313
+ },
314
+ setAutocompleteContainer: container => ({
315
+ setState,
316
+ getState
317
+ }) => {
318
+ var _container$offsetPare;
319
+ const autocompleteState = getState().autocomplete;
320
+ setState({
321
+ autocomplete: {
322
+ ...autocompleteState,
323
+ container,
324
+ offsetParentRect: container === null || container === void 0 ? void 0 : (_container$offsetPare = container.offsetParent) === null || _container$offsetPare === void 0 ? void 0 : _container$offsetPare.getBoundingClientRect()
325
+ }
326
+ });
327
+ },
328
+ callAutocompleteProviders: ({
329
+ rules,
330
+ tokens
331
+ }) => ({
332
+ getState,
333
+ setState,
334
+ dispatch
335
+ }) => {
336
+ const {
337
+ onFields,
338
+ onOperators,
339
+ onValues,
340
+ onFunctions
341
+ } = getState().autocompleteProvider;
342
+ const optionTypes = [];
343
+ const observables = [];
344
+ if (rules.value || rules.function ||
345
+ // If EMPTY is suggested as a token, we are also in "operand mode" and we don't want to call other providers
346
+ // e.g. "assignee is " will return "EMPTY" token and "operator" rule as suggestions (because of "is not")
347
+ tokens.values.includes('EMPTY')) {
348
+ if (rules.value) {
349
+ var _rules$value$context;
350
+ const values$ = onValues(rules.value.matchedText, (_rules$value$context = rules.value.context) === null || _rules$value$context === void 0 ? void 0 : _rules$value$context.field);
351
+ optionTypes.push('values');
352
+ observables.push(dispatch(actions.appendOptionsForObservable('values', values$, rules.value, 'value')));
353
+ }
354
+ if (rules.function) {
355
+ var _rules$function$conte, _rules$function$conte2;
356
+ const functions$ = onFunctions(rules.function.matchedText, (_rules$function$conte = rules.function.context) === null || _rules$function$conte === void 0 ? void 0 : _rules$function$conte.field, (_rules$function$conte2 = rules.function.context) !== null && _rules$function$conte2 !== void 0 && _rules$function$conte2.operator ? isListOperator(rules.function.context.operator) : false);
357
+ optionTypes.push('functions');
358
+ observables.push(dispatch(actions.appendOptionsForObservable('functions', functions$, rules.function, 'function')));
359
+ }
360
+ } else if (rules.operator) {
361
+ const {
362
+ context,
363
+ matchedText
364
+ } = rules.operator;
365
+ const operators$ = sortOperators(onOperators(matchedText, context === null || context === void 0 ? void 0 : context.field));
366
+ optionTypes.push('operators');
367
+ observables.push(dispatch(actions.appendOptionsForObservable('operators', operators$, rules.operator, 'operator')));
368
+ } else if (rules.field) {
369
+ const {
370
+ context,
371
+ matchedText
372
+ } = rules.field;
373
+ const fields$ = onFields(matchedText, context === null || context === void 0 ? void 0 : context.clause);
374
+ optionTypes.push('fields');
375
+ observables.push(dispatch(actions.appendOptionsForObservable('fields', fields$, rules.field, 'field')));
376
+ }
377
+ if (observables.length === 0) {
378
+ return;
379
+ }
380
+ const {
381
+ analyticsSubscription,
382
+ onStopAutocompleteEvent
383
+ } = dispatch(onStartAutocompleteEvent());
384
+ dispatch(actions.setLoading(true));
385
+ let hasOptions = false;
386
+ const subscription = merge(...observables).subscribe({
387
+ next() {
388
+ hasOptions = true;
389
+ },
390
+ error() {
391
+ onStopAutocompleteEvent(false, optionTypes, hasOptions);
392
+ dispatch(actions.setLoading(false));
393
+ },
394
+ complete() {
395
+ onStopAutocompleteEvent(true, optionTypes, hasOptions);
396
+ dispatch(actions.setLoading(false));
397
+ }
398
+ });
399
+ const {
400
+ autocomplete
401
+ } = getState();
402
+ setState({
403
+ autocomplete: {
404
+ ...autocomplete,
405
+ subscription,
406
+ analyticsSubscription
407
+ }
408
+ });
409
+ },
410
+ updateValidationState: () => ({
411
+ getState,
412
+ setState
413
+ }) => {
414
+ const {
415
+ editorState
416
+ } = getState();
417
+ const jast = getJastFromState(editorState);
418
+ setState({
419
+ jqlError: jast.errors.length > 0 ? jast.errors[0] : null
420
+ });
421
+ },
422
+ initialiseEditorState: () => ({
423
+ dispatch
424
+ }, {
425
+ query
426
+ }) => {
427
+ // Configure plugins that don't require portal rendering (these will be reconfigured later when the editor view is mounted).
428
+ dispatch(actions.configurePlugins(undefined));
429
+ dispatch(actions.resetEditorState(query, false));
430
+ },
431
+ configurePlugins: portalActions => ({
432
+ getState,
433
+ setState,
434
+ dispatch
435
+ }, {
436
+ intlRef,
437
+ onSearch
438
+ }) => {
439
+ const state = getState();
440
+ let {
441
+ editorState
442
+ } = state;
443
+ const {
444
+ enableRichInlineNodes
445
+ } = state;
446
+
447
+ // Initialise our editor using inline functions which will delegate to our sweet state actions. This prevents
448
+ // stale references when our functions are invoked by Prosemirror.
449
+ const onSearchCommand = (pmState, pmDispatch, pmView) =>
450
+ // Set keyboardShortcut arg to true as this action is invoked by the 'Enter' keyboard command
451
+ dispatch(actions.onSearchCommand(pmState, pmDispatch, pmView, true));
452
+ editorState = configurePlugins(editorState, onSearch ? onSearchCommand : undefined, intlRef, getScopedId(getState(), JQL_EDITOR_MAIN_ID), portalActions, enableRichInlineNodes);
453
+ setState({
454
+ editorState
455
+ });
456
+ },
457
+ onApplyEditorTransaction: transaction => ({
458
+ getState,
459
+ setState,
460
+ dispatch
461
+ }, {
462
+ onUpdate
463
+ }) => {
464
+ const {
465
+ query,
466
+ editorState,
467
+ editorView,
468
+ enableRichInlineNodes
469
+ } = getState();
470
+ const oldSelection = editorState.selection;
471
+ const updatedQuery = getNodeText(transaction.doc, 0, transaction.doc.content.size);
472
+ const updatedEditorState = editorState.apply(transaction);
473
+
474
+ // Update state in our editor view
475
+ if (editorView) {
476
+ editorView.updateState(updatedEditorState);
477
+ }
478
+ setState({
479
+ query: updatedQuery,
480
+ editorState: updatedEditorState,
481
+ lineNumbersVisible: isLineNumbersVisible(updatedEditorState)
482
+ });
483
+
484
+ // Hydrate query if transaction has requested it or a query fragment has been pasted
485
+ if (enableRichInlineNodes && (transaction.getMeta('hydrate') || transaction.getMeta('paste'))) {
486
+ void dispatch(hydrateQuery());
487
+ }
488
+ if (query !== updatedQuery && !transaction.getMeta(JQLAutocompletePluginKey)) {
489
+ // Open autocomplete on next update if query has changed and update wasn't triggered internally
490
+ dispatch(actions.openAutocompleteOnNextUpdate());
491
+ }
492
+ if (query !== updatedQuery || !updatedEditorState.selection.eq(oldSelection)) {
493
+ // Get autocomplete suggestions for new editor state
494
+ dispatch(actions.getAutocompleteSuggestions(updatedEditorState));
495
+ }
496
+ if (query !== updatedQuery) {
497
+ // Only dispatch update event if query has changed
498
+ onUpdate && onUpdate(updatedQuery, getJastFromState(updatedEditorState));
499
+ }
500
+ },
501
+ resetEditorState: (query, addToHistory = true) => ({
502
+ getState,
503
+ dispatch
504
+ }) => {
505
+ const {
506
+ editorState,
507
+ enableRichInlineNodes
508
+ } = getState();
509
+
510
+ // Use the clipboard text parser to get our slice to ensure new lines are split into separate paragraphs
511
+ const slice = clipboardTextParser(query, editorState.doc.resolve(0));
512
+ const resetQueryTransaction = editorState.tr.setMeta('addToHistory', addToHistory).replace(0, editorState.doc.content.size, slice);
513
+ dispatch(actions.onApplyEditorTransaction(resetQueryTransaction));
514
+ dispatch(actions.updateValidationState());
515
+ if (enableRichInlineNodes) {
516
+ void dispatch(hydrateQuery());
517
+ }
518
+ },
519
+ initialiseEditorView: (editorViewNode, attributes, portalActions) => ({
520
+ getState,
521
+ setState,
522
+ dispatch
523
+ }, {
524
+ onEditorMounted
525
+ }) => {
526
+ // Configure plugins that require portal rendering (i.e. autocomplete and rich inline nodes).
527
+ dispatch(actions.configurePlugins(portalActions));
528
+ const {
529
+ editorState,
530
+ resizeObserver
531
+ } = getState();
532
+ const editorView = new EditorView(editorViewNode, {
533
+ state: editorState,
534
+ dispatchTransaction: transaction => dispatch(actions.onApplyEditorTransaction(transaction)),
535
+ clipboardTextSerializer,
536
+ clipboardTextParser,
537
+ attributes
538
+ });
539
+
540
+ // Unobserve previously observed elements
541
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
542
+
543
+ // Observe size changes to update rect
544
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(editorViewNode);
545
+ setState({
546
+ editorView
547
+ });
548
+ onEditorMounted && onEditorMounted();
549
+ },
550
+ updateEditorView: attributes => ({
551
+ getState
552
+ }) => {
553
+ const {
554
+ editorView,
555
+ onDebugUnsafeMessage,
556
+ editorState
557
+ } = getState();
558
+ if (editorView) {
559
+ try {
560
+ editorView.update({
561
+ ...editorView.props,
562
+ attributes
563
+ });
564
+ } catch (error) {
565
+ // We've observed several errors from this step but we're unsure how to reproduce it. It seems to be some type of
566
+ // race condition whether the view is being updated with a mismatched selection in the UI. We'll catch the error
567
+ // so the UI doesn't break trying to change attributes and fire a callback to debug the error.
568
+ const message = `Error occurred trying to update attributes on the editor view with the message: ${error instanceof Error ? error.message : String(error)}`;
569
+ const attributeDiff = Object.keys(attributes).reduce((result, key) => {
570
+ var _editorView$props$att;
571
+ const prevAttr = // @ts-ignore
572
+ (_editorView$props$att = editorView.props.attributes) === null || _editorView$props$att === void 0 ? void 0 : _editorView$props$att[key];
573
+ const nextAttr = attributes[key];
574
+ if (nextAttr !== prevAttr) {
575
+ // @ts-ignore
576
+ result[`prev_${key}`] = prevAttr;
577
+ // @ts-ignore
578
+ result[`next_${key}`] = nextAttr;
579
+ }
580
+ return result;
581
+ }, {});
582
+ sendDebugMessage(message, editorView, editorState, onDebugUnsafeMessage, {
583
+ stack: error instanceof Error ? error.stack : '',
584
+ ...attributeDiff
585
+ });
586
+ }
587
+ }
588
+ },
589
+ setEditorViewContainer: editorViewContainer => ({
590
+ setState
591
+ }) => {
592
+ setState({
593
+ editorViewContainer,
594
+ // Set initial rect
595
+ editorViewContainerRect: editorViewContainer === null || editorViewContainer === void 0 ? void 0 : editorViewContainer.getBoundingClientRect()
596
+ });
597
+ },
598
+ setEditorViewContainerScroll: scroll => ({
599
+ setState
600
+ }) => {
601
+ setState({
602
+ editorViewContainerScroll: scroll
603
+ });
604
+ },
605
+ onSearch: () => ({
606
+ getState,
607
+ dispatch
608
+ }) => {
609
+ const {
610
+ editorState,
611
+ editorView
612
+ } = getState();
613
+ dispatch(
614
+ // Set keyboardShortcut arg to false as this action is invoked directly by the search UI button
615
+ actions.onSearchCommand(editorState, editorView === null || editorView === void 0 ? void 0 : editorView.dispatch, editorView, false));
616
+ },
617
+ onSearchCommand: (pmState, pmDispatch, pmView, keyboardShortcut) => ({
618
+ getState,
619
+ dispatch
620
+ }, {
621
+ onSearch,
622
+ createAndFireAnalyticsEvent
623
+ }) => {
624
+ if (!onSearch) {
625
+ return true;
626
+ }
627
+ const jast = getJastFromState(pmState);
628
+ const {
629
+ query
630
+ } = getState();
631
+ onSearch(query, jast);
632
+ createAndFireAnalyticsEvent({
633
+ action: AnalyticsAction.CLICKED,
634
+ actionSubject: ActionSubject.BUTTON,
635
+ actionSubjectId: ActionSubjectId.EDITOR_SEARCH,
636
+ eventType: EventType.UI,
637
+ attributes: {
638
+ ...computeJqlInsights(jast),
639
+ keyboardShortcut
640
+ }
641
+ });
642
+
643
+ // Update JQL validation state
644
+ dispatch(actions.updateValidationState());
645
+
646
+ // Invoke command to select any errors in the query
647
+ selectErrorCommand(pmState, pmDispatch, pmView);
648
+ return true;
649
+ },
650
+ externalErrorMessageViewed: () => ({
651
+ getState
652
+ }, {
653
+ createAndFireAnalyticsEvent,
654
+ externalMessages
655
+ }) => {
656
+ const {
657
+ editorView,
658
+ onDebugUnsafeMessage,
659
+ jqlError,
660
+ editorState
661
+ } = getState();
662
+ const externalErrors = externalMessages.filter(({
663
+ type
664
+ }) => type === 'error');
665
+ if (externalErrors.length > 0) {
666
+ const hasClientError = jqlError !== null;
667
+ const initialValue = {
668
+ hasClientError,
669
+ semanticErrorCount: 0,
670
+ syntaxErrorCount: 0,
671
+ syntaxErrorTypes: []
672
+ };
673
+ const attributes = externalErrors.reduce((result, {
674
+ errorType
675
+ }) => {
676
+ if (typeof errorType === 'string') {
677
+ result.syntaxErrorCount++;
678
+ result.syntaxErrorTypes.push(errorType);
679
+ } else {
680
+ result.semanticErrorCount++;
681
+ }
682
+ return result;
683
+ }, initialValue);
684
+ attributes.syntaxErrorTypes.sort();
685
+ createAndFireAnalyticsEvent({
686
+ action: AnalyticsAction.VIEWED,
687
+ actionSubject: ActionSubject.ERROR_MESSAGE,
688
+ actionSubjectId: ActionSubjectId.JQL_RESULT,
689
+ eventType: EventType.UI,
690
+ attributes
691
+ });
692
+
693
+ // If we have JQL errors which have been externally provided but no errors in our JAST, then we may have gaps in
694
+ // our client side validation. Let's monitor any errors we weren't expecting.
695
+ if (editorView && !hasClientError && attributes.syntaxErrorCount > 0) {
696
+ const message = 'External JQL syntax error is shown without a client error.';
697
+ sendDebugMessage(message, editorView, editorState, onDebugUnsafeMessage, {
698
+ syntaxErrorTypes: attributes.syntaxErrorTypes.join(',')
699
+ });
700
+ }
701
+ }
702
+ },
703
+ createAndFireAnalyticsEvent: payload => (_, {
704
+ createAndFireAnalyticsEvent
705
+ }) => {
706
+ createAndFireAnalyticsEvent(payload);
707
+ }
708
+ };
709
+ const Store = createStore({
710
+ name: 'jql-editor',
711
+ initialState,
712
+ actions
713
+ });
714
+ export const useStoreActions = createHook(Store, {
715
+ selector: null
716
+ });
717
+ export const useEditorState = createHook(Store, {
718
+ selector: state => state.editorState
719
+ });
720
+ export const useEditorView = createHook(Store, {
721
+ selector: state => state.editorView
722
+ });
723
+ export const useIsSearching = createHook(Store, {
724
+ selector: state => state.isSearching
725
+ });
726
+ export const useIntl = createHook(Store, {
727
+ selector: state => state.intlRef.current
728
+ });
729
+ export const useAutocompleteProvider = createHook(Store, {
730
+ selector: state => state.autocompleteProvider
731
+ });
732
+ const getScopedId = (state, idSuffix) => `${state.idPrefix}_${idSuffix}`;
733
+ export const useScopedId = createHook(Store, {
734
+ selector: getScopedId
735
+ });
736
+ export const useIdPrefix = createHook(Store, {
737
+ selector: state => state.idPrefix
738
+ });
739
+ export const useEditorViewHasFocus = createHook(Store, {
740
+ selector: ({
741
+ editorViewHasFocus
742
+ }) => editorViewHasFocus
743
+ });
744
+ export const useLineNumbersVisible = createHook(Store, {
745
+ selector: ({
746
+ lineNumbersVisible
747
+ }) => lineNumbersVisible
748
+ });
749
+ const getAutocomplete = state => state.autocomplete;
750
+ export const useAutocomplete = createHook(Store, {
751
+ selector: getAutocomplete
752
+ });
753
+
754
+ /**
755
+ * Returns the JQL error from the last query that was searched, or {@code null} if there were none.
756
+ */
757
+ export const useJqlError = createHook(Store, {
758
+ selector: state => state.jqlError
759
+ });
760
+
761
+ /**
762
+ * Returns whether there are any JQL errors in the current Prosemirror editor state.
763
+ */
764
+ export const useEditorStateHasJqlError = createHook(Store, {
765
+ selector: state => getJastFromState(state.editorState).errors.length > 0
766
+ });
767
+ export const useExternalMessages = createHook(Store, {
768
+ selector: state => {
769
+ const byType = groupBy(state.externalMessages, 'type');
770
+ return {
771
+ errors: byType.error || [],
772
+ warnings: byType.warning || [],
773
+ infos: byType.info || []
774
+ };
775
+ }
776
+ });
777
+ const memoizedAutocompleteOptionsSelector = createSelector(state => state.autocomplete.options.tokens, state => state.autocomplete.options.functions, state => state.autocomplete.options.values, state => state.autocomplete.options.operators, state => state.autocomplete.options.fields, (tokens, functions, values, operators, fields) => [...tokens, ...functions, ...values, ...operators, ...fields]);
778
+ export const useAutocompleteOptions = createHook(Store, {
779
+ selector: memoizedAutocompleteOptionsSelector
780
+ });
781
+ const autocompleteIsLoadingSelector = state => state.autocomplete.loading;
782
+ export const useAutocompleteLoading = createHook(Store, {
783
+ selector: autocompleteIsLoadingSelector
784
+ });
785
+ const memoizedAutocompleteIsOpenSelector = createSelector(state => state.editorViewHasFocus, memoizedAutocompleteOptionsSelector, autocompleteIsLoadingSelector, state => state.autocomplete.shouldStayClosed, (hasFocus, options, loading, shouldStayClosed) => !shouldStayClosed && hasFocus && (options.length > 0 || loading));
786
+ export const useAutocompleteIsOpen = createHook(Store, {
787
+ selector: memoizedAutocompleteIsOpenSelector
788
+ });
789
+ export const useAutocompletePosition = createHook(Store, {
790
+ selector: state => {
791
+ var _offsetParentRect$lef, _offsetParentRect$top;
792
+ const {
793
+ autocomplete,
794
+ editorView,
795
+ editorViewContainerRect,
796
+ onDebugUnsafeMessage,
797
+ editorState
798
+ } = state;
799
+ const {
800
+ replacePositionStart,
801
+ offsetParentRect
802
+ } = autocomplete;
803
+ if (!editorView) {
804
+ // Should never™ happen
805
+ return {
806
+ top: 0,
807
+ left: 0
808
+ };
809
+ }
810
+ let docTop;
811
+ let docLeft;
812
+ try {
813
+ const autocompletePosition = getAutocompletePosition(editorView, replacePositionStart);
814
+ docTop = autocompletePosition.top;
815
+ docLeft = autocompletePosition.left;
816
+ } catch (error) {
817
+ var _editorViewContainerR, _editorViewContainerR2;
818
+ // We've observed several 'Invalid position: x' errors from this step but we're unsure how to reproduce it. It
819
+ // seems to be some type of race condition whether the view is being updated with a mismatched selection in the
820
+ // UI. We'll catch the error so the UI doesn't break and fire a callback to debug the error.
821
+ const message = `Error occurred trying to get autocomplete position with the message: ${error instanceof Error ? error.message : String(error)}`;
822
+ sendDebugMessage(message, editorView, editorState, onDebugUnsafeMessage, {
823
+ stack: error instanceof Error ? error.stack : ''
824
+ });
825
+
826
+ // Fallback to showing autocomplete at bottom left of editor view if we were unable to calculate the position.
827
+ docTop = (_editorViewContainerR = editorViewContainerRect === null || editorViewContainerRect === void 0 ? void 0 : editorViewContainerRect.bottom) !== null && _editorViewContainerR !== void 0 ? _editorViewContainerR : 0;
828
+ docLeft = (_editorViewContainerR2 = editorViewContainerRect === null || editorViewContainerRect === void 0 ? void 0 : editorViewContainerRect.left) !== null && _editorViewContainerR2 !== void 0 ? _editorViewContainerR2 : 0;
829
+ }
830
+
831
+ // In some situations, we can get an autocompleteTop that exceeds editor view container top/bottom boundaries,
832
+ // e.g. when editor content overflows editor view container and selection start/end is not visible. To prevent
833
+ // situations where autocomplete dropdown greatly overflows editor view container, we clamp this position.
834
+ // We also offset top position returned by ProseMirror to ensure autocomplete is positioned consistently at
835
+ // a grid size distance from editor input bottom in all situations where autocomplete is outside of the editor.
836
+ const autocompleteTop = docTop + gridSize();
837
+ const viewportTop = editorViewContainerRect !== undefined ? clamp(autocompleteTop, editorViewContainerRect.top, editorViewContainerRect.bottom) : autocompleteTop;
838
+ const left = docLeft - ((_offsetParentRect$lef = offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.left) !== null && _offsetParentRect$lef !== void 0 ? _offsetParentRect$lef : 0);
839
+ const top = viewportTop - ((_offsetParentRect$top = offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.top) !== null && _offsetParentRect$top !== void 0 ? _offsetParentRect$top : 0);
840
+ return {
841
+ // Left position from ProseMirror - autocomplete option padding so texts are vertically aligned
842
+ left: left - 5 / 4 * gridSize(),
843
+ top: top + gridSize()
844
+ };
845
+ }
846
+ });
847
+ export const useHydratedValue = createHook(Store, {
848
+ selector: (state, {
849
+ id,
850
+ fieldName
851
+ }) => {
852
+ var _state$hydratedValues;
853
+ return (_state$hydratedValues = state.hydratedValues[fieldName]) === null || _state$hydratedValues === void 0 ? void 0 : _state$hydratedValues.get(id);
854
+ }
855
+ });
856
+ export const useHydratedUser = createHook(Store, {
857
+ selector: (state, {
858
+ id,
859
+ fieldName
860
+ }) => {
861
+ var _state$hydratedValues2;
862
+ const user = (_state$hydratedValues2 = state.hydratedValues[fieldName]) === null || _state$hydratedValues2 === void 0 ? void 0 : _state$hydratedValues2.get(id);
863
+ return user && user.type === 'user' ? user : undefined;
864
+ }
865
+ });
866
+ export const useHydratedDeprecations = createHook(Store, {
867
+ selector: state => {
868
+ const ast = getJastFromState(state.editorState);
869
+ const fieldsInQuery = getFieldNodes(ast);
870
+ const toReturn = [];
871
+ Object.entries(state.hydratedValues).forEach(([fieldName]) => {
872
+ var _state$hydratedValues3;
873
+ (_state$hydratedValues3 = state.hydratedValues[fieldName]) === null || _state$hydratedValues3 === void 0 ? void 0 : _state$hydratedValues3.forEach(value => {
874
+ if (value.type === 'deprecated-field') {
875
+ if (fieldsInQuery.has(value.id.toLowerCase())) {
876
+ toReturn.push(value);
877
+ }
878
+ }
879
+ });
880
+ });
881
+ return toReturn;
882
+ }
883
+ });
884
+ export const useRichInlineNodesEnabled = createHook(Store, {
885
+ selector: state => state.enableRichInlineNodes
886
+ });
887
+ export const useOnSyntaxHelp = createHook(Store, {
888
+ selector: state => state.onSyntaxHelp
889
+ });
890
+ export const EditorStateContainer = createContainer(Store, {
891
+ onInit: () => ({
892
+ getState,
893
+ setState,
894
+ dispatch
895
+ }, {
896
+ intlRef,
897
+ query,
898
+ isSearching,
899
+ autocompleteProvider,
900
+ externalMessages,
901
+ enableRichInlineNodes,
902
+ onDebugUnsafeMessage,
903
+ onSyntaxHelp
904
+ }) => {
905
+ setState({
906
+ controlledQuery: query,
907
+ query,
908
+ externalMessages,
909
+ isSearching,
910
+ intlRef,
911
+ autocompleteProvider,
912
+ enableRichInlineNodes,
913
+ // Generate unique identifiers for each JQL editor instance
914
+ idPrefix: uuidv4(),
915
+ resizeObserver: window.ResizeObserver !== undefined ? new window.ResizeObserver(() => {
916
+ var _getState$editorViewC;
917
+ setState({
918
+ // We assume editor view container is the only element using the observer to avoid extra processing.
919
+ // If this instance is reused to observe more elements (which is a good practice to optimize performance),
920
+ // we would need to adjust this logic.
921
+ editorViewContainerRect: (_getState$editorViewC = getState().editorViewContainer) === null || _getState$editorViewC === void 0 ? void 0 : _getState$editorViewC.getBoundingClientRect()
922
+ });
923
+ }) : undefined,
924
+ onDebugUnsafeMessage,
925
+ onSyntaxHelp
926
+ });
927
+ dispatch(actions.initialiseEditorState());
928
+ },
929
+ onUpdate: () => ({
930
+ getState,
931
+ setState,
932
+ dispatch
933
+ }, {
934
+ query: controlledQueryProp,
935
+ isSearching,
936
+ autocompleteProvider,
937
+ externalMessages,
938
+ enableRichInlineNodes,
939
+ onDebugUnsafeMessage,
940
+ onSyntaxHelp
941
+ }) => {
942
+ const {
943
+ controlledQuery,
944
+ query
945
+ } = getState();
946
+
947
+ // Track changes to our controlledQuery state
948
+ if (controlledQuery !== controlledQueryProp) {
949
+ setState({
950
+ controlledQuery: controlledQueryProp
951
+ });
952
+
953
+ // If the controlled query prop has changed and it doesn't match the query in our editor then we need to reset
954
+ // the editor state.
955
+ if (controlledQueryProp !== query) {
956
+ dispatch(actions.resetEditorState(controlledQueryProp));
957
+ }
958
+ }
959
+ setState({
960
+ externalMessages,
961
+ isSearching,
962
+ autocompleteProvider,
963
+ enableRichInlineNodes,
964
+ onDebugUnsafeMessage,
965
+ onSyntaxHelp
966
+ });
967
+ }
968
+ });