@simplybusiness/mobius 3.3.2 → 3.4.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 (283) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.js +5 -10
  3. package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.js.map +1 -1
  4. package/dist/cjs/components/Chopin/TradeSelector/Header/Header.d.ts +9 -0
  5. package/dist/cjs/components/Chopin/TradeSelector/Header/Header.js +14 -0
  6. package/dist/cjs/components/Chopin/TradeSelector/Header/Header.js.map +1 -0
  7. package/dist/cjs/components/Chopin/TradeSelector/Header/index.d.ts +1 -0
  8. package/dist/cjs/components/Chopin/TradeSelector/{Popover → Header}/index.js +1 -1
  9. package/dist/cjs/components/Chopin/TradeSelector/Header/index.js.map +1 -0
  10. package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.d.ts +12 -0
  11. package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.js +24 -0
  12. package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.js.map +1 -0
  13. package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.test.js +51 -0
  14. package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.test.js.map +1 -0
  15. package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.d.ts +10 -0
  16. package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.js +27 -0
  17. package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.js.map +1 -0
  18. package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.test.js +42 -0
  19. package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.test.js.map +1 -0
  20. package/dist/cjs/components/Chopin/TradeSelector/Listing/index.d.ts +1 -0
  21. package/dist/cjs/components/Chopin/TradeSelector/{ListBox → Listing}/index.js +1 -1
  22. package/dist/cjs/components/Chopin/TradeSelector/Listing/index.js.map +1 -0
  23. package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.d.ts +11 -11
  24. package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.js +92 -15
  25. package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.js.map +1 -1
  26. package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js +96 -104
  27. package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js.map +1 -1
  28. package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.d.ts +15 -0
  29. package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.js +37 -0
  30. package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.js.map +1 -0
  31. package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js +57 -0
  32. package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js.map +1 -0
  33. package/dist/cjs/components/Chopin/TradeSelector/TradeInput/index.d.ts +1 -0
  34. package/dist/cjs/components/Chopin/TradeSelector/{ComboBox → TradeInput}/index.js +1 -1
  35. package/dist/cjs/components/Chopin/TradeSelector/TradeInput/index.js.map +1 -0
  36. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.d.ts +2 -2
  37. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.js +62 -31
  38. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.js.map +1 -1
  39. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.test.js +152 -240
  40. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.test.js.map +1 -1
  41. package/dist/cjs/components/Chopin/TradeSelector/config/index.d.ts +9 -0
  42. package/dist/cjs/components/Chopin/TradeSelector/config/shared.d.ts +9 -0
  43. package/dist/cjs/components/Chopin/TradeSelector/config/shared.js +9 -0
  44. package/dist/cjs/components/Chopin/TradeSelector/config/shared.js.map +1 -1
  45. package/dist/cjs/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.d.ts +1 -0
  46. package/dist/cjs/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js +17 -0
  47. package/dist/cjs/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js.map +1 -0
  48. package/dist/cjs/components/Chopin/TradeSelector/mockApiResults.d.ts +10 -0
  49. package/dist/cjs/components/Chopin/TradeSelector/mockApiResults.js +11 -1
  50. package/dist/cjs/components/Chopin/TradeSelector/mockApiResults.js.map +1 -1
  51. package/dist/cjs/components/Chopin/TradeSelector/types.d.ts +7 -5
  52. package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/index.d.ts +1 -0
  53. package/dist/cjs/components/Chopin/TradeSelector/{SelectedTrade → useFetchTrades}/index.js +1 -1
  54. package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/index.js.map +1 -0
  55. package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.d.ts +8 -0
  56. package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js +62 -0
  57. package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js.map +1 -0
  58. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/index.d.ts +1 -0
  59. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/index.js +18 -0
  60. package/dist/cjs/components/Chopin/TradeSelector/{useTradeSelector → useTradeSelectorUrl}/index.js.map +1 -1
  61. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.d.ts +6 -0
  62. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js +20 -0
  63. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js.map +1 -0
  64. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js +29 -0
  65. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js.map +1 -0
  66. package/dist/cjs/components/Chopin/index.d.ts +5 -5
  67. package/dist/cjs/components/Chopin/index.js +5 -5
  68. package/dist/cjs/components/Chopin/index.js.map +1 -1
  69. package/dist/cjs/hooks/useOnClickOutside/index.d.ts +1 -0
  70. package/dist/cjs/hooks/useOnClickOutside/index.js +18 -0
  71. package/dist/cjs/hooks/useOnClickOutside/index.js.map +1 -0
  72. package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.d.ts +2 -0
  73. package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.js +23 -0
  74. package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.js.map +1 -0
  75. package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.js +6 -11
  76. package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.js.map +1 -1
  77. package/dist/esm/components/Chopin/TradeSelector/Header/Header.js +10 -0
  78. package/dist/esm/components/Chopin/TradeSelector/Header/Header.js.map +1 -0
  79. package/dist/esm/components/Chopin/TradeSelector/Header/index.js +2 -0
  80. package/dist/esm/components/Chopin/TradeSelector/Header/index.js.map +1 -0
  81. package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.js +17 -0
  82. package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.js.map +1 -0
  83. package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.test.js +26 -0
  84. package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.test.js.map +1 -0
  85. package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.js +21 -0
  86. package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.js.map +1 -0
  87. package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.test.js +37 -0
  88. package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.test.js.map +1 -0
  89. package/dist/esm/components/Chopin/TradeSelector/Listing/index.js +2 -0
  90. package/dist/esm/components/Chopin/TradeSelector/Listing/index.js.map +1 -0
  91. package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.js +90 -16
  92. package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.js.map +1 -1
  93. package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js +75 -103
  94. package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js.map +1 -1
  95. package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.js +30 -0
  96. package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.js.map +1 -0
  97. package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js +52 -0
  98. package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js.map +1 -0
  99. package/dist/esm/components/Chopin/TradeSelector/TradeInput/index.js +2 -0
  100. package/dist/esm/components/Chopin/TradeSelector/TradeInput/index.js.map +1 -0
  101. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.js +63 -32
  102. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.js.map +1 -1
  103. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js +154 -242
  104. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js.map +1 -1
  105. package/dist/esm/components/Chopin/TradeSelector/config/shared.js +9 -0
  106. package/dist/esm/components/Chopin/TradeSelector/config/shared.js.map +1 -1
  107. package/dist/esm/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js +13 -0
  108. package/dist/esm/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js.map +1 -0
  109. package/dist/esm/components/Chopin/TradeSelector/mockApiResults.js +10 -0
  110. package/dist/esm/components/Chopin/TradeSelector/mockApiResults.js.map +1 -1
  111. package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/index.js +2 -0
  112. package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/index.js.map +1 -0
  113. package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js +55 -0
  114. package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js.map +1 -0
  115. package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/index.js +2 -0
  116. package/dist/esm/components/Chopin/TradeSelector/{useTradeSelector → useTradeSelectorUrl}/index.js.map +1 -1
  117. package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js +16 -0
  118. package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js.map +1 -0
  119. package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js +27 -0
  120. package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js.map +1 -0
  121. package/dist/esm/components/Chopin/index.js +5 -5
  122. package/dist/esm/components/Chopin/index.js.map +1 -1
  123. package/dist/esm/hooks/useOnClickOutside/index.js +2 -0
  124. package/dist/esm/hooks/useOnClickOutside/index.js.map +1 -0
  125. package/dist/esm/hooks/useOnClickOutside/useOnClickOutside.js +19 -0
  126. package/dist/esm/hooks/useOnClickOutside/useOnClickOutside.js.map +1 -0
  127. package/dist/mobius.d.ts +38 -30
  128. package/package.json +5 -7
  129. package/src/components/Chopin/QuestionHelp/QuestionHelp.tsx +8 -20
  130. package/src/components/Chopin/TradeSelector/Header/Header.tsx +33 -0
  131. package/src/components/Chopin/TradeSelector/Header/index.tsx +1 -0
  132. package/src/components/Chopin/TradeSelector/Listing/Listing.test.tsx +42 -0
  133. package/src/components/Chopin/TradeSelector/Listing/Listing.tsx +51 -0
  134. package/src/components/Chopin/TradeSelector/Listing/ListingItem.test.tsx +54 -0
  135. package/src/components/Chopin/TradeSelector/Listing/ListingItem.tsx +50 -0
  136. package/src/components/Chopin/TradeSelector/Listing/index.tsx +1 -0
  137. package/src/components/Chopin/TradeSelector/SearchResults/SearchResults.test.tsx +90 -130
  138. package/src/components/Chopin/TradeSelector/SearchResults/SearchResults.tsx +169 -66
  139. package/src/components/Chopin/TradeSelector/TradeInput/TradeInput.test.tsx +74 -0
  140. package/src/components/Chopin/TradeSelector/TradeInput/TradeInput.tsx +94 -0
  141. package/src/components/Chopin/TradeSelector/TradeInput/index.tsx +1 -0
  142. package/src/components/Chopin/TradeSelector/TradeSelector.story.mdx +75 -49
  143. package/src/components/Chopin/TradeSelector/TradeSelector.test.tsx +228 -300
  144. package/src/components/Chopin/TradeSelector/TradeSelector.tsx +124 -93
  145. package/src/components/Chopin/TradeSelector/config/shared.ts +9 -0
  146. package/src/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.ts +17 -0
  147. package/src/components/Chopin/TradeSelector/mockApiResults.ts +11 -0
  148. package/src/components/Chopin/TradeSelector/types.ts +24 -6
  149. package/src/components/Chopin/TradeSelector/useFetchTrades/index.ts +1 -0
  150. package/src/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.ts +67 -0
  151. package/src/components/Chopin/TradeSelector/useTradeSelectorUrl/index.ts +1 -0
  152. package/src/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.ts +37 -0
  153. package/src/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.ts +26 -0
  154. package/src/components/Chopin/index.tsx +5 -5
  155. package/src/components/Link/Link.story.mdx +14 -0
  156. package/src/hooks/useOnClickOutside/index.ts +1 -0
  157. package/src/hooks/useOnClickOutside/useOnClickOutside.ts +23 -0
  158. package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.d.ts +0 -9
  159. package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.js +0 -37
  160. package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.js.map +0 -1
  161. package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js +0 -59
  162. package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js.map +0 -1
  163. package/dist/cjs/components/Chopin/TradeSelector/ComboBox/index.d.ts +0 -1
  164. package/dist/cjs/components/Chopin/TradeSelector/ComboBox/index.js.map +0 -1
  165. package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBox.d.ts +0 -13
  166. package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBox.js +0 -16
  167. package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBox.js.map +0 -1
  168. package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBoxSection.d.ts +0 -8
  169. package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBoxSection.js +0 -15
  170. package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBoxSection.js.map +0 -1
  171. package/dist/cjs/components/Chopin/TradeSelector/ListBox/Option.d.ts +0 -9
  172. package/dist/cjs/components/Chopin/TradeSelector/ListBox/Option.js +0 -22
  173. package/dist/cjs/components/Chopin/TradeSelector/ListBox/Option.js.map +0 -1
  174. package/dist/cjs/components/Chopin/TradeSelector/ListBox/index.d.ts +0 -1
  175. package/dist/cjs/components/Chopin/TradeSelector/ListBox/index.js.map +0 -1
  176. package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.d.ts +0 -10
  177. package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.js +0 -24
  178. package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.js.map +0 -1
  179. package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.test.js +0 -18
  180. package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.test.js.map +0 -1
  181. package/dist/cjs/components/Chopin/TradeSelector/Popover/index.d.ts +0 -1
  182. package/dist/cjs/components/Chopin/TradeSelector/Popover/index.js.map +0 -1
  183. package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.d.ts +0 -5
  184. package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js +0 -8
  185. package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js.map +0 -1
  186. package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js +0 -18
  187. package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js.map +0 -1
  188. package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/index.d.ts +0 -1
  189. package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/index.js.map +0 -1
  190. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.d.ts +0 -7
  191. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js +0 -27
  192. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js.map +0 -1
  193. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js +0 -76
  194. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js.map +0 -1
  195. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/index.d.ts +0 -1
  196. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/index.js +0 -18
  197. package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/index.js.map +0 -1
  198. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.d.ts +0 -2
  199. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js +0 -17
  200. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js.map +0 -1
  201. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.d.ts +0 -1
  202. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js +0 -42
  203. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js.map +0 -1
  204. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/index.d.ts +0 -1
  205. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/index.js +0 -18
  206. package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/index.js.map +0 -1
  207. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/index.d.ts +0 -1
  208. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/index.js +0 -18
  209. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.d.ts +0 -17
  210. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js +0 -68
  211. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js.map +0 -1
  212. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.d.ts +0 -1
  213. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js +0 -86
  214. package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js.map +0 -1
  215. package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.js +0 -31
  216. package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.js.map +0 -1
  217. package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js +0 -54
  218. package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js.map +0 -1
  219. package/dist/esm/components/Chopin/TradeSelector/ComboBox/index.js +0 -2
  220. package/dist/esm/components/Chopin/TradeSelector/ComboBox/index.js.map +0 -1
  221. package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBox.js +0 -13
  222. package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBox.js.map +0 -1
  223. package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBoxSection.js +0 -12
  224. package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBoxSection.js.map +0 -1
  225. package/dist/esm/components/Chopin/TradeSelector/ListBox/Option.js +0 -16
  226. package/dist/esm/components/Chopin/TradeSelector/ListBox/Option.js.map +0 -1
  227. package/dist/esm/components/Chopin/TradeSelector/ListBox/index.js +0 -2
  228. package/dist/esm/components/Chopin/TradeSelector/ListBox/index.js.map +0 -1
  229. package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.js +0 -21
  230. package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.js.map +0 -1
  231. package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.test.js +0 -16
  232. package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.test.js.map +0 -1
  233. package/dist/esm/components/Chopin/TradeSelector/Popover/index.js +0 -2
  234. package/dist/esm/components/Chopin/TradeSelector/Popover/index.js.map +0 -1
  235. package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js +0 -4
  236. package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js.map +0 -1
  237. package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js +0 -16
  238. package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js.map +0 -1
  239. package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/index.js +0 -2
  240. package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/index.js.map +0 -1
  241. package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js +0 -23
  242. package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js.map +0 -1
  243. package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js +0 -74
  244. package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js.map +0 -1
  245. package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/index.js +0 -2
  246. package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/index.js.map +0 -1
  247. package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js +0 -13
  248. package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js.map +0 -1
  249. package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js +0 -40
  250. package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js.map +0 -1
  251. package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/index.js +0 -2
  252. package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/index.js.map +0 -1
  253. package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/index.js +0 -2
  254. package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js +0 -65
  255. package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js.map +0 -1
  256. package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js +0 -84
  257. package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js.map +0 -1
  258. package/src/components/Chopin/TradeSelector/ComboBox/ComboBox.test.tsx +0 -85
  259. package/src/components/Chopin/TradeSelector/ComboBox/ComboBox.tsx +0 -74
  260. package/src/components/Chopin/TradeSelector/ComboBox/index.tsx +0 -1
  261. package/src/components/Chopin/TradeSelector/ListBox/ListBox.tsx +0 -36
  262. package/src/components/Chopin/TradeSelector/ListBox/ListBoxSection.tsx +0 -34
  263. package/src/components/Chopin/TradeSelector/ListBox/Option.tsx +0 -35
  264. package/src/components/Chopin/TradeSelector/ListBox/index.tsx +0 -1
  265. package/src/components/Chopin/TradeSelector/Popover/Popover.test.tsx +0 -28
  266. package/src/components/Chopin/TradeSelector/Popover/Popover.tsx +0 -42
  267. package/src/components/Chopin/TradeSelector/Popover/index.tsx +0 -1
  268. package/src/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.tsx +0 -24
  269. package/src/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.tsx +0 -20
  270. package/src/components/Chopin/TradeSelector/SelectedTrade/index.tsx +0 -1
  271. package/src/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.ts +0 -97
  272. package/src/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.ts +0 -36
  273. package/src/components/Chopin/TradeSelector/getItemsToDisplay/index.ts +0 -1
  274. package/src/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.ts +0 -49
  275. package/src/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.ts +0 -19
  276. package/src/components/Chopin/TradeSelector/getTradesGroupedByType/index.ts +0 -1
  277. package/src/components/Chopin/TradeSelector/useTradeSelector/index.ts +0 -1
  278. package/src/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.ts +0 -107
  279. package/src/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.ts +0 -82
  280. /package/dist/cjs/components/Chopin/TradeSelector/{ComboBox/ComboBox.test.d.ts → Listing/Listing.test.d.ts} +0 -0
  281. /package/dist/cjs/components/Chopin/TradeSelector/{Popover/Popover.test.d.ts → Listing/ListingItem.test.d.ts} +0 -0
  282. /package/dist/cjs/components/Chopin/TradeSelector/{SelectedTrade/SelectedTrade.test.d.ts → TradeInput/TradeInput.test.d.ts} +0 -0
  283. /package/dist/cjs/components/Chopin/TradeSelector/{getItemsToDisplay/getItemsToDisplay.test.d.ts → useTradeSelectorUrl/useTradeSelectorUrl.test.d.ts} +0 -0
