@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,118 +1,110 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
7
- const react_1 = require("@testing-library/react");
8
- const user_event_1 = __importDefault(require("@testing-library/user-event"));
9
- const _1 = require(".");
27
+ const react_1 = __importStar(require("react"));
28
+ const react_2 = require("@testing-library/react");
29
+ const jestHTMLDialogPolyfill_1 = require("../jestHTMLDialogPolyfill");
30
+ const SearchResults_1 = require("./SearchResults");
10
31
  const mockApiResults_1 = require("../mockApiResults");
11
- const defaultLabels = {
12
- input: "",
13
- exact: "Exact matches",
14
- suggested: "Suggested matches",
15
- loading: "",
16
- noResults: "View all trades",
17
- description: "",
18
- placeholder: "",
32
+ const config_1 = require("../config");
33
+ (0, jestHTMLDialogPolyfill_1.jestHTMLDialogPolyfill)();
34
+ jest.mock("react", () => (Object.assign(Object.assign({}, jest.requireActual("react")), { useRef: jest.fn() })));
35
+ jest.mock("@react-aria/focus", () => ({
36
+ useFocusRing: () => ({
37
+ isFocusVisible: () => { },
38
+ focusProps: () => { },
39
+ }),
40
+ }));
41
+ jest.mock("@react-aria/interactions", () => ({
42
+ useHover: () => ({
43
+ hoverProps: () => { },
44
+ isHovered: () => { },
45
+ }),
46
+ }));
47
+ const SearchResultsComponent = (props) => {
48
+ const { defaultLabels } = (0, config_1.getConfig)();
49
+ const defaultProps = {
50
+ isOpen: true,
51
+ inputRef: (0, react_1.useRef)(null),
52
+ results: [mockApiResults_1.mockTrade],
53
+ fallbackUrl: "https://www.example.com",
54
+ labels: Object.assign({}, defaultLabels),
55
+ isLoading: false,
56
+ onClick: jest.fn(),
57
+ onClose: jest.fn(),
58
+ };
59
+ return (0, jsx_runtime_1.jsx)(SearchResults_1.SearchResults, Object.assign({}, defaultProps, props));
19
60
  };
20
- const mockedTrades = [
21
- {
22
- name: "exact",
23
- title: defaultLabels.exact,
24
- children: [...mockApiResults_1.exactResults],
25
- },
26
- {
27
- name: "suggested",
28
- title: defaultLabels.suggested,
29
- children: [...mockApiResults_1.suggestedResults],
30
- },
31
- ];
32
- const fallbackUrl = "https://www.example.com/";
33
61
  describe("SearchResults", () => {
34
- beforeAll(() => {
35
- // Suppress the following warning
36
- // If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility
37
- jest.spyOn(console, "warn").mockImplementation(jest.fn());
38
- });
39
- describe("given items list contain no results item", () => {
40
- it("displays no results label with fallback url", async () => {
41
- const props = {
42
- inputValue: "",
43
- items: [
44
- {
45
- name: defaultLabels.noResults,
46
- title: defaultLabels.noResults,
47
- children: [],
48
- },
49
- ],
50
- labels: Object.assign(Object.assign({}, defaultLabels), { noResults: defaultLabels.noResults }),
51
- fallbackUrl,
52
- onInputChange: () => { },
53
- onSelectionChange: () => { },
54
- };
55
- (0, react_1.render)((0, jsx_runtime_1.jsx)(_1.SearchResults, Object.assign({}, props)));
56
- await user_event_1.default.tab();
57
- await user_event_1.default.keyboard("[Alt][ArrowDown]");
58
- expect(react_1.screen.getByText(defaultLabels.noResults)).toHaveAttribute("href", fallbackUrl);
62
+ beforeEach(() => {
63
+ jest.spyOn(react_1.default, "useRef").mockReturnValue({
64
+ current: [],
59
65
  });
60
66
  });
61
- describe("given a list of trades", () => {
62
- it("displays the trades grouped by exact and suggested matches", async () => {
63
- const props = {
64
- inputValue: "",
65
- items: mockedTrades,
66
- labels: defaultLabels,
67
- fallbackUrl: "https://www.example.com/",
68
- onInputChange: () => { },
69
- onSelectionChange: () => { },
70
- };
71
- const exactResultTrade = "Swimming pool installers";
72
- const suggestedResultTrade = "Fitness instructor";
73
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(_1.SearchResults, Object.assign({}, props)));
74
- await user_event_1.default.tab();
75
- await user_event_1.default.keyboard("[Alt][ArrowDown]");
76
- expect(react_1.screen.getByText(defaultLabels.exact)).toBeInTheDocument();
77
- expect(container.querySelector(`[data-key='${exactResultTrade}']`)).toBeInTheDocument();
78
- expect(react_1.screen.getByText(defaultLabels.suggested)).toBeInTheDocument();
79
- expect(container.querySelector(`[data-key='${suggestedResultTrade}']`)).toBeInTheDocument();
80
- });
67
+ const loadingText = "Loading...";
68
+ const tradeText = "Landlord";
69
+ const noResultsText = "View all trades";
70
+ it("renders loading state", () => {
71
+ (0, react_2.render)((0, jsx_runtime_1.jsx)(SearchResultsComponent, { isLoading: true }));
72
+ const loading = react_2.screen.queryByText(loadingText);
73
+ const trade = react_2.screen.queryByText(tradeText);
74
+ const noResultsLink = react_2.screen.queryByText(noResultsText);
75
+ expect(loading).toBeInTheDocument();
76
+ expect(noResultsLink).not.toBeInTheDocument();
77
+ expect(trade).not.toBeInTheDocument();
81
78
  });
82
- describe("given input value changes", () => {
83
- it("onInputChange prop is invoked", () => {
84
- const onInputChangeHandler = jest.fn();
85
- const props = {
86
- inputValue: "",
87
- items: mockedTrades,
88
- labels: defaultLabels,
89
- fallbackUrl: "https://www.example.com/",
90
- onInputChange: onInputChangeHandler,
91
- onSelectionChange: () => { },
92
- };
93
- (0, react_1.render)((0, jsx_runtime_1.jsx)(_1.SearchResults, Object.assign({}, props)));
94
- const input = react_1.screen.getByRole("combobox");
95
- react_1.fireEvent.change(input, { target: { value: "New text" } });
96
- expect(onInputChangeHandler).toHaveBeenCalled();
97
- });
79
+ it("renders no results state", () => {
80
+ (0, react_2.render)((0, jsx_runtime_1.jsx)(SearchResultsComponent, { results: [] }));
81
+ const loading = react_2.screen.queryByText(loadingText);
82
+ const trade = react_2.screen.queryByText(tradeText);
83
+ const noResultsLink = react_2.screen.queryByText(noResultsText);
84
+ expect(loading).not.toBeInTheDocument();
85
+ expect(noResultsLink).toBeInTheDocument();
86
+ expect(trade).not.toBeInTheDocument();
87
+ });
88
+ it("renders trades list", () => {
89
+ (0, react_2.render)((0, jsx_runtime_1.jsx)(SearchResultsComponent, {}));
90
+ const loading = react_2.screen.queryByText(loadingText);
91
+ const trade = react_2.screen.queryByText(tradeText);
92
+ const noResultsLink = react_2.screen.queryByText(noResultsText);
93
+ expect(loading).not.toBeInTheDocument();
94
+ expect(noResultsLink).not.toBeInTheDocument();
95
+ expect(trade).toBeInTheDocument();
98
96
  });
99
- describe("given user selection value changes", () => {
100
- it("onSelectionChange prop is invoked", async () => {
101
- const onSelectionChangeHandler = jest.fn();
102
- const props = {
103
- inputValue: "",
104
- items: mockedTrades,
105
- labels: defaultLabels,
106
- fallbackUrl: "https://www.example.com/",
107
- onInputChange: () => { },
108
- onSelectionChange: onSelectionChangeHandler,
109
- };
110
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(_1.SearchResults, Object.assign({}, props)));
111
- await user_event_1.default.tab();
112
- await user_event_1.default.keyboard("[Alt][ArrowDown]");
113
- const option = container.querySelector(`[data-key='Swimming pool installers']`);
114
- react_1.fireEvent.click(option);
115
- expect(onSelectionChangeHandler).toHaveBeenCalled();
97
+ describe("pressing Enter key", () => {
98
+ it("selects the first trade from the list", () => {
99
+ const onClick = jest.fn();
100
+ const { container } = (0, react_2.render)((0, jsx_runtime_1.jsx)(SearchResultsComponent, { onClick: onClick }));
101
+ const button = container.querySelector("button");
102
+ expect(button).toHaveClass("--is-focused");
103
+ react_2.fireEvent.keyDown(container, {
104
+ key: "Enter",
105
+ code: "Enter",
106
+ });
107
+ expect(onClick).toHaveBeenCalled();
116
108
  });
117
109
  });
118
110
  });
@@ -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,15 @@
1
+ import { RefObject, ChangeEvent, MouseEvent } from "react";
2
+ import { AriaLabelingProps, DOMProps } from "@react-types/shared";
3
+ export type TradeInputProps = {
4
+ onChange: (event: ChangeEvent<HTMLInputElement>) => void;
5
+ inputRef: RefObject<HTMLInputElement>;
6
+ inputProps?: AriaLabelingProps & DOMProps;
7
+ value: string;
8
+ className?: string;
9
+ label?: string;
10
+ placeholder: string;
11
+ initialTrade?: string;
12
+ onEdit: (event: MouseEvent<HTMLButtonElement>) => void;
13
+ isEditable: boolean;
14
+ };
15
+ export declare const TradeInput: (props: TradeInputProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TradeInput = void 0;
18
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
19
+ const clsx_1 = __importDefault(require("clsx"));
20
+ const focus_1 = require("@react-aria/focus");
21
+ const interactions_1 = require("@react-aria/interactions");
22
+ const Text_1 = require("../../../Text");
23
+ const TradeInput = (props) => {
24
+ 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"]);
25
+ const selectedTrade = initialTrade && !isEditable;
26
+ const { isFocusVisible, focusProps } = (0, focus_1.useFocusRing)({
27
+ within: true,
28
+ });
29
+ const { hoverProps, isHovered } = (0, interactions_1.useHover)(Object.assign({}, otherProps));
30
+ const classes = (0, clsx_1.default)("chopin", "chopin/TradeSelectorInput", {
31
+ "--is-focused": isFocusVisible,
32
+ "--is-hovered": isHovered,
33
+ }, className);
34
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, focusProps, { children: selectedTrade ? ((0, jsx_runtime_1.jsxs)(Text_1.Text, { children: ["You have selected \u2018", (0, jsx_runtime_1.jsx)("strong", { children: initialTrade }), "\u2019 as your trade/profession.", " ", (0, jsx_runtime_1.jsx)("button", Object.assign({ type: "button", className: "mobius/Link chopin/TradeSelectorButton", "aria-label": "Change your selected profession", onClick: onEdit }, { children: "Change" }))] })) : ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "chopin/TradeSelectorInputContainer" }, { children: [(0, jsx_runtime_1.jsx)("input", Object.assign({}, hoverProps, inputProps, { type: "text", placeholder: placeholder, "aria-label": label, className: classes, onChange: onChange, ref: inputRef, value: value })), isEditable && ((0, jsx_runtime_1.jsx)("button", Object.assign({ type: "button", className: "mobius/Link chopin/TradeSelectorButton", "aria-label": "Cancel changes", onClick: onEdit }, { children: "Cancel" })))] }))) })));
35
+ };
36
+ exports.TradeInput = TradeInput;
37
+ //# 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,gDAAwB;AACxB,6CAAiD;AACjD,2DAAoD;AACpD,wCAAqC;AAe9B,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,IAAA,oBAAY,EAAC;QAClD,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,uBAAQ,oBACrC,UAAU,EACb,CAAC;IACH,MAAM,OAAO,GAAG,IAAA,cAAI,EAClB,QAAQ,EACR,2BAA2B,EAC3B;QACE,cAAc,EAAE,cAAc;QAC9B,cAAc,EAAE,SAAS;KAC1B,EACD,SAAS,CACV,CAAC;IAEF,OAAO,CACL,gDAAS,UAAU,cAChB,aAAa,CAAC,CAAC,CAAC,CACf,wBAAC,WAAI,2CACgB,6CAAS,YAAY,GAAU,sCAChC,GAAG,EACrB,iDACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wCAAwC,gBACvC,iCAAiC,EAC5C,OAAO,EAAE,MAAM,4BAGR,IACJ,CACR,CAAC,CAAC,CAAC,CACF,+CAAK,SAAS,EAAC,oCAAoC,iBACjD,kDACM,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,iDACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wCAAwC,gBACvC,gBAAgB,EAC3B,OAAO,EAAE,MAAM,4BAGR,CACV,KACG,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAzEW,QAAA,UAAU,cAyErB"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
7
+ const react_1 = require("@testing-library/react");
8
+ const user_event_1 = __importDefault(require("@testing-library/user-event"));
9
+ const react_2 = require("react");
10
+ const TradeInput_1 = require("./TradeInput");
11
+ const TradeInputComponent = (props) => {
12
+ const defaultProps = {
13
+ onChange: jest.fn(),
14
+ inputRef: (0, react_2.useRef)(null),
15
+ value: "",
16
+ placeholder: "e.g. Cleaner, builder, consultant",
17
+ onEdit: jest.fn(),
18
+ isEditable: false,
19
+ };
20
+ return (0, jsx_runtime_1.jsx)(TradeInput_1.TradeInput, Object.assign({}, defaultProps, props));
21
+ };
22
+ describe("TradeInput", () => {
23
+ it("renders selected trade", () => {
24
+ var _a;
25
+ const initialTrade = "Landlord";
26
+ const onEdit = jest.fn();
27
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(TradeInputComponent, { initialTrade: initialTrade, onEdit: onEdit }));
28
+ const initialTradeText = react_1.screen.queryByText(initialTrade);
29
+ const changeButton = react_1.screen.queryByRole("button");
30
+ 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`);
31
+ react_1.fireEvent.click(changeButton);
32
+ expect(onEdit).toHaveBeenCalled();
33
+ });
34
+ it("renders input field", async () => {
35
+ const onChange = jest.fn();
36
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(TradeInputComponent, { onChange: onChange }));
37
+ const inputField = react_1.screen.queryByRole("textbox");
38
+ expect(inputField).toBeInTheDocument();
39
+ await user_event_1.default.tab();
40
+ await user_event_1.default.keyboard("[Space]");
41
+ expect(onChange).toHaveBeenCalled();
42
+ });
43
+ it("sets classes for interaction states", async () => {
44
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(TradeInputComponent, {}));
45
+ const inputField = react_1.screen.queryByRole("textbox");
46
+ await user_event_1.default.tab();
47
+ expect(inputField).toHaveClass("--is-focused");
48
+ react_1.fireEvent.mouseEnter(inputField);
49
+ expect(inputField).toHaveClass("--is-hovered");
50
+ });
51
+ it("allows user to edit trade", () => {
52
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(TradeInputComponent, { isEditable: true }));
53
+ const cancelText = react_1.screen.queryByText("Cancel");
54
+ expect(cancelText).toBeInTheDocument();
55
+ });
56
+ });
57
+ //# 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":";;;;;;AAAA,kDAAmE;AACnE,6EAAoD;AACpD,iCAA+B;AAC/B,6CAA2D;AAE3D,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE;IAC9D,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,QAAQ,EAAE,IAAA,cAAM,EAAC,IAAI,CAAC;QACtB,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,mCAAmC;QAChD,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACjB,UAAU,EAAE,KAAK;KAClB,CAAC;IAEF,OAAO,uBAAC,uBAAU,oBAAK,YAAY,EAAM,KAAK,EAAI,CAAC;AACrD,CAAC,CAAC;AAEF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;;QAChC,MAAM,YAAY,GAAG,UAAU,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAEzB,IAAA,cAAM,EAAC,uBAAC,mBAAmB,IAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC,CAAC;QAE5E,MAAM,gBAAgB,GAAG,cAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,cAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,CAAC,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,UAAU,0CAAE,WAAW,CAAC,CAAC,OAAO,CACvD,sBAAsB,YAAY,oCAAoC,CACvE,CAAC;QAEF,iBAAS,CAAC,KAAK,CAAC,YAAa,CAAC,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE3B,IAAA,cAAM,EAAC,uBAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC;QAEpD,MAAM,UAAU,GAAG,cAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAEvC,MAAM,oBAAS,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,oBAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,IAAA,cAAM,EAAC,uBAAC,mBAAmB,KAAG,CAAC,CAAC;QAEhC,MAAM,UAAU,GAAG,cAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,oBAAS,CAAC,GAAG,EAAE,CAAC;QAEtB,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAE/C,iBAAS,CAAC,UAAU,CAAC,UAAW,CAAC,CAAC;QAElC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,IAAA,cAAM,EAAC,uBAAC,mBAAmB,IAAC,UAAU,SAAG,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,cAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./TradeInput";
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ComboBox"), exports);
17
+ __exportStar(require("./TradeInput"), exports);
18
18
  //# 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,+CAA6B"}
@@ -1,5 +1,5 @@
1
- import type { TradeSelectorProps, TradeSelectorElementType } from ".";
1
+ import { TradeSelectorElementType, TradeSelectorProps } from "./types";
2
2
  import { ForwardedRefComponent } from "../../../types/components";
3
- export declare const ERROR_MESSAGE_SERVICE_UNAVAIALBLE = "The service is currently unavailable. Please try again later";
3
+ export declare const ERROR_MESSAGE_SERVICE_UNAVAILABLE = "The service is currently unavailable. Please try again later";
4
4
  declare const TradeSelector: ForwardedRefComponent<TradeSelectorProps, TradeSelectorElementType>;
5
5
  export { TradeSelector };
@@ -3,57 +3,88 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TradeSelector = exports.ERROR_MESSAGE_SERVICE_UNAVAIALBLE = void 0;
6
+ exports.TradeSelector = exports.ERROR_MESSAGE_SERVICE_UNAVAILABLE = void 0;
7
7
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const clsx_1 = __importDefault(require("clsx"));
10
- const utils_1 = require("@react-aria/utils");
11
10
  const label_1 = require("@react-aria/label");
11
+ const utils_1 = require("@react-aria/utils");
12
12
  const config_1 = require("./config");
13
- const SelectedTrade_1 = require("./SelectedTrade");
13
+ const TradeInput_1 = require("./TradeInput");
14
14
  const SearchResults_1 = require("./SearchResults");
15
- const useTradeSelector_1 = require("./useTradeSelector");
16
- const getItemsToDisplay_1 = require("./getItemsToDisplay");
15
+ const useFetchTrades_1 = require("./useFetchTrades");
16
+ const useTradeSelectorUrl_1 = require("./useTradeSelectorUrl");
17
+ const Header_1 = require("./Header");
17
18
  const ErrorMessage_1 = require("../../ErrorMessage");
18
19
  const spaceDelimitedList_1 = require("../../../utils/spaceDelimitedList");
19
- const Label_1 = require("../../Label");
20
- const Text_1 = require("../../Text");
21
- exports.ERROR_MESSAGE_SERVICE_UNAVAIALBLE = "The service is currently unavailable. Please try again later";
20
+ exports.ERROR_MESSAGE_SERVICE_UNAVAILABLE = "The service is currently unavailable. Please try again later";
22
21
  const TradeSelector = (0, react_1.forwardRef)((props, ref) => {
23
- const { elementType: Element = "div", minInput = 3, apiRequestDebounceInMs = 250, urls, labels, className, onTradeSelected, hideLabel, initialTrade, } = props;
24
- 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);
25
- const { site, baseUrl } = (0, config_1.getConfig)();
22
+ const { minInput = 3, apiRequestDebounceInMs = 250, urls, labels, className, onTradeSelected, hideLabel, initialTrade = "", vertical, searchScope, } = props;
23
+ const { site, baseUrl, defaultLabels } = (0, config_1.getConfig)();
24
+ const fieldLabels = Object.assign(Object.assign({}, defaultLabels), labels);
26
25
  const links = (0, react_1.useMemo)(() => (Object.assign({ quoteRedirect: site, tradeApi: baseUrl, allOccupations: "https://quote.simplybusiness.co.uk/trades?vertical=business" }, urls)), [site, baseUrl, urls]);
27
- const { inputValue, trades, onInputChange, onSelectionChange, error, isLoading, selectedTrade, hasUserChangedMind, onUserChangedMind, } = (0, useTradeSelector_1.useTradeSelector)({
28
- minInput,
29
- apiRequestDebounceInMs,
30
- urls: links,
31
- onTradeSelected,
32
- initialTrade,
33
- });
34
26
  const classes = (0, clsx_1.default)("chopin", "chopin/TradeSelector", className);
27
+ const [userInput, setUserInput] = (0, react_1.useState)("");
28
+ const [selectedTrade, setSelectedTrade] = (0, react_1.useState)(null);
29
+ const [editMode, setEditMode] = (0, react_1.useState)(false);
30
+ const [isOverlayVisible, setIsOverlayVisible] = (0, react_1.useState)(false);
31
+ const inputRef = (0, react_1.useRef)(null);
32
+ const currentTrade = selectedTrade ? selectedTrade.value : initialTrade;
33
+ const endpoint = (0, useTradeSelectorUrl_1.useTradeSelectorUrl)(links.tradeApi, userInput, {
34
+ site: links.quoteRedirect,
35
+ vertical,
36
+ searchScope,
37
+ });
38
+ const { trades, isLoading, error, fetchTrades } = (0, useFetchTrades_1.useFetchTrades)(endpoint, apiRequestDebounceInMs);
35
39
  const errorMessage = error === null || error === void 0 ? void 0 : error.message;
36
40
  const errorMessageId = (0, utils_1.useSlotId)([Boolean(errorMessage)]);
37
41
  const { labelProps, fieldProps } = (0, label_1.useLabel)({
38
42
  label: fieldLabels.input,
39
43
  });
44
+ const ariaLabel = hideLabel ? fieldLabels.input : undefined;
45
+ const inputProps = hideLabel ? undefined : fieldProps;
40
46
  const describedBy = (0, spaceDelimitedList_1.spaceDelimitedList)([
41
47
  errorMessageId,
42
48
  props["aria-describedby"],
43
49
  ]);
44
- const isOpen = inputValue.length >= minInput && !errorMessage;
45
- const shouldSelectedTradeDisplay = selectedTrade && !hasUserChangedMind;
46
- const items = isOpen
47
- ? (0, getItemsToDisplay_1.getItemsToDisplay)({
48
- trades,
49
- isLoading,
50
- labels: fieldLabels,
51
- })
52
- : [];
53
- const { input: inputLabel, description } = fieldLabels;
54
- const ariaLabel = hideLabel ? inputLabel : undefined;
55
- const inputProps = hideLabel ? undefined : fieldProps;
56
- return ((0, jsx_runtime_1.jsxs)(Element, Object.assign({ ref: ref, className: classes }, { children: [!hideLabel && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Label_1.Label, Object.assign({}, labelProps, { className: "chopin/TradeSelectorLabel", "aria-hidden": true }, { children: inputLabel })), (0, jsx_runtime_1.jsx)(Text_1.Text, Object.assign({ className: "chopin/TradeSelectorDescription", variant: "caption" }, { children: description }))] })), shouldSelectedTradeDisplay ? ((0, jsx_runtime_1.jsx)(SelectedTrade_1.SelectedTrade, { trade: selectedTrade, onClick: onUserChangedMind })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SearchResults_1.SearchResults, { inputValue: inputValue, items: items, labels: fieldLabels, describedBy: describedBy, fallbackUrl: links.allOccupations, onInputChange: onInputChange, onSelectionChange: onSelectionChange, fieldProps: inputProps, label: ariaLabel }), error && ((0, jsx_runtime_1.jsx)(ErrorMessage_1.ErrorMessage, { id: errorMessageId, errorMessage: exports.ERROR_MESSAGE_SERVICE_UNAVAIALBLE }))] }))] })));
50
+ const handleChange = (event) => setUserInput(event.target.value);
51
+ const toggleEditMode = () => setEditMode(!editMode);
52
+ const handleOverlayClose = () => {
53
+ setIsOverlayVisible(false);
54
+ };
55
+ const handleTradeSelect = (trade) => {
56
+ setSelectedTrade(trade);
57
+ if (editMode) {
58
+ toggleEditMode();
59
+ }
60
+ if (trade && onTradeSelected) {
61
+ try {
62
+ onTradeSelected(trade);
63
+ }
64
+ catch (err) {
65
+ // eslint-disable-next-line no-console
66
+ console.error("onTradeSelected returned the following error", err);
67
+ }
68
+ }
69
+ };
70
+ (0, react_1.useEffect)(() => {
71
+ if (editMode && currentTrade) {
72
+ setUserInput(currentTrade);
73
+ }
74
+ if (!editMode) {
75
+ setUserInput("");
76
+ }
77
+ }, [editMode, currentTrade]);
78
+ (0, react_1.useEffect)(() => {
79
+ if (userInput.length >= minInput) {
80
+ setIsOverlayVisible(true);
81
+ fetchTrades(true);
82
+ }
83
+ if (userInput.length < minInput) {
84
+ setIsOverlayVisible(false);
85
+ }
86
+ }, [minInput, fetchTrades, userInput.length]);
87
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ ref: ref, className: classes }, { children: [(0, jsx_runtime_1.jsx)(Header_1.Header, { isOpen: !hideLabel, labelProps: labelProps, labels: fieldLabels }), (0, jsx_runtime_1.jsx)(TradeInput_1.TradeInput, { inputRef: inputRef, inputProps: inputProps, value: userInput, onChange: handleChange, label: ariaLabel, placeholder: fieldLabels.placeholder, initialTrade: currentTrade, onEdit: toggleEditMode, isEditable: editMode }), error ? ((0, jsx_runtime_1.jsx)(ErrorMessage_1.ErrorMessage, { id: errorMessageId, errorMessage: exports.ERROR_MESSAGE_SERVICE_UNAVAILABLE })) : ((0, jsx_runtime_1.jsx)(SearchResults_1.SearchResults, { isOpen: isOverlayVisible, labels: fieldLabels, onClick: handleTradeSelect, onClose: handleOverlayClose, results: trades, isLoading: isLoading, fallbackUrl: links.allOccupations, describedBy: describedBy, inputRef: inputRef }))] })));
57
88
  });
58
89
  exports.TradeSelector = TradeSelector;
59
90
  TradeSelector.displayName = "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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"}