@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.
- package/CHANGELOG.md +23 -0
- package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.js +5 -10
- package/dist/cjs/components/Chopin/QuestionHelp/QuestionHelp.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Header/Header.d.ts +9 -0
- package/dist/cjs/components/Chopin/TradeSelector/Header/Header.js +14 -0
- package/dist/cjs/components/Chopin/TradeSelector/Header/Header.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/Header/index.d.ts +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/{Popover → Header}/index.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Header/index.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.d.ts +12 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.js +24 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.test.js +51 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/Listing.test.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.d.ts +10 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.js +27 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.test.js +42 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/ListingItem.test.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/Listing/index.d.ts +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/{ListBox → Listing}/index.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/Listing/index.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.d.ts +11 -11
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.js +92 -15
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js +96 -104
- package/dist/cjs/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.d.ts +15 -0
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.js +37 -0
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js +57 -0
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/index.d.ts +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/{ComboBox → TradeInput}/index.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeInput/index.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.d.ts +2 -2
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.js +62 -31
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.test.js +152 -240
- package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.test.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/config/index.d.ts +9 -0
- package/dist/cjs/components/Chopin/TradeSelector/config/shared.d.ts +9 -0
- package/dist/cjs/components/Chopin/TradeSelector/config/shared.js +9 -0
- package/dist/cjs/components/Chopin/TradeSelector/config/shared.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.d.ts +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js +17 -0
- package/dist/cjs/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/mockApiResults.d.ts +10 -0
- package/dist/cjs/components/Chopin/TradeSelector/mockApiResults.js +11 -1
- package/dist/cjs/components/Chopin/TradeSelector/mockApiResults.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/types.d.ts +7 -5
- package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/index.d.ts +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/{SelectedTrade → useFetchTrades}/index.js +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/index.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.d.ts +8 -0
- package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js +62 -0
- package/dist/cjs/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/index.d.ts +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/index.js +18 -0
- package/dist/cjs/components/Chopin/TradeSelector/{useTradeSelector → useTradeSelectorUrl}/index.js.map +1 -1
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.d.ts +6 -0
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js +20 -0
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js.map +1 -0
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js +29 -0
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js.map +1 -0
- package/dist/cjs/components/Chopin/index.d.ts +5 -5
- package/dist/cjs/components/Chopin/index.js +5 -5
- package/dist/cjs/components/Chopin/index.js.map +1 -1
- package/dist/cjs/hooks/useOnClickOutside/index.d.ts +1 -0
- package/dist/cjs/hooks/useOnClickOutside/index.js +18 -0
- package/dist/cjs/hooks/useOnClickOutside/index.js.map +1 -0
- package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.d.ts +2 -0
- package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.js +23 -0
- package/dist/cjs/hooks/useOnClickOutside/useOnClickOutside.js.map +1 -0
- package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.js +6 -11
- package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/Header/Header.js +10 -0
- package/dist/esm/components/Chopin/TradeSelector/Header/Header.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/Header/index.js +2 -0
- package/dist/esm/components/Chopin/TradeSelector/Header/index.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.js +17 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.test.js +26 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.test.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.js +21 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.test.js +37 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.test.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/index.js +2 -0
- package/dist/esm/components/Chopin/TradeSelector/Listing/index.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.js +90 -16
- package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js +75 -103
- package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.js +30 -0
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js +52 -0
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/index.js +2 -0
- package/dist/esm/components/Chopin/TradeSelector/TradeInput/index.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/TradeSelector.js +63 -32
- package/dist/esm/components/Chopin/TradeSelector/TradeSelector.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js +154 -242
- package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/config/shared.js +9 -0
- package/dist/esm/components/Chopin/TradeSelector/config/shared.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js +13 -0
- package/dist/esm/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/mockApiResults.js +10 -0
- package/dist/esm/components/Chopin/TradeSelector/mockApiResults.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/index.js +2 -0
- package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/index.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js +55 -0
- package/dist/esm/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/index.js +2 -0
- package/dist/esm/components/Chopin/TradeSelector/{useTradeSelector → useTradeSelectorUrl}/index.js.map +1 -1
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js +16 -0
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.js.map +1 -0
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js +27 -0
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.js.map +1 -0
- package/dist/esm/components/Chopin/index.js +5 -5
- package/dist/esm/components/Chopin/index.js.map +1 -1
- package/dist/esm/hooks/useOnClickOutside/index.js +2 -0
- package/dist/esm/hooks/useOnClickOutside/index.js.map +1 -0
- package/dist/esm/hooks/useOnClickOutside/useOnClickOutside.js +19 -0
- package/dist/esm/hooks/useOnClickOutside/useOnClickOutside.js.map +1 -0
- package/dist/mobius.d.ts +38 -30
- package/package.json +5 -7
- package/src/components/Chopin/QuestionHelp/QuestionHelp.tsx +8 -20
- package/src/components/Chopin/TradeSelector/Header/Header.tsx +33 -0
- package/src/components/Chopin/TradeSelector/Header/index.tsx +1 -0
- package/src/components/Chopin/TradeSelector/Listing/Listing.test.tsx +42 -0
- package/src/components/Chopin/TradeSelector/Listing/Listing.tsx +51 -0
- package/src/components/Chopin/TradeSelector/Listing/ListingItem.test.tsx +54 -0
- package/src/components/Chopin/TradeSelector/Listing/ListingItem.tsx +50 -0
- package/src/components/Chopin/TradeSelector/Listing/index.tsx +1 -0
- package/src/components/Chopin/TradeSelector/SearchResults/SearchResults.test.tsx +90 -130
- package/src/components/Chopin/TradeSelector/SearchResults/SearchResults.tsx +169 -66
- package/src/components/Chopin/TradeSelector/TradeInput/TradeInput.test.tsx +74 -0
- package/src/components/Chopin/TradeSelector/TradeInput/TradeInput.tsx +94 -0
- package/src/components/Chopin/TradeSelector/TradeInput/index.tsx +1 -0
- package/src/components/Chopin/TradeSelector/TradeSelector.story.mdx +75 -49
- package/src/components/Chopin/TradeSelector/TradeSelector.test.tsx +228 -300
- package/src/components/Chopin/TradeSelector/TradeSelector.tsx +124 -93
- package/src/components/Chopin/TradeSelector/config/shared.ts +9 -0
- package/src/components/Chopin/TradeSelector/jestHTMLDialogPolyfill.ts +17 -0
- package/src/components/Chopin/TradeSelector/mockApiResults.ts +11 -0
- package/src/components/Chopin/TradeSelector/types.ts +24 -6
- package/src/components/Chopin/TradeSelector/useFetchTrades/index.ts +1 -0
- package/src/components/Chopin/TradeSelector/useFetchTrades/useFetchTrades.ts +67 -0
- package/src/components/Chopin/TradeSelector/useTradeSelectorUrl/index.ts +1 -0
- package/src/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.test.ts +37 -0
- package/src/components/Chopin/TradeSelector/useTradeSelectorUrl/useTradeSelectorUrl.ts +26 -0
- package/src/components/Chopin/index.tsx +5 -5
- package/src/components/Link/Link.story.mdx +14 -0
- package/src/hooks/useOnClickOutside/index.ts +1 -0
- package/src/hooks/useOnClickOutside/useOnClickOutside.ts +23 -0
- package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.d.ts +0 -9
- package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.js +0 -37
- package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js +0 -59
- package/dist/cjs/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ComboBox/index.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ComboBox/index.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBox.d.ts +0 -13
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBox.js +0 -16
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBox.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBoxSection.d.ts +0 -8
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBoxSection.js +0 -15
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/ListBoxSection.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/Option.d.ts +0 -9
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/Option.js +0 -22
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/Option.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/index.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/ListBox/index.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.d.ts +0 -10
- package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.js +0 -24
- package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.test.js +0 -18
- package/dist/cjs/components/Chopin/TradeSelector/Popover/Popover.test.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/Popover/index.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/Popover/index.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.d.ts +0 -5
- package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js +0 -8
- package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js +0 -18
- package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/index.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/SelectedTrade/index.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.d.ts +0 -7
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js +0 -27
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js +0 -76
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/index.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/index.js +0 -18
- package/dist/cjs/components/Chopin/TradeSelector/getItemsToDisplay/index.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.d.ts +0 -2
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js +0 -17
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js +0 -42
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/index.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/index.js +0 -18
- package/dist/cjs/components/Chopin/TradeSelector/getTradesGroupedByType/index.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/index.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/index.js +0 -18
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.d.ts +0 -17
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js +0 -68
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js.map +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.d.ts +0 -1
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js +0 -86
- package/dist/cjs/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.js +0 -31
- package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js +0 -54
- package/dist/esm/components/Chopin/TradeSelector/ComboBox/ComboBox.test.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/ComboBox/index.js +0 -2
- package/dist/esm/components/Chopin/TradeSelector/ComboBox/index.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBox.js +0 -13
- package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBox.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBoxSection.js +0 -12
- package/dist/esm/components/Chopin/TradeSelector/ListBox/ListBoxSection.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/ListBox/Option.js +0 -16
- package/dist/esm/components/Chopin/TradeSelector/ListBox/Option.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/ListBox/index.js +0 -2
- package/dist/esm/components/Chopin/TradeSelector/ListBox/index.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.js +0 -21
- package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.test.js +0 -16
- package/dist/esm/components/Chopin/TradeSelector/Popover/Popover.test.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/Popover/index.js +0 -2
- package/dist/esm/components/Chopin/TradeSelector/Popover/index.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js +0 -4
- package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js +0 -16
- package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/index.js +0 -2
- package/dist/esm/components/Chopin/TradeSelector/SelectedTrade/index.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js +0 -23
- package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js +0 -74
- package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/index.js +0 -2
- package/dist/esm/components/Chopin/TradeSelector/getItemsToDisplay/index.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js +0 -13
- package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js +0 -40
- package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/index.js +0 -2
- package/dist/esm/components/Chopin/TradeSelector/getTradesGroupedByType/index.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/index.js +0 -2
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js +0 -65
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.js.map +0 -1
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js +0 -84
- package/dist/esm/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.js.map +0 -1
- package/src/components/Chopin/TradeSelector/ComboBox/ComboBox.test.tsx +0 -85
- package/src/components/Chopin/TradeSelector/ComboBox/ComboBox.tsx +0 -74
- package/src/components/Chopin/TradeSelector/ComboBox/index.tsx +0 -1
- package/src/components/Chopin/TradeSelector/ListBox/ListBox.tsx +0 -36
- package/src/components/Chopin/TradeSelector/ListBox/ListBoxSection.tsx +0 -34
- package/src/components/Chopin/TradeSelector/ListBox/Option.tsx +0 -35
- package/src/components/Chopin/TradeSelector/ListBox/index.tsx +0 -1
- package/src/components/Chopin/TradeSelector/Popover/Popover.test.tsx +0 -28
- package/src/components/Chopin/TradeSelector/Popover/Popover.tsx +0 -42
- package/src/components/Chopin/TradeSelector/Popover/index.tsx +0 -1
- package/src/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.test.tsx +0 -24
- package/src/components/Chopin/TradeSelector/SelectedTrade/SelectedTrade.tsx +0 -20
- package/src/components/Chopin/TradeSelector/SelectedTrade/index.tsx +0 -1
- package/src/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.test.ts +0 -97
- package/src/components/Chopin/TradeSelector/getItemsToDisplay/getItemsToDisplay.ts +0 -36
- package/src/components/Chopin/TradeSelector/getItemsToDisplay/index.ts +0 -1
- package/src/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.test.ts +0 -49
- package/src/components/Chopin/TradeSelector/getTradesGroupedByType/getTradesGroupedByType.ts +0 -19
- package/src/components/Chopin/TradeSelector/getTradesGroupedByType/index.ts +0 -1
- package/src/components/Chopin/TradeSelector/useTradeSelector/index.ts +0 -1
- package/src/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.test.ts +0 -107
- package/src/components/Chopin/TradeSelector/useTradeSelector/useTradeSelector.ts +0 -82
- /package/dist/cjs/components/Chopin/TradeSelector/{ComboBox/ComboBox.test.d.ts → Listing/Listing.test.d.ts} +0 -0
- /package/dist/cjs/components/Chopin/TradeSelector/{Popover/Popover.test.d.ts → Listing/ListingItem.test.d.ts} +0 -0
- /package/dist/cjs/components/Chopin/TradeSelector/{SelectedTrade/SelectedTrade.test.d.ts → TradeInput/TradeInput.test.d.ts} +0 -0
- /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
|
|
3
|
-
|
|
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("
|
|
8
|
-
const
|
|
9
|
-
const
|
|
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
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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("
|
|
100
|
-
it("
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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":"
|
|
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("./
|
|
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
|
|
1
|
+
import { TradeSelectorElementType, TradeSelectorProps } from "./types";
|
|
2
2
|
import { ForwardedRefComponent } from "../../../types/components";
|
|
3
|
-
export declare const
|
|
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.
|
|
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
|
|
13
|
+
const TradeInput_1 = require("./TradeInput");
|
|
14
14
|
const SearchResults_1 = require("./SearchResults");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
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
|
-
|
|
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 {
|
|
24
|
-
const
|
|
25
|
-
const
|
|
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
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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":";;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TradeSelector.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/TradeSelector/TradeSelector.tsx"],"names":[],"mappings":"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"}
|