@@ -1,17 +1,91 @@
1
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
- import { Item, Section } from "@react-stately/collections";
3
- import { ComboBox } from "../ComboBox";
4
- export const SearchResults = ({ inputValue, items, labels, fieldProps, describedBy, fallbackUrl, onInputChange, onSelectionChange, label, }) => (_jsx(ComboBox, Object.assign({ inputValue: inputValue, onInputChange: onInputChange, disabledKeys: [labels.noResults], items: items, onSelectionChange: onSelectionChange, "aria-describedby": describedBy, fieldProps: fieldProps, label: label, placeholder: labels.placeholder }, { children: section => {
5
- const { name, title, children: sectionChildren } = section;
6
- const noResults = items.find(item => item.name === labels.noResults);
7
- if (noResults) {
8
- return (_jsx(Item, Object.assign({ textValue: labels.noResults }, { children: _jsx("a", Object.assign({ href: fallbackUrl, className: "chopin/ListBoxSectionHeadingLink" }, { children: labels.noResults })) }), labels.noResults));
9
- }
10
- return (_jsx(Section, Object.assign({ items: sectionChildren, title: title }, { children: item => {
11
- const { value, label: itemLabel } = item;
12
- return (_jsx(Item, Object.assign({ textValue: value }, { children: _jsx("span", { className: "chopin/TradeSelectorOptionContent",
13
- // eslint-disable-next-line react/no-danger
14
- dangerouslySetInnerHTML: { __html: itemLabel } }) }), value));
15
- } }), name));
16
- } })));
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
3
+ import clsx from "clsx";
4
+ import { Listing } from "../Listing";
5
+ import { useOnClickOutside } from "../../../../hooks/useOnClickOutside";
6
+ export const SearchResults = (props) => {
7
+ const { isOpen, labels, className, results, isLoading, fallbackUrl, describedBy, inputRef, onClick, onClose, } = props;
8
+ const dialogRef = useRef(null);
9
+ const resultRefs = useRef([]);
10
+ const [focusId, setFocusId] = useState(0);
11
+ const classes = clsx("chopin/TradeSelectorResults", {
12
+ "--is-open": isOpen,
13
+ }, className);
14
+ const closeSearchResults = useCallback(() => {
15
+ setFocusId(0);
16
+ onClose();
17
+ if (dialogRef.current) {
18
+ dialogRef.current.close();
19
+ }
20
+ // eslint-disable-next-line react-hooks/exhaustive-deps
21
+ }, []);
22
+ useOnClickOutside(dialogRef, () => {
23
+ if (dialogRef.current && dialogRef.current.open) {
24
+ closeSearchResults();
25
+ }
26
+ });
27
+ const handleTradeClick = useCallback((trade) => {
28
+ closeSearchResults();
29
+ onClick(trade);
30
+ }, [closeSearchResults, onClick]);
31
+ const handleKeyDown = useCallback((event) => {
32
+ var _a;
33
+ if (!((_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.open) || !results)
34
+ return;
35
+ if (event.code === "ArrowDown") {
36
+ if (focusId === results.length - 1) {
37
+ setFocusId(0);
38
+ return;
39
+ }
40
+ setFocusId(focusId + 1);
41
+ }
42
+ if (event.code === "ArrowUp") {
43
+ if (focusId === 0) {
44
+ setFocusId(results.length - 1);
45
+ return;
46
+ }
47
+ setFocusId(focusId - 1);
48
+ }
49
+ if (event.code === "Escape") {
50
+ closeSearchResults();
51
+ }
52
+ if (event.code === "Enter") {
53
+ if (focusId === 0 && results) {
54
+ const [firstTrade] = results;
55
+ handleTradeClick(firstTrade);
56
+ }
57
+ }
58
+ }, [focusId, closeSearchResults, results, handleTradeClick]);
59
+ useEffect(() => {
60
+ var _a;
61
+ if (((_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.open) && resultRefs.current[focusId]) {
62
+ resultRefs.current[focusId].focus();
63
+ }
64
+ }, [focusId]);
65
+ useEffect(() => {
66
+ window.addEventListener("keydown", handleKeyDown);
67
+ return () => {
68
+ window.removeEventListener("keydown", handleKeyDown);
69
+ };
70
+ }, [handleKeyDown]);
71
+ useEffect(() => {
72
+ if (dialogRef.current && isOpen) {
73
+ if (!dialogRef.current.open && inputRef.current) {
74
+ dialogRef.current.show();
75
+ // Return focus from <dialog> back to <input>
76
+ inputRef.current.focus();
77
+ }
78
+ }
79
+ }, [isOpen, inputRef]);
80
+ if (!isOpen)
81
+ return null;
82
+ const searchResponseExact = results
83
+ ? results.filter((result) => result.type === "exact")
84
+ : [];
85
+ const searchResponseSuggested = results
86
+ ? results.filter((result) => result.type === "suggested")
87
+ : [];
88
+ const noResults = (results === null || results === void 0 ? void 0 : results.length) === 0;
89
+ return (_jsx("dialog", Object.assign({ className: classes, ref: dialogRef, "aria-describedby": describedBy }, { children: isLoading ? (_jsx("header", Object.assign({ className: "chopin/TradeSelectorListTitle" }, { children: labels.loading }))) : noResults ? (_jsx("header", Object.assign({ className: "chopin/TradeSelectorListTitle" }, { children: _jsx("a", Object.assign({ href: fallbackUrl, className: "chopin/TradeSelectorListTitleLink" }, { children: labels.noResults })) }))) : (_jsxs(_Fragment, { children: [searchResponseExact.length > 0 && (_jsx(Listing, { title: labels.exact, trades: searchResponseExact, resultRefs: resultRefs, onClick: handleTradeClick, selectedId: focusId })), searchResponseSuggested.length > 0 && (_jsx(Listing, { title: labels.suggested, trades: searchResponseSuggested, resultRefs: resultRefs, refCountStart: searchResponseExact.length, onClick: handleTradeClick, selectedId: focusId }))] })) })));
90
+ };
17
91
  //# sourceMappingURL=SearchResults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/SearchResults/SearchResults.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAevC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,UAAU,EACV,KAAK,EACL,MAAM,EACN,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,KAAK,GACc,EAAE,EAAE,CAAC,CACxB,KAAC,QAAQ,kBACP,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,CAAC,MAAM,CAAC,SAAmB,CAAC,EAC1C,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,iBAAiB,sBAClB,WAAW,EAC7B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,CAAC,WAAW,gBAE9B,OAAO,CAAC,EAAE;QACT,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QAErE,IAAI,SAAS,EAAE;YACb,OAAO,CACL,KAAC,IAAI,kBAAwB,SAAS,EAAE,MAAM,CAAC,SAAS,gBACtD,0BAAG,IAAI,EAAE,WAAW,EAAE,SAAS,EAAC,kCAAkC,gBAC/D,MAAM,CAAC,SAAS,IACf,KAHK,MAAM,CAAC,SAAS,CAIpB,CACR,CAAC;SACH;QAED,OAAO,CACL,KAAC,OAAO,kBAAY,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,gBACrD,IAAI,CAAC,EAAE;gBACN,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAkB,CAAC;gBAEvD,OAAO,CACL,KAAC,IAAI,kBAAa,SAAS,EAAE,KAAK,gBAChC,eACE,SAAS,EAAC,mCAAmC;wBAC7C,2CAA2C;wBAC3C,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAC9C,KALO,KAAK,CAMT,CACR,CAAC;YACJ,CAAC,KAbW,IAAI,CAcR,CACX,CAAC;IACJ,CAAC,IACQ,CACZ,CAAC"}
1
+ {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/SearchResults/SearchResults.tsx"],"names":[],"mappings":"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"}
@@ -1,113 +1,85 @@
1
1
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
- import { render, screen, fireEvent } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import { SearchResults } from ".";
5
- import { exactResults, suggestedResults } from "../mockApiResults";
6
- const defaultLabels = {
7
- input: "",
8
- exact: "Exact matches",
9
- suggested: "Suggested matches",
10
- loading: "",
11
- noResults: "View all trades",
12
- description: "",
13
- placeholder: "",
2
+ import React, { useRef } from "react";
3
+ import { fireEvent, render, screen } from "@testing-library/react";
4
+ import { jestHTMLDialogPolyfill } from "../jestHTMLDialogPolyfill";
5
+ import { SearchResults } from "./SearchResults";
6
+ import { mockTrade } from "../mockApiResults";
7
+ import { getConfig } from "../config";
8
+ jestHTMLDialogPolyfill();
9
+ jest.mock("react", () => (Object.assign(Object.assign({}, jest.requireActual("react")), { useRef: jest.fn() })));
10
+ jest.mock("@react-aria/focus", () => ({
11
+ useFocusRing: () => ({
12
+ isFocusVisible: () => { },
13
+ focusProps: () => { },
14
+ }),
15
+ }));
16
+ jest.mock("@react-aria/interactions", () => ({
17
+ useHover: () => ({
18
+ hoverProps: () => { },
19
+ isHovered: () => { },
20
+ }),
21
+ }));
22
+ const SearchResultsComponent = (props) => {
23
+ const { defaultLabels } = getConfig();
24
+ const defaultProps = {
25
+ isOpen: true,
26
+ inputRef: useRef(null),
27
+ results: [mockTrade],
28
+ fallbackUrl: "https://www.example.com",
29
+ labels: Object.assign({}, defaultLabels),
30
+ isLoading: false,
31
+ onClick: jest.fn(),
32
+ onClose: jest.fn(),
33
+ };
34
+ return _jsx(SearchResults, Object.assign({}, defaultProps, props));
14
35
  };
15
- const mockedTrades = [
16
- {
17
- name: "exact",
18
- title: defaultLabels.exact,
19
- children: [...exactResults],
20
- },
21
- {
22
- name: "suggested",
23
- title: defaultLabels.suggested,
24
- children: [...suggestedResults],
25
- },
26
- ];
27
- const fallbackUrl = "https://www.example.com/";
28
36
  describe("SearchResults", () => {
29
- beforeAll(() => {
30
- // Suppress the following warning
31
- // If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility
32
- jest.spyOn(console, "warn").mockImplementation(jest.fn());
33
- });
34
- describe("given items list contain no results item", () => {
35
- it("displays no results label with fallback url", async () => {
36
- const props = {
37
- inputValue: "",
38
- items: [
39
- {
40
- name: defaultLabels.noResults,
41
- title: defaultLabels.noResults,
42
- children: [],
43
- },
44
- ],
45
- labels: Object.assign(Object.assign({}, defaultLabels), { noResults: defaultLabels.noResults }),
46
- fallbackUrl,
47
- onInputChange: () => { },
48
- onSelectionChange: () => { },
49
- };
50
- render(_jsx(SearchResults, Object.assign({}, props)));
51
- await userEvent.tab();
52
- await userEvent.keyboard("[Alt][ArrowDown]");
53
- expect(screen.getByText(defaultLabels.noResults)).toHaveAttribute("href", fallbackUrl);
37
+ beforeEach(() => {
38
+ jest.spyOn(React, "useRef").mockReturnValue({
39
+ current: [],
54
40
  });
55
41
  });
56
- describe("given a list of trades", () => {
57
- it("displays the trades grouped by exact and suggested matches", async () => {
58
- const props = {
59
- inputValue: "",
60
- items: mockedTrades,
61
- labels: defaultLabels,
62
- fallbackUrl: "https://www.example.com/",
63
- onInputChange: () => { },
64
- onSelectionChange: () => { },
65
- };
66
- const exactResultTrade = "Swimming pool installers";
67
- const suggestedResultTrade = "Fitness instructor";
68
- const { container } = render(_jsx(SearchResults, Object.assign({}, props)));
69
- await userEvent.tab();
70
- await userEvent.keyboard("[Alt][ArrowDown]");
71
- expect(screen.getByText(defaultLabels.exact)).toBeInTheDocument();
72
- expect(container.querySelector(`[data-key='${exactResultTrade}']`)).toBeInTheDocument();
73
- expect(screen.getByText(defaultLabels.suggested)).toBeInTheDocument();
74
- expect(container.querySelector(`[data-key='${suggestedResultTrade}']`)).toBeInTheDocument();
75
- });
42
+ const loadingText = "Loading...";
43
+ const tradeText = "Landlord";
44
+ const noResultsText = "View all trades";
45
+ it("renders loading state", () => {
46
+ render(_jsx(SearchResultsComponent, { isLoading: true }));
47
+ const loading = screen.queryByText(loadingText);
48
+ const trade = screen.queryByText(tradeText);
49
+ const noResultsLink = screen.queryByText(noResultsText);
50
+ expect(loading).toBeInTheDocument();
51
+ expect(noResultsLink).not.toBeInTheDocument();
52
+ expect(trade).not.toBeInTheDocument();
76
53
  });
77
- describe("given input value changes", () => {
78
- it("onInputChange prop is invoked", () => {
79
- const onInputChangeHandler = jest.fn();
80
- const props = {
81
- inputValue: "",
82
- items: mockedTrades,
83
- labels: defaultLabels,
84
- fallbackUrl: "https://www.example.com/",
85
- onInputChange: onInputChangeHandler,
86
- onSelectionChange: () => { },
87
- };
88
- render(_jsx(SearchResults, Object.assign({}, props)));
89
- const input = screen.getByRole("combobox");
90
- fireEvent.change(input, { target: { value: "New text" } });
91
- expect(onInputChangeHandler).toHaveBeenCalled();
92
- });
54
+ it("renders no results state", () => {
55
+ render(_jsx(SearchResultsComponent, { results: [] }));
56
+ const loading = screen.queryByText(loadingText);
57
+ const trade = screen.queryByText(tradeText);
58
+ const noResultsLink = screen.queryByText(noResultsText);
59
+ expect(loading).not.toBeInTheDocument();
60
+ expect(noResultsLink).toBeInTheDocument();
61
+ expect(trade).not.toBeInTheDocument();
62
+ });
63
+ it("renders trades list", () => {
64
+ render(_jsx(SearchResultsComponent, {}));
65
+ const loading = screen.queryByText(loadingText);
66
+ const trade = screen.queryByText(tradeText);
67
+ const noResultsLink = screen.queryByText(noResultsText);
68
+ expect(loading).not.toBeInTheDocument();
69
+ expect(noResultsLink).not.toBeInTheDocument();
70
+ expect(trade).toBeInTheDocument();
93
71
  });
94
- describe("given user selection value changes", () => {
95
- it("onSelectionChange prop is invoked", async () => {
96
- const onSelectionChangeHandler = jest.fn();
97
- const props = {
98
- inputValue: "",
99
- items: mockedTrades,
100
- labels: defaultLabels,
101
- fallbackUrl: "https://www.example.com/",
102
- onInputChange: () => { },
103
- onSelectionChange: onSelectionChangeHandler,
104
- };
105
- const { container } = render(_jsx(SearchResults, Object.assign({}, props)));
106
- await userEvent.tab();
107
- await userEvent.keyboard("[Alt][ArrowDown]");
108
- const option = container.querySelector(`[data-key='Swimming pool installers']`);
109
- fireEvent.click(option);
110
- expect(onSelectionChangeHandler).toHaveBeenCalled();
72
+ describe("pressing Enter key", () => {
73
+ it("selects the first trade from the list", () => {
74
+ const onClick = jest.fn();
75
+ const { container } = render(_jsx(SearchResultsComponent, { onClick: onClick }));
76
+ const button = container.querySelector("button");
77
+ expect(button).toHaveClass("--is-focused");
78
+ fireEvent.keyDown(container, {
79
+ key: "Enter",
80
+ code: "Enter",
81
+ });
82
+ expect(onClick).toHaveBeenCalled();
111
83
  });
112
84
  });
113
85
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResults.test.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/SearchResults/SearchResults.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchResults.test.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/SearchResults/SearchResults.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
13
+ import clsx from "clsx";
14
+ import { useFocusRing } from "@react-aria/focus";
15
+ import { useHover } from "@react-aria/interactions";
16
+ import { Text } from "../../../Text";
17
+ export const TradeInput = (props) => {
18
+ const { onChange, onEdit, inputRef, inputProps, value, className, label, placeholder, initialTrade, isEditable } = props, otherProps = __rest(props, ["onChange", "onEdit", "inputRef", "inputProps", "value", "className", "label", "placeholder", "initialTrade", "isEditable"]);
19
+ const selectedTrade = initialTrade && !isEditable;
20
+ const { isFocusVisible, focusProps } = useFocusRing({
21
+ within: true,
22
+ });
23
+ const { hoverProps, isHovered } = useHover(Object.assign({}, otherProps));
24
+ const classes = clsx("chopin", "chopin/TradeSelectorInput", {
25
+ "--is-focused": isFocusVisible,
26
+ "--is-hovered": isHovered,
27
+ }, className);
28
+ return (_jsx("div", Object.assign({}, focusProps, { children: selectedTrade ? (_jsxs(Text, { children: ["You have selected \u2018", _jsx("strong", { children: initialTrade }), "\u2019 as your trade/profession.", " ", _jsx("button", Object.assign({ type: "button", className: "mobius/Link chopin/TradeSelectorButton", "aria-label": "Change your selected profession", onClick: onEdit }, { children: "Change" }))] })) : (_jsxs("div", Object.assign({ className: "chopin/TradeSelectorInputContainer" }, { children: [_jsx("input", Object.assign({}, hoverProps, inputProps, { type: "text", placeholder: placeholder, "aria-label": label, className: classes, onChange: onChange, ref: inputRef, value: value })), isEditable && (_jsx("button", Object.assign({ type: "button", className: "mobius/Link chopin/TradeSelectorButton", "aria-label": "Cancel changes", onClick: onEdit }, { children: "Cancel" })))] }))) })));
29
+ };
30
+ //# sourceMappingURL=TradeInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TradeInput.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/TradeInput/TradeInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAerC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;IACnD,MAAM,EACJ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,EACL,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EACZ,UAAU,KAER,KAAK,EADJ,UAAU,UACX,KAAK,EAZH,4HAYL,CAAQ,CAAC;IACV,MAAM,aAAa,GAAG,YAAY,IAAI,CAAC,UAAU,CAAC;IAClD,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;QAClD,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,QAAQ,mBACrC,UAAU,EACb,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAClB,QAAQ,EACR,2BAA2B,EAC3B;QACE,cAAc,EAAE,cAAc;QAC9B,cAAc,EAAE,SAAS;KAC1B,EACD,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAS,UAAU,cAChB,aAAa,CAAC,CAAC,CAAC,CACf,MAAC,IAAI,2CACgB,2BAAS,YAAY,GAAU,sCAChC,GAAG,EACrB,+BACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wCAAwC,gBACvC,iCAAiC,EAC5C,OAAO,EAAE,MAAM,4BAGR,IACJ,CACR,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,oCAAoC,iBACjD,gCACM,UAAU,EACV,UAAU,IACd,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,gBACZ,KAAK,EACjB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,IACZ,EACD,UAAU,IAAI,CACb,+BACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wCAAwC,gBACvC,gBAAgB,EAC3B,OAAO,EAAE,MAAM,4BAGR,CACV,KACG,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ import { render, fireEvent, screen } from "@testing-library/react";
3
+ import userEvent from "@testing-library/user-event";
4
+ import { useRef } from "react";
5
+ import { TradeInput } from "./TradeInput";
6
+ const TradeInputComponent = (props) => {
7
+ const defaultProps = {
8
+ onChange: jest.fn(),
9
+ inputRef: useRef(null),
10
+ value: "",
11
+ placeholder: "e.g. Cleaner, builder, consultant",
12
+ onEdit: jest.fn(),
13
+ isEditable: false,
14
+ };
15
+ return _jsx(TradeInput, Object.assign({}, defaultProps, props));
16
+ };
17
+ describe("TradeInput", () => {
18
+ it("renders selected trade", () => {
19
+ var _a;
20
+ const initialTrade = "Landlord";
21
+ const onEdit = jest.fn();
22
+ render(_jsx(TradeInputComponent, { initialTrade: initialTrade, onEdit: onEdit }));
23
+ const initialTradeText = screen.queryByText(initialTrade);
24
+ const changeButton = screen.queryByRole("button");
25
+ expect((_a = initialTradeText === null || initialTradeText === void 0 ? void 0 : initialTradeText.parentNode) === null || _a === void 0 ? void 0 : _a.textContent).toEqual(`You have selected ‘${initialTrade}’ as your trade/profession. Change`);
26
+ fireEvent.click(changeButton);
27
+ expect(onEdit).toHaveBeenCalled();
28
+ });
29
+ it("renders input field", async () => {
30
+ const onChange = jest.fn();
31
+ render(_jsx(TradeInputComponent, { onChange: onChange }));
32
+ const inputField = screen.queryByRole("textbox");
33
+ expect(inputField).toBeInTheDocument();
34
+ await userEvent.tab();
35
+ await userEvent.keyboard("[Space]");
36
+ expect(onChange).toHaveBeenCalled();
37
+ });
38
+ it("sets classes for interaction states", async () => {
39
+ render(_jsx(TradeInputComponent, {}));
40
+ const inputField = screen.queryByRole("textbox");
41
+ await userEvent.tab();
42
+ expect(inputField).toHaveClass("--is-focused");
43
+ fireEvent.mouseEnter(inputField);
44
+ expect(inputField).toHaveClass("--is-hovered");
45
+ });
46
+ it("allows user to edit trade", () => {
47
+ render(_jsx(TradeInputComponent, { isEditable: true }));
48
+ const cancelText = screen.queryByText("Cancel");
49
+ expect(cancelText).toBeInTheDocument();
50
+ });
51
+ });
52
+ //# sourceMappingURL=TradeInput.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TradeInput.test.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/TradeInput/TradeInput.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./TradeInput";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/TradeInput/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -1,53 +1,84 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
- import { forwardRef, useMemo } from "react";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef, useState, useRef, useEffect, useMemo, } from "react";
3
3
  import clsx from "clsx";
4
- import { useSlotId } from "@react-aria/utils";
5
4
  import { useLabel } from "@react-aria/label";
5
+ import { useSlotId } from "@react-aria/utils";
6
6
  import { getConfig } from "./config";
7
- import { SelectedTrade } from "./SelectedTrade";
7
+ import { TradeInput } from "./TradeInput";
8
8
  import { SearchResults } from "./SearchResults";
9
- import { useTradeSelector } from "./useTradeSelector";
10
- import { getItemsToDisplay } from "./getItemsToDisplay";
9
+ import { useFetchTrades } from "./useFetchTrades";
10
+ import { useTradeSelectorUrl } from "./useTradeSelectorUrl";
11
+ import { Header } from "./Header";
11
12
  import { ErrorMessage } from "../../ErrorMessage";
12
13
  import { spaceDelimitedList } from "../../../utils/spaceDelimitedList";
13
- import { Label } from "../../Label";
14
- import { Text } from "../../Text";
15
- export const ERROR_MESSAGE_SERVICE_UNAVAIALBLE = "The service is currently unavailable. Please try again later";
14
+ export const ERROR_MESSAGE_SERVICE_UNAVAILABLE = "The service is currently unavailable. Please try again later";
16
15
  const TradeSelector = forwardRef((props, ref) => {
17
- const { elementType: Element = "div", minInput = 3, apiRequestDebounceInMs = 250, urls, labels, className, onTradeSelected, hideLabel, initialTrade, } = props;
18
- const fieldLabels = Object.assign({ input: "What is your specific trade/profession?", description: "", exact: "Exact matches for your search", placeholder: "e.g. Cleaner, builder, consultant", suggested: "Suggested matches for your search", noResults: "View all trades", loading: "Loading..." }, labels);
19
- const { site, baseUrl } = getConfig();
16
+ const { minInput = 3, apiRequestDebounceInMs = 250, urls, labels, className, onTradeSelected, hideLabel, initialTrade = "", vertical, searchScope, } = props;
17
+ const { site, baseUrl, defaultLabels } = getConfig();
18
+ const fieldLabels = Object.assign(Object.assign({}, defaultLabels), labels);
20
19
  const links = useMemo(() => (Object.assign({ quoteRedirect: site, tradeApi: baseUrl, allOccupations: "https://quote.simplybusiness.co.uk/trades?vertical=business" }, urls)), [site, baseUrl, urls]);
21
- const { inputValue, trades, onInputChange, onSelectionChange, error, isLoading, selectedTrade, hasUserChangedMind, onUserChangedMind, } = useTradeSelector({
22
- minInput,
23
- apiRequestDebounceInMs,
24
- urls: links,
25
- onTradeSelected,
26
- initialTrade,
27
- });
28
20
  const classes = clsx("chopin", "chopin/TradeSelector", className);
21
+ const [userInput, setUserInput] = useState("");
22
+ const [selectedTrade, setSelectedTrade] = useState(null);
23
+ const [editMode, setEditMode] = useState(false);
24
+ const [isOverlayVisible, setIsOverlayVisible] = useState(false);
25
+ const inputRef = useRef(null);
26
+ const currentTrade = selectedTrade ? selectedTrade.value : initialTrade;
27
+ const endpoint = useTradeSelectorUrl(links.tradeApi, userInput, {
28
+ site: links.quoteRedirect,
29
+ vertical,
30
+ searchScope,
31
+ });
32
+ const { trades, isLoading, error, fetchTrades } = useFetchTrades(endpoint, apiRequestDebounceInMs);
29
33
  const errorMessage = error === null || error === void 0 ? void 0 : error.message;
30
34
  const errorMessageId = useSlotId([Boolean(errorMessage)]);
31
35
  const { labelProps, fieldProps } = useLabel({
32
36
  label: fieldLabels.input,
33
37
  });
38
+ const ariaLabel = hideLabel ? fieldLabels.input : undefined;
39
+ const inputProps = hideLabel ? undefined : fieldProps;
34
40
  const describedBy = spaceDelimitedList([
35
41
  errorMessageId,
36
42
  props["aria-describedby"],
37
43
  ]);
38
- const isOpen = inputValue.length >= minInput && !errorMessage;
39
- const shouldSelectedTradeDisplay = selectedTrade && !hasUserChangedMind;
40
- const items = isOpen
41
- ? getItemsToDisplay({
42
- trades,
43
- isLoading,
44
- labels: fieldLabels,
45
- })
46
- : [];
47
- const { input: inputLabel, description } = fieldLabels;
48
- const ariaLabel = hideLabel ? inputLabel : undefined;
49
- const inputProps = hideLabel ? undefined : fieldProps;
50
- return (_jsxs(Element, Object.assign({ ref: ref, className: classes }, { children: [!hideLabel && (_jsxs(_Fragment, { children: [_jsx(Label, Object.assign({}, labelProps, { className: "chopin/TradeSelectorLabel", "aria-hidden": true }, { children: inputLabel })), _jsx(Text, Object.assign({ className: "chopin/TradeSelectorDescription", variant: "caption" }, { children: description }))] })), shouldSelectedTradeDisplay ? (_jsx(SelectedTrade, { trade: selectedTrade, onClick: onUserChangedMind })) : (_jsxs(_Fragment, { children: [_jsx(SearchResults, { inputValue: inputValue, items: items, labels: fieldLabels, describedBy: describedBy, fallbackUrl: links.allOccupations, onInputChange: onInputChange, onSelectionChange: onSelectionChange, fieldProps: inputProps, label: ariaLabel }), error && (_jsx(ErrorMessage, { id: errorMessageId, errorMessage: ERROR_MESSAGE_SERVICE_UNAVAIALBLE }))] }))] })));
44
+ const handleChange = (event) => setUserInput(event.target.value);
45
+ const toggleEditMode = () => setEditMode(!editMode);
46
+ const handleOverlayClose = () => {
47
+ setIsOverlayVisible(false);
48
+ };
49
+ const handleTradeSelect = (trade) => {
50
+ setSelectedTrade(trade);
51
+ if (editMode) {
52
+ toggleEditMode();
53
+ }
54
+ if (trade && onTradeSelected) {
55
+ try {
56
+ onTradeSelected(trade);
57
+ }
58
+ catch (err) {
59
+ // eslint-disable-next-line no-console
60
+ console.error("onTradeSelected returned the following error", err);
61
+ }
62
+ }
63
+ };
64
+ useEffect(() => {
65
+ if (editMode && currentTrade) {
66
+ setUserInput(currentTrade);
67
+ }
68
+ if (!editMode) {
69
+ setUserInput("");
70
+ }
71
+ }, [editMode, currentTrade]);
72
+ useEffect(() => {
73
+ if (userInput.length >= minInput) {
74
+ setIsOverlayVisible(true);
75
+ fetchTrades(true);
76
+ }
77
+ if (userInput.length < minInput) {
78
+ setIsOverlayVisible(false);
79
+ }
80
+ }, [minInput, fetchTrades, userInput.length]);
81
+ return (_jsxs("div", Object.assign({ ref: ref, className: classes }, { children: [_jsx(Header, { isOpen: !hideLabel, labelProps: labelProps, labels: fieldLabels }), _jsx(TradeInput, { inputRef: inputRef, inputProps: inputProps, value: userInput, onChange: handleChange, label: ariaLabel, placeholder: fieldLabels.placeholder, initialTrade: currentTrade, onEdit: toggleEditMode, isEditable: editMode }), error ? (_jsx(ErrorMessage, { id: errorMessageId, errorMessage: ERROR_MESSAGE_SERVICE_UNAVAILABLE })) : (_jsx(SearchResults, { isOpen: isOverlayVisible, labels: fieldLabels, onClick: handleTradeSelect, onClose: handleOverlayClose, results: trades, isLoading: isLoading, fallbackUrl: links.allOccupations, describedBy: describedBy, inputRef: inputRef }))] })));
51
82
  });
52
83
  TradeSelector.displayName = "TradeSelector";
53
84
  export { TradeSelector };
@@ -1 +1 @@
1
- {"version":3,"file":"TradeSelector.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/TradeSelector/TradeSelector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TradeSelector.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/TradeSelector/TradeSelector.tsx"],"names":[],"mappings":"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"}