@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
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file, or link in
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.4.0] - 2023-03-06
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add support for `vertical` and `searchScope` properties on `TradeSelector`.
|
|
13
|
+
- Add basic implementation of Trade Selector 2, which does not depend on heavy libraries
|
|
14
|
+
- Update README with suggestion for testing Mobius impact in project
|
|
15
|
+
- Add Trade Selector 2 CSS styles
|
|
16
|
+
- Enable selecting and editing a trade in Trade Selector 2
|
|
17
|
+
- Add missing features to Trade Selector 2: call real API, show loading/error/empty state, add aria labels, onTradeSelected prop
|
|
18
|
+
- Add unit tests for Trade Selector 2
|
|
19
|
+
- Trade Selector: on Enter, select first trade from the list
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- To improve code readability and maintainability in Trade Selector 2: split component state between parent component and Search Results component; extract trade fetching into its own hook; extract header into its own component; move labels into the config helper in order to colocate configuration related parameters
|
|
24
|
+
- Remove Trade Selector; rename Trade Selector 2 to Trade Selector
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Fixed an issue in Trade Selector 2 where 'View all trades' link may appear when minimum input threshold is met
|
|
29
|
+
|
|
8
30
|
## [3.3.2] - 2023-02-07
|
|
9
31
|
|
|
10
32
|
### Fixed
|
|
@@ -166,6 +188,7 @@ Additionally, mobius and themes are available on the public NPM registry and can
|
|
|
166
188
|
|
|
167
189
|
## Github Links
|
|
168
190
|
|
|
191
|
+
[3.4.0]: https://github.com/simplybusiness/mobius/releases/tag/v3.4.0
|
|
169
192
|
[3.3.2]: https://github.com/simplybusiness/mobius/releases/tag/v3.3.2
|
|
170
193
|
[3.3.1]: https://github.com/simplybusiness/mobius/releases/tag/v3.3.1
|
|
171
194
|
[3.3.0]: https://github.com/simplybusiness/mobius/releases/tag/v3.3.0
|
|
@@ -8,6 +8,7 @@ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
|
8
8
|
const focus_1 = require("@react-aria/focus");
|
|
9
9
|
const clsx_1 = __importDefault(require("clsx"));
|
|
10
10
|
const react_1 = require("react");
|
|
11
|
+
const useOnClickOutside_1 = require("../../../hooks/useOnClickOutside");
|
|
11
12
|
const useWindowEvent_1 = require("../../../hooks/useWindowEvent");
|
|
12
13
|
function QuestionHelp({ openedLabel = "Close Help", closedLabel = "Open Help", children, onChange = () => { }, isDesktop, closeHelpOnOutsideClick = false, }) {
|
|
13
14
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
@@ -18,20 +19,14 @@ function QuestionHelp({ openedLabel = "Close Help", closedLabel = "Open Help", c
|
|
|
18
19
|
setIsOpen(false);
|
|
19
20
|
}
|
|
20
21
|
});
|
|
21
|
-
|
|
22
|
-
if (
|
|
23
|
-
!ref.current.contains(event.target) &&
|
|
24
|
-
closeHelpOnOutsideClick) {
|
|
22
|
+
(0, useOnClickOutside_1.useOnClickOutside)(ref, () => {
|
|
23
|
+
if (closeHelpOnOutsideClick) {
|
|
25
24
|
setIsOpen(false);
|
|
26
25
|
}
|
|
27
|
-
}
|
|
26
|
+
});
|
|
28
27
|
(0, react_1.useEffect)(() => {
|
|
29
28
|
onChange(isOpen);
|
|
30
|
-
|
|
31
|
-
passive: true,
|
|
32
|
-
});
|
|
33
|
-
return () => window.removeEventListener("click", handleClickOutside);
|
|
34
|
-
}, [onChange, isOpen, handleClickOutside]);
|
|
29
|
+
}, [onChange, isOpen]);
|
|
35
30
|
const className = (0, clsx_1.default)("chopin/QuestionHelp", {
|
|
36
31
|
"--is-open": isOpen,
|
|
37
32
|
"--is-closed": !isOpen,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuestionHelp.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/QuestionHelp/QuestionHelp.tsx"],"names":[],"mappings":";;;;;;;AAAA,6CAAiD;AACjD,gDAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"QuestionHelp.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/QuestionHelp/QuestionHelp.tsx"],"names":[],"mappings":";;;;;;;AAAA,6CAAiD;AACjD,gDAAwB;AACxB,iCAA+D;AAC/D,wEAAqE;AACrE,kEAA+D;AAW/D,SAAgB,YAAY,CAAC,EAC3B,WAAW,GAAG,YAAY,EAC1B,WAAW,GAAG,WAAW,EACzB,QAAQ,EACR,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EACnB,SAAS,EACT,uBAAuB,GAAG,KAAK,GACb;IAClB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAA,oBAAY,EAAC,EAAE,CAAC,CAAC;IAExD,IAAA,+BAAc,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE;QAC5B,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YAChC,SAAS,CAAC,KAAK,CAAC,CAAC;SAClB;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,qCAAiB,EAAC,GAAG,EAAE,GAAG,EAAE;QAC1B,IAAI,uBAAuB,EAAE;YAC3B,SAAS,CAAC,KAAK,CAAC,CAAC;SAClB;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,IAAA,cAAI,EACpB,qBAAqB,EACrB;QACE,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,CAAC,MAAM;KACvB,EACD,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAA,cAAI,EAAC,4BAA4B,EAAE;QAC1D,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAC;IAEH,OAAO,CACL,+CAAK,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,iBACjC,iDACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EACjC,SAAS,EAAE,gBAAgB,IACvB,UAAU,cAEd,2CAAO,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAAQ,IAC1C,EACT,8CACE,SAAS,EAAC,4BAA4B,iBAC1B,MAAM,eACR,QAAQ,EAClB,IAAI,EAAC,SAAS,iBACD,CAAC,MAAM,gBAEnB,QAAQ,IACL,KACF,CACP,CAAC;AACJ,CAAC;AA9DD,oCA8DC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FocusableElement } from "@react-types/shared";
|
|
2
|
+
import { DOMAttributes } from "react";
|
|
3
|
+
import type { LabelProps } from "../types";
|
|
4
|
+
export type HeaderProps = {
|
|
5
|
+
isOpen: boolean;
|
|
6
|
+
labelProps: DOMAttributes<FocusableElement> | React.LabelHTMLAttributes<HTMLLabelElement>;
|
|
7
|
+
labels: LabelProps;
|
|
8
|
+
};
|
|
9
|
+
export declare const Header: (props: HeaderProps) => import("@emotion/react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Header = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
5
|
+
const Label_1 = require("../../../Label");
|
|
6
|
+
const Text_1 = require("../../../Text");
|
|
7
|
+
const Header = (props) => {
|
|
8
|
+
const { isOpen, labelProps, labels } = props;
|
|
9
|
+
if (!isOpen)
|
|
10
|
+
return null;
|
|
11
|
+
return ((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: labels.input })), labels.description && ((0, jsx_runtime_1.jsx)(Text_1.Text, Object.assign({ className: "chopin/TradeSelectorDescription", variant: "caption" }, { children: labels.description })))] }));
|
|
12
|
+
};
|
|
13
|
+
exports.Header = Header;
|
|
14
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/Header/Header.tsx"],"names":[],"mappings":";;;;AAGA,0CAAuC;AACvC,wCAAqC;AAW9B,MAAM,MAAM,GAAG,CAAC,KAAkB,EAAE,EAAE;IAC3C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE7C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO,CACL,6DACE,uBAAC,aAAK,oBAAK,UAAU,IAAE,SAAS,EAAC,2BAA2B,qCACzD,MAAM,CAAC,KAAK,IACP,EACP,MAAM,CAAC,WAAW,IAAI,CACrB,uBAAC,WAAI,kBAAC,SAAS,EAAC,iCAAiC,EAAC,OAAO,EAAC,SAAS,gBAChE,MAAM,CAAC,WAAW,IACd,CACR,IACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,MAAM,UAiBjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Header";
|
|
@@ -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("./Header"), exports);
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/Header/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MutableRefObject } from "react";
|
|
2
|
+
import { TradeProps } from "../types";
|
|
3
|
+
export type ListingProps = {
|
|
4
|
+
title: string;
|
|
5
|
+
trades: TradeProps[];
|
|
6
|
+
resultRefs?: MutableRefObject<HTMLButtonElement[]>;
|
|
7
|
+
refCountStart?: number;
|
|
8
|
+
className?: string;
|
|
9
|
+
onClick: (trade: TradeProps) => void;
|
|
10
|
+
selectedId: number;
|
|
11
|
+
};
|
|
12
|
+
export declare const Listing: (props: ListingProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
exports.Listing = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
8
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
9
|
+
const ListingItem_1 = require("./ListingItem");
|
|
10
|
+
const Listing = (props) => {
|
|
11
|
+
const { title, trades, resultRefs, refCountStart = 0, selectedId, className, onClick, } = props;
|
|
12
|
+
const listClasses = (0, clsx_1.default)("chopin/TradeSelectorList", className);
|
|
13
|
+
return ((0, jsx_runtime_1.jsxs)("nav", Object.assign({ "aria-label": title }, { children: [(0, jsx_runtime_1.jsx)("header", Object.assign({ className: "chopin/TradeSelectorListTitle" }, { children: title })), (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: listClasses }, { children: trades.map((trade, i) => {
|
|
14
|
+
const id = refCountStart + i;
|
|
15
|
+
const selected = selectedId === id;
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)(ListingItem_1.ListingItem, { trade: trade, ref: el => {
|
|
17
|
+
if (!el || !resultRefs)
|
|
18
|
+
return;
|
|
19
|
+
resultRefs.current[id] = el;
|
|
20
|
+
}, onClick: onClick, selected: selected }, trade.value));
|
|
21
|
+
}) }))] })));
|
|
22
|
+
};
|
|
23
|
+
exports.Listing = Listing;
|
|
24
|
+
//# sourceMappingURL=Listing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Listing.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/Listing/Listing.tsx"],"names":[],"mappings":";;;;;;;AAAA,gDAAwB;AAGxB,+CAA4C;AAYrC,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC7C,MAAM,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,aAAa,GAAG,CAAC,EACjB,UAAU,EACV,SAAS,EACT,OAAO,GACR,GAAG,KAAK,CAAC;IACV,MAAM,WAAW,GAAG,IAAA,cAAI,EAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;IAEhE,OAAO,CACL,6DAAiB,KAAK,iBACpB,iDAAQ,SAAS,EAAC,+BAA+B,gBAAE,KAAK,IAAU,EAClE,6CAAI,SAAS,EAAE,WAAW,gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACvB,MAAM,EAAE,GAAG,aAAa,GAAG,CAAC,CAAC;oBAC7B,MAAM,QAAQ,GAAG,UAAU,KAAK,EAAE,CAAC;oBACnC,OAAO,CACL,uBAAC,yBAAW,IAEV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,EAAE,CAAC,EAAE;4BACR,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU;gCAAE,OAAO;4BAC/B,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;wBAC9B,CAAC,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,IAPb,KAAK,CAAC,KAAK,CAQhB,CACH,CAAC;gBACJ,CAAC,CAAC,IACC,KACD,CACP,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,OAAO,WAmClB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
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;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
27
|
+
const react_1 = __importStar(require("react"));
|
|
28
|
+
const react_2 = require("@testing-library/react");
|
|
29
|
+
const mockApiResults_1 = require("../mockApiResults");
|
|
30
|
+
const Listing_1 = require("./Listing");
|
|
31
|
+
jest.mock("react", () => (Object.assign(Object.assign({}, jest.requireActual("react")), { useRef: jest.fn() })));
|
|
32
|
+
describe("Listing", () => {
|
|
33
|
+
it("renders a list of trades", () => {
|
|
34
|
+
jest.spyOn(react_1.default, "useRef").mockReturnValue({
|
|
35
|
+
current: {},
|
|
36
|
+
});
|
|
37
|
+
const title = "Exact matches for your search";
|
|
38
|
+
const trades = [mockApiResults_1.mockTrade];
|
|
39
|
+
const resultRefs = (0, react_1.useRef)([]);
|
|
40
|
+
const onClick = jest.fn();
|
|
41
|
+
const selectedId = 0;
|
|
42
|
+
(0, react_2.render)((0, jsx_runtime_1.jsx)(Listing_1.Listing, { title: title, trades: trades, resultRefs: resultRefs, onClick: onClick, selectedId: selectedId }));
|
|
43
|
+
const header = react_2.screen.getByText(title);
|
|
44
|
+
const trade = react_2.screen.getByText("Landlord");
|
|
45
|
+
expect(header).toBeInTheDocument();
|
|
46
|
+
expect(trade).toBeInTheDocument();
|
|
47
|
+
react_2.fireEvent.click(trade);
|
|
48
|
+
expect(onClick).toHaveBeenCalled();
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=Listing.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Listing.test.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/Listing/Listing.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsC;AACtC,kDAAmE;AACnE,sDAA8C;AAC9C,uCAAoC;AAEpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iCACpB,IAAI,CAAC,aAAa,CAAe,OAAO,CAAC,KAC5C,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IACjB,CAAC,CAAC;AAEJ,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,eAAK,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC;YAC1C,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,+BAA+B,CAAC;QAC9C,MAAM,MAAM,GAAG,CAAC,0BAAS,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,CAAC,CAAC;QAErB,IAAA,cAAM,EACJ,uBAAC,iBAAO,IACN,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,GACtB,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,cAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,cAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAElC,iBAAS,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Key } from "react";
|
|
2
|
+
import { TradeProps } from "../types";
|
|
3
|
+
export type ListingItemElementType = HTMLButtonElement;
|
|
4
|
+
export type ListingItemProps = {
|
|
5
|
+
key?: Key;
|
|
6
|
+
trade: TradeProps;
|
|
7
|
+
onClick: (trade: TradeProps) => void;
|
|
8
|
+
selected: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const ListingItem: import("react").ForwardRefExoticComponent<ListingItemProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
exports.ListingItem = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
8
|
+
const focus_1 = require("@react-aria/focus");
|
|
9
|
+
const interactions_1 = require("@react-aria/interactions");
|
|
10
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
exports.ListingItem = (0, react_1.forwardRef)((props, ref) => {
|
|
13
|
+
const { trade, selected, onClick } = props;
|
|
14
|
+
const { isFocusVisible, focusProps } = (0, focus_1.useFocusRing)({
|
|
15
|
+
within: false,
|
|
16
|
+
});
|
|
17
|
+
const { hoverProps, isHovered } = (0, interactions_1.useHover)({});
|
|
18
|
+
const classes = (0, clsx_1.default)("chopin/TradeSelectorButton", "chopin/TradeSelectorOption", {
|
|
19
|
+
"--is-focused": isFocusVisible || selected,
|
|
20
|
+
"--is-hovered": isHovered,
|
|
21
|
+
});
|
|
22
|
+
const handleClick = () => onClick(trade);
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)("li", Object.assign({ className: "chopin/TradeSelectorListItem" }, { children: (0, jsx_runtime_1.jsx)("button", Object.assign({ ref: ref, type: "button", onClick: handleClick,
|
|
24
|
+
// eslint-disable-next-line react/no-danger
|
|
25
|
+
dangerouslySetInnerHTML: { __html: trade.label }, className: classes, "data-key": trade.value }, hoverProps, focusProps)) })));
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=ListingItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListingItem.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/Listing/ListingItem.tsx"],"names":[],"mappings":";;;;;;;AAAA,6CAAiD;AACjD,2DAAoD;AACpD,gDAAwB;AACxB,iCAA6C;AAYhC,QAAA,WAAW,GAAG,IAAA,kBAAU,EACnC,CAAC,KAAuB,EAAE,GAAgC,EAAE,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAA,oBAAY,EAAC;QAClD,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,uBAAQ,EAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAA,cAAI,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B;QACE,cAAc,EAAE,cAAc,IAAI,QAAQ;QAC1C,cAAc,EAAE,SAAS;KAC1B,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzC,OAAO,CACL,6CAAI,SAAS,EAAC,8BAA8B,gBAC1C,iDACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW;YACpB,2CAA2C;YAC3C,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,EAChD,SAAS,EAAE,OAAO,cACR,KAAK,CAAC,KAAK,IACjB,UAAU,EACV,UAAU,EACd,IACC,CACN,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
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 mockApiResults_1 = require("../mockApiResults");
|
|
10
|
+
const ListingItem_1 = require("./ListingItem");
|
|
11
|
+
describe("ListingItem", () => {
|
|
12
|
+
it("renders trade", () => {
|
|
13
|
+
const onClick = jest.fn();
|
|
14
|
+
const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ListingItem_1.ListingItem, { trade: mockApiResults_1.mockTrade, onClick: onClick, selected: false }));
|
|
15
|
+
const button = container.querySelector("button");
|
|
16
|
+
expect(button).toHaveAttribute("data-key", "Landlord");
|
|
17
|
+
expect(button).toHaveTextContent("Landlord");
|
|
18
|
+
});
|
|
19
|
+
it("sets classes for interaction states", async () => {
|
|
20
|
+
const onClick = jest.fn();
|
|
21
|
+
const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ListingItem_1.ListingItem, { trade: mockApiResults_1.mockTrade, onClick: onClick, selected: false }));
|
|
22
|
+
const button = container.querySelector("button");
|
|
23
|
+
react_1.fireEvent.mouseEnter(button);
|
|
24
|
+
expect(button).toHaveClass("--is-hovered");
|
|
25
|
+
await user_event_1.default.tab();
|
|
26
|
+
expect(button).toHaveClass("--is-focused");
|
|
27
|
+
});
|
|
28
|
+
it("sets interaction class when selected prop is true", () => {
|
|
29
|
+
const onClick = jest.fn();
|
|
30
|
+
const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ListingItem_1.ListingItem, { trade: mockApiResults_1.mockTrade, onClick: onClick, selected: true }));
|
|
31
|
+
const button = container.querySelector("button");
|
|
32
|
+
expect(button).toHaveClass("--is-focused");
|
|
33
|
+
});
|
|
34
|
+
it("calls onClick", () => {
|
|
35
|
+
const onClick = jest.fn();
|
|
36
|
+
const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ListingItem_1.ListingItem, { trade: mockApiResults_1.mockTrade, onClick: onClick, selected: false }));
|
|
37
|
+
const button = container.querySelector("button");
|
|
38
|
+
react_1.fireEvent.click(button);
|
|
39
|
+
expect(onClick).toHaveBeenCalled();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=ListingItem.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListingItem.test.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/Listing/ListingItem.test.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA2D;AAC3D,6EAAoD;AACpD,sDAA8C;AAC9C,+CAA4C;AAE5C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAC1B,uBAAC,yBAAW,IAAC,KAAK,EAAE,0BAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAI,CACrE,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAC1B,uBAAC,yBAAW,IAAC,KAAK,EAAE,0BAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAI,CACrE,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEjD,iBAAS,CAAC,UAAU,CAAC,MAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAE3C,MAAM,oBAAS,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAC1B,uBAAC,yBAAW,IAAC,KAAK,EAAE,0BAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,SAAG,CAC7D,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAC1B,uBAAC,yBAAW,IAAC,KAAK,EAAE,0BAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAI,CACrE,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,iBAAS,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Listing";
|
|
@@ -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("./Listing"), exports);
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/Listing/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import type { LabelProps, GroupedTradeProps } from "..";
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
import type { LabelProps, TradeProps } from "../types";
|
|
4
3
|
export type SearchResultsProps = {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
inputRef: RefObject<HTMLInputElement>;
|
|
6
|
+
results: TradeProps[] | null;
|
|
7
|
+
fallbackUrl: string;
|
|
7
8
|
labels: LabelProps;
|
|
9
|
+
className?: string;
|
|
10
|
+
isLoading: boolean;
|
|
8
11
|
describedBy?: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
onSelectionChange: (value: Key) => void;
|
|
12
|
-
fieldProps?: AriaLabelingProps & DOMProps;
|
|
13
|
-
label?: string;
|
|
12
|
+
onClick: (trade: TradeProps) => void;
|
|
13
|
+
onClose: () => void;
|
|
14
14
|
};
|
|
15
|
-
export declare const SearchResults: (
|
|
15
|
+
export declare const SearchResults: (props: SearchResultsProps) => import("@emotion/react/jsx-runtime").JSX.Element | null;
|
|
@@ -1,21 +1,98 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.SearchResults = void 0;
|
|
4
7
|
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
10
|
+
const Listing_1 = require("../Listing");
|
|
11
|
+
const useOnClickOutside_1 = require("../../../../hooks/useOnClickOutside");
|
|
12
|
+
const SearchResults = (props) => {
|
|
13
|
+
const { isOpen, labels, className, results, isLoading, fallbackUrl, describedBy, inputRef, onClick, onClose, } = props;
|
|
14
|
+
const dialogRef = (0, react_1.useRef)(null);
|
|
15
|
+
const resultRefs = (0, react_1.useRef)([]);
|
|
16
|
+
const [focusId, setFocusId] = (0, react_1.useState)(0);
|
|
17
|
+
const classes = (0, clsx_1.default)("chopin/TradeSelectorResults", {
|
|
18
|
+
"--is-open": isOpen,
|
|
19
|
+
}, className);
|
|
20
|
+
const closeSearchResults = (0, react_1.useCallback)(() => {
|
|
21
|
+
setFocusId(0);
|
|
22
|
+
onClose();
|
|
23
|
+
if (dialogRef.current) {
|
|
24
|
+
dialogRef.current.close();
|
|
25
|
+
}
|
|
26
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
27
|
+
}, []);
|
|
28
|
+
(0, useOnClickOutside_1.useOnClickOutside)(dialogRef, () => {
|
|
29
|
+
if (dialogRef.current && dialogRef.current.open) {
|
|
30
|
+
closeSearchResults();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const handleTradeClick = (0, react_1.useCallback)((trade) => {
|
|
34
|
+
closeSearchResults();
|
|
35
|
+
onClick(trade);
|
|
36
|
+
}, [closeSearchResults, onClick]);
|
|
37
|
+
const handleKeyDown = (0, react_1.useCallback)((event) => {
|
|
38
|
+
var _a;
|
|
39
|
+
if (!((_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.open) || !results)
|
|
40
|
+
return;
|
|
41
|
+
if (event.code === "ArrowDown") {
|
|
42
|
+
if (focusId === results.length - 1) {
|
|
43
|
+
setFocusId(0);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
setFocusId(focusId + 1);
|
|
47
|
+
}
|
|
48
|
+
if (event.code === "ArrowUp") {
|
|
49
|
+
if (focusId === 0) {
|
|
50
|
+
setFocusId(results.length - 1);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
setFocusId(focusId - 1);
|
|
54
|
+
}
|
|
55
|
+
if (event.code === "Escape") {
|
|
56
|
+
closeSearchResults();
|
|
57
|
+
}
|
|
58
|
+
if (event.code === "Enter") {
|
|
59
|
+
if (focusId === 0 && results) {
|
|
60
|
+
const [firstTrade] = results;
|
|
61
|
+
handleTradeClick(firstTrade);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}, [focusId, closeSearchResults, results, handleTradeClick]);
|
|
65
|
+
(0, react_1.useEffect)(() => {
|
|
66
|
+
var _a;
|
|
67
|
+
if (((_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.open) && resultRefs.current[focusId]) {
|
|
68
|
+
resultRefs.current[focusId].focus();
|
|
69
|
+
}
|
|
70
|
+
}, [focusId]);
|
|
71
|
+
(0, react_1.useEffect)(() => {
|
|
72
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
73
|
+
return () => {
|
|
74
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
75
|
+
};
|
|
76
|
+
}, [handleKeyDown]);
|
|
77
|
+
(0, react_1.useEffect)(() => {
|
|
78
|
+
if (dialogRef.current && isOpen) {
|
|
79
|
+
if (!dialogRef.current.open && inputRef.current) {
|
|
80
|
+
dialogRef.current.show();
|
|
81
|
+
// Return focus from <dialog> back to <input>
|
|
82
|
+
inputRef.current.focus();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}, [isOpen, inputRef]);
|
|
86
|
+
if (!isOpen)
|
|
87
|
+
return null;
|
|
88
|
+
const searchResponseExact = results
|
|
89
|
+
? results.filter((result) => result.type === "exact")
|
|
90
|
+
: [];
|
|
91
|
+
const searchResponseSuggested = results
|
|
92
|
+
? results.filter((result) => result.type === "suggested")
|
|
93
|
+
: [];
|
|
94
|
+
const noResults = (results === null || results === void 0 ? void 0 : results.length) === 0;
|
|
95
|
+
return ((0, jsx_runtime_1.jsx)("dialog", Object.assign({ className: classes, ref: dialogRef, "aria-describedby": describedBy }, { children: isLoading ? ((0, jsx_runtime_1.jsx)("header", Object.assign({ className: "chopin/TradeSelectorListTitle" }, { children: labels.loading }))) : noResults ? ((0, jsx_runtime_1.jsx)("header", Object.assign({ className: "chopin/TradeSelectorListTitle" }, { children: (0, jsx_runtime_1.jsx)("a", Object.assign({ href: fallbackUrl, className: "chopin/TradeSelectorListTitleLink" }, { children: labels.noResults })) }))) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [searchResponseExact.length > 0 && ((0, jsx_runtime_1.jsx)(Listing_1.Listing, { title: labels.exact, trades: searchResponseExact, resultRefs: resultRefs, onClick: handleTradeClick, selectedId: focusId })), searchResponseSuggested.length > 0 && ((0, jsx_runtime_1.jsx)(Listing_1.Listing, { title: labels.suggested, trades: searchResponseSuggested, resultRefs: resultRefs, refCountStart: searchResponseExact.length, onClick: handleTradeClick, selectedId: focusId }))] })) })));
|
|
96
|
+
};
|
|
20
97
|
exports.SearchResults = SearchResults;
|
|
21
98
|
//# sourceMappingURL=SearchResults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/SearchResults/SearchResults.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../../../../src/components/Chopin/TradeSelector/SearchResults/SearchResults.tsx"],"names":[],"mappings":"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"}
|