@faststore/components 2.0.85-alpha.0 → 2.0.88-alpha.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/dist/assets/MagnifyingGlass.d.ts +3 -2
- package/dist/assets/MagnifyingGlass.js +3 -4
- package/dist/assets/MagnifyingGlass.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useSearch.d.ts +7 -0
- package/dist/hooks/useSearch.js +10 -0
- package/dist/hooks/useSearch.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/molecules/SearchAutoComplete/SearchAutoComplete.d.ts +1 -1
- package/dist/molecules/SearchAutoComplete/SearchAutoComplete.js +5 -1
- package/dist/molecules/SearchAutoComplete/SearchAutoComplete.js.map +1 -1
- package/dist/molecules/SearchDropdown/SearchDropdown.d.ts +14 -0
- package/dist/molecules/SearchDropdown/SearchDropdown.js +14 -0
- package/dist/molecules/SearchDropdown/SearchDropdown.js.map +1 -0
- package/dist/molecules/SearchDropdown/index.d.ts +2 -0
- package/dist/molecules/SearchDropdown/index.js +2 -0
- package/dist/molecules/SearchDropdown/index.js.map +1 -0
- package/dist/molecules/SearchHistory/SearchHistory.d.ts +1 -1
- package/dist/molecules/SearchHistory/SearchHistory.js +5 -1
- package/dist/molecules/SearchHistory/SearchHistory.js.map +1 -1
- package/dist/molecules/SearchInputField/SearchInputField.d.ts +36 -0
- package/dist/molecules/SearchInputField/SearchInputField.js +21 -0
- package/dist/molecules/SearchInputField/SearchInputField.js.map +1 -0
- package/dist/molecules/SearchInputField/index.d.ts +2 -0
- package/dist/molecules/SearchInputField/index.js +2 -0
- package/dist/molecules/SearchInputField/index.js.map +1 -0
- package/dist/molecules/SearchProducts/SearchProductItemContent.d.ts +2 -2
- package/dist/molecules/SearchProducts/SearchProducts.d.ts +1 -1
- package/dist/molecules/SearchProducts/SearchProducts.js +5 -1
- package/dist/molecules/SearchProducts/SearchProducts.js.map +1 -1
- package/dist/molecules/SearchProvider/SearchProvider.d.ts +29 -0
- package/dist/molecules/SearchProvider/SearchProvider.js +8 -0
- package/dist/molecules/SearchProvider/SearchProvider.js.map +1 -0
- package/dist/molecules/SearchProvider/index.d.ts +2 -0
- package/dist/molecules/SearchProvider/index.js +2 -0
- package/dist/molecules/SearchProvider/index.js.map +1 -0
- package/dist/molecules/SearchTop/SearchTop.d.ts +0 -8
- package/dist/molecules/SearchTop/SearchTop.js +8 -4
- package/dist/molecules/SearchTop/SearchTop.js.map +1 -1
- package/dist/molecules/SkuSelector/SkuSelector.d.ts +78 -0
- package/dist/molecules/SkuSelector/SkuSelector.js +31 -0
- package/dist/molecules/SkuSelector/SkuSelector.js.map +1 -0
- package/dist/molecules/SkuSelector/index.d.ts +2 -0
- package/dist/molecules/SkuSelector/index.js +2 -0
- package/dist/molecules/SkuSelector/index.js.map +1 -0
- package/dist/molecules/SkuSelector/useDefineVariant.d.ts +3 -0
- package/dist/molecules/SkuSelector/useDefineVariant.js +27 -0
- package/dist/molecules/SkuSelector/useDefineVariant.js.map +1 -0
- package/dist/molecules/SkuSelector/useSkuSlug.d.ts +6 -0
- package/dist/molecules/SkuSelector/useSkuSlug.js +23 -0
- package/dist/molecules/SkuSelector/useSkuSlug.js.map +1 -0
- package/dist/organisms/SearchInput/SearchInput.d.ts +26 -0
- package/dist/organisms/SearchInput/SearchInput.js +8 -0
- package/dist/organisms/SearchInput/SearchInput.js.map +1 -0
- package/dist/organisms/SearchInput/index.d.ts +2 -0
- package/dist/organisms/SearchInput/index.js +2 -0
- package/dist/organisms/SearchInput/index.js.map +1 -0
- package/package.json +2 -2
- package/src/assets/MagnifyingGlass.tsx +12 -29
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useSearch.ts +12 -0
- package/src/index.ts +20 -0
- package/src/molecules/SearchAutoComplete/SearchAutoComplete.tsx +8 -1
- package/src/molecules/SearchDropdown/SearchDropdown.tsx +45 -0
- package/src/molecules/SearchDropdown/index.ts +2 -0
- package/src/molecules/SearchHistory/SearchHistory.tsx +8 -1
- package/src/molecules/SearchInputField/SearchInputField.tsx +100 -0
- package/src/molecules/SearchInputField/index.ts +5 -0
- package/src/molecules/SearchProducts/SearchProductItemContent.tsx +1 -1
- package/src/molecules/SearchProducts/SearchProducts.tsx +6 -1
- package/src/molecules/SearchProvider/SearchProvider.tsx +49 -0
- package/src/molecules/SearchProvider/index.ts +2 -0
- package/src/molecules/SearchTop/SearchTop.tsx +12 -21
- package/src/molecules/SkuSelector/SkuSelector.tsx +181 -0
- package/src/molecules/SkuSelector/index.tsx +2 -0
- package/src/molecules/SkuSelector/useDefineVariant.ts +36 -0
- package/src/molecules/SkuSelector/useSkuSlug.ts +49 -0
- package/src/organisms/SearchInput/SearchInput.tsx +55 -0
- package/src/organisms/SearchInput/index.ts +2 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
// Icon from Phosphor Icons
|
|
3
|
-
const MagnifyingGlass = () => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg",
|
|
4
|
-
React.createElement("
|
|
5
|
-
React.createElement("
|
|
6
|
-
React.createElement("line", { x1: "175.4", y1: "175.4", x2: "224", y2: "224", fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "16" })));
|
|
3
|
+
const MagnifyingGlass = ({ size = 24 }) => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
|
|
4
|
+
React.createElement("circle", { cx: "11", cy: "11", r: "8" }),
|
|
5
|
+
React.createElement("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })));
|
|
7
6
|
export default MagnifyingGlass;
|
|
8
7
|
//# sourceMappingURL=MagnifyingGlass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MagnifyingGlass.js","sourceRoot":"","sources":["../../src/assets/MagnifyingGlass.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,2BAA2B;AAC3B,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"MagnifyingGlass.js","sourceRoot":"","sources":["../../src/assets/MagnifyingGlass.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,2BAA2B;AAC3B,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAa,EAAE,EAAE,CAAC,CACpD,6BACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO;IAEtB,gCAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAG;IAChC,8BAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,GAAG,CAC1C,CACP,CAAA;AAED,eAAe,eAAe,CAAA"}
|
package/dist/hooks/index.d.ts
CHANGED
package/dist/hooks/index.js
CHANGED
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAuB,KAAK,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAuB,KAAK,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SearchContext } from "../molecules/SearchProvider/SearchProvider";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
export const useSearch = () => {
|
|
4
|
+
const context = useContext(SearchContext);
|
|
5
|
+
if (!context) {
|
|
6
|
+
return { inContext: false };
|
|
7
|
+
}
|
|
8
|
+
return { inContext: true, values: context };
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../src/hooks/useSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAEzC,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,EAAE,SAAS,EAAE,KAAc,EAAE,CAAA;KACvC;IAED,OAAO,EAAE,SAAS,EAAE,IAAa,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AACxD,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -66,8 +66,13 @@ export { default as RadioGroup, RadioOption } from './molecules/RadioGroup';
|
|
|
66
66
|
export type { RadioGroupProps, RadioOptionProps } from './molecules/RadioGroup';
|
|
67
67
|
export { default as Rating } from './molecules/Rating';
|
|
68
68
|
export type { RatingProps } from './molecules/Rating';
|
|
69
|
+
export { default as SearchProvider } from './molecules/SearchProvider';
|
|
70
|
+
export type { SearchProviderContextValue, } from './molecules/SearchProvider';
|
|
71
|
+
export { default as SearchInputField } from './molecules/SearchInputField';
|
|
72
|
+
export type { SearchInputFieldProps, SearchInputFieldRef, } from './molecules/SearchInputField';
|
|
69
73
|
export { default as SearchAutoComplete, SearchAutoCompleteTerm, } from './molecules/SearchAutoComplete';
|
|
70
74
|
export type { SearchAutoCompleteProps, SearchAutoCompleteTermProps, } from './molecules/SearchAutoComplete';
|
|
75
|
+
export { default as SearchDropdown, SearchDropdownProps, } from './molecules/SearchDropdown';
|
|
71
76
|
export { default as SearchHistory, SearchHistoryTerm, } from './molecules/SearchHistory';
|
|
72
77
|
export type { SearchHistoryProps, SearchHistoryTermProps, } from './molecules/SearchHistory';
|
|
73
78
|
export { default as SearchProducts, SearchProductItem, SearchProductItemImage, SearchProductItemContent, } from './molecules/SearchProducts';
|
|
@@ -76,6 +81,8 @@ export { default as SearchTop, SearchTopTerm } from './molecules/SearchTop';
|
|
|
76
81
|
export type { SearchTopProps, SearchTopTermProps } from './molecules/SearchTop';
|
|
77
82
|
export { default as SelectField } from './molecules/SelectField';
|
|
78
83
|
export type { SelectFieldProps } from './molecules/SelectField';
|
|
84
|
+
export { default as SkuSelector } from './molecules/SkuSelector';
|
|
85
|
+
export type { SkuSelectorProps, SkuOption } from './molecules/SkuSelector';
|
|
79
86
|
export { Table, TableBody, TableCell, TableFooter, TableHead, TableRow, } from './molecules/Table';
|
|
80
87
|
export type { TableProps, TableBodyProps, TableCellProps, TableFooterProps, TableHeadProps, TableRowProps, } from './molecules/Table';
|
|
81
88
|
export { default as Tag } from './molecules/Tag';
|
|
@@ -93,5 +100,7 @@ export { default as PaymentMethods } from './organisms/PaymentMethods';
|
|
|
93
100
|
export type { PaymentMethodsProps } from './organisms/PaymentMethods';
|
|
94
101
|
export { default as PriceRange } from './organisms/PriceRange';
|
|
95
102
|
export type { PriceRangeProps } from './organisms/PriceRange';
|
|
103
|
+
export { default as SearchInput } from './organisms/SearchInput';
|
|
104
|
+
export type { SearchInputProps } from './organisms/SearchInput';
|
|
96
105
|
export { default as SlideOver, SlideOverHeader } from './organisms/SlideOver';
|
|
97
106
|
export type { SlideOverProps, SlideOverHeaderProps, } from './organisms/SlideOver';
|
package/dist/index.js
CHANGED
|
@@ -38,11 +38,15 @@ export { default as ProductTitle } from './molecules/ProductTitle';
|
|
|
38
38
|
export { default as RadioField } from './molecules/RadioField';
|
|
39
39
|
export { default as RadioGroup, RadioOption } from './molecules/RadioGroup';
|
|
40
40
|
export { default as Rating } from './molecules/Rating';
|
|
41
|
+
export { default as SearchProvider } from './molecules/SearchProvider';
|
|
42
|
+
export { default as SearchInputField } from './molecules/SearchInputField';
|
|
41
43
|
export { default as SearchAutoComplete, SearchAutoCompleteTerm, } from './molecules/SearchAutoComplete';
|
|
44
|
+
export { default as SearchDropdown, } from './molecules/SearchDropdown';
|
|
42
45
|
export { default as SearchHistory, SearchHistoryTerm, } from './molecules/SearchHistory';
|
|
43
46
|
export { default as SearchProducts, SearchProductItem, SearchProductItemImage, SearchProductItemContent, } from './molecules/SearchProducts';
|
|
44
47
|
export { default as SearchTop, SearchTopTerm } from './molecules/SearchTop';
|
|
45
48
|
export { default as SelectField } from './molecules/SelectField';
|
|
49
|
+
export { default as SkuSelector } from './molecules/SkuSelector';
|
|
46
50
|
export { Table, TableBody, TableCell, TableFooter, TableHead, TableRow, } from './molecules/Table';
|
|
47
51
|
export { default as Tag } from './molecules/Tag';
|
|
48
52
|
export { default as Toast } from './molecules/Toast';
|
|
@@ -53,5 +57,6 @@ export { default as QuantitySelector } from './molecules/QuantitySelector';
|
|
|
53
57
|
export { default as Hero, HeroImage, HeroHeader } from './organisms/Hero';
|
|
54
58
|
export { default as PaymentMethods } from './organisms/PaymentMethods';
|
|
55
59
|
export { default as PriceRange } from './organisms/PriceRange';
|
|
60
|
+
export { default as SearchInput } from './organisms/SearchInput';
|
|
56
61
|
export { default as SlideOver, SlideOverHeader } from './organisms/SlideOver';
|
|
57
62
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ export interface SearchAutoCompleteProps extends HTMLAttributes<HTMLDivElement>
|
|
|
5
5
|
*/
|
|
6
6
|
testId?: string;
|
|
7
7
|
}
|
|
8
|
-
declare const SearchAutoComplete: ({ testId, children, ...otherProps }: SearchAutoCompleteProps) => JSX.Element;
|
|
8
|
+
declare const SearchAutoComplete: ({ testId, children, ...otherProps }: SearchAutoCompleteProps) => JSX.Element | null;
|
|
9
9
|
export default SearchAutoComplete;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { List } from '../..';
|
|
2
|
+
import { List, useSearch } from '../..';
|
|
3
3
|
const SearchAutoComplete = ({ testId = 'fs-search-auto-complete', children, ...otherProps }) => {
|
|
4
|
+
const { inContext, values } = useSearch();
|
|
5
|
+
if (inContext && (values.terms.length <= 0 || values.term.length <= 0)) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
4
8
|
return (React.createElement("section", { "data-testid": testId, "data-fs-search-auto-complete": true, ...otherProps },
|
|
5
9
|
React.createElement(List, { as: "ol" }, children)));
|
|
6
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchAutoComplete.js","sourceRoot":"","sources":["../../../src/molecules/SearchAutoComplete/SearchAutoComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SearchAutoComplete.js","sourceRoot":"","sources":["../../../src/molecules/SearchAutoComplete/SearchAutoComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAUvC,MAAM,kBAAkB,GAAG,CAAC,EAC1B,MAAM,GAAG,yBAAyB,EAClC,QAAQ,EACR,GAAG,UAAU,EACW,EAAE,EAAE;IAE5B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAEzC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;QACtE,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,gDAAsB,MAAM,2CAAmC,UAAU;QACvE,oBAAC,IAAI,IAAC,EAAE,EAAC,IAAI,IAAE,QAAQ,CAAQ,CACvB,CACX,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export interface SearchDropdownProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/**
|
|
5
|
+
* ID to find this component in testing tools (e.g.: cypress,
|
|
6
|
+
* testing-library, and jest).
|
|
7
|
+
*/
|
|
8
|
+
testId?: string;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
declare const SearchDropdown: React.ForwardRefExoticComponent<SearchDropdownProps & {
|
|
12
|
+
children?: ReactNode;
|
|
13
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
export default SearchDropdown;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { useSearch } from '../../hooks';
|
|
3
|
+
const SearchLoading = () => {
|
|
4
|
+
const { inContext, values } = useSearch();
|
|
5
|
+
return (React.createElement(React.Fragment, null, (inContext && values.isLoading) && React.createElement("p", { "data-fs-search-dropdown-loading-text": true }, "Loading...")));
|
|
6
|
+
};
|
|
7
|
+
const SearchDropdown = forwardRef(function SearchDropdown({ testId = 'fs-search-dropdown', children, ...otherProps }, ref) {
|
|
8
|
+
return (React.createElement("div", { ref: ref, "data-fs-search-dropdown": true, "data-testid": testId, ...otherProps },
|
|
9
|
+
React.createElement("section", null,
|
|
10
|
+
React.createElement(SearchLoading, null),
|
|
11
|
+
children)));
|
|
12
|
+
});
|
|
13
|
+
export default SearchDropdown;
|
|
14
|
+
//# sourceMappingURL=SearchDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchDropdown.js","sourceRoot":"","sources":["../../../src/molecules/SearchDropdown/SearchDropdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAWvC,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAEzC,OAAO,CACL,0CACI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,wFAAsD,CAC1F,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,UAAU,CAG/B,SAAS,cAAc,CACvB,EACE,MAAM,GAAG,oBAAoB,EAC7B,QAAQ,EACR,GAAG,UAAU,EACd,EACD,GAAG;IAEH,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG,kDAAuC,MAAM,KAAM,UAAU;QACxE;YACE,oBAAC,aAAa,OAAE;YACf,QAAQ,CACD,CACN,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecules/SearchDropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -17,5 +17,5 @@ export interface SearchHistoryProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
17
17
|
*/
|
|
18
18
|
onClear?: () => void;
|
|
19
19
|
}
|
|
20
|
-
declare const SearchHistory: ({ testId, title, clearLabel, onClear, children, ...otherProps }: SearchHistoryProps) => JSX.Element;
|
|
20
|
+
declare const SearchHistory: ({ testId, title, clearLabel, onClear, children, ...otherProps }: SearchHistoryProps) => JSX.Element | null;
|
|
21
21
|
export default SearchHistory;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { List, Button } from '../..';
|
|
2
|
+
import { List, Button, useSearch } from '../..';
|
|
3
3
|
const SearchHistory = ({ testId = 'fs-search-history', title = 'History', clearLabel = 'Clear History', onClear, children, ...otherProps }) => {
|
|
4
|
+
const { inContext, values } = useSearch();
|
|
5
|
+
if (inContext && (values.term.length !== 0 || values.isLoading)) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
4
8
|
return (React.createElement("section", { "data-testid": testId, "data-fs-search-history": true, ...otherProps },
|
|
5
9
|
React.createElement("header", { "data-fs-search-history-header": true },
|
|
6
10
|
React.createElement("p", { "data-fs-search-history-title": true }, title),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchHistory.js","sourceRoot":"","sources":["../../../src/molecules/SearchHistory/SearchHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SearchHistory.js","sourceRoot":"","sources":["../../../src/molecules/SearchHistory/SearchHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAqB/C,MAAM,aAAa,GAAG,CAAC,EACrB,MAAM,GAAG,mBAAmB,EAC5B,KAAK,GAAG,SAAS,EACjB,UAAU,GAAG,eAAe,EAC5B,OAAO,EACP,QAAQ,EACR,GAAG,UAAU,EACM,EAAE,EAAE;IAEvB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAEzC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;QAC/D,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,gDAAsB,MAAM,qCAA6B,UAAU;QACjE;YACE,mEAAiC,KAAK,CAAK;YAC3C,oBAAC,MAAM,IAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,OAAO,IACtD,UAAU,CACJ,CACF;QACT,oBAAC,IAAI,IAAC,EAAE,EAAC,IAAI,IAAE,QAAQ,CAAQ,CACvB,CACX,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AriaAttributes, InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'onSubmit'>;
|
|
4
|
+
type ButtonProps = {
|
|
5
|
+
onClick?: () => void;
|
|
6
|
+
testId?: string;
|
|
7
|
+
};
|
|
8
|
+
export interface SearchInputFieldProps extends InputProps {
|
|
9
|
+
/**
|
|
10
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
11
|
+
*/
|
|
12
|
+
testId?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Props for the submit button inside the input.
|
|
15
|
+
*/
|
|
16
|
+
buttonProps?: ButtonProps;
|
|
17
|
+
/**
|
|
18
|
+
* A React component that will be rendered as an icon (submit button).
|
|
19
|
+
* @default <MagnifyingGlass />
|
|
20
|
+
*/
|
|
21
|
+
buttonIcon?: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Custom aria-label for input and button.
|
|
24
|
+
*/
|
|
25
|
+
'aria-label'?: AriaAttributes['aria-label'];
|
|
26
|
+
/**
|
|
27
|
+
* Callback function when submitted.
|
|
28
|
+
*/
|
|
29
|
+
onSubmit: (value: string) => void;
|
|
30
|
+
}
|
|
31
|
+
export interface SearchInputFieldRef {
|
|
32
|
+
inputRef?: HTMLInputElement | null;
|
|
33
|
+
formRef?: HTMLFormElement | null;
|
|
34
|
+
}
|
|
35
|
+
declare const SearchInputField: React.ForwardRefExoticComponent<SearchInputFieldProps & React.RefAttributes<SearchInputFieldRef | null>>;
|
|
36
|
+
export default SearchInputField;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
2
|
+
import { IconButton, Input, MagnifyingGlass } from '../..';
|
|
3
|
+
const SearchInputField = forwardRef(function SearchInputField({ onSubmit, buttonIcon, 'aria-label': ariaLabel = 'search', testId = 'fs-search-input', buttonProps, ...otherProps }, ref) {
|
|
4
|
+
const inputRef = useRef(null);
|
|
5
|
+
const formRef = useRef(null);
|
|
6
|
+
const handleSubmit = (event) => {
|
|
7
|
+
event.preventDefault();
|
|
8
|
+
if (inputRef.current?.value !== '') {
|
|
9
|
+
onSubmit(inputRef.current.value);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
useImperativeHandle(ref, () => ({
|
|
13
|
+
inputRef: inputRef.current,
|
|
14
|
+
formRef: formRef.current,
|
|
15
|
+
}));
|
|
16
|
+
return (React.createElement("form", { ref: formRef, "data-fs-search-input-field": true, "data-testid": testId, onSubmit: handleSubmit, role: "search" },
|
|
17
|
+
React.createElement(Input, { ref: inputRef, "aria-label": ariaLabel, "data-fs-search-input-field-input": true, ...otherProps }),
|
|
18
|
+
React.createElement(IconButton, { type: "submit", "aria-label": "Submit Search", icon: buttonIcon ?? React.createElement(MagnifyingGlass, null), ...buttonProps })));
|
|
19
|
+
});
|
|
20
|
+
export default SearchInputField;
|
|
21
|
+
//# sourceMappingURL=SearchInputField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInputField.js","sourceRoot":"","sources":["../../../src/molecules/SearchInputField/SearchInputField.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEtE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAqC1D,MAAM,gBAAgB,GAAG,UAAU,CAGjC,SAAS,gBAAgB,CACzB,EACE,QAAQ,EACR,UAAU,EACV,YAAY,EAAE,SAAS,GAAG,QAAQ,EAClC,MAAM,GAAG,iBAAiB,EAC1B,WAAW,EACX,GAAG,UAAU,EACd,EACD,GAAG;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAA;IAE7C,MAAM,YAAY,GAAG,CAAC,KAAgB,EAAE,EAAE;QACxC,KAAK,CAAC,cAAc,EAAE,CAAA;QAEtB,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,EAAE;YAClC,QAAQ,CAAC,QAAQ,CAAC,OAAQ,CAAC,KAAK,CAAC,CAAA;SAClC;IACH,CAAC,CAAA;IAED,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC,CAAA;IAEH,OAAO,CACL,8BACE,GAAG,EAAE,OAAO,qDAEC,MAAM,EACnB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAC,QAAQ;QAEb,oBAAC,KAAK,IACJ,GAAG,EAAE,QAAQ,gBACD,SAAS,+CAEjB,UAAU,GACd;QACF,oBAAC,UAAU,IACT,IAAI,EAAC,QAAQ,gBACF,eAAe,EAC1B,IAAI,EAAE,UAAU,IAAI,oBAAC,eAAe,OAAG,KACnC,WAAW,GACf,CACG,CACR,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecules/SearchInputField/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -6,7 +6,7 @@ interface Price {
|
|
|
6
6
|
listPrice: number;
|
|
7
7
|
formatter: PriceFormatter;
|
|
8
8
|
}
|
|
9
|
-
export
|
|
9
|
+
export interface SearchProductItemContentProps {
|
|
10
10
|
/**
|
|
11
11
|
* Specifies the product's title.
|
|
12
12
|
*/
|
|
@@ -15,6 +15,6 @@ export type SearchProductItemContentProps = {
|
|
|
15
15
|
* Specifies product's prices.
|
|
16
16
|
*/
|
|
17
17
|
price: Price;
|
|
18
|
-
}
|
|
18
|
+
}
|
|
19
19
|
declare const SearchProductItemContent: React.ForwardRefExoticComponent<SearchProductItemContentProps & React.RefAttributes<HTMLElement>>;
|
|
20
20
|
export default SearchProductItemContent;
|
|
@@ -9,5 +9,5 @@ export interface SearchProductsProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
9
9
|
*/
|
|
10
10
|
title?: string;
|
|
11
11
|
}
|
|
12
|
-
declare const SearchProductsProps: ({ testId, title, children, ...otherProps }: SearchProductsProps) => JSX.Element;
|
|
12
|
+
declare const SearchProductsProps: ({ testId, title, children, ...otherProps }: SearchProductsProps) => JSX.Element | null;
|
|
13
13
|
export default SearchProductsProps;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { List } from '../..';
|
|
2
|
+
import { List, useSearch } from '../..';
|
|
3
3
|
const SearchProductsProps = ({ testId = 'fs-search-products', title = 'Suggested Products', children, ...otherProps }) => {
|
|
4
|
+
const { inContext, values } = useSearch();
|
|
5
|
+
if (inContext && (values.products.length <= 0)) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
4
8
|
return (React.createElement("section", { "data-testid": testId, "data-fs-search-products": true, ...otherProps },
|
|
5
9
|
React.createElement("header", { "data-fs-search-products-header": true },
|
|
6
10
|
React.createElement("p", { "data-fs-search-products-title": true }, title)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchProducts.js","sourceRoot":"","sources":["../../../src/molecules/SearchProducts/SearchProducts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SearchProducts.js","sourceRoot":"","sources":["../../../src/molecules/SearchProducts/SearchProducts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAavC,MAAM,mBAAmB,GAAG,CAAC,EAC3B,MAAM,GAAG,oBAAoB,EAC7B,KAAK,GAAG,oBAAoB,EAC5B,QAAQ,EACR,GAAG,UAAU,EACO,EAAE,EAAE;IACxB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAEzC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;QAC9C,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,CACL,gDAAsB,MAAM,sCAA8B,UAAU;QAClE;YACE,oEAAkC,KAAK,CAAK,CACrC;QACT,oBAAC,IAAI,IAAC,EAAE,EAAC,IAAI,IAAE,QAAQ,CAAQ,CACvB,CACX,CAAA;AACH,CAAC,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PropsWithChildren } from 'react';
|
|
3
|
+
export interface SearchProviderContextValue {
|
|
4
|
+
/**
|
|
5
|
+
* Term to be researched.
|
|
6
|
+
*/
|
|
7
|
+
term: string;
|
|
8
|
+
/**
|
|
9
|
+
* Enables a loading state.
|
|
10
|
+
*/
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* List of Suggestion terms.
|
|
14
|
+
*/
|
|
15
|
+
terms: Array<{
|
|
16
|
+
value: string;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* List of Suggested products.
|
|
20
|
+
*/
|
|
21
|
+
products: {}[];
|
|
22
|
+
/**
|
|
23
|
+
* Callback function when a search term is selected.
|
|
24
|
+
*/
|
|
25
|
+
onSearchSelection?: (term: string, path: string) => void;
|
|
26
|
+
}
|
|
27
|
+
export declare const SearchContext: React.Context<SearchProviderContextValue | null>;
|
|
28
|
+
declare function SearchProvider({ onSearchSelection, children, term, terms, products, isLoading, }: PropsWithChildren<SearchProviderContextValue>): JSX.Element;
|
|
29
|
+
export default SearchProvider;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { createContext } from 'react';
|
|
3
|
+
export const SearchContext = createContext(null);
|
|
4
|
+
function SearchProvider({ onSearchSelection, children, term, terms, products, isLoading, }) {
|
|
5
|
+
return (React.createElement(SearchContext.Provider, { value: { onSearchSelection, term, terms, products, isLoading } }, children));
|
|
6
|
+
}
|
|
7
|
+
export default SearchProvider;
|
|
8
|
+
//# sourceMappingURL=SearchProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchProvider.js","sourceRoot":"","sources":["../../../src/molecules/SearchProvider/SearchProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAyBrC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CACxC,IAAI,CACL,CAAA;AAED,SAAS,cAAc,CAAC,EACtB,iBAAiB,EACjB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,GACqC;IAC9C,OAAO,CACL,oBAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAE7D,QAAQ,CACc,CAC1B,CAAA;AACH,CAAC;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecules/SearchProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -9,14 +9,6 @@ export interface SearchTopProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
9
9
|
* Title attribute for the <section> tag rendered by this component.
|
|
10
10
|
*/
|
|
11
11
|
title: string;
|
|
12
|
-
/**
|
|
13
|
-
* Defines the the message displayed while loading.
|
|
14
|
-
*/
|
|
15
|
-
loadingMessage?: string;
|
|
16
|
-
/**
|
|
17
|
-
* Enables a loading state.
|
|
18
|
-
*/
|
|
19
|
-
isLoading?: boolean;
|
|
20
12
|
}
|
|
21
13
|
declare const SearchTop: React.ForwardRefExoticComponent<SearchTopProps & React.RefAttributes<HTMLDivElement>>;
|
|
22
14
|
export default SearchTop;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
-
import { List } from '../../';
|
|
4
|
-
const SearchTop = forwardRef(function SearchTop({ testId = 'fs-top-search', title = 'Top Search',
|
|
5
|
-
|
|
3
|
+
import { List, useSearch } from '../../';
|
|
4
|
+
const SearchTop = forwardRef(function SearchTop({ testId = 'fs-top-search', title = 'Top Search', children, ...otherProps }, ref) {
|
|
5
|
+
const { inContext, values } = useSearch();
|
|
6
|
+
if (inContext && (values.term.length !== 0 || values.isLoading)) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return (React.createElement("section", { ref: ref, "data-testid": testId, "data-fs-search-top": true, ...otherProps },
|
|
6
10
|
React.createElement("header", { "data-fs-search-top-header": true },
|
|
7
11
|
React.createElement("p", { "data-fs-search-top-title": true }, title)),
|
|
8
|
-
React.createElement(List, { as: "ol" }, children)))
|
|
12
|
+
React.createElement(List, { as: "ol" }, children)));
|
|
9
13
|
});
|
|
10
14
|
export default SearchTop;
|
|
11
15
|
//# sourceMappingURL=SearchTop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchTop.js","sourceRoot":"","sources":["../../../src/molecules/SearchTop/SearchTop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGlC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"SearchTop.js","sourceRoot":"","sources":["../../../src/molecules/SearchTop/SearchTop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGlC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAaxC,MAAM,SAAS,GAAG,UAAU,CAAiC,SAAS,SAAS,CAC7E,EACE,MAAM,GAAG,eAAe,EACxB,KAAK,GAAG,YAAY,EACpB,QAAQ,EACR,GAAG,UAAU,EACd,EACD,GAAG;IAGH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAEzC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;QAC/D,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,iCAAS,GAAG,EAAE,GAAG,iBAAe,MAAM,iCAAyB,UAAU;QACrE;YACE,+DAA6B,KAAK,CAAK,CAChC;QACT,oBAAC,IAAI,IAAC,EAAE,EAAC,IAAI,IAAE,QAAQ,CAAQ,CACzB,CACX,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { FunctionComponent, HTMLAttributes } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { LinkProps, LinkElementType } from '../..';
|
|
4
|
+
import { Variant } from './useDefineVariant';
|
|
5
|
+
export interface SkuOption {
|
|
6
|
+
/**
|
|
7
|
+
* Alternative text description of the image.
|
|
8
|
+
*/
|
|
9
|
+
alt?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Image URL.
|
|
12
|
+
*/
|
|
13
|
+
src?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Label to describe the option when selected. This is mandatory if you want to use the `image` variant.'
|
|
16
|
+
*/
|
|
17
|
+
label: string;
|
|
18
|
+
/**
|
|
19
|
+
* Current value for this option.
|
|
20
|
+
*/
|
|
21
|
+
value: string;
|
|
22
|
+
/**
|
|
23
|
+
* Specifies that this option should be disabled.
|
|
24
|
+
*/
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Hex color code for this option. This is mandatory if you want to use the `Color` variant.
|
|
28
|
+
*/
|
|
29
|
+
hexColor?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface SkuSelectorProps extends HTMLAttributes<HTMLDivElement> {
|
|
32
|
+
/**
|
|
33
|
+
* ID to find this component in testing tools (e.g.: cypress,
|
|
34
|
+
* testing-library, and jest).
|
|
35
|
+
*/
|
|
36
|
+
testId?: string;
|
|
37
|
+
/**
|
|
38
|
+
* ID of the current instance of the component.
|
|
39
|
+
*/
|
|
40
|
+
id?: string;
|
|
41
|
+
/**
|
|
42
|
+
* SKU options that should be rendered.
|
|
43
|
+
*/
|
|
44
|
+
availableVariations: Record<string, SkuOption[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Name of the SKU property that this selector is relative to.
|
|
47
|
+
*/
|
|
48
|
+
skuPropertyName: string;
|
|
49
|
+
/**
|
|
50
|
+
* Currently active variation's value.
|
|
51
|
+
*/
|
|
52
|
+
activeVariations: Record<string, string>;
|
|
53
|
+
/**
|
|
54
|
+
* Optional variant type, when is not passed the type is inferred based on options properties
|
|
55
|
+
*/
|
|
56
|
+
variant?: Variant;
|
|
57
|
+
/**
|
|
58
|
+
* Extends all Link Props.
|
|
59
|
+
*/
|
|
60
|
+
linkProps?: Partial<LinkProps<LinkElementType>>;
|
|
61
|
+
/**
|
|
62
|
+
* Optional function to determines the href string.
|
|
63
|
+
*/
|
|
64
|
+
getItemHref?: (option: SkuOption) => string;
|
|
65
|
+
/**
|
|
66
|
+
* Maps property value combinations to their respective SKU's slug
|
|
67
|
+
*/
|
|
68
|
+
slugsMap: Record<string, string>;
|
|
69
|
+
/**
|
|
70
|
+
* Function that returns a React component that will be used to render images.
|
|
71
|
+
*/
|
|
72
|
+
ImageComponent?: FunctionComponent<{
|
|
73
|
+
src: string;
|
|
74
|
+
alt: string;
|
|
75
|
+
}>;
|
|
76
|
+
}
|
|
77
|
+
declare const SkuSelector: React.ForwardRefExoticComponent<SkuSelectorProps & React.RefAttributes<HTMLDivElement>>;
|
|
78
|
+
export default SkuSelector;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { Label, SROnly, Link } from '../..';
|
|
3
|
+
import { useDefineVariant } from './useDefineVariant';
|
|
4
|
+
import { useSkuSlug } from './useSkuSlug';
|
|
5
|
+
// TODO: Change by ImageComponent when it be right
|
|
6
|
+
const ImageComponentFallback = ({ src, alt, ...otherProps }) => React.createElement("img", { src: src, alt: alt, ...otherProps });
|
|
7
|
+
const SkuSelector = forwardRef(function SkuSelector({ availableVariations, skuPropertyName, testId, activeVariations, linkProps, slugsMap, getItemHref: getItemHrefProp, ImageComponent = ImageComponentFallback, variant: variantProp, ...otherProps }, ref) {
|
|
8
|
+
const activeSelectorValue = activeVariations[skuPropertyName];
|
|
9
|
+
const options = availableVariations[skuPropertyName];
|
|
10
|
+
const variant = useDefineVariant(options, variantProp);
|
|
11
|
+
const { getItemHref } = useSkuSlug(activeVariations, slugsMap, skuPropertyName, getItemHrefProp);
|
|
12
|
+
return (React.createElement("div", { ref: ref, "data-fs-sku-selector": true, "data-testid": testId, "data-fs-sku-selector-variant": variant, ...otherProps },
|
|
13
|
+
skuPropertyName && (React.createElement(Label, { "data-fs-sku-selector-title": true },
|
|
14
|
+
skuPropertyName,
|
|
15
|
+
": ",
|
|
16
|
+
React.createElement("strong", null, activeSelectorValue))),
|
|
17
|
+
React.createElement("ul", { "data-fs-sku-selector-list": true }, options.map((option, index) => {
|
|
18
|
+
return (React.createElement("li", { key: String(index), title: option.label, "data-fs-sku-selector-option": true, "data-fs-sku-selector-disabled": option.disabled, "data-fs-sku-selector-checked": option.value === activeVariations[skuPropertyName] },
|
|
19
|
+
React.createElement(Link, { "data-fs-sku-selector-option-link": true, href: getItemHref(option), ...linkProps },
|
|
20
|
+
React.createElement(SROnly, { text: option.label })),
|
|
21
|
+
variant === 'label' && React.createElement("span", null, option.value),
|
|
22
|
+
variant === 'image' && ImageComponent && (React.createElement("span", null,
|
|
23
|
+
React.createElement(ImageComponent, { src: option.src ?? '', alt: option.alt ?? '', "data-fs-sku-selector-option-image": true }))),
|
|
24
|
+
variant === 'color' && (React.createElement("span", null,
|
|
25
|
+
React.createElement("div", { "data-fs-sku-selector-option-color": true, title: option.value, style: {
|
|
26
|
+
'--data-fs-sku-selector-option-color-bkg-color': option.hexColor,
|
|
27
|
+
} })))));
|
|
28
|
+
}))));
|
|
29
|
+
});
|
|
30
|
+
export default SkuSelector;
|
|
31
|
+
//# sourceMappingURL=SkuSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkuSelector.js","sourceRoot":"","sources":["../../../src/molecules/SkuSelector/SkuSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAA8B,MAAM,OAAO,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAW,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,kDAAkD;AAClD,MAAM,sBAAsB,GAAuC,CAAC,EAClE,GAAG,EACH,GAAG,EACH,GAAG,UAAU,EACd,EAAE,EAAE,CAAC,6BAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAM,UAAU,GAAI,CAAA;AA4EjD,MAAM,WAAW,GAAG,UAAU,CAC5B,SAAS,WAAW,CAClB,EACE,mBAAmB,EACnB,eAAe,EACf,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,WAAW,EAAE,eAAe,EAC5B,cAAc,GAAG,sBAAsB,EACvC,OAAO,EAAE,WAAW,EACpB,GAAG,UAAU,EACd,EACD,GAAG;IAEH,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAA;IAEpD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAEtD,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IAEhG,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,+CAEK,MAAM,kCACW,OAAO,KACjC,UAAU;QAEb,eAAe,IAAI,CAClB,oBAAC,KAAK;YACH,eAAe;;YAAG,oCAAS,mBAAmB,CAAU,CACnD,CACT;QACD,iEACG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC7B,OAAO,CACL,4BACE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAClB,KAAK,EAAE,MAAM,CAAC,KAAK,wEAEY,MAAM,CAAC,QAAQ,kCAE5C,MAAM,CAAC,KAAK,KAAK,gBAAgB,CAAC,eAAe,CAAC;gBAGpD,oBAAC,IAAI,8CAEH,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,KACrB,SAAS;oBAEb,oBAAC,MAAM,IAAC,IAAI,EAAE,MAAM,CAAC,KAAK,GAAI,CACzB;gBAEN,OAAO,KAAK,OAAO,IAAI,kCAAO,MAAM,CAAC,KAAK,CAAQ;gBAElD,OAAO,KAAK,OAAO,IAAI,cAAc,IAAI,CACxC;oBACE,oBAAC,cAAc,IACb,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,EACrB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,8CAErB,CACG,CACR;gBAEA,OAAO,KAAK,OAAO,IAAI,CACtB;oBACE,wEAEE,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EACH;4BACE,+CAA+C,EAC7C,MAAM,CAAC,QAAQ;yBACK,GAErB,CACF,CACR,CACE,CACN,CAAA;QACH,CAAC,CAAC,CACC,CACD,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecules/SkuSelector/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}
|