@popsure/dirty-swan 0.66.29 → 0.66.31
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/cjs/index.js +13 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/dateSelector/index.d.ts +0 -1
- package/dist/cjs/lib/components/table/components/TableCell/BaseCell/BaseCell.d.ts +0 -1
- package/dist/cjs/lib/components/table/components/TableCell/ButtonCell/ButtonCell.d.ts +1 -2
- package/dist/cjs/lib/components/table/components/TableCell/ButtonCell/ButtonCell.stories.d.ts +1 -1
- package/dist/cjs/lib/components/table/components/TableCell/ButtonCell/ButtonCell.test.d.ts +1 -0
- package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +1 -2
- package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +1 -1
- package/dist/esm/components/autocompleteAddress/index.js +2 -2
- package/dist/esm/components/autocompleteAddress/index.js.map +1 -1
- package/dist/esm/components/dateSelector/index.js +1 -1
- package/dist/esm/components/dateSelector/index.js.map +1 -1
- package/dist/esm/components/downloadButton/index.js +1 -1
- package/dist/esm/components/downloadButton/index.js.map +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.js +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.js.map +1 -1
- package/dist/esm/components/input/checkbox/index.js +1 -1
- package/dist/esm/components/input/checkbox/index.js.map +1 -1
- package/dist/esm/components/input/radio/index.js +1 -1
- package/dist/esm/components/input/radio/index.js.map +1 -1
- package/dist/esm/components/input/toggle/index.js +1 -1
- package/dist/esm/components/input/toggle/index.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js +3 -3
- package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.test.js +35 -0
- package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.test.js.map +1 -0
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js +2 -2
- package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js.map +1 -1
- package/dist/esm/lib/components/dateSelector/index.d.ts +0 -1
- package/dist/esm/lib/components/table/components/TableCell/BaseCell/BaseCell.d.ts +0 -1
- package/dist/esm/lib/components/table/components/TableCell/ButtonCell/ButtonCell.d.ts +1 -2
- package/dist/esm/lib/components/table/components/TableCell/ButtonCell/ButtonCell.stories.d.ts +1 -1
- package/dist/esm/lib/components/table/components/TableCell/ButtonCell/ButtonCell.test.d.ts +1 -0
- package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +1 -2
- package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/components/autocompleteAddress/index.tsx +0 -7
- package/src/lib/components/dateSelector/index.tsx +0 -2
- package/src/lib/components/downloadButton/index.tsx +0 -1
- package/src/lib/components/input/autoSuggestInput/index.tsx +0 -1
- package/src/lib/components/input/checkbox/index.tsx +0 -1
- package/src/lib/components/input/radio/index.tsx +0 -1
- package/src/lib/components/input/toggle/index.tsx +0 -1
- package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx +0 -1
- package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.test.tsx +22 -0
- package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.tsx +1 -4
- package/src/lib/components/table/components/TableCell/CTACell/CTACell.tsx +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/lib/components/input/radio/index.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport styles from './styles.module.scss';\nimport generateId from '../../../util/generateId';\nexport interface RadioWithDescription {\n title: ReactNode;\n description?: string;\n icon?: (selected: boolean) => ReactNode;\n hideBox?: boolean;\n}\n\nexport interface RadioProps<ValueType extends string> {\n options: Record<ValueType, ReactNode | RadioWithDescription>;\n value?: ValueType;\n onChange: (value: ValueType) => void;\n wide?: boolean;\n inlineLayout?: boolean;\n inlineIcon?: boolean;\n classNames?: {\n container?: string;\n label?: string;\n option?: string;\n };\n bordered?: boolean;\n disabled?: boolean;\n fieldLegend?: string;\n groupName?: string;\n}\n\nexport const Radio = <ValueType extends string>({\n options,\n value,\n onChange,\n wide = false,\n inlineLayout = false,\n inlineIcon = false,\n classNames: classNamesObj,\n bordered = true,\n disabled = false,\n fieldLegend = 'Select an option',\n groupName,\n}: RadioProps<ValueType>) => {\n const entries = Object.entries(options) as [\n ValueType,\n ReactNode | RadioWithDescription\n ][];\n\n const name = groupName ?? generateId();\n\n return (\n <fieldset\n className={classNames(\n classNamesObj?.container,\n styles.container,\n 'd-flex gap8',\n {\n [styles.wide]: wide,\n [styles.narrow]: !wide,\n 'fd-row': inlineLayout,\n 'f-wrap': inlineLayout,\n 'fd-column': !inlineLayout,\n }\n )}\n >\n <legend className=\"sr-only\">{fieldLegend}</legend>\n {entries.map(([currentValue, label]) => {\n const checked = value === currentValue;\n const customIcon = (label as RadioWithDescription)?.icon;\n const hideIcon = (label as RadioWithDescription)?.hideBox;\n\n const isRadioLabelObject = (\n label: ReactNode | RadioWithDescription\n ): label is RadioWithDescription => {\n return (label as RadioWithDescription).title !== undefined;\n };\n\n return (\n <div className={classNamesObj?.option} key={currentValue}>\n <input\n className={classNames('p-radio', {\n 'p-radio--no-icon': customIcon || hideIcon,\n 'p-radio--centered': !label,\n })}\n id={currentValue}\n type=\"radio\"\n value={currentValue}\n onChange={() => onChange(currentValue)}\n checked={checked}\n data-testid={`radio-input-${currentValue}`}\n disabled={disabled}\n name={name}\n />\n\n <label\n htmlFor={currentValue}\n className={classNames(classNamesObj?.label, 'p-label', {\n 'jc-center': customIcon && !inlineIcon,\n 'fd-column': customIcon && !inlineIcon,\n 'p-label--bordered': bordered,\n })}\n data-
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/lib/components/input/radio/index.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport styles from './styles.module.scss';\nimport generateId from '../../../util/generateId';\nexport interface RadioWithDescription {\n title: ReactNode;\n description?: string;\n icon?: (selected: boolean) => ReactNode;\n hideBox?: boolean;\n}\n\nexport interface RadioProps<ValueType extends string> {\n options: Record<ValueType, ReactNode | RadioWithDescription>;\n value?: ValueType;\n onChange: (value: ValueType) => void;\n wide?: boolean;\n inlineLayout?: boolean;\n inlineIcon?: boolean;\n classNames?: {\n container?: string;\n label?: string;\n option?: string;\n };\n bordered?: boolean;\n disabled?: boolean;\n fieldLegend?: string;\n groupName?: string;\n}\n\nexport const Radio = <ValueType extends string>({\n options,\n value,\n onChange,\n wide = false,\n inlineLayout = false,\n inlineIcon = false,\n classNames: classNamesObj,\n bordered = true,\n disabled = false,\n fieldLegend = 'Select an option',\n groupName,\n}: RadioProps<ValueType>) => {\n const entries = Object.entries(options) as [\n ValueType,\n ReactNode | RadioWithDescription\n ][];\n\n const name = groupName ?? generateId();\n\n return (\n <fieldset\n className={classNames(\n classNamesObj?.container,\n styles.container,\n 'd-flex gap8',\n {\n [styles.wide]: wide,\n [styles.narrow]: !wide,\n 'fd-row': inlineLayout,\n 'f-wrap': inlineLayout,\n 'fd-column': !inlineLayout,\n }\n )}\n >\n <legend className=\"sr-only\">{fieldLegend}</legend>\n {entries.map(([currentValue, label]) => {\n const checked = value === currentValue;\n const customIcon = (label as RadioWithDescription)?.icon;\n const hideIcon = (label as RadioWithDescription)?.hideBox;\n\n const isRadioLabelObject = (\n label: ReactNode | RadioWithDescription\n ): label is RadioWithDescription => {\n return (label as RadioWithDescription).title !== undefined;\n };\n\n return (\n <div className={classNamesObj?.option} key={currentValue}>\n <input\n className={classNames('p-radio', {\n 'p-radio--no-icon': customIcon || hideIcon,\n 'p-radio--centered': !label,\n })}\n id={currentValue}\n type=\"radio\"\n value={currentValue}\n onChange={() => onChange(currentValue)}\n checked={checked}\n data-testid={`radio-input-${currentValue}`}\n disabled={disabled}\n name={name}\n />\n\n <label\n htmlFor={currentValue}\n className={classNames(classNamesObj?.label, 'p-label', {\n 'jc-center': customIcon && !inlineIcon,\n 'fd-column': customIcon && !inlineIcon,\n 'p-label--bordered': bordered,\n })}\n data-testid={`radio-${currentValue}`}\n >\n {customIcon && (\n <div\n className={classNames(\n 'd-inline-flex ai-center jc-center',\n inlineIcon ? 'mr8' : 'mt8'\n )}\n >\n {customIcon?.(checked)}\n </div>\n )}\n\n {isRadioLabelObject(label) ? (\n <div>\n <p className=\"p-p\">{label.title}</p>\n <span className=\"d-block p-p p-p--small tc-neutral-700\">\n {label.description}\n </span>\n </div>\n ) : (\n label\n )}\n </label>\n </div>\n );\n })}\n </fieldset>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ var Toggle = function (_a) {
|
|
|
44
44
|
var checked = value === null || value === void 0 ? void 0 : value.includes(currentValue);
|
|
45
45
|
return (jsx("div", { className: classNamesObj === null || classNamesObj === void 0 ? void 0 : classNamesObj.option, children: jsxs("label", { className: classNames(styles.label, classNamesObj === null || classNamesObj === void 0 ? void 0 : classNamesObj.label, 'p-label pr16 gap16', {
|
|
46
46
|
'p-label--bordered': bordered,
|
|
47
|
-
}), "data-
|
|
47
|
+
}), "data-testid": "toggle-".concat(currentValue), children: [jsxs("span", { className: classNames(styles.toggleContainer, 'd-inline-block'), children: [jsx("input", { checked: checked, className: styles.input, "data-testid": "toggle-input-".concat(currentValue), onChange: function () { return handleOnChange(currentValue); }, type: "checkbox", value: currentValue, disabled: disabled }), jsx("span", { className: styles.toggle })] }), isToggleLabelObject(label) ? (jsxs("div", { children: [jsx("p", { className: "p-p", children: label.title }), jsx("span", { className: "d-block p-p p-p--small tc-neutral-700", children: label.description })] })) : label] }) }, currentValue));
|
|
48
48
|
}) }));
|
|
49
49
|
};
|
|
50
50
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/lib/components/input/toggle/index.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport classNames from \"classnames\";\n\nimport styles from './styles.module.scss';\nexport interface ToggleWithDescription {\n title: ReactNode;\n description?: string;\n}\n\nexport interface ToggleProps<ValueType extends string> {\n options: Record<ValueType, ReactNode | ToggleWithDescription>;\n value?: ValueType[];\n onChange: (value: ValueType[]) => void;\n inlineLayout?: boolean;\n disabled?: boolean;\n bordered?: boolean,\n classNames?: {\n container?: string;\n label?: string;\n option?: string;\n }\n}\n\nexport const Toggle = <ValueType extends string>({\n options,\n value = [],\n onChange,\n inlineLayout = false,\n bordered = true,\n classNames: classNamesObj,\n disabled,\n}: ToggleProps<ValueType> & { }) => {\n const hasNoneValue = Object.keys(options).includes('NONE');\n\n const isToggleLabelObject = (\n label: ReactNode | ToggleWithDescription\n ): label is ToggleWithDescription => {\n return (label as ToggleWithDescription).title !== undefined;\n };\n\n const handleOnChange = (newValue: ValueType) => {\n if (value?.includes(newValue)) {\n const filteredToggleValues = value.filter(\n (selectedValue) => selectedValue !== newValue\n );\n\n onChange(filteredToggleValues);\n return;\n }\n\n if (hasNoneValue && newValue === 'NONE') {\n onChange([newValue]);\n return;\n }\n\n if (hasNoneValue && newValue !== 'NONE') {\n const newValues = value\n ? [...value.filter((v) => v !== 'NONE'), newValue]\n : [newValue];\n onChange(newValues);\n return;\n }\n\n const newValues = value\n ? [...value, newValue]\n : [newValue];\n onChange(newValues);\n };\n\n\n const entries = Object.entries(options) as [\n ValueType,\n string | ToggleWithDescription\n ][];\n\n return (\n <div\n className={classNames(classNamesObj?.container, styles.container, 'd-flex gap8', {\n 'fd-row': inlineLayout,\n 'f-wrap': inlineLayout,\n 'fd-column': !inlineLayout,\n })}\n >\n {entries.map(([currentValue, label]) => {\n const checked = value?.includes(currentValue);\n\n return (\n <div className={classNamesObj?.option} key={currentValue}>\n <label\n className={classNames(\n styles.label,\n classNamesObj?.label,\n 'p-label pr16 gap16',\n {\n 'p-label--bordered': bordered,\n }\n )}\n data-
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/lib/components/input/toggle/index.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport classNames from \"classnames\";\n\nimport styles from './styles.module.scss';\nexport interface ToggleWithDescription {\n title: ReactNode;\n description?: string;\n}\n\nexport interface ToggleProps<ValueType extends string> {\n options: Record<ValueType, ReactNode | ToggleWithDescription>;\n value?: ValueType[];\n onChange: (value: ValueType[]) => void;\n inlineLayout?: boolean;\n disabled?: boolean;\n bordered?: boolean,\n classNames?: {\n container?: string;\n label?: string;\n option?: string;\n }\n}\n\nexport const Toggle = <ValueType extends string>({\n options,\n value = [],\n onChange,\n inlineLayout = false,\n bordered = true,\n classNames: classNamesObj,\n disabled,\n}: ToggleProps<ValueType> & { }) => {\n const hasNoneValue = Object.keys(options).includes('NONE');\n\n const isToggleLabelObject = (\n label: ReactNode | ToggleWithDescription\n ): label is ToggleWithDescription => {\n return (label as ToggleWithDescription).title !== undefined;\n };\n\n const handleOnChange = (newValue: ValueType) => {\n if (value?.includes(newValue)) {\n const filteredToggleValues = value.filter(\n (selectedValue) => selectedValue !== newValue\n );\n\n onChange(filteredToggleValues);\n return;\n }\n\n if (hasNoneValue && newValue === 'NONE') {\n onChange([newValue]);\n return;\n }\n\n if (hasNoneValue && newValue !== 'NONE') {\n const newValues = value\n ? [...value.filter((v) => v !== 'NONE'), newValue]\n : [newValue];\n onChange(newValues);\n return;\n }\n\n const newValues = value\n ? [...value, newValue]\n : [newValue];\n onChange(newValues);\n };\n\n\n const entries = Object.entries(options) as [\n ValueType,\n string | ToggleWithDescription\n ][];\n\n return (\n <div\n className={classNames(classNamesObj?.container, styles.container, 'd-flex gap8', {\n 'fd-row': inlineLayout,\n 'f-wrap': inlineLayout,\n 'fd-column': !inlineLayout,\n })}\n >\n {entries.map(([currentValue, label]) => {\n const checked = value?.includes(currentValue);\n\n return (\n <div className={classNamesObj?.option} key={currentValue}>\n <label\n className={classNames(\n styles.label,\n classNamesObj?.label,\n 'p-label pr16 gap16',\n {\n 'p-label--bordered': bordered,\n }\n )}\n data-testid={`toggle-${currentValue}`}\n >\n <span className={classNames(styles.toggleContainer, 'd-inline-block')}>\n <input \n checked={checked}\n className={styles.input}\n data-testid={`toggle-input-${currentValue}`}\n onChange={() => handleOnChange(currentValue)}\n type=\"checkbox\" \n value={currentValue}\n disabled={disabled}\n />\n <span className={styles.toggle} />\n </span>\n \n {isToggleLabelObject(label) ? (\n <div>\n <p className=\"p-p\">{label.title}</p>\n <span className=\"d-block p-p p-p--small tc-neutral-700\">\n {label.description}\n </span>\n </div>\n ) : label}\n </label>\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport {\n CheckThickIcon,\n StarFilledIcon,\n XIcon,\n ZapFilledIcon,\n} from '../../../../icon';\nimport { ReactNode } from 'react';\nimport styles from './BaseCell.module.scss';\nimport { MiniProgressBar } from './MiniProgressBar/MiniProgressBar';\nimport { TableInfoButton } from '../../../../comparisonTable';\nimport { ModalFunction } from '../../../types';\n\nexport type FontVariant = 'NORMAL' | 'TITLE' | 'SUBTITLE' | 'PRICE';\n\nconst progressLookup: Record<string, number> = {\n '30%': 1,\n '50%': 2,\n '70%': 3,\n '75%': 4,\n '80%': 4,\n '90%': 4,\n '75%-90%': 4,\n '75%-100%': 4,\n '80%-100%': 4,\n '100%': 5,\n};\n\nexport type Alignment = 'center' | 'left' | 'right';\n\nexport type BaseCellProps = {\n align?: Alignment;\n checkmarkValue?: boolean;\n description?: ReactNode;\n fontVariant?: FontVariant;\n hideProgressBar?: boolean;\n modalTitle?: ReactNode;\n modalContent?: ReactNode;\n openModal?: ModalFunction;\n text?: ReactNode;\n rating?: {\n value: number;\n type: 'zap' | 'star';\n };\n className?: string;\n dataTestId?: string;\n
|
|
1
|
+
{"version":3,"file":"BaseCell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport {\n CheckThickIcon,\n StarFilledIcon,\n XIcon,\n ZapFilledIcon,\n} from '../../../../icon';\nimport { ReactNode } from 'react';\nimport styles from './BaseCell.module.scss';\nimport { MiniProgressBar } from './MiniProgressBar/MiniProgressBar';\nimport { TableInfoButton } from '../../../../comparisonTable';\nimport { ModalFunction } from '../../../types';\n\nexport type FontVariant = 'NORMAL' | 'TITLE' | 'SUBTITLE' | 'PRICE';\n\nconst progressLookup: Record<string, number> = {\n '30%': 1,\n '50%': 2,\n '70%': 3,\n '75%': 4,\n '80%': 4,\n '90%': 4,\n '75%-90%': 4,\n '75%-100%': 4,\n '80%-100%': 4,\n '100%': 5,\n};\n\nexport type Alignment = 'center' | 'left' | 'right';\n\nexport type BaseCellProps = {\n align?: Alignment;\n checkmarkValue?: boolean;\n description?: ReactNode;\n fontVariant?: FontVariant;\n hideProgressBar?: boolean;\n modalTitle?: ReactNode;\n modalContent?: ReactNode;\n openModal?: ModalFunction;\n text?: ReactNode;\n rating?: {\n value: number;\n type: 'zap' | 'star';\n };\n className?: string;\n dataTestId?: string;\n};\n\nexport const BaseCell = ({\n align = 'center',\n checkmarkValue,\n description = '',\n fontVariant = 'NORMAL',\n hideProgressBar = false,\n modalTitle = '',\n modalContent = '',\n openModal,\n rating,\n text = '',\n className,\n}: BaseCellProps) => {\n const alignClassName = {\n center: 'ta-center jc-center ai-center',\n left: 'ta-left jc-start',\n right: 'ta-right jc-end ai-end',\n }[align];\n\n const validRatingValues: number[] = [1, 2, 3];\n const SelectedIcon = rating?.type === 'zap' ? ZapFilledIcon : StarFilledIcon;\n\n const progressBarValue =\n !hideProgressBar && typeof text === 'string'\n ? progressLookup[text]\n : undefined;\n\n return (\n <div\n className={classNames(\n className,\n 'd-flex gap8 ai-center', {\n 'jc-center': align === 'center',\n })}\n >\n <div\n className={classNames('d-flex fd-column', alignClassName, {\n [styles.maxWidth]: modalContent && align === 'center',\n })}\n >\n <div className=\"d-flex ai-center\">\n {rating?.value && (\n <span\n data-testid=\"table-cell-rating\"\n title={`${rating?.value} out of 3`}\n >\n {validRatingValues.map((value) => (\n <SelectedIcon\n aria-hidden=\"true\"\n key={value}\n color={value <= rating?.value ? 'neutral-900' : 'neutral-400'}\n className={styles.icon}\n size={rating?.type === 'zap' ? 16 : 14}\n />\n ))}\n </span>\n )}\n\n {checkmarkValue !== undefined && (\n <span className='d-inline-block mx8' title={checkmarkValue ? 'Yes' : 'No'}>\n {checkmarkValue ? (\n <CheckThickIcon\n noMargin\n data-testid=\"table-cell-boolean-yes\"\n size={24}\n aria-hidden\n color=\"neutral-900\"\n />\n ) : (\n <XIcon\n noMargin\n data-testid=\"table-cell-boolean-no\"\n size={24}\n aria-hidden\n color=\"neutral-500\"\n />\n )}\n </span>\n )}\n\n <div className=\"d-flex ai-center\">\n {text && fontVariant === 'NORMAL' && (\n <div className={classNames(\n \"p-p d-inline\",\n { 'ml8': align !== 'left' }\n )}\n data-testid=\"table-cell-text\"\n >\n {text}\n </div>\n )}\n\n {text && fontVariant === 'PRICE' && (\n <div\n className=\"p-h2 tc-neutral-900\"\n data-testid=\"table-cell-content\"\n >\n {text}\n </div>\n )}\n\n {text && fontVariant === 'TITLE' && (\n <h2\n aria-hidden\n className=\"tc-grey-800 p-h2 p--serif\"\n >\n {text}\n </h2>\n )}\n\n {text && fontVariant === 'SUBTITLE' && (\n <h2\n aria-hidden\n className=\"tc-grey-800 p-h4\"\n >\n {text}\n </h2>\n )}\n\n {modalContent && openModal && (\n <span className=\"ml8\">\n <TableInfoButton\n onClick={() =>\n openModal({\n title: modalTitle,\n body: modalContent,\n })\n }\n />\n </span>\n )}\n </div>\n </div>\n\n {progressBarValue !== undefined && (\n <MiniProgressBar nFilledBars={progressBarValue} />\n )}\n\n {description && (\n <div\n className={classNames(\n styles.description,\n 'd-flex p-p--small tc-neutral-600',\n alignClassName\n )}\n >\n {description}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -14,11 +14,11 @@ styleInject(css_248z);
|
|
|
14
14
|
|
|
15
15
|
var ButtonCell = function (_a) {
|
|
16
16
|
var _b;
|
|
17
|
-
var isSelected = _a.isSelected, onClick = _a.onClick, buttonCaption = _a.buttonCaption, price = _a.price, disabled = _a.disabled, className = _a.className,
|
|
18
|
-
return (jsx("div", { className: classNames("w100 d-flex fd-column ai-start jc-center gap8", styles.wrapper, className),
|
|
17
|
+
var isSelected = _a.isSelected, onClick = _a.onClick, buttonCaption = _a.buttonCaption, price = _a.price, disabled = _a.disabled, className = _a.className, dataTestId = _a.dataTestId;
|
|
18
|
+
return (jsx("div", { className: classNames("w100 d-flex fd-column ai-start jc-center gap8", styles.wrapper, className), children: jsxs("button", { className: classNames('w100 wmx5', styles.buttonCell, (_b = {},
|
|
19
19
|
_b[styles.selected] = isSelected,
|
|
20
20
|
_b[styles.disabled] = disabled,
|
|
21
|
-
_b)), type: "button", onClick: onClick, disabled: disabled, children: [jsxs("div", { className: "d-flex fd-column ai-start", children: [jsx("span", { className: "p-p fw-bold", children: buttonCaption }), price && jsx("span", { className: "p-p", children: price })] }), !disabled && (isSelected ? (jsx(CircleSelectedIcon, { size: 16 })) : (jsx(CircleUnselectedIcon, { size: 16 })))] }) }));
|
|
21
|
+
_b)), type: "button", onClick: onClick, disabled: disabled, "data-testid": dataTestId, children: [jsxs("div", { className: "d-flex fd-column ai-start", children: [jsx("span", { className: "p-p fw-bold", children: buttonCaption }), price && jsx("span", { className: "p-p", children: price })] }), !disabled && (isSelected ? (jsx(CircleSelectedIcon, { size: 16 })) : (jsx(CircleUnselectedIcon, { size: 16 })))] }) }));
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
export { ButtonCell };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonCell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport styles from './ButtonCell.module.scss';\nimport { CircleSelectedIcon, CircleUnselectedIcon } from '../../../../icon';\nimport { ReactNode } from 'react';\n\nexport type ButtonCellProps = {\n buttonCaption: ReactNode;\n disabled?: boolean;\n isSelected?: boolean;\n onClick: () => void;\n price?: ReactNode;\n className?: string;\n dataTestId?: string;\n
|
|
1
|
+
{"version":3,"file":"ButtonCell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport styles from './ButtonCell.module.scss';\nimport { CircleSelectedIcon, CircleUnselectedIcon } from '../../../../icon';\nimport { ReactNode } from 'react';\n\nexport type ButtonCellProps = {\n buttonCaption: ReactNode;\n disabled?: boolean;\n isSelected?: boolean;\n onClick: () => void;\n price?: ReactNode;\n className?: string;\n dataTestId?: string;\n};\n\nexport const ButtonCell = ({\n isSelected,\n onClick,\n buttonCaption,\n price,\n disabled,\n className,\n dataTestId,\n}: ButtonCellProps) => {\n return (\n <div\n className={classNames(\n \"w100 d-flex fd-column ai-start jc-center gap8\",\n styles.wrapper,\n className,\n )}\n >\n <button\n className={classNames('w100 wmx5', styles.buttonCell, {\n [styles.selected]: isSelected,\n [styles.disabled]: disabled,\n })}\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n data-testid={dataTestId}\n >\n <div className=\"d-flex fd-column ai-start\">\n <span className=\"p-p fw-bold\">{buttonCaption}</span>\n {price && <span className=\"p-p\">{price}</span>}\n </div>\n {!disabled && (isSelected ? (\n <CircleSelectedIcon size={16} />\n ) : (\n <CircleUnselectedIcon size={16} />\n ))}\n </button>\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;AAgBO,IAAM,UAAU,GAAG,UAAC,EAQT,EAAA;;AAPhB,IAAA,IAAA,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,aAAa,mBAAA,EACb,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA;IAEV,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,+CAA+C,EAC/C,MAAM,CAAC,OAAO,EACd,SAAS,CACV,EAAA,QAAA,EAEDC,IAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,GAAA,EAAA,GAAA,EAAA;AAClD,gBAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,UAAU;AAC7B,gBAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,gBAAA,EAAA,EAAA,EACF,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAAA,aAAA,EACL,UAAU,aAEvBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2BAA2B,EAAA,QAAA,EAAA,CACxCD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,EAAA,QAAA,EAAE,aAAa,EAAA,CAAQ,EACnD,KAAK,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,KAAK,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,CAAA,EAAA,CAC1C,EACL,CAAC,QAAQ,KAAK,UAAU,IACvBA,GAAA,CAAC,kBAAkB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,KAEhCA,GAAA,CAAC,oBAAoB,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,CACnC,CAAC,CAAA,EAAA,CACK,EAAA,CACL;AAEV;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { _ as __awaiter, a as __generator } from '../../../../../tslib.es6-CVlKGIvp.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { c as customRender, s as screen } from '../../../../../customRender-DzdqZxUd.js';
|
|
4
|
+
import { ButtonCell } from './ButtonCell.js';
|
|
5
|
+
import '../../../../../_commonjsHelpers-BFTU3MAI.js';
|
|
6
|
+
import 'react';
|
|
7
|
+
import 'react-dom';
|
|
8
|
+
import 'util';
|
|
9
|
+
import 'react-dom/test-utils';
|
|
10
|
+
import '../../../../../index-DLQEsiym.js';
|
|
11
|
+
import '../../../../../style-inject.es-tgCJW-Cu.js';
|
|
12
|
+
import '../../../../icon/icons/CircleSelected.js';
|
|
13
|
+
import '../../../../icon/IconWrapper/IconWrapper.js';
|
|
14
|
+
import '../../../../icon/icons/CircleUnselected.js';
|
|
15
|
+
|
|
16
|
+
describe('ButtonCell', function () {
|
|
17
|
+
it('exposes its test id on the button so clicking it selects the cell', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
18
|
+
var onClick, user, button;
|
|
19
|
+
return __generator(this, function (_a) {
|
|
20
|
+
switch (_a.label) {
|
|
21
|
+
case 0:
|
|
22
|
+
onClick = jest.fn();
|
|
23
|
+
user = customRender(jsx(ButtonCell, { buttonCaption: "Extended", price: "\u20AC9.34/mo", onClick: onClick, dataTestId: "plan-table-EXTENDED" })).user;
|
|
24
|
+
button = screen.getByTestId('plan-table-EXTENDED');
|
|
25
|
+
return [4 /*yield*/, user.click(button)];
|
|
26
|
+
case 1:
|
|
27
|
+
_a.sent();
|
|
28
|
+
expect(button.tagName).toBe('BUTTON');
|
|
29
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
30
|
+
return [2 /*return*/];
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}); });
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=ButtonCell.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonCell.test.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.test.tsx"],"sourcesContent":["import { render, screen } from '../../../../../util/testUtils';\nimport { ButtonCell } from './ButtonCell';\n\ndescribe('ButtonCell', () => {\n it('exposes its test id on the button so clicking it selects the cell', async () => {\n const onClick = jest.fn();\n const { user } = render(\n <ButtonCell\n buttonCaption=\"Extended\"\n price=\"€9.34/mo\"\n onClick={onClick}\n dataTestId=\"plan-table-EXTENDED\"\n />\n );\n\n const button = screen.getByTestId('plan-table-EXTENDED');\n await user.click(button);\n\n expect(button.tagName).toBe('BUTTON');\n expect(onClick).toHaveBeenCalledTimes(1);\n });\n});\n"],"names":["render","_jsx"],"mappings":";;;;;;;;;;;;;;;AAGA,QAAQ,CAAC,YAAY,EAAE,YAAA;IACrB,EAAE,CAAC,mEAAmE,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;;AAChE,oBAAA,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE;oBACjB,IAAI,GAAKA,YAAM,CACrBC,GAAA,CAAC,UAAU,IACT,aAAa,EAAC,UAAU,EACxB,KAAK,EAAC,eAAU,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAC,qBAAqB,EAAA,CAChC,CACH,CAAA,IAPW;AASN,oBAAA,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC;AACxD,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;;AAAxB,oBAAA,EAAA,CAAA,IAAA,EAAwB;oBAExB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACrC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;;;;AACzC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -13,11 +13,11 @@ styleInject(css_248z);
|
|
|
13
13
|
|
|
14
14
|
var CTACell = function (_a) {
|
|
15
15
|
var _b;
|
|
16
|
-
var title = _a.title, price = _a.price, icon = _a.icon, grey = _a.grey, narrow = _a.narrow, centered = _a.centered, href = _a.href, buttonCaption = _a.buttonCaption, imageComponent = _a.imageComponent, className = _a.className,
|
|
16
|
+
var title = _a.title, price = _a.price, icon = _a.icon, grey = _a.grey, narrow = _a.narrow, centered = _a.centered, href = _a.href, buttonCaption = _a.buttonCaption, imageComponent = _a.imageComponent, className = _a.className, dataTestId = _a.dataTestId, onClick = _a.onClick;
|
|
17
17
|
var renderedIcon = (jsx(IconRenderer, { icon: icon, imageComponent: imageComponent }));
|
|
18
18
|
return (jsxs("div", { className: classNames(className, 'ta-left', {
|
|
19
19
|
'd-flex fd-column ai-center': centered,
|
|
20
|
-
}), "data-
|
|
20
|
+
}), "data-testid": dataTestId, children: [jsxs("div", { className: "d-flex ai-center gap8", children: [renderedIcon, jsxs("p", { className: "p-h3", children: [title, price && jsxs("span", { className: "tc-purple-600", children: [" ", price] })] })] }), jsx(Button, __assign({}, onClick ? { onClick: onClick } : {
|
|
21
21
|
as: 'a',
|
|
22
22
|
href: href,
|
|
23
23
|
target: '_blank',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CTACell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/CTACell/CTACell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport styles from './CTACell.module.scss';\nimport { IconRenderer } from '../../IconRenderer/IconRenderer';\nimport { Button } from '../../../../button';\n\nexport type CTACellProps = {\n title: ReactNode;\n price?: ReactNode;\n icon?: ReactNode;\n imageComponent?: (args: any) => JSX.Element;\n buttonCaption?: ReactNode;\n grey?: boolean;\n narrow?: boolean;\n centered?: boolean;\n href: string;\n className?: string;\n dataTestId?: string;\n
|
|
1
|
+
{"version":3,"file":"CTACell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/CTACell/CTACell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nimport styles from './CTACell.module.scss';\nimport { IconRenderer } from '../../IconRenderer/IconRenderer';\nimport { Button } from '../../../../button';\n\nexport type CTACellProps = {\n title: ReactNode;\n price?: ReactNode;\n icon?: ReactNode;\n imageComponent?: (args: any) => JSX.Element;\n buttonCaption?: ReactNode;\n grey?: boolean;\n narrow?: boolean;\n centered?: boolean;\n href: string;\n className?: string;\n dataTestId?: string;\n onClick?: () => void;\n};\n\nexport const CTACell = ({\n title,\n price,\n icon,\n grey,\n narrow,\n centered,\n href,\n buttonCaption,\n imageComponent,\n className,\n dataTestId,\n onClick,\n}: CTACellProps) => {\n const renderedIcon = (\n <IconRenderer icon={icon} imageComponent={imageComponent} />\n );\n\n return (\n <div\n className={classNames(className, 'ta-left', {\n 'd-flex fd-column ai-center': centered,\n })}\n data-testid={dataTestId}\n >\n <div className=\"d-flex ai-center gap8\">\n {renderedIcon}\n <p className=\"p-h3\">\n {title}\n {price && <span className=\"tc-purple-600\"> {price}</span>}\n </p>\n </div>\n\n <Button\n {...onClick ? { onClick } : {\n as: 'a',\n href: href,\n target: '_blank',\n rel: 'noopener noreferrer',\n }}\n className={classNames('mt16 w100', styles.button, {\n 'p-btn--primary': !grey,\n 'p-btn--secondary-grey': grey,\n [styles.narrow]: narrow,\n })}\n >\n {buttonCaption}\n </Button>\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;AAsBO,IAAM,OAAO,GAAG,UAAC,EAaT,EAAA;;AAZb,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,SAAS,eAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,OAAO,GAAA,EAAA,CAAA,OAAA;AAEP,IAAA,IAAM,YAAY,IAChBA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAA,CAAI,CAC7D;IAED,QACEC,cACE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE;AAC1C,YAAA,4BAA4B,EAAE,QAAQ;AACvC,SAAA,CAAC,iBACW,UAAU,EAAA,QAAA,EAAA,CAEvBA,cAAK,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAA,CACnC,YAAY,EACbA,IAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,MAAM,EAAA,QAAA,EAAA,CAChB,KAAK,EACL,KAAK,IAAIA,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,kBAAG,KAAK,CAAA,EAAA,CAAQ,IACvD,CAAA,EAAA,CACA,EAEND,IAAC,MAAM,EAAA,QAAA,CAAA,EAAA,EACD,OAAO,GAAG,EAAE,OAAO,SAAA,EAAE,GAAG;AAC1B,gBAAA,EAAE,EAAE,GAAG;AACP,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,GAAG,EAAE,qBAAqB;aAC3B,EAAA,EACD,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,GAAA,EAAA,GAAA;wBAC9C,gBAAgB,EAAE,CAAC,IAAI;AACvB,wBAAA,uBAAuB,EAAE;;AACzB,oBAAA,EAAA,CAAC,MAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACvB,oBAAA,EAAA,EAAA,EAAA,QAAA,EAED,aAAa,EAAA,CAAA,CACP,CAAA,EAAA,CACL;AAEV;;;;"}
|
|
@@ -18,6 +18,5 @@ export type BaseCellProps = {
|
|
|
18
18
|
};
|
|
19
19
|
className?: string;
|
|
20
20
|
dataTestId?: string;
|
|
21
|
-
dataCy?: string;
|
|
22
21
|
};
|
|
23
22
|
export declare const BaseCell: ({ align, checkmarkValue, description, fontVariant, hideProgressBar, modalTitle, modalContent, openModal, rating, text, className, }: BaseCellProps) => JSX.Element;
|
|
@@ -7,6 +7,5 @@ export type ButtonCellProps = {
|
|
|
7
7
|
price?: ReactNode;
|
|
8
8
|
className?: string;
|
|
9
9
|
dataTestId?: string;
|
|
10
|
-
dataCy?: string;
|
|
11
10
|
};
|
|
12
|
-
export declare const ButtonCell: ({ isSelected, onClick, buttonCaption, price, disabled, className,
|
|
11
|
+
export declare const ButtonCell: ({ isSelected, onClick, buttonCaption, price, disabled, className, dataTestId, }: ButtonCellProps) => JSX.Element;
|
package/dist/esm/lib/components/table/components/TableCell/ButtonCell/ButtonCell.stories.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ButtonCell } from './ButtonCell';
|
|
2
2
|
declare const story: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ isSelected, onClick, buttonCaption, price, disabled, className,
|
|
4
|
+
component: ({ isSelected, onClick, buttonCaption, price, disabled, className, dataTestId, }: import("./ButtonCell").ButtonCellProps) => JSX.Element;
|
|
5
5
|
argTypes: {};
|
|
6
6
|
args: {
|
|
7
7
|
buttonCaption: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -11,7 +11,6 @@ export type CTACellProps = {
|
|
|
11
11
|
href: string;
|
|
12
12
|
className?: string;
|
|
13
13
|
dataTestId?: string;
|
|
14
|
-
dataCy?: string;
|
|
15
14
|
onClick?: () => void;
|
|
16
15
|
};
|
|
17
|
-
export declare const CTACell: ({ title, price, icon, grey, narrow, centered, href, buttonCaption, imageComponent, className,
|
|
16
|
+
export declare const CTACell: ({ title, price, icon, grey, narrow, centered, href, buttonCaption, imageComponent, className, dataTestId, onClick, }: CTACellProps) => JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CTACell } from './CTACell';
|
|
2
2
|
declare const story: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ title, price, icon, grey, narrow, centered, href, buttonCaption, imageComponent, className,
|
|
4
|
+
component: ({ title, price, icon, grey, narrow, centered, href, buttonCaption, imageComponent, className, dataTestId, onClick, }: import("./CTACell").CTACellProps) => JSX.Element;
|
|
5
5
|
argTypes: {};
|
|
6
6
|
args: {
|
|
7
7
|
title: string;
|
package/package.json
CHANGED
|
@@ -264,7 +264,6 @@ const AutocompleteAddress = ({
|
|
|
264
264
|
className="w100"
|
|
265
265
|
id="autocomplete"
|
|
266
266
|
key="autocomplete-search"
|
|
267
|
-
data-cy="autocomplete"
|
|
268
267
|
data-testid="autocomplete"
|
|
269
268
|
type="text"
|
|
270
269
|
placeholder={
|
|
@@ -275,7 +274,6 @@ const AutocompleteAddress = ({
|
|
|
275
274
|
/>
|
|
276
275
|
{hasLoadedGoogleAPI === false && (
|
|
277
276
|
<div
|
|
278
|
-
data-cy="google-api-loader"
|
|
279
277
|
data-testid="google-api-loader"
|
|
280
278
|
className={styles['loading-spinner']}
|
|
281
279
|
>
|
|
@@ -288,7 +286,6 @@ const AutocompleteAddress = ({
|
|
|
288
286
|
<div className={`d-flex c-gap16 ${styles['input-line']}`}>
|
|
289
287
|
<Input
|
|
290
288
|
className="w100"
|
|
291
|
-
data-cy="autocomplete"
|
|
292
289
|
data-testid="autocomplete"
|
|
293
290
|
key="autocomplete-street"
|
|
294
291
|
type="text"
|
|
@@ -300,7 +297,6 @@ const AutocompleteAddress = ({
|
|
|
300
297
|
/>
|
|
301
298
|
<Input
|
|
302
299
|
className={`wmx2 ${styles['house-number-input']}`}
|
|
303
|
-
data-cy="autocomplete-house-number"
|
|
304
300
|
data-testid="autocomplete-house-number"
|
|
305
301
|
key="autocomplete-house-number"
|
|
306
302
|
placeholder={placeholders?.houseNumber || 'House number'}
|
|
@@ -312,7 +308,6 @@ const AutocompleteAddress = ({
|
|
|
312
308
|
</div>
|
|
313
309
|
<Input
|
|
314
310
|
className="mt16"
|
|
315
|
-
data-cy="autocomplete-additional-info"
|
|
316
311
|
data-testid="autocomplete-additional-info"
|
|
317
312
|
key="autocomplete-additional-info"
|
|
318
313
|
placeholder={
|
|
@@ -327,7 +322,6 @@ const AutocompleteAddress = ({
|
|
|
327
322
|
<div className={`d-flex mt16 c-gap16 ${styles['input-line']}`}>
|
|
328
323
|
<Input
|
|
329
324
|
className="w100"
|
|
330
|
-
data-cy="autocomplete-postcode"
|
|
331
325
|
data-testid="autocomplete-postcode"
|
|
332
326
|
key="autocomplete-postcode"
|
|
333
327
|
placeholder={placeholders?.postcode || 'Postcode'}
|
|
@@ -338,7 +332,6 @@ const AutocompleteAddress = ({
|
|
|
338
332
|
/>
|
|
339
333
|
<Input
|
|
340
334
|
className="w100"
|
|
341
|
-
data-cy="autocomplete-city"
|
|
342
335
|
data-testid="autocomplete-city"
|
|
343
336
|
key="autocomplete-city"
|
|
344
337
|
placeholder={placeholders?.city || 'City'}
|
|
@@ -18,7 +18,6 @@ const COLLECTABLE_DATE_FORMAT = 'YYYY-MM-DD';
|
|
|
18
18
|
type FormatPlaceholder = 'dayFormat' | 'monthFormat' | 'yearFormat';
|
|
19
19
|
|
|
20
20
|
interface DateSelectorInputProps extends InputProps {
|
|
21
|
-
'data-cy': string;
|
|
22
21
|
'data-testid': string;
|
|
23
22
|
ref: (el: HTMLInputElement) => void;
|
|
24
23
|
}
|
|
@@ -212,7 +211,6 @@ export const DateSelector = ({
|
|
|
212
211
|
}
|
|
213
212
|
|
|
214
213
|
const getInputProps = (key: keyof CalendarDate, index: number): DateSelectorInputProps => ({
|
|
215
|
-
'data-cy': `date-selector-${key}`,
|
|
216
214
|
'data-testid': `date-selector-${key}`,
|
|
217
215
|
className: styles[`${key}Input`],
|
|
218
216
|
id: key,
|
|
@@ -15,7 +15,6 @@ const InitialButton = ({ onDownload }: { onDownload: () => void }) => (
|
|
|
15
15
|
className={`w100 ${styles.button}`}
|
|
16
16
|
leftIcon={<DownloadIcon />}
|
|
17
17
|
onClick={onDownload}
|
|
18
|
-
data-cy="download-documents-button"
|
|
19
18
|
data-testid="download-documents-button"
|
|
20
19
|
>
|
|
21
20
|
Download
|
|
@@ -119,7 +119,6 @@ export const Checkbox = <ValueType extends string>({
|
|
|
119
119
|
'jc-center': customIcon,
|
|
120
120
|
'fd-column': customIcon,
|
|
121
121
|
})}
|
|
122
|
-
data-cy={`checkbox-${currentValue}`}
|
|
123
122
|
data-testid={`checkbox-${currentValue}`}
|
|
124
123
|
>
|
|
125
124
|
{customIcon && <div className="mt8">{customIcon?.(checked)}</div>}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { render, screen } from '../../../../../util/testUtils';
|
|
2
|
+
import { ButtonCell } from './ButtonCell';
|
|
3
|
+
|
|
4
|
+
describe('ButtonCell', () => {
|
|
5
|
+
it('exposes its test id on the button so clicking it selects the cell', async () => {
|
|
6
|
+
const onClick = jest.fn();
|
|
7
|
+
const { user } = render(
|
|
8
|
+
<ButtonCell
|
|
9
|
+
buttonCaption="Extended"
|
|
10
|
+
price="€9.34/mo"
|
|
11
|
+
onClick={onClick}
|
|
12
|
+
dataTestId="plan-table-EXTENDED"
|
|
13
|
+
/>
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
const button = screen.getByTestId('plan-table-EXTENDED');
|
|
17
|
+
await user.click(button);
|
|
18
|
+
|
|
19
|
+
expect(button.tagName).toBe('BUTTON');
|
|
20
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -12,7 +12,6 @@ export type ButtonCellProps = {
|
|
|
12
12
|
price?: ReactNode;
|
|
13
13
|
className?: string;
|
|
14
14
|
dataTestId?: string;
|
|
15
|
-
dataCy?: string;
|
|
16
15
|
};
|
|
17
16
|
|
|
18
17
|
export const ButtonCell = ({
|
|
@@ -22,7 +21,6 @@ export const ButtonCell = ({
|
|
|
22
21
|
price,
|
|
23
22
|
disabled,
|
|
24
23
|
className,
|
|
25
|
-
dataCy,
|
|
26
24
|
dataTestId,
|
|
27
25
|
}: ButtonCellProps) => {
|
|
28
26
|
return (
|
|
@@ -32,8 +30,6 @@ export const ButtonCell = ({
|
|
|
32
30
|
styles.wrapper,
|
|
33
31
|
className,
|
|
34
32
|
)}
|
|
35
|
-
data-cy={dataCy}
|
|
36
|
-
data-testid={dataTestId}
|
|
37
33
|
>
|
|
38
34
|
<button
|
|
39
35
|
className={classNames('w100 wmx5', styles.buttonCell, {
|
|
@@ -43,6 +39,7 @@ export const ButtonCell = ({
|
|
|
43
39
|
type="button"
|
|
44
40
|
onClick={onClick}
|
|
45
41
|
disabled={disabled}
|
|
42
|
+
data-testid={dataTestId}
|
|
46
43
|
>
|
|
47
44
|
<div className="d-flex fd-column ai-start">
|
|
48
45
|
<span className="p-p fw-bold">{buttonCaption}</span>
|
|
@@ -17,7 +17,6 @@ export type CTACellProps = {
|
|
|
17
17
|
href: string;
|
|
18
18
|
className?: string;
|
|
19
19
|
dataTestId?: string;
|
|
20
|
-
dataCy?: string;
|
|
21
20
|
onClick?: () => void;
|
|
22
21
|
};
|
|
23
22
|
|
|
@@ -32,7 +31,6 @@ export const CTACell = ({
|
|
|
32
31
|
buttonCaption,
|
|
33
32
|
imageComponent,
|
|
34
33
|
className,
|
|
35
|
-
dataCy,
|
|
36
34
|
dataTestId,
|
|
37
35
|
onClick,
|
|
38
36
|
}: CTACellProps) => {
|
|
@@ -45,7 +43,6 @@ export const CTACell = ({
|
|
|
45
43
|
className={classNames(className, 'ta-left', {
|
|
46
44
|
'd-flex fd-column ai-center': centered,
|
|
47
45
|
})}
|
|
48
|
-
data-cy={dataCy}
|
|
49
46
|
data-testid={dataTestId}
|
|
50
47
|
>
|
|
51
48
|
<div className="d-flex ai-center gap8">
|