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