@epignosis_llc/gnosis 6.9.0 → 6.10.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/cjs/index.cjs +492 -223
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/src/components/FormElements/ToggleSwitch/ToggleLabel.js +0 -1
- package/dist/esm/src/components/FormElements/ToggleSwitch/ToggleLabel.js.map +1 -1
- package/dist/esm/src/components/FormElements/ToggleSwitch/ToggleSwitch.js +0 -1
- package/dist/esm/src/components/FormElements/ToggleSwitch/ToggleSwitch.js.map +1 -1
- package/dist/esm/src/components/FormElements/ToggleSwitch/ToggleSwitchCore.js +0 -1
- package/dist/esm/src/components/FormElements/ToggleSwitch/ToggleSwitchCore.js.map +1 -1
- package/dist/esm/src/components/Table/Table.js +2 -1
- package/dist/esm/src/components/Table/Table.js.map +1 -1
- package/dist/esm/src/components/Table/components/Body.js +41 -11
- package/dist/esm/src/components/Table/components/Body.js.map +1 -1
- package/dist/esm/src/components/Table/components/Cell.js.map +1 -1
- package/dist/esm/src/components/Table/components/DataCells.js +2 -1
- package/dist/esm/src/components/Table/components/DataCells.js.map +1 -1
- package/dist/esm/src/components/Table/components/Header.js +7 -3
- package/dist/esm/src/components/Table/components/Header.js.map +1 -1
- package/dist/esm/src/components/Table/components/MobileTablePrimaryRow.js +98 -0
- package/dist/esm/src/components/Table/components/MobileTablePrimaryRow.js.map +1 -0
- package/dist/esm/src/components/Table/components/MobileTableRow.js +97 -0
- package/dist/esm/src/components/Table/components/MobileTableRow.js.map +1 -0
- package/dist/esm/src/components/Table/components/MobileTableRowDetails.js +55 -0
- package/dist/esm/src/components/Table/components/MobileTableRowDetails.js.map +1 -0
- package/dist/esm/src/components/Table/components/TableRow.js +23 -2
- package/dist/esm/src/components/Table/components/TableRow.js.map +1 -1
- package/dist/esm/src/components/Table/constants.js +1 -0
- package/dist/esm/src/components/Table/constants.js.map +1 -1
- package/dist/esm/src/components/Table/helpers.js +17 -6
- package/dist/esm/src/components/Table/helpers.js.map +1 -1
- package/dist/esm/src/components/Table/reducer.js +21 -2
- package/dist/esm/src/components/Table/reducer.js.map +1 -1
- package/dist/esm/src/components/Table/styles.js +11 -3
- package/dist/esm/src/components/Table/styles.js.map +1 -1
- package/dist/esm/src/components/Toast/ToastNotifications.js +0 -1
- package/dist/esm/src/components/Toast/ToastNotifications.js.map +1 -1
- package/dist/esm/src/theme/default/config/table.js +1 -0
- package/dist/esm/src/theme/default/config/table.js.map +1 -1
- package/dist/types/components/Table/components/Cell.d.ts +1 -0
- package/dist/types/components/Table/components/MobileTablePrimaryRow.d.ts +25 -0
- package/dist/types/components/Table/components/MobileTableRow.d.ts +17 -0
- package/dist/types/components/Table/components/MobileTableRowDetails.d.ts +13 -0
- package/dist/types/components/Table/components/TableRow.d.ts +4 -1
- package/dist/types/components/Table/constants.d.ts +2 -1
- package/dist/types/components/Table/helpers.d.ts +5 -1
- package/dist/types/components/Table/styles.d.ts +2 -2
- package/dist/types/components/Table/types.d.ts +5 -1
- package/dist/types/icons/client/index.d.ts +1 -0
- package/dist/types/theme/default/config/table.d.ts +1 -0
- package/dist/types/theme/default/defaultTheme.d.ts +1 -0
- package/icons/index.cjs +606 -592
- package/icons/index.js +606 -593
- package/package.json +1 -1
- package/dist/esm/node_modules/core-js/modules/es.array.join.js +0 -33
- package/dist/esm/node_modules/core-js/modules/es.array.join.js.map +0 -1
|
@@ -50,7 +50,6 @@ import '../../../../node_modules/core-js/modules/es.array.includes.js';
|
|
|
50
50
|
import '../../../../node_modules/core-js/modules/es.number.constructor.js';
|
|
51
51
|
import '../../../../node_modules/core-js/modules/es.string.includes.js';
|
|
52
52
|
import '../../../../node_modules/core-js/modules/es.array.find.js';
|
|
53
|
-
import '../../../../node_modules/core-js/modules/es.array.join.js';
|
|
54
53
|
import '../../../../node_modules/core-js/modules/es.array.reduce.js';
|
|
55
54
|
import '../../../../node_modules/core-js/modules/es.object.keys.js';
|
|
56
55
|
import '../../../../node_modules/core-js/modules/web.set-interval.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleLabel.js","sources":["../../../../../../src/components/FormElements/ToggleSwitch/ToggleLabel.tsx"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport { Text, Tooltip } from \"../../../\";\nimport { InfoIconSVG } from \"../../../icons\";\n\ntype ToggleLabelProps = {\n label: string;\n position: \"before\" | \"after\";\n description?: string;\n tooltip?: string;\n required?: boolean;\n notSwitchedOff?: boolean;\n hasDescription?: boolean;\n onClick: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\ntype TooltipIconProps = {\n tooltip: string;\n};\n\nconst TooltipIcon: React.FC<TooltipIconProps> = ({ tooltip }) => (\n <Tooltip content={tooltip} parentProps={{ \"aria-label\": tooltip }}>\n <InfoIconSVG height={16} />\n </Tooltip>\n);\n\nconst labelClassNames = (\n customClassName: string,\n notSwitchedOff: boolean,\n isRequired: boolean,\n): string =>\n classNames(customClassName, {\n \"toggle-switch__label--binary-bold\": notSwitchedOff,\n \"toggle-switch__label--required\": isRequired,\n });\n\nconst ToggleLabel: React.FC<ToggleLabelProps> = ({\n label,\n position,\n description,\n tooltip,\n required = false,\n notSwitchedOff = false,\n hasDescription = false,\n onClick,\n}) => {\n const hasDescriptionTextWeight = hasDescription ? \"700\" : \"400\";\n const isBeforeLabel = position === \"before\";\n\n return (\n <div className={`toggle-switch__label-container toggle-switch__label-container--${position}`}>\n <Text\n fontSize=\"sm\"\n className={labelClassNames(\n `toggle-switch__label ${isBeforeLabel ? \"toggle-switch__label--before\" : \"\"}`,\n notSwitchedOff,\n required,\n )}\n onClick={onClick}\n as=\"div\"\n weight={hasDescriptionTextWeight}\n >\n {tooltip && isBeforeLabel && <TooltipIcon tooltip={tooltip} />}\n {label}\n {tooltip && !isBeforeLabel && <TooltipIcon tooltip={tooltip} />}\n </Text>\n {description && (\n <Text fontSize=\"sm\" as=\"div\" className=\"toggle-switch__description\">\n {description}\n </Text>\n )}\n </div>\n );\n};\n\nexport default ToggleLabel;\n"],"names":["TooltipIcon","_ref","tooltip","___EmotionJSX","Tooltip","content","parentProps","InfoIconSVG","height","labelClassNames","customClassName","notSwitchedOff","isRequired","classNames","ToggleLabel","_ref2","label","position","description","_ref2$required","required","_ref2$notSwitchedOff","_ref2$hasDescription","hasDescription","onClick","hasDescriptionTextWeight","isBeforeLabel","className","concat","Text","fontSize","as","weight"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToggleLabel.js","sources":["../../../../../../src/components/FormElements/ToggleSwitch/ToggleLabel.tsx"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport { Text, Tooltip } from \"../../../\";\nimport { InfoIconSVG } from \"../../../icons\";\n\ntype ToggleLabelProps = {\n label: string;\n position: \"before\" | \"after\";\n description?: string;\n tooltip?: string;\n required?: boolean;\n notSwitchedOff?: boolean;\n hasDescription?: boolean;\n onClick: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\ntype TooltipIconProps = {\n tooltip: string;\n};\n\nconst TooltipIcon: React.FC<TooltipIconProps> = ({ tooltip }) => (\n <Tooltip content={tooltip} parentProps={{ \"aria-label\": tooltip }}>\n <InfoIconSVG height={16} />\n </Tooltip>\n);\n\nconst labelClassNames = (\n customClassName: string,\n notSwitchedOff: boolean,\n isRequired: boolean,\n): string =>\n classNames(customClassName, {\n \"toggle-switch__label--binary-bold\": notSwitchedOff,\n \"toggle-switch__label--required\": isRequired,\n });\n\nconst ToggleLabel: React.FC<ToggleLabelProps> = ({\n label,\n position,\n description,\n tooltip,\n required = false,\n notSwitchedOff = false,\n hasDescription = false,\n onClick,\n}) => {\n const hasDescriptionTextWeight = hasDescription ? \"700\" : \"400\";\n const isBeforeLabel = position === \"before\";\n\n return (\n <div className={`toggle-switch__label-container toggle-switch__label-container--${position}`}>\n <Text\n fontSize=\"sm\"\n className={labelClassNames(\n `toggle-switch__label ${isBeforeLabel ? \"toggle-switch__label--before\" : \"\"}`,\n notSwitchedOff,\n required,\n )}\n onClick={onClick}\n as=\"div\"\n weight={hasDescriptionTextWeight}\n >\n {tooltip && isBeforeLabel && <TooltipIcon tooltip={tooltip} />}\n {label}\n {tooltip && !isBeforeLabel && <TooltipIcon tooltip={tooltip} />}\n </Text>\n {description && (\n <Text fontSize=\"sm\" as=\"div\" className=\"toggle-switch__description\">\n {description}\n </Text>\n )}\n </div>\n );\n};\n\nexport default ToggleLabel;\n"],"names":["TooltipIcon","_ref","tooltip","___EmotionJSX","Tooltip","content","parentProps","InfoIconSVG","height","labelClassNames","customClassName","notSwitchedOff","isRequired","classNames","ToggleLabel","_ref2","label","position","description","_ref2$required","required","_ref2$notSwitchedOff","_ref2$hasDescription","hasDescription","onClick","hasDescriptionTextWeight","isBeforeLabel","className","concat","Text","fontSize","as","weight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAMA,WAAuC,GAAG,SAA1CA,WAAuCA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO,CAAA;EAAA,OACxDC,GAAA,CAACC,OAAO,EAAA;AAACC,IAAAA,OAAO,EAAEH,OAAQ;AAACI,IAAAA,WAAW,EAAE;AAAE,MAAA,YAAY,EAAEJ,OAAAA;AAAQ,KAAA;GAC9DC,EAAAA,GAAA,CAACI,WAAW,EAAA;AAACC,IAAAA,MAAM,EAAE,EAAA;AAAG,GAAE,CACnB,CAAC,CAAA;AAAA,CACX,CAAA;AAED,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CACnBC,eAAuB,EACvBC,cAAuB,EACvBC,UAAmB,EAAA;EAAA,OAEnBC,UAAU,CAACH,eAAe,EAAE;AAC1B,IAAA,mCAAmC,EAAEC,cAAc;AACnD,IAAA,gCAAgC,EAAEC,UAAAA;AACpC,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEJ,IAAME,WAAuC,GAAG,SAA1CA,WAAuCA,CAAAC,KAAA,EASvC;AAAA,EAAA,IARJC,KAAK,GAAAD,KAAA,CAALC,KAAK;IACLC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IACRC,WAAW,GAAAH,KAAA,CAAXG,WAAW;IACXhB,OAAO,GAAAa,KAAA,CAAPb,OAAO;IAAAiB,cAAA,GAAAJ,KAAA,CACPK,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IAAAE,oBAAA,GAAAN,KAAA,CAChBJ,cAAc;AAAdA,IAAAA,cAAc,GAAAU,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA;IAAAC,oBAAA,GAAAP,KAAA,CACtBQ,cAAc;AAAdA,IAAAA,cAAc,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA;IACtBE,OAAO,GAAAT,KAAA,CAAPS,OAAO,CAAA;AAEP,EAAA,IAAMC,wBAAwB,GAAGF,cAAc,GAAG,KAAK,GAAG,KAAK,CAAA;AAC/D,EAAA,IAAMG,aAAa,GAAGT,QAAQ,KAAK,QAAQ,CAAA;AAE3C,EAAA,OACEd,GAAA,CAAA,KAAA,EAAA;IAAKwB,SAAS,EAAA,iEAAA,CAAAC,MAAA,CAAoEX,QAAQ,CAAA;GACxFd,EAAAA,GAAA,CAAC0B,IAAI,EAAA;AACHC,IAAAA,QAAQ,EAAC,IAAI;AACbH,IAAAA,SAAS,EAAElB,eAAe,CAAAmB,uBAAAA,CAAAA,MAAA,CACAF,aAAa,GAAG,8BAA8B,GAAG,EAAE,CAAA,EAC3Ef,cAAc,EACdS,QACF,CAAE;AACFI,IAAAA,OAAO,EAAEA,OAAQ;AACjBO,IAAAA,EAAE,EAAC,KAAK;AACRC,IAAAA,MAAM,EAAEP,wBAAAA;AAAyB,GAAA,EAEhCvB,OAAO,IAAIwB,aAAa,IAAIvB,GAAA,CAACH,WAAW,EAAA;AAACE,IAAAA,OAAO,EAAEA,OAAAA;GAAU,CAAC,EAC7Dc,KAAK,EACLd,OAAO,IAAI,CAACwB,aAAa,IAAIvB,GAAA,CAACH,WAAW,EAAA;AAACE,IAAAA,OAAO,EAAEA,OAAAA;AAAQ,GAAE,CAC1D,CAAC,EACNgB,WAAW,IACVf,GAAA,CAAC0B,IAAI,EAAA;AAACC,IAAAA,QAAQ,EAAC,IAAI;AAACC,IAAAA,EAAE,EAAC,KAAK;AAACJ,IAAAA,SAAS,EAAC,4BAAA;GACpCT,EAAAA,WACG,CAEL,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -49,7 +49,6 @@ import '../../../../node_modules/core-js/modules/es.array.includes.js';
|
|
|
49
49
|
import '../../../../node_modules/core-js/modules/es.number.constructor.js';
|
|
50
50
|
import '../../../../node_modules/core-js/modules/es.string.includes.js';
|
|
51
51
|
import '../../../../node_modules/core-js/modules/es.array.find.js';
|
|
52
|
-
import '../../../../node_modules/core-js/modules/es.array.join.js';
|
|
53
52
|
import '../../../../node_modules/core-js/modules/es.array.reduce.js';
|
|
54
53
|
import '../../../../node_modules/core-js/modules/es.object.keys.js';
|
|
55
54
|
import '../../../../node_modules/core-js/modules/web.set-interval.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleSwitch.js","sources":["../../../../../../src/components/FormElements/ToggleSwitch/ToggleSwitch.tsx"],"sourcesContent":["import React, { useState, useEffect, useImperativeHandle, forwardRef } from \"react\";\nimport { SerializedStyles } from \"@emotion/utils\";\nimport { Text } from \"../../../\";\nimport ToggleLabel from \"./ToggleLabel\";\nimport ToggleSwitchCore from \"./ToggleSwitchCore\";\nimport { ToggleContainer } from \"./styles\";\n\ntype ToggleSpecificProps = {\n id: string;\n labelBefore?: string;\n labelAfter?: string;\n defaultChecked?: boolean;\n description?: string;\n labelledById?: string;\n isDisabled?: boolean;\n required?: boolean;\n tooltip?: string;\n variant?: \"primary\" | \"success\";\n showOutlineBorder?: boolean;\n size?: \"sm\" | \"md\";\n notSwitchedOff?: boolean;\n preventToggle?: boolean;\n subtitle?: string;\n hasInlineText?: boolean;\n inlineTextTranslations?: {\n enabled: string;\n disabled: string;\n };\n InternalIcon?: JSX.Element;\n onChange?: (isChecked: boolean) => void;\n};\n\ntype InputHTMLProps = Omit<React.ComponentPropsWithoutRef<\"input\">, keyof ToggleSpecificProps>;\n\nexport type ToggleProps = ToggleSpecificProps & InputHTMLProps;\n\nexport type ToggleSwitchHandlers = {\n toggle: () => void;\n};\n\nconst ToggleSwitch: React.ForwardRefRenderFunction<ToggleSwitchHandlers, ToggleProps> = (\n {\n id,\n labelBefore,\n labelAfter,\n description,\n labelledById,\n defaultChecked = false,\n preventToggle = false,\n isDisabled = false,\n required = false,\n hasInlineText = false,\n inlineTextTranslations = { enabled: \"Enabled\", disabled: \"Disabled\" },\n variant = \"primary\",\n showOutlineBorder = false,\n notSwitchedOff = false,\n size = \"sm\",\n subtitle = \"\",\n tooltip,\n InternalIcon,\n onChange,\n ...rest\n },\n ref,\n) => {\n const [isChecked, setIsChecked] = useState(defaultChecked);\n const hasDescription = Boolean(description);\n\n useEffect(() => {\n setIsChecked(defaultChecked);\n }, [defaultChecked]);\n\n const handleToggle = (\n e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>,\n ): void => {\n e.stopPropagation();\n\n if (isDisabled) return;\n\n if (!preventToggle) {\n setIsChecked((prev) => {\n const newValue = !prev;\n onChange?.(newValue);\n return newValue;\n });\n } else {\n onChange?.(isChecked);\n }\n };\n\n useImperativeHandle(ref, () => ({\n toggle: () => setIsChecked((prev) => !prev),\n }));\n\n return (\n <div\n id={id}\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => e.key === \"Enter\" && handleToggle(e)}\n css={(theme): SerializedStyles =>\n ToggleContainer(theme, {\n isChecked,\n isDisabled,\n hasDescription,\n notSwitchedOff,\n showOutlineBorder,\n variant,\n size,\n })\n }\n data-testid={id}\n data-checked={isChecked}\n aria-label={tooltip}\n {...rest}\n >\n <div className=\"toggle-switch__container\">\n {labelBefore && (\n <ToggleLabel\n label={labelBefore}\n position=\"before\"\n description={description}\n tooltip={tooltip}\n notSwitchedOff={notSwitchedOff}\n hasDescription={hasDescription}\n onClick={handleToggle}\n />\n )}\n\n <ToggleSwitchCore\n isChecked={isChecked}\n variant={variant}\n size={size}\n hasInlineText={hasInlineText}\n inlineTextTranslations={inlineTextTranslations}\n InternalIcon={InternalIcon}\n labelledById={labelledById}\n onClick={handleToggle}\n />\n\n {labelAfter && (\n <ToggleLabel\n label={labelAfter}\n position=\"after\"\n description={description}\n tooltip={tooltip}\n required={required}\n notSwitchedOff={notSwitchedOff}\n hasDescription={hasDescription}\n onClick={handleToggle}\n />\n )}\n </div>\n\n {subtitle && (\n <div className=\"toggle-switch__subtitle\">\n <Text fontSize=\"sm\">{subtitle}</Text>\n </div>\n )}\n </div>\n );\n};\n\nexport default forwardRef(ToggleSwitch);\n"],"names":["ToggleSwitch","_ref","ref","id","labelBefore","labelAfter","description","labelledById","_ref$defaultChecked","defaultChecked","_ref$preventToggle","preventToggle","_ref$isDisabled","isDisabled","_ref$required","required","_ref$hasInlineText","hasInlineText","_ref$inlineTextTransl","inlineTextTranslations","enabled","disabled","_ref$variant","variant","_ref$showOutlineBorde","showOutlineBorder","_ref$notSwitchedOff","notSwitchedOff","_ref$size","size","_ref$subtitle","subtitle","tooltip","InternalIcon","onChange","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","hasDescription","Boolean","useEffect","handleToggle","e","stopPropagation","prev","newValue","useImperativeHandle","toggle","___EmotionJSX","_extends","tabIndex","onKeyDown","key","css","theme","ToggleContainer","className","ToggleLabel","label","position","onClick","ToggleSwitchCore","Text","fontSize","forwardRef"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToggleSwitch.js","sources":["../../../../../../src/components/FormElements/ToggleSwitch/ToggleSwitch.tsx"],"sourcesContent":["import React, { useState, useEffect, useImperativeHandle, forwardRef } from \"react\";\nimport { SerializedStyles } from \"@emotion/utils\";\nimport { Text } from \"../../../\";\nimport ToggleLabel from \"./ToggleLabel\";\nimport ToggleSwitchCore from \"./ToggleSwitchCore\";\nimport { ToggleContainer } from \"./styles\";\n\ntype ToggleSpecificProps = {\n id: string;\n labelBefore?: string;\n labelAfter?: string;\n defaultChecked?: boolean;\n description?: string;\n labelledById?: string;\n isDisabled?: boolean;\n required?: boolean;\n tooltip?: string;\n variant?: \"primary\" | \"success\";\n showOutlineBorder?: boolean;\n size?: \"sm\" | \"md\";\n notSwitchedOff?: boolean;\n preventToggle?: boolean;\n subtitle?: string;\n hasInlineText?: boolean;\n inlineTextTranslations?: {\n enabled: string;\n disabled: string;\n };\n InternalIcon?: JSX.Element;\n onChange?: (isChecked: boolean) => void;\n};\n\ntype InputHTMLProps = Omit<React.ComponentPropsWithoutRef<\"input\">, keyof ToggleSpecificProps>;\n\nexport type ToggleProps = ToggleSpecificProps & InputHTMLProps;\n\nexport type ToggleSwitchHandlers = {\n toggle: () => void;\n};\n\nconst ToggleSwitch: React.ForwardRefRenderFunction<ToggleSwitchHandlers, ToggleProps> = (\n {\n id,\n labelBefore,\n labelAfter,\n description,\n labelledById,\n defaultChecked = false,\n preventToggle = false,\n isDisabled = false,\n required = false,\n hasInlineText = false,\n inlineTextTranslations = { enabled: \"Enabled\", disabled: \"Disabled\" },\n variant = \"primary\",\n showOutlineBorder = false,\n notSwitchedOff = false,\n size = \"sm\",\n subtitle = \"\",\n tooltip,\n InternalIcon,\n onChange,\n ...rest\n },\n ref,\n) => {\n const [isChecked, setIsChecked] = useState(defaultChecked);\n const hasDescription = Boolean(description);\n\n useEffect(() => {\n setIsChecked(defaultChecked);\n }, [defaultChecked]);\n\n const handleToggle = (\n e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>,\n ): void => {\n e.stopPropagation();\n\n if (isDisabled) return;\n\n if (!preventToggle) {\n setIsChecked((prev) => {\n const newValue = !prev;\n onChange?.(newValue);\n return newValue;\n });\n } else {\n onChange?.(isChecked);\n }\n };\n\n useImperativeHandle(ref, () => ({\n toggle: () => setIsChecked((prev) => !prev),\n }));\n\n return (\n <div\n id={id}\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => e.key === \"Enter\" && handleToggle(e)}\n css={(theme): SerializedStyles =>\n ToggleContainer(theme, {\n isChecked,\n isDisabled,\n hasDescription,\n notSwitchedOff,\n showOutlineBorder,\n variant,\n size,\n })\n }\n data-testid={id}\n data-checked={isChecked}\n aria-label={tooltip}\n {...rest}\n >\n <div className=\"toggle-switch__container\">\n {labelBefore && (\n <ToggleLabel\n label={labelBefore}\n position=\"before\"\n description={description}\n tooltip={tooltip}\n notSwitchedOff={notSwitchedOff}\n hasDescription={hasDescription}\n onClick={handleToggle}\n />\n )}\n\n <ToggleSwitchCore\n isChecked={isChecked}\n variant={variant}\n size={size}\n hasInlineText={hasInlineText}\n inlineTextTranslations={inlineTextTranslations}\n InternalIcon={InternalIcon}\n labelledById={labelledById}\n onClick={handleToggle}\n />\n\n {labelAfter && (\n <ToggleLabel\n label={labelAfter}\n position=\"after\"\n description={description}\n tooltip={tooltip}\n required={required}\n notSwitchedOff={notSwitchedOff}\n hasDescription={hasDescription}\n onClick={handleToggle}\n />\n )}\n </div>\n\n {subtitle && (\n <div className=\"toggle-switch__subtitle\">\n <Text fontSize=\"sm\">{subtitle}</Text>\n </div>\n )}\n </div>\n );\n};\n\nexport default forwardRef(ToggleSwitch);\n"],"names":["ToggleSwitch","_ref","ref","id","labelBefore","labelAfter","description","labelledById","_ref$defaultChecked","defaultChecked","_ref$preventToggle","preventToggle","_ref$isDisabled","isDisabled","_ref$required","required","_ref$hasInlineText","hasInlineText","_ref$inlineTextTransl","inlineTextTranslations","enabled","disabled","_ref$variant","variant","_ref$showOutlineBorde","showOutlineBorder","_ref$notSwitchedOff","notSwitchedOff","_ref$size","size","_ref$subtitle","subtitle","tooltip","InternalIcon","onChange","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","hasDescription","Boolean","useEffect","handleToggle","e","stopPropagation","prev","newValue","useImperativeHandle","toggle","___EmotionJSX","_extends","tabIndex","onKeyDown","key","css","theme","ToggleContainer","className","ToggleLabel","label","position","onClick","ToggleSwitchCore","Text","fontSize","forwardRef"],"mappings":"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"}
|
|
@@ -42,7 +42,6 @@ import '../../../../node_modules/core-js/modules/es.array.includes.js';
|
|
|
42
42
|
import '../../../../node_modules/core-js/modules/es.number.constructor.js';
|
|
43
43
|
import '../../../../node_modules/core-js/modules/es.string.includes.js';
|
|
44
44
|
import '../../../../node_modules/core-js/modules/es.array.find.js';
|
|
45
|
-
import '../../../../node_modules/core-js/modules/es.array.join.js';
|
|
46
45
|
import '../../../../node_modules/core-js/modules/es.array.reduce.js';
|
|
47
46
|
import '../../../../node_modules/core-js/modules/es.object.keys.js';
|
|
48
47
|
import '../../../../node_modules/core-js/modules/web.set-interval.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleSwitchCore.js","sources":["../../../../../../src/components/FormElements/ToggleSwitch/ToggleSwitchCore.tsx"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport { Text } from \"../../../\";\n\nexport type ToggleSwitchVariant = \"primary\" | \"success\";\nexport type ToggleSwitchSize = \"sm\" | \"md\";\n\ntype ToggleSwitchCoreProps = {\n isChecked: boolean;\n variant: ToggleSwitchVariant;\n size: ToggleSwitchSize;\n hasInlineText?: boolean;\n inlineTextTranslations?: {\n enabled: string;\n disabled: string;\n };\n InternalIcon?: JSX.Element;\n labelledById?: string;\n onClick: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nconst switchClassNames = (customClassName: string, isMedium: boolean, isSuccess: boolean): string =>\n classNames(customClassName, {\n \"toggle-switch__switch--md\": isMedium,\n \"toggle-switch__switch--success\": isSuccess,\n });\n\nconst ToggleSwitchCore: React.FC<ToggleSwitchCoreProps> = ({\n isChecked,\n variant,\n size,\n hasInlineText = false,\n inlineTextTranslations = { enabled: \"Enabled\", disabled: \"Disabled\" },\n InternalIcon,\n labelledById,\n onClick,\n}) => {\n const isMedium = size === \"md\";\n const isSuccess = variant === \"success\";\n const hasIcon = Boolean(InternalIcon);\n\n return (\n <div className=\"toggle-switch__wrapper\">\n <div\n data-testid=\"switch\"\n data-checked={isChecked}\n className={switchClassNames(\"toggle-switch__switch\", isMedium, isSuccess)}\n onClick={onClick}\n role=\"switch\"\n aria-checked={isChecked}\n aria-labelledby={labelledById}\n >\n {hasInlineText && isMedium && (\n <Text fontSize=\"sm\" className=\"toggle-switch__inline-text\">\n {isChecked ? inlineTextTranslations.enabled : inlineTextTranslations.disabled}\n </Text>\n )}\n\n {hasIcon && <div className=\"toggle-switch__icon\">{InternalIcon}</div>}\n <div className={switchClassNames(\"toggle-switch__thumb\", isMedium, isSuccess)} />\n </div>\n </div>\n );\n};\n\nexport default ToggleSwitchCore;\n"],"names":["switchClassNames","customClassName","isMedium","isSuccess","classNames","ToggleSwitchCore","_ref","isChecked","variant","size","_ref$hasInlineText","hasInlineText","_ref$inlineTextTransl","inlineTextTranslations","enabled","disabled","InternalIcon","labelledById","onClick","hasIcon","Boolean","___EmotionJSX","className","role","Text","fontSize"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToggleSwitchCore.js","sources":["../../../../../../src/components/FormElements/ToggleSwitch/ToggleSwitchCore.tsx"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport { Text } from \"../../../\";\n\nexport type ToggleSwitchVariant = \"primary\" | \"success\";\nexport type ToggleSwitchSize = \"sm\" | \"md\";\n\ntype ToggleSwitchCoreProps = {\n isChecked: boolean;\n variant: ToggleSwitchVariant;\n size: ToggleSwitchSize;\n hasInlineText?: boolean;\n inlineTextTranslations?: {\n enabled: string;\n disabled: string;\n };\n InternalIcon?: JSX.Element;\n labelledById?: string;\n onClick: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nconst switchClassNames = (customClassName: string, isMedium: boolean, isSuccess: boolean): string =>\n classNames(customClassName, {\n \"toggle-switch__switch--md\": isMedium,\n \"toggle-switch__switch--success\": isSuccess,\n });\n\nconst ToggleSwitchCore: React.FC<ToggleSwitchCoreProps> = ({\n isChecked,\n variant,\n size,\n hasInlineText = false,\n inlineTextTranslations = { enabled: \"Enabled\", disabled: \"Disabled\" },\n InternalIcon,\n labelledById,\n onClick,\n}) => {\n const isMedium = size === \"md\";\n const isSuccess = variant === \"success\";\n const hasIcon = Boolean(InternalIcon);\n\n return (\n <div className=\"toggle-switch__wrapper\">\n <div\n data-testid=\"switch\"\n data-checked={isChecked}\n className={switchClassNames(\"toggle-switch__switch\", isMedium, isSuccess)}\n onClick={onClick}\n role=\"switch\"\n aria-checked={isChecked}\n aria-labelledby={labelledById}\n >\n {hasInlineText && isMedium && (\n <Text fontSize=\"sm\" className=\"toggle-switch__inline-text\">\n {isChecked ? inlineTextTranslations.enabled : inlineTextTranslations.disabled}\n </Text>\n )}\n\n {hasIcon && <div className=\"toggle-switch__icon\">{InternalIcon}</div>}\n <div className={switchClassNames(\"toggle-switch__thumb\", isMedium, isSuccess)} />\n </div>\n </div>\n );\n};\n\nexport default ToggleSwitchCore;\n"],"names":["switchClassNames","customClassName","isMedium","isSuccess","classNames","ToggleSwitchCore","_ref","isChecked","variant","size","_ref$hasInlineText","hasInlineText","_ref$inlineTextTransl","inlineTextTranslations","enabled","disabled","InternalIcon","labelledById","onClick","hasIcon","Boolean","___EmotionJSX","className","role","Text","fontSize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,eAAuB,EAAEC,QAAiB,EAAEC,SAAkB,EAAA;EAAA,OACtFC,UAAU,CAACH,eAAe,EAAE;AAC1B,IAAA,2BAA2B,EAAEC,QAAQ;AACrC,IAAA,gCAAgC,EAAEC,SAAAA;AACpC,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEJ,IAAME,gBAAiD,GAAG,SAApDA,gBAAiDA,CAAAC,IAAA,EASjD;AAAA,EAAA,IARJC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAAC,kBAAA,GAAAJ,IAAA,CACJK,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA;IAAAE,qBAAA,GAAAN,IAAA,CACrBO,sBAAsB;IAAtBA,sBAAsB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA;AAAEE,MAAAA,OAAO,EAAE,SAAS;AAAEC,MAAAA,QAAQ,EAAE,UAAA;AAAW,KAAC,GAAAH,qBAAA;IACrEI,YAAY,GAAAV,IAAA,CAAZU,YAAY;IACZC,YAAY,GAAAX,IAAA,CAAZW,YAAY;IACZC,OAAO,GAAAZ,IAAA,CAAPY,OAAO,CAAA;AAEP,EAAA,IAAMhB,QAAQ,GAAGO,IAAI,KAAK,IAAI,CAAA;AAC9B,EAAA,IAAMN,SAAS,GAAGK,OAAO,KAAK,SAAS,CAAA;AACvC,EAAA,IAAMW,OAAO,GAAGC,OAAO,CAACJ,YAAY,CAAC,CAAA;AAErC,EAAA,OACEK,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wBAAA;AAAwB,GAAA,EACrCD,GAAA,CAAA,KAAA,EAAA;AACE,IAAA,aAAA,EAAY,QAAQ;AACpB,IAAA,cAAA,EAAcd,SAAU;IACxBe,SAAS,EAAEtB,gBAAgB,CAAC,uBAAuB,EAAEE,QAAQ,EAAEC,SAAS,CAAE;AAC1Ee,IAAAA,OAAO,EAAEA,OAAQ;AACjBK,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,cAAA,EAAchB,SAAU;IACxB,iBAAiBU,EAAAA,YAAAA;AAAa,GAAA,EAE7BN,aAAa,IAAIT,QAAQ,IACxBmB,GAAA,CAACG,IAAI,EAAA;AAACC,IAAAA,QAAQ,EAAC,IAAI;AAACH,IAAAA,SAAS,EAAC,4BAAA;AAA4B,GAAA,EACvDf,SAAS,GAAGM,sBAAsB,CAACC,OAAO,GAAGD,sBAAsB,CAACE,QACjE,CACP,EAEAI,OAAO,IAAIE,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,qBAAA;GAAuBN,EAAAA,YAAkB,CAAC,EACrEK,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAEtB,gBAAgB,CAAC,sBAAsB,EAAEE,QAAQ,EAAEC,SAAS,CAAA;GAAI,CAC7E,CACF,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../../../../src/components/Table/Table.tsx"],"sourcesContent":["import React, {\n ForwardRefRenderFunction,\n HTMLAttributes,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useReducer,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Dispatch, reducer } from \"./reducer\";\nimport { tableContainer } from \"./styles\";\nimport Body from \"./components/Body\";\nimport Header from \"./components/Header\";\nimport { Actions } from \"./constants\";\nimport { TableHandlers, TableProps, TableState } from \"./types\";\nimport { ExtendableProps } from \"types/utils\";\n\nexport type Props = ExtendableProps<HTMLAttributes<HTMLTableElement>, TableProps>;\nexport type ChildrenProps = Props & { state: TableState; dispatch: Dispatch };\n\nconst Table: ForwardRefRenderFunction<TableHandlers, Props> = (props, ref) => {\n const {\n columns,\n rows,\n emptyState,\n sorting,\n id = \"table\",\n disabled = false,\n className = \"\",\n } = props;\n\n const [state, dispatch] = useReducer(reducer, {\n columns,\n rows,\n emptyState,\n sorting,\n selected: [],\n });\n\n useEffect(() => {\n const currentColumnIds = new Set(state.columns.map((column) => column.accessor));\n const newColumnIds = new Set(columns.map((column) => column.accessor));\n\n if (\n currentColumnIds.size === newColumnIds.size &&\n [...currentColumnIds].every((id) => newColumnIds.has(id))\n ) {\n return;\n }\n dispatch({ type: Actions.columnsChanged, payload: columns });\n }, [columns, state.columns]);\n\n useEffect(() => {\n dispatch({ type: Actions.rowsChanged, payload: rows });\n\n if (state.rows[0]?.paginationNumber !== rows[0]?.paginationNumber) {\n dispatch({ type: Actions.resetSelectedRows, payload: null });\n }\n }, [rows, state.rows]);\n\n useEffect(() => {\n if (!sorting) return;\n\n dispatch({\n type: Actions.sortingChanged,\n payload: sorting,\n });\n }, [sorting]);\n\n useImperativeHandle(ref, () => ({\n selectRowsById: (rowIds: number[]) => dispatch({ type: Actions.selectMany, payload: rowIds }),\n resetSelected: () => dispatch({ type: Actions.resetSelectedRows, payload: null }),\n }));\n\n const containerClassNames = classNames({\n [className]: Boolean(className),\n disabled,\n });\n\n return (\n <div css={tableContainer} data-testid={id}>\n <table className={containerClassNames}>\n <Header state={state} dispatch={dispatch} {...props} />\n <Body state={state} dispatch={dispatch} {...props} />\n </table>\n </div>\n );\n};\n\nexport default forwardRef(Table);\n"],"names":["Table","props","ref","columns","rows","emptyState","sorting","_props$id","id","_props$disabled","disabled","_props$className","className","_useReducer","useReducer","reducer","selected","_useReducer2","_slicedToArray","state","dispatch","useEffect","currentColumnIds","Set","map","column","accessor","newColumnIds","size","_toConsumableArray","every","has","type","Actions","columnsChanged","payload","_state$rows$","_rows$","rowsChanged","paginationNumber","resetSelectedRows","sortingChanged","useImperativeHandle","selectRowsById","rowIds","selectMany","resetSelected","containerClassNames","classNames","_defineProperty","Boolean","___EmotionJSX","css","tableContainer","Header","_extends","Body","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAMA,KAAqD,GAAG,SAAxDA,KAAqDA,CAAIC,KAAK,EAAEC,GAAG,EAAK;AAC5E,EAAA,IACEC,OAAO,GAOLF,KAAK,CAPPE,OAAO;IACPC,IAAI,GAMFH,KAAK,CANPG,IAAI;IACJC,UAAU,GAKRJ,KAAK,CALPI,UAAU;IACVC,OAAO,GAILL,KAAK,CAJPK,OAAO;IAAAC,SAAA,GAILN,KAAK,CAHPO,EAAE;AAAFA,IAAAA,EAAE,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,SAAA;IAAAE,eAAA,GAGVR,KAAK,CAFPS,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAAAE,gBAAA,GAEdV,KAAK,CADPW,SAAS;AAATA,IAAAA,SAAS,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA,CAAA;AAGhB,EAAA,IAAAE,WAAA,GAA0BC,UAAU,CAACC,OAAO,EAAE;AAC5CZ,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,IAAI,EAAJA,IAAI;AACJC,MAAAA,UAAU,EAAVA,UAAU;AACVC,MAAAA,OAAO,EAAPA,OAAO;AACPU,MAAAA,QAAQ,EAAE,EAAA;
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../../../src/components/Table/Table.tsx"],"sourcesContent":["import React, {\n ForwardRefRenderFunction,\n HTMLAttributes,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useReducer,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Dispatch, reducer } from \"./reducer\";\nimport { tableContainer } from \"./styles\";\nimport Body from \"./components/Body\";\nimport Header from \"./components/Header\";\nimport { Actions } from \"./constants\";\nimport { TableHandlers, TableProps, TableState } from \"./types\";\nimport { ExtendableProps } from \"types/utils\";\n\nexport type Props = ExtendableProps<HTMLAttributes<HTMLTableElement>, TableProps>;\nexport type ChildrenProps = Props & { state: TableState; dispatch: Dispatch };\n\nconst Table: ForwardRefRenderFunction<TableHandlers, Props> = (props, ref) => {\n const {\n columns,\n rows,\n emptyState,\n sorting,\n id = \"table\",\n disabled = false,\n className = \"\",\n } = props;\n\n const [state, dispatch] = useReducer(reducer, {\n columns,\n rows,\n emptyState,\n sorting,\n selected: [],\n expandedRows: [],\n });\n\n useEffect(() => {\n const currentColumnIds = new Set(state.columns.map((column) => column.accessor));\n const newColumnIds = new Set(columns.map((column) => column.accessor));\n\n if (\n currentColumnIds.size === newColumnIds.size &&\n [...currentColumnIds].every((id) => newColumnIds.has(id))\n ) {\n return;\n }\n dispatch({ type: Actions.columnsChanged, payload: columns });\n }, [columns, state.columns]);\n\n useEffect(() => {\n dispatch({ type: Actions.rowsChanged, payload: rows });\n\n if (state.rows[0]?.paginationNumber !== rows[0]?.paginationNumber) {\n dispatch({ type: Actions.resetSelectedRows, payload: null });\n }\n }, [rows, state.rows]);\n\n useEffect(() => {\n if (!sorting) return;\n\n dispatch({\n type: Actions.sortingChanged,\n payload: sorting,\n });\n }, [sorting]);\n\n useImperativeHandle(ref, () => ({\n selectRowsById: (rowIds: number[]) => dispatch({ type: Actions.selectMany, payload: rowIds }),\n resetSelected: () => dispatch({ type: Actions.resetSelectedRows, payload: null }),\n }));\n\n const containerClassNames = classNames({\n [className]: Boolean(className),\n disabled,\n });\n\n return (\n <div css={tableContainer} data-testid={id}>\n <table className={containerClassNames}>\n <Header state={state} dispatch={dispatch} {...props} />\n <Body state={state} dispatch={dispatch} {...props} />\n </table>\n </div>\n );\n};\n\nexport default forwardRef(Table);\n"],"names":["Table","props","ref","columns","rows","emptyState","sorting","_props$id","id","_props$disabled","disabled","_props$className","className","_useReducer","useReducer","reducer","selected","expandedRows","_useReducer2","_slicedToArray","state","dispatch","useEffect","currentColumnIds","Set","map","column","accessor","newColumnIds","size","_toConsumableArray","every","has","type","Actions","columnsChanged","payload","_state$rows$","_rows$","rowsChanged","paginationNumber","resetSelectedRows","sortingChanged","useImperativeHandle","selectRowsById","rowIds","selectMany","resetSelected","containerClassNames","classNames","_defineProperty","Boolean","___EmotionJSX","css","tableContainer","Header","_extends","Body","forwardRef"],"mappings":"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"}
|
|
@@ -11,8 +11,10 @@ import '../../../../node_modules/core-js/modules/es.array.concat.js';
|
|
|
11
11
|
import '../../../../node_modules/core-js/modules/es.array.includes.js';
|
|
12
12
|
import '../../../../node_modules/core-js/modules/es.array.map.js';
|
|
13
13
|
import '../../../../node_modules/core-js/modules/es.string.includes.js';
|
|
14
|
-
import React__default, { useState, useLayoutEffect, useCallback } from 'react';
|
|
14
|
+
import React__default, { useState, useMemo, useLayoutEffect, useCallback } from 'react';
|
|
15
15
|
import useDebounceFn from '../../../../node_modules/ahooks/es/useDebounceFn/index.js';
|
|
16
|
+
import { Actions } from '../constants.js';
|
|
17
|
+
import { getVisibleColumns } from '../helpers.js';
|
|
16
18
|
import Result from '../../Result/Result.js';
|
|
17
19
|
import TableRow from './TableRow.js';
|
|
18
20
|
import { createElement as jsx } from '../../../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js';
|
|
@@ -20,7 +22,8 @@ import { createElement as jsx } from '../../../../node_modules/@emotion/react/di
|
|
|
20
22
|
var Body = function Body(_ref) {
|
|
21
23
|
var _ref$id = _ref.id,
|
|
22
24
|
tableId = _ref$id === void 0 ? "table" : _ref$id,
|
|
23
|
-
selectable = _ref.selectable,
|
|
25
|
+
_ref$selectable = _ref.selectable,
|
|
26
|
+
selectable = _ref$selectable === void 0 ? false : _ref$selectable,
|
|
24
27
|
_ref$autohide = _ref.autohide,
|
|
25
28
|
autohide = _ref$autohide === void 0 ? false : _ref$autohide,
|
|
26
29
|
state = _ref.state,
|
|
@@ -28,10 +31,12 @@ var Body = function Body(_ref) {
|
|
|
28
31
|
onRowClick = _ref.onRowClick,
|
|
29
32
|
onRowSelect = _ref.onRowSelect,
|
|
30
33
|
onHoveredRowChange = _ref.onHoveredRowChange,
|
|
34
|
+
renderMobileActions = _ref.renderMobileActions,
|
|
31
35
|
_ref$disabled = _ref.disabled,
|
|
32
36
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
33
37
|
var columns = state.columns,
|
|
34
38
|
selected = state.selected,
|
|
39
|
+
expandedRows = state.expandedRows,
|
|
35
40
|
emptyState = state.emptyState;
|
|
36
41
|
var selectedRowsIds = selected.map(function (entry) {
|
|
37
42
|
return entry.id;
|
|
@@ -43,6 +48,9 @@ var Body = function Body(_ref) {
|
|
|
43
48
|
var _size = _slicedToArray(size, 2),
|
|
44
49
|
windowWidth = _size[0],
|
|
45
50
|
windowHeight = _size[1];
|
|
51
|
+
var emptyStateColSpan = useMemo(function () {
|
|
52
|
+
return getVisibleColumns(columns).length + (selectable ? 1 : 0);
|
|
53
|
+
}, [columns, selectable]);
|
|
46
54
|
|
|
47
55
|
// use debounce on window resize to reduce Cell re-renders
|
|
48
56
|
var _useDebounceFn = useDebounceFn(function () {
|
|
@@ -64,27 +72,49 @@ var Body = function Body(_ref) {
|
|
|
64
72
|
if (disabled) return;
|
|
65
73
|
onHoveredRowChange && onHoveredRowChange(row);
|
|
66
74
|
}, [onHoveredRowChange, disabled]);
|
|
67
|
-
|
|
75
|
+
if (state.rows.length === 0) {
|
|
76
|
+
return jsx("tbody", {
|
|
77
|
+
className: "empty-state-body"
|
|
78
|
+
}, jsx("tr", {
|
|
79
|
+
className: "empty-state-container"
|
|
80
|
+
}, jsx("td", {
|
|
81
|
+
colSpan: emptyStateColSpan
|
|
82
|
+
}, jsx(Result, emptyState))));
|
|
83
|
+
}
|
|
84
|
+
return jsx(React__default.Fragment, null, state.rows.map(function (row) {
|
|
68
85
|
var isSelected = selectedRowsIds.includes(row.id);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
86
|
+
var isExpanded = expandedRows.includes(row.id);
|
|
87
|
+
var rowSelectId = "".concat(tableId, "-entry-").concat(row.id, "-select");
|
|
88
|
+
var rowGroupId = "".concat(tableId, "-entry-").concat(row.id, "-group");
|
|
89
|
+
var handleExpandToggle = function handleExpandToggle() {
|
|
90
|
+
dispatch({
|
|
91
|
+
type: Actions.toggleRowExpanded,
|
|
92
|
+
payload: row.id
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
return jsx("tbody", {
|
|
96
|
+
className: "table-row-group",
|
|
97
|
+
key: rowGroupId
|
|
98
|
+
}, jsx(TableRow, {
|
|
99
|
+
rowId: rowSelectId,
|
|
100
|
+
key: rowSelectId,
|
|
72
101
|
row: row,
|
|
73
102
|
columns: columns,
|
|
74
103
|
windowWidth: windowWidth,
|
|
75
104
|
windowHeight: windowHeight,
|
|
76
105
|
isSelected: isSelected,
|
|
77
|
-
|
|
106
|
+
isExpanded: isExpanded,
|
|
107
|
+
selectable: selectable,
|
|
78
108
|
autohide: autohide,
|
|
79
109
|
dispatch: dispatch,
|
|
80
110
|
onRowClick: onRowClick,
|
|
81
111
|
onRowSelect: onRowSelect,
|
|
82
112
|
onHoveredRowChange: handleRowHover,
|
|
113
|
+
onExpandToggle: handleExpandToggle,
|
|
114
|
+
renderMobileActions: renderMobileActions,
|
|
83
115
|
disabled: disabled
|
|
84
|
-
});
|
|
85
|
-
}))
|
|
86
|
-
className: "empty-state-container"
|
|
87
|
-
}, jsx("td", null, jsx(Result, emptyState))));
|
|
116
|
+
}));
|
|
117
|
+
}));
|
|
88
118
|
};
|
|
89
119
|
|
|
90
120
|
export { Body as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Body.js","sources":["../../../../../../src/components/Table/components/Body.tsx"],"sourcesContent":["import React, { FC, useCallback, useLayoutEffect, useState } from \"react\";\nimport { useDebounceFn } from \"ahooks\";\nimport { Row } from \"../types\";\nimport Result from \"../../Result/Result\";\nimport { ChildrenProps } from \"../Table\";\nimport TableRow from \"./TableRow\";\n\nconst Body: FC<ChildrenProps> = ({\n id: tableId = \"table\",\n selectable,\n autohide = false,\n state,\n dispatch,\n onRowClick,\n onRowSelect,\n onHoveredRowChange,\n disabled = false,\n}) => {\n const { columns, selected, emptyState } = state;\n const selectedRowsIds = selected.map((entry) => entry.id);\n const [size, setSize] = useState([window.innerWidth, window.innerHeight]);\n const [windowWidth, windowHeight] = size;\n\n // use debounce on window resize to reduce Cell re-renders\n const { run: debouncedUpdateSize } = useDebounceFn(() => updateSize(), { wait: 300 });\n const updateSize = () => setSize([window.innerWidth, window.innerHeight]);\n\n useLayoutEffect(() => {\n window.addEventListener(\"resize\", debouncedUpdateSize);\n\n return () => window.removeEventListener(\"resize\", debouncedUpdateSize);\n }, []);\n\n const handleRowHover = useCallback(\n (row: Row | null): void => {\n if (disabled) return;\n onHoveredRowChange && onHoveredRowChange(row);\n },\n [onHoveredRowChange, disabled],\n );\n\n return (\n
|
|
1
|
+
{"version":3,"file":"Body.js","sources":["../../../../../../src/components/Table/components/Body.tsx"],"sourcesContent":["import React, { FC, useCallback, useLayoutEffect, useMemo, useState } from \"react\";\nimport { useDebounceFn } from \"ahooks\";\nimport { Row } from \"../types\";\nimport { Actions } from \"../constants\";\nimport { getVisibleColumns } from \"../helpers\";\nimport Result from \"../../Result/Result\";\nimport { ChildrenProps } from \"../Table\";\nimport TableRow from \"./TableRow\";\n\nconst Body: FC<ChildrenProps> = ({\n id: tableId = \"table\",\n selectable = false,\n autohide = false,\n state,\n dispatch,\n onRowClick,\n onRowSelect,\n onHoveredRowChange,\n renderMobileActions,\n disabled = false,\n}) => {\n const { columns, selected, expandedRows, emptyState } = state;\n const selectedRowsIds = selected.map((entry) => entry.id);\n const [size, setSize] = useState([window.innerWidth, window.innerHeight]);\n const [windowWidth, windowHeight] = size;\n const emptyStateColSpan = useMemo(\n () => getVisibleColumns(columns).length + (selectable ? 1 : 0),\n [columns, selectable],\n );\n\n // use debounce on window resize to reduce Cell re-renders\n const { run: debouncedUpdateSize } = useDebounceFn(() => updateSize(), { wait: 300 });\n const updateSize = () => setSize([window.innerWidth, window.innerHeight]);\n\n useLayoutEffect(() => {\n window.addEventListener(\"resize\", debouncedUpdateSize);\n\n return () => window.removeEventListener(\"resize\", debouncedUpdateSize);\n }, []);\n\n const handleRowHover = useCallback(\n (row: Row | null): void => {\n if (disabled) return;\n onHoveredRowChange && onHoveredRowChange(row);\n },\n [onHoveredRowChange, disabled],\n );\n\n if (state.rows.length === 0) {\n return (\n <tbody className=\"empty-state-body\">\n <tr className=\"empty-state-container\">\n <td colSpan={emptyStateColSpan}>\n <Result {...emptyState} />\n </td>\n </tr>\n </tbody>\n );\n }\n\n return (\n <>\n {state.rows.map((row) => {\n const isSelected = selectedRowsIds.includes(row.id);\n const isExpanded = expandedRows.includes(row.id);\n const rowSelectId = `${tableId}-entry-${row.id}-select`;\n const rowGroupId = `${tableId}-entry-${row.id}-group`;\n const handleExpandToggle = (): void => {\n dispatch({ type: Actions.toggleRowExpanded, payload: row.id });\n };\n\n return (\n <tbody className=\"table-row-group\" key={rowGroupId}>\n <TableRow\n rowId={rowSelectId}\n key={rowSelectId}\n row={row}\n columns={columns}\n windowWidth={windowWidth}\n windowHeight={windowHeight}\n isSelected={isSelected}\n isExpanded={isExpanded}\n selectable={selectable}\n autohide={autohide}\n dispatch={dispatch}\n onRowClick={onRowClick}\n onRowSelect={onRowSelect}\n onHoveredRowChange={handleRowHover}\n onExpandToggle={handleExpandToggle}\n renderMobileActions={renderMobileActions}\n disabled={disabled}\n />\n </tbody>\n );\n })}\n </>\n );\n};\n\nexport default Body;\n"],"names":["Body","_ref","_ref$id","id","tableId","_ref$selectable","selectable","_ref$autohide","autohide","state","dispatch","onRowClick","onRowSelect","onHoveredRowChange","renderMobileActions","_ref$disabled","disabled","columns","selected","expandedRows","emptyState","selectedRowsIds","map","entry","_useState","useState","window","innerWidth","innerHeight","_useState2","_slicedToArray","size","setSize","_size","windowWidth","windowHeight","emptyStateColSpan","useMemo","getVisibleColumns","length","_useDebounceFn","useDebounceFn","updateSize","wait","debouncedUpdateSize","run","useLayoutEffect","addEventListener","removeEventListener","handleRowHover","useCallback","row","rows","___EmotionJSX","className","colSpan","Result","React","Fragment","isSelected","includes","isExpanded","rowSelectId","concat","rowGroupId","handleExpandToggle","type","Actions","toggleRowExpanded","payload","key","TableRow","rowId","onExpandToggle"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cell.js","sources":["../../../../../../src/components/Table/components/Cell.tsx"],"sourcesContent":["import React, { FC, HTMLAttributes, memo, useLayoutEffect, useRef, useState } from \"react\";\nimport Tooltip from \"../../Tooltip/Tooltip\";\n\nexport type CellProps = HTMLAttributes<HTMLTableCellElement> & {\n as?: \"td\" | \"th\";\n maxWidth?: number;\n windowWidth?: number;\n windowHeight?: number;\n onClick?: () => void;\n};\n\nconst Cell: FC<CellProps> = ({\n children,\n as: Component = \"td\",\n maxWidth,\n windowWidth,\n windowHeight,\n onClick,\n ...rest\n}) => {\n const componentRef = useRef<HTMLTableCellElement | null>(null);\n const overflowRef = useRef<HTMLElement | null>(null);\n const [isOverflowActive, setIsOverflowActive] = useState(false);\n const isRowCell = Component === \"td\";\n const shouldRenderTooltip = Boolean(Component === \"td\" && maxWidth);\n const style = isRowCell\n ? { maxWidth: maxWidth ? `${maxWidth}px` : \"auto\" } // row cell styles\n : { width: maxWidth ? `${maxWidth}px` : \"auto\" }; // column cell styles\n\n useLayoutEffect(() => {\n // determine if the row cell is overflown on initial render\n if (shouldRenderTooltip && componentRef.current) {\n const element = componentRef.current.querySelector(\".has-overflow\");\n\n if (element) {\n const el = element as HTMLElement;\n overflowRef.current = el;\n setIsOverflowActive(el.offsetWidth < el.scrollWidth);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n // determine if the row cell is overflown on window width or height change\n if (shouldRenderTooltip) {\n const el = overflowRef.current;\n if (el) setIsOverflowActive(el.offsetWidth < el.scrollWidth);\n }\n }, [windowWidth, windowHeight]);\n\n return (\n <Component ref={componentRef} style={style} onClick={onClick} {...rest}>\n {shouldRenderTooltip ? (\n <Tooltip content={children} disabled={!isOverflowActive}>\n <span style={style}>{children}</span>\n </Tooltip>\n ) : (\n children\n )}\n </Component>\n );\n};\n\nexport default memo(Cell);\n"],"names":["Cell","_ref","children","_ref$as","as","Component","maxWidth","windowWidth","windowHeight","onClick","rest","_objectWithoutProperties","_excluded","componentRef","useRef","overflowRef","_useState","useState","_useState2","_slicedToArray","isOverflowActive","setIsOverflowActive","isRowCell","shouldRenderTooltip","Boolean","style","concat","width","useLayoutEffect","current","element","querySelector","el","offsetWidth","scrollWidth","___EmotionJSX","_extends","ref","Tooltip","content","disabled","memo"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Cell.js","sources":["../../../../../../src/components/Table/components/Cell.tsx"],"sourcesContent":["import React, { FC, HTMLAttributes, memo, useLayoutEffect, useRef, useState } from \"react\";\nimport Tooltip from \"../../Tooltip/Tooltip\";\n\nexport type CellProps = HTMLAttributes<HTMLTableCellElement> & {\n as?: \"td\" | \"th\";\n colSpan?: number;\n maxWidth?: number;\n windowWidth?: number;\n windowHeight?: number;\n onClick?: () => void;\n};\n\nconst Cell: FC<CellProps> = ({\n children,\n as: Component = \"td\",\n maxWidth,\n windowWidth,\n windowHeight,\n onClick,\n ...rest\n}) => {\n const componentRef = useRef<HTMLTableCellElement | null>(null);\n const overflowRef = useRef<HTMLElement | null>(null);\n const [isOverflowActive, setIsOverflowActive] = useState(false);\n const isRowCell = Component === \"td\";\n const shouldRenderTooltip = Boolean(Component === \"td\" && maxWidth);\n const style = isRowCell\n ? { maxWidth: maxWidth ? `${maxWidth}px` : \"auto\" } // row cell styles\n : { width: maxWidth ? `${maxWidth}px` : \"auto\" }; // column cell styles\n\n useLayoutEffect(() => {\n // determine if the row cell is overflown on initial render\n if (shouldRenderTooltip && componentRef.current) {\n const element = componentRef.current.querySelector(\".has-overflow\");\n\n if (element) {\n const el = element as HTMLElement;\n overflowRef.current = el;\n setIsOverflowActive(el.offsetWidth < el.scrollWidth);\n }\n }\n }, []);\n\n useLayoutEffect(() => {\n // determine if the row cell is overflown on window width or height change\n if (shouldRenderTooltip) {\n const el = overflowRef.current;\n if (el) setIsOverflowActive(el.offsetWidth < el.scrollWidth);\n }\n }, [windowWidth, windowHeight]);\n\n return (\n <Component ref={componentRef} style={style} onClick={onClick} {...rest}>\n {shouldRenderTooltip ? (\n <Tooltip content={children} disabled={!isOverflowActive}>\n <span style={style}>{children}</span>\n </Tooltip>\n ) : (\n children\n )}\n </Component>\n );\n};\n\nexport default memo(Cell);\n"],"names":["Cell","_ref","children","_ref$as","as","Component","maxWidth","windowWidth","windowHeight","onClick","rest","_objectWithoutProperties","_excluded","componentRef","useRef","overflowRef","_useState","useState","_useState2","_slicedToArray","isOverflowActive","setIsOverflowActive","isRowCell","shouldRenderTooltip","Boolean","style","concat","width","useLayoutEffect","current","element","querySelector","el","offsetWidth","scrollWidth","___EmotionJSX","_extends","ref","Tooltip","content","disabled","memo"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import '../../../../node_modules/core-js/modules/es.array.find.js';
|
|
|
11
11
|
import '../../../../node_modules/core-js/modules/es.array.map.js';
|
|
12
12
|
import '../../../../node_modules/core-js/modules/es.object.to-string.js';
|
|
13
13
|
import React__default, { memo } from 'react';
|
|
14
|
+
import { renderRowValue } from '../helpers.js';
|
|
14
15
|
import Cell from './Cell.js';
|
|
15
16
|
import { createElement as jsx } from '../../../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js';
|
|
16
17
|
|
|
@@ -37,7 +38,7 @@ var DataCells = function DataCells(_ref) {
|
|
|
37
38
|
windowWidth: windowWidth,
|
|
38
39
|
windowHeight: windowHeight,
|
|
39
40
|
onClick: handleRowClick
|
|
40
|
-
},
|
|
41
|
+
}, renderRowValue(rowObj, row));
|
|
41
42
|
}));
|
|
42
43
|
};
|
|
43
44
|
var DataCells$1 = /*#__PURE__*/memo(DataCells);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCells.js","sources":["../../../../../../src/components/Table/components/DataCells.tsx"],"sourcesContent":["import React, { FC, memo } from \"react\";\nimport { Column, Row } from \"../types\";\nimport Cell from \"./Cell\";\n\nexport type DataCellsProps = {\n windowWidth: number;\n windowHeight: number;\n accessors: string[];\n columns: Column[];\n row: Row;\n handleRowClick: () => void;\n};\n\nconst DataCells: FC<DataCellsProps> = ({\n accessors,\n row,\n columns,\n windowWidth,\n windowHeight,\n handleRowClick,\n}) => {\n return (\n <>\n {accessors.map((accessor) => {\n const rowObj = row[accessor];\n const { maxWidth } = columns.find((column) => column.accessor === accessor) ?? {};\n const cellId = `entry-${row.id}-${accessor}`;\n\n return (\n <Cell\n key={cellId}\n id={cellId}\n data-testid={`${accessor}-cell`}\n maxWidth={maxWidth}\n windowWidth={windowWidth}\n windowHeight={windowHeight}\n onClick={handleRowClick}\n >\n {
|
|
1
|
+
{"version":3,"file":"DataCells.js","sources":["../../../../../../src/components/Table/components/DataCells.tsx"],"sourcesContent":["import React, { FC, memo } from \"react\";\nimport { Column, Row } from \"../types\";\nimport { renderRowValue } from \"../helpers\";\nimport Cell from \"./Cell\";\n\nexport type DataCellsProps = {\n windowWidth: number;\n windowHeight: number;\n accessors: string[];\n columns: Column[];\n row: Row;\n handleRowClick: () => void;\n};\n\nconst DataCells: FC<DataCellsProps> = ({\n accessors,\n row,\n columns,\n windowWidth,\n windowHeight,\n handleRowClick,\n}) => {\n return (\n <>\n {accessors.map((accessor) => {\n const rowObj = row[accessor];\n const { maxWidth } = columns.find((column) => column.accessor === accessor) ?? {};\n const cellId = `entry-${row.id}-${accessor}`;\n\n return (\n <Cell\n key={cellId}\n id={cellId}\n data-testid={`${accessor}-cell`}\n maxWidth={maxWidth}\n windowWidth={windowWidth}\n windowHeight={windowHeight}\n onClick={handleRowClick}\n >\n {renderRowValue(rowObj, row)}\n </Cell>\n );\n })}\n </>\n );\n};\n\nexport default memo(DataCells);\n"],"names":["DataCells","_ref","accessors","row","columns","windowWidth","windowHeight","handleRowClick","___EmotionJSX","React","Fragment","map","accessor","_columns$find","rowObj","_ref2","find","column","maxWidth","cellId","concat","id","Cell","key","onClick","renderRowValue","memo"],"mappings":";;;;;;;;;;;;;;;;;AAcA,IAAMA,SAA6B,GAAG,SAAhCA,SAA6BA,CAAAC,IAAA,EAO7B;AAAA,EAAA,IANJC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IACHC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IACZC,cAAc,GAAAN,IAAA,CAAdM,cAAc,CAAA;AAEd,EAAA,OACEC,GAAA,CAAAC,cAAA,CAAAC,QAAA,EAAA,IAAA,EACGR,SAAS,CAACS,GAAG,CAAC,UAACC,QAAQ,EAAK;AAAA,IAAA,IAAAC,aAAA,CAAA;AAC3B,IAAA,IAAMC,MAAM,GAAGX,GAAG,CAACS,QAAQ,CAAC,CAAA;IAC5B,IAAAG,KAAA,IAAAF,aAAA,GAAqBT,OAAO,CAACY,IAAI,CAAC,UAACC,MAAM,EAAA;AAAA,QAAA,OAAKA,MAAM,CAACL,QAAQ,KAAKA,QAAQ,CAAA;AAAA,OAAA,CAAC,cAAAC,aAAA,KAAA,KAAA,CAAA,GAAAA,aAAA,GAAI,EAAE;MAAzEK,QAAQ,GAAAH,KAAA,CAARG,QAAQ,CAAA;IAChB,IAAMC,MAAM,GAAAC,QAAAA,CAAAA,MAAA,CAAYjB,GAAG,CAACkB,EAAE,EAAAD,GAAAA,CAAAA,CAAAA,MAAA,CAAIR,QAAQ,CAAE,CAAA;IAE5C,OACEJ,GAAA,CAACc,IAAI,EAAA;AACHC,MAAAA,GAAG,EAAEJ,MAAO;AACZE,MAAAA,EAAE,EAAEF,MAAO;MACX,aAAAC,EAAAA,EAAAA,CAAAA,MAAA,CAAgBR,QAAQ,EAAQ,OAAA,CAAA;AAChCM,MAAAA,QAAQ,EAAEA,QAAS;AACnBb,MAAAA,WAAW,EAAEA,WAAY;AACzBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BkB,MAAAA,OAAO,EAAEjB,cAAAA;AAAe,KAAA,EAEvBkB,cAAc,CAACX,MAAM,EAAEX,GAAG,CACvB,CAAC,CAAA;AAEX,GAAC,CACD,CAAC,CAAA;AAEP,CAAC,CAAA;AAED,kBAAeuB,aAAAA,IAAI,CAAC1B,SAAS,CAAC;;;;"}
|
|
@@ -11,7 +11,6 @@ import '../../../../node_modules/core-js/modules/es.array.concat.js';
|
|
|
11
11
|
import '../../../../node_modules/core-js/modules/es.array.every.js';
|
|
12
12
|
import '../../../../node_modules/core-js/modules/es.array.includes.js';
|
|
13
13
|
import '../../../../node_modules/core-js/modules/es.array.iterator.js';
|
|
14
|
-
import '../../../../node_modules/core-js/modules/es.array.join.js';
|
|
15
14
|
import '../../../../node_modules/core-js/modules/es.array.map.js';
|
|
16
15
|
import '../../../../node_modules/core-js/modules/es.array.reduce.js';
|
|
17
16
|
import '../../../../node_modules/core-js/modules/es.number.constructor.js';
|
|
@@ -27,6 +26,7 @@ import Checkbox from '../../FormElements/CheckboxGroup/Checkbox.js';
|
|
|
27
26
|
import SvgIconChevronDown from '../../../icons/chevrons/icon-chevron-down.svg.js';
|
|
28
27
|
import SvgIconChevronUp from '../../../icons/chevrons/icon-chevron-up.svg.js';
|
|
29
28
|
import { Actions } from '../constants.js';
|
|
29
|
+
import { getDefaultAccessor } from '../helpers.js';
|
|
30
30
|
import Cell from './Cell.js';
|
|
31
31
|
import { createElement as jsx } from '../../../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js';
|
|
32
32
|
|
|
@@ -57,6 +57,7 @@ var Header = function Header(_ref) {
|
|
|
57
57
|
columns = state.columns,
|
|
58
58
|
selected = state.selected,
|
|
59
59
|
sorting = state.sorting;
|
|
60
|
+
var defaultAccessor = getDefaultAccessor(columns);
|
|
60
61
|
var _useState = useState({}),
|
|
61
62
|
_useState2 = _slicedToArray(_useState, 2),
|
|
62
63
|
columnsSorting = _useState2[0],
|
|
@@ -141,7 +142,7 @@ var Header = function Header(_ref) {
|
|
|
141
142
|
_ref2$sortableHeader = _ref2.sortableHeader,
|
|
142
143
|
sortableHeader = _ref2$sortableHeader === void 0 ? true : _ref2$sortableHeader,
|
|
143
144
|
_ref2$classNames = _ref2.classNames,
|
|
144
|
-
|
|
145
|
+
cellClassNames = _ref2$classNames === void 0 ? [] : _ref2$classNames,
|
|
145
146
|
sortOrder = _ref2.sortOrder,
|
|
146
147
|
headerWidth = _ref2.headerWidth;
|
|
147
148
|
return !hidden && jsx(Cell, {
|
|
@@ -149,7 +150,10 @@ var Header = function Header(_ref) {
|
|
|
149
150
|
key: accessor,
|
|
150
151
|
"data-testid": "".concat(accessor, "-column"),
|
|
151
152
|
maxWidth: headerWidth,
|
|
152
|
-
className: "header-cell
|
|
153
|
+
className: classNames("header-cell", cellClassNames, {
|
|
154
|
+
hidden: !sortableHeader,
|
|
155
|
+
"primary-header": accessor === defaultAccessor
|
|
156
|
+
}),
|
|
153
157
|
onClick: function onClick() {
|
|
154
158
|
if (!disabled && sortableHeader) {
|
|
155
159
|
handleSortingChange(accessor, sortOrder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../../../src/components/Table/components/Header.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from \"react\";\nimport classNames from \"classnames\";\nimport Checkbox from \"../../FormElements/CheckboxGroup/Checkbox\";\nimport { IconChevronDownSVG, IconChevronUpSVG } from \"../../../icons/index\";\nimport { Column } from \"../types\";\nimport { ChildrenProps } from \"../Table\";\nimport { Actions } from \"../constants\";\nimport Cell from \"./Cell\";\n\nconst rowClassnames = (\n isSelectAllChecked: boolean,\n allRowsSelected: boolean,\n autohide: boolean,\n): string =>\n classNames({\n selected: isSelectAllChecked || allRowsSelected,\n \"autohide-cell\": autohide,\n });\n\nconst sortingIconClassNames = (isDefaultSort: boolean): string =>\n classNames(\"sorting-icon\", {\n \"is-default-sort\": isDefaultSort,\n });\n\nconst Header: FC<ChildrenProps> = ({\n selectable = false,\n autohide = false,\n state,\n dispatch,\n onSortingChanged,\n disabled = false,\n id,\n onRowSelect,\n}) => {\n const { rows, columns, selected, sorting } = state;\n const [columnsSorting, setColumnsSorting] = useState<\n Record<string, { column: string; isDescending: boolean }>\n >({});\n const selectedIds = selected.map((entry) => entry.id);\n const rowIds = rows.map((row) => row.id);\n const isSelectAllChecked = selected.length > 0;\n const allRowsSelected = rowIds.every((rowId) => selectedIds.includes(rowId));\n const hasSorting = Object.keys(sorting || {}).length > 0;\n\n useEffect(() => {\n const sortingPerColumn = columns.reduce<\n Record<string, { column: string; isDescending: boolean }>\n >((acc, column) => {\n const isDefault = sorting?.column === column.accessor;\n acc[column.accessor] = {\n column: column.accessor,\n isDescending: isDefault ? sorting?.isDescending ?? false : column.sortOrder === \"desc\",\n };\n\n return acc;\n }, {});\n\n setColumnsSorting(sortingPerColumn);\n }, [sorting]);\n\n const handleToggleSelectAll = (): void => {\n if (disabled) return;\n dispatch({ type: Actions.toggleAll, payload: null });\n\n const newSelected = state.selected.length > 0 ? state.selected : [...state.rows];\n const uniqueRowIds = [...new Set(newSelected.map((row) => row.id))];\n\n onRowSelect?.(uniqueRowIds.map(Number));\n };\n\n const handleSortingChange = (accessor: string, sortOrder: Column[\"sortOrder\"]): void => {\n if (disabled) return;\n if (hasSorting) {\n const isDefaultSort = sorting?.column === accessor;\n const isDescendingOrder = sortOrder === \"desc\";\n\n setColumnsSorting({\n ...columnsSorting,\n [accessor]: {\n column: accessor,\n isDescending: isDefaultSort ? !sorting.isDescending : isDescendingOrder,\n },\n });\n\n // When a new column is clicked to sort, apply the default sortOrder in the columns array.\n // When we select the same column (the default sort column) change it's current order to the opposite.\n const newSorting = {\n column: accessor,\n isDescending: isDefaultSort ? !sorting.isDescending : isDescendingOrder,\n };\n\n dispatch({ type: Actions.sortingChanged, payload: newSorting });\n onSortingChanged && onSortingChanged(newSorting);\n }\n };\n\n return (\n <thead>\n <tr className={rowClassnames(isSelectAllChecked, allRowsSelected, autohide)}>\n {selectable && (\n <Cell as=\"td\" className=\"selectable-cell\">\n <Checkbox\n id={`select-all-${isSelectAllChecked} - ${allRowsSelected} - ${id}`}\n name=\"select-all\"\n aria-label=\"Select all rows\"\n value=\"all\"\n onChange={handleToggleSelectAll}\n checked={isSelectAllChecked}\n isPartiallySelected={!allRowsSelected}\n disabled={disabled}\n />\n </Cell>\n )}\n {columns.map(\n ({\n accessor,\n cell,\n hidden,\n sortableHeader = true,\n classNames = [],\n sortOrder,\n headerWidth,\n }) =>\n !hidden && (\n <Cell\n as={cell ? \"th\" : \"td\"}\n key={accessor}\n data-testid={`${accessor}-column`}\n maxWidth={headerWidth}\n className={`header-cell ${classNames.length > 0 && classNames.join(\" \")} ${\n !sortableHeader ? \"hidden\" : \"\"\n }`}\n onClick={(): void => {\n if (!disabled && sortableHeader) {\n handleSortingChange(accessor, sortOrder);\n }\n }}\n >\n <span>{typeof cell === \"string\" ? cell : cell({ accessor, cell })}</span>\n {hasSorting && sortableHeader && (\n <span\n className={sortingIconClassNames(accessor === sorting?.column)}\n data-testid={`${accessor}-sorting`}\n >\n {columnsSorting[accessor]?.isDescending ? (\n <IconChevronDownSVG height={20} />\n ) : (\n <IconChevronUpSVG height={20} />\n )}\n </span>\n )}\n </Cell>\n ),\n )}\n </tr>\n </thead>\n );\n};\n\nexport default Header;\n"],"names":["rowClassnames","isSelectAllChecked","allRowsSelected","autohide","classNames","selected","sortingIconClassNames","isDefaultSort","Header","_ref","_ref$selectable","selectable","_ref$autohide","state","dispatch","onSortingChanged","_ref$disabled","disabled","id","onRowSelect","rows","columns","sorting","_useState","useState","_useState2","_slicedToArray","columnsSorting","setColumnsSorting","selectedIds","map","entry","rowIds","row","length","every","rowId","includes","hasSorting","Object","keys","useEffect","sortingPerColumn","reduce","acc","column","_sorting$isDescending","isDefault","accessor","isDescending","sortOrder","handleToggleSelectAll","type","Actions","toggleAll","payload","newSelected","_toConsumableArray","uniqueRowIds","Set","Number","handleSortingChange","isDescendingOrder","_objectSpread","_defineProperty","newSorting","sortingChanged","___EmotionJSX","className","Cell","as","Checkbox","concat","name","value","onChange","checked","isPartiallySelected","_ref2","_columnsSorting$acces","cell","hidden","_ref2$sortableHeader","sortableHeader","_ref2$classNames","headerWidth","key","maxWidth","join","onClick","IconChevronDownSVG","height","IconChevronUpSVG"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../../src/components/Table/components/Header.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from \"react\";\nimport classNames from \"classnames\";\nimport Checkbox from \"../../FormElements/CheckboxGroup/Checkbox\";\nimport { IconChevronDownSVG, IconChevronUpSVG } from \"../../../icons/index\";\nimport { Column } from \"../types\";\nimport { ChildrenProps } from \"../Table\";\nimport { Actions } from \"../constants\";\nimport { getDefaultAccessor } from \"../helpers\";\nimport Cell from \"./Cell\";\n\nconst rowClassnames = (\n isSelectAllChecked: boolean,\n allRowsSelected: boolean,\n autohide: boolean,\n): string =>\n classNames({\n selected: isSelectAllChecked || allRowsSelected,\n \"autohide-cell\": autohide,\n });\n\nconst sortingIconClassNames = (isDefaultSort: boolean): string =>\n classNames(\"sorting-icon\", {\n \"is-default-sort\": isDefaultSort,\n });\n\nconst Header: FC<ChildrenProps> = ({\n selectable = false,\n autohide = false,\n state,\n dispatch,\n onSortingChanged,\n disabled = false,\n id,\n onRowSelect,\n}) => {\n const { rows, columns, selected, sorting } = state;\n const defaultAccessor = getDefaultAccessor(columns);\n const [columnsSorting, setColumnsSorting] = useState<\n Record<string, { column: string; isDescending: boolean }>\n >({});\n const selectedIds = selected.map((entry) => entry.id);\n const rowIds = rows.map((row) => row.id);\n const isSelectAllChecked = selected.length > 0;\n const allRowsSelected = rowIds.every((rowId) => selectedIds.includes(rowId));\n const hasSorting = Object.keys(sorting || {}).length > 0;\n\n useEffect(() => {\n const sortingPerColumn = columns.reduce<\n Record<string, { column: string; isDescending: boolean }>\n >((acc, column) => {\n const isDefault = sorting?.column === column.accessor;\n acc[column.accessor] = {\n column: column.accessor,\n isDescending: isDefault ? sorting?.isDescending ?? false : column.sortOrder === \"desc\",\n };\n\n return acc;\n }, {});\n\n setColumnsSorting(sortingPerColumn);\n }, [sorting]);\n\n const handleToggleSelectAll = (): void => {\n if (disabled) return;\n dispatch({ type: Actions.toggleAll, payload: null });\n\n const newSelected = state.selected.length > 0 ? state.selected : [...state.rows];\n const uniqueRowIds = [...new Set(newSelected.map((row) => row.id))];\n\n onRowSelect?.(uniqueRowIds.map(Number));\n };\n\n const handleSortingChange = (accessor: string, sortOrder: Column[\"sortOrder\"]): void => {\n if (disabled) return;\n if (hasSorting) {\n const isDefaultSort = sorting?.column === accessor;\n const isDescendingOrder = sortOrder === \"desc\";\n\n setColumnsSorting({\n ...columnsSorting,\n [accessor]: {\n column: accessor,\n isDescending: isDefaultSort ? !sorting.isDescending : isDescendingOrder,\n },\n });\n\n // When a new column is clicked to sort, apply the default sortOrder in the columns array.\n // When we select the same column (the default sort column) change it's current order to the opposite.\n const newSorting = {\n column: accessor,\n isDescending: isDefaultSort ? !sorting.isDescending : isDescendingOrder,\n };\n\n dispatch({ type: Actions.sortingChanged, payload: newSorting });\n onSortingChanged && onSortingChanged(newSorting);\n }\n };\n\n return (\n <thead>\n <tr className={rowClassnames(isSelectAllChecked, allRowsSelected, autohide)}>\n {selectable && (\n <Cell as=\"td\" className=\"selectable-cell\">\n <Checkbox\n id={`select-all-${isSelectAllChecked} - ${allRowsSelected} - ${id}`}\n name=\"select-all\"\n aria-label=\"Select all rows\"\n value=\"all\"\n onChange={handleToggleSelectAll}\n checked={isSelectAllChecked}\n isPartiallySelected={!allRowsSelected}\n disabled={disabled}\n />\n </Cell>\n )}\n {columns.map(\n ({\n accessor,\n cell,\n hidden,\n sortableHeader = true,\n classNames: cellClassNames = [],\n sortOrder,\n headerWidth,\n }) =>\n !hidden && (\n <Cell\n as={cell ? \"th\" : \"td\"}\n key={accessor}\n data-testid={`${accessor}-column`}\n maxWidth={headerWidth}\n className={classNames(\"header-cell\", cellClassNames, {\n hidden: !sortableHeader,\n \"primary-header\": accessor === defaultAccessor,\n })}\n onClick={(): void => {\n if (!disabled && sortableHeader) {\n handleSortingChange(accessor, sortOrder);\n }\n }}\n >\n <span>{typeof cell === \"string\" ? cell : cell({ accessor, cell })}</span>\n {hasSorting && sortableHeader && (\n <span\n className={sortingIconClassNames(accessor === sorting?.column)}\n data-testid={`${accessor}-sorting`}\n >\n {columnsSorting[accessor]?.isDescending ? (\n <IconChevronDownSVG height={20} />\n ) : (\n <IconChevronUpSVG height={20} />\n )}\n </span>\n )}\n </Cell>\n ),\n )}\n </tr>\n </thead>\n );\n};\n\nexport default Header;\n"],"names":["rowClassnames","isSelectAllChecked","allRowsSelected","autohide","classNames","selected","sortingIconClassNames","isDefaultSort","Header","_ref","_ref$selectable","selectable","_ref$autohide","state","dispatch","onSortingChanged","_ref$disabled","disabled","id","onRowSelect","rows","columns","sorting","defaultAccessor","getDefaultAccessor","_useState","useState","_useState2","_slicedToArray","columnsSorting","setColumnsSorting","selectedIds","map","entry","rowIds","row","length","every","rowId","includes","hasSorting","Object","keys","useEffect","sortingPerColumn","reduce","acc","column","_sorting$isDescending","isDefault","accessor","isDescending","sortOrder","handleToggleSelectAll","type","Actions","toggleAll","payload","newSelected","_toConsumableArray","uniqueRowIds","Set","Number","handleSortingChange","isDescendingOrder","_objectSpread","_defineProperty","newSorting","sortingChanged","___EmotionJSX","className","Cell","as","Checkbox","concat","name","value","onChange","checked","isPartiallySelected","_ref2","_columnsSorting$acces","cell","hidden","_ref2$sortableHeader","sortableHeader","_ref2$classNames","cellClassNames","headerWidth","key","maxWidth","onClick","IconChevronDownSVG","height","IconChevronUpSVG"],"mappings":"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"}
|