@razorpay/blade 11.30.5 → 11.31.1
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/build/lib/native/components/Amount/Amount.js +3 -3
- package/build/lib/native/components/Amount/Amount.js.map +1 -1
- package/build/lib/native/components/Checkbox/Checkbox.js +1 -1
- package/build/lib/native/components/Checkbox/Checkbox.js.map +1 -1
- package/build/lib/web/development/components/Amount/Amount.js +112 -75
- package/build/lib/web/development/components/Amount/Amount.js.map +1 -1
- package/build/lib/web/development/components/Checkbox/Checkbox.js +3 -0
- package/build/lib/web/development/components/Checkbox/Checkbox.js.map +1 -1
- package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +4 -1
- package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableHeader.web.js +5 -0
- package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
- package/build/lib/web/production/components/Amount/Amount.js +112 -75
- package/build/lib/web/production/components/Amount/Amount.js.map +1 -1
- package/build/lib/web/production/components/Checkbox/Checkbox.js +3 -0
- package/build/lib/web/production/components/Checkbox/Checkbox.js.map +1 -1
- package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +4 -1
- package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableHeader.web.js +5 -0
- package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumber, formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport { normalAmountSizes, subtleFontSizes, amountLineHeights } from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily } from '~tokens/global';\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n} & TestID &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>> & { formatted: string };\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.formatted}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"formatted\": \"12,500.45\",\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * else if suffix === 'humanize' => { formatted: \"1.2T\" }\n * else => { formatted: \"1,23,456\" }\n * @returns {AmountType}\n */\nexport const formatAmountWithSuffix = ({\n suffix,\n value,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n },\n };\n return {\n ...formatNumberByParts(value, options),\n formatted: formatNumber(value, options),\n };\n }\n case 'humanize': {\n const formatted = formatNumber(value, {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n });\n return {\n formatted,\n };\n }\n\n default: {\n const formatted = formatNumber(value, {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n });\n return {\n formatted,\n };\n }\n }\n } catch (err: unknown) {\n return {\n formatted: `${value}`,\n };\n }\n};\n\nconst _Amount = ({\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n testID,\n ...styledProps\n}: AmountProps): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n let isPrefixSymbol, currencySymbol;\n try {\n const byParts = formatNumberByParts(value, {\n currency,\n });\n isPrefixSymbol = byParts.isPrefixSymbol;\n currencySymbol = byParts.currency;\n } catch (err: unknown) {\n isPrefixSymbol = true;\n currencySymbol = currency;\n }\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const renderedValue = formatAmountWithSuffix({ suffix, value });\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n const currencyFontSize = isAffixSubtle\n ? subtleFontSizes[type][size]\n : normalAmountSizes[type][size];\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(_Amount, {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["getTextColorProps","_ref","color","props","amountValueColor","AmountValue","_ref2","amount","_ref2$size","size","_ref2$type","type","_ref2$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","decimal","fraction","formatted","formatAmountWithSuffix","_ref3","value","options","intlOptions","maximumFractionDigits","minimumFractionDigits","_objectSpread","formatNumberByParts","formatNumber","notation","trailingZeroDisplay","roundingMode","err","concat","_Amount","_ref4","_ref4$suffix","_ref4$type","_ref4$size","_ref4$weight","_ref4$isAffixSubtle","_ref4$isStrikethrough","isStrikethrough","_ref4$currencyIndicat","currencyIndicator","_ref4$currency","currency","testID","styledProps","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","isPrefixSymbol","currencySymbol","byParts","currencyPosition","renderedValue","currencySymbolOrCode","currencyFontSize","BaseBox","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","alignItems","position","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","displayName","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport { normalAmountSizes, subtleFontSizes, amountLineHeights } from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily } from '~tokens/global';\n\n/**\n * Pollyfill function to get around the node 18 error\n *\n * This function is maintained by i18nify team. Reach out to them for any change regarding this.\n */\nconst stripTrailingZerosFromParts = (\n parts: ReturnType<typeof formatNumberByParts>,\n): ReturnType<typeof formatNumberByParts> => {\n const decimalPart = parts.rawParts\n .filter(({ type }) => type === 'fraction')\n .map(({ value }) => value)\n .join('');\n\n const hasFraction = parts.rawParts.some(({ type }) => type === 'fraction');\n\n if (hasFraction && /^0+$/.test(decimalPart)) {\n delete parts.decimal;\n delete parts.fraction;\n parts.rawParts = parts.rawParts.filter(({ type }) => type !== 'decimal' && type !== 'fraction');\n }\n\n return parts;\n};\n\n/**\n * Wrapper that uses pollyfill of i18nify team\n */\nconst pollyfilledFormatNumberByParts: typeof formatNumberByParts = (value, options) => {\n const parts = formatNumberByParts(value, options);\n\n if (options?.intlOptions?.trailingZeroDisplay === 'stripIfInteger') {\n return stripTrailingZerosFromParts(parts);\n }\n\n return parts;\n};\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n} & TestID &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>>;\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.integer}\n {amount.decimal}\n {amount.fraction}\n {amount.compact}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: AmountProps['currency'];\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"compact\": \"K\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * @returns {AmountType}\n */\nexport const getAmountByParts = ({\n suffix,\n value,\n currency,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n case 'humanize': {\n const options = {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n\n default: {\n const options = {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n }\n } catch (err: unknown) {\n return {\n integer: `${value}`,\n currency,\n };\n }\n};\n\nconst _Amount = ({\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n testID,\n ...styledProps\n}: AmountProps): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const renderedValue = getAmountByParts({ suffix, value, currency });\n const isPrefixSymbol = renderedValue.isPrefixSymbol ?? true;\n const currencySymbol = renderedValue.currency ?? currency;\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n const currencyFontSize = isAffixSubtle\n ? subtleFontSizes[type][size]\n : normalAmountSizes[type][size];\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(styledProps)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {renderedValue.minusSign ? (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n marginX=\"spacing.2\"\n >\n {renderedValue.minusSign}\n </BaseText>\n ) : null}\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(_Amount, {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["stripTrailingZerosFromParts","parts","decimalPart","rawParts","filter","_ref","type","map","_ref2","value","join","hasFraction","some","_ref3","test","decimal","fraction","_ref4","pollyfilledFormatNumberByParts","options","_options$intlOptions","formatNumberByParts","intlOptions","trailingZeroDisplay","getTextColorProps","_ref5","color","props","amountValueColor","AmountValue","_ref6","amount","_ref6$size","size","_ref6$type","_ref6$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","compact","getAmountByParts","_ref7","currency","maximumFractionDigits","minimumFractionDigits","notation","roundingMode","err","concat","_Amount","_ref8","_renderedValue$isPref","_renderedValue$curren","_ref8$suffix","_ref8$type","_ref8$size","_ref8$weight","_ref8$isAffixSubtle","_ref8$isStrikethrough","isStrikethrough","_ref8$currencyIndicat","currencyIndicator","_ref8$currency","testID","styledProps","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","renderedValue","isPrefixSymbol","currencySymbol","currencyPosition","currencySymbolOrCode","currencyFontSize","BaseBox","_objectSpread","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","alignItems","position","minusSign","marginX","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","displayName","componentId"],"mappings":"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"}
|
|
@@ -132,6 +132,9 @@ var _Checkbox = function _Checkbox(_ref, ref) {
|
|
|
132
132
|
children: [/*#__PURE__*/jsx(SelectorLabel, {
|
|
133
133
|
componentName: MetaConstants.CheckboxLabel,
|
|
134
134
|
inputProps: state.isReactNative ? inputProps : {},
|
|
135
|
+
style: {
|
|
136
|
+
cursor: isDisabled ? 'not-allowed' : 'pointer'
|
|
137
|
+
},
|
|
135
138
|
children: /*#__PURE__*/jsxs(BaseBox, {
|
|
136
139
|
display: "flex",
|
|
137
140
|
flexDirection: "column",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport React from 'react';\nimport { useCheckboxGroupContext } from './CheckboxGroup/CheckboxGroupContext';\nimport { CheckboxIcon } from './CheckboxIcon';\nimport { useCheckbox } from './useCheckbox';\nimport { checkboxHoverTokens, checkboxSizes } from './checkboxTokens';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { FormHint } from '~components/Form';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorTitle } from '~components/Form/Selector/SelectorTitle';\nimport { SelectorSupportText } from '~components/Form/Selector/SelectorSupportText';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport type { BladeElementRef, TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeSize, useTheme } from '~utils';\n\ntype OnChange = ({\n isChecked,\n event,\n value,\n}: {\n isChecked: boolean;\n event?: React.ChangeEvent;\n value?: string;\n}) => void;\n\ntype CheckboxProps = {\n /**\n * If `true`, The checkbox will be checked. This also makes the checkbox controlled\n * Use `onChange` to update its value\n *\n * @default false\n */\n isChecked?: boolean;\n /**\n * If `true`, the checkbox will be initially checked. This also makes the checkbox uncontrolled\n *\n * @default false\n */\n defaultChecked?: boolean;\n /**\n * The callback invoked when the checked state of the `Checkbox` changes.\n */\n onChange?: OnChange;\n /**\n * Sets the label of the checkbox\n */\n children?: React.ReactNode;\n /**\n * Help text for the checkbox\n */\n helpText?: string;\n /**\n * Error text for the checkbox\n *\n * Renders when `validationState` is set to 'error'\n */\n errorText?: string;\n /**\n * If `true`, the checkbox will be indeterminate.\n * This does not modify the isChecked property.\n *\n * @default false\n */\n isIndeterminate?: boolean;\n /**\n * The name of the input field in a checkbox\n * (Useful for form submission).\n */\n name?: string;\n /**\n * The value to be used in the checkbox input.\n * This is the value that will be returned on form submission.\n */\n value?: string;\n /**\n * If `true`, the checkbox will be disabled\n *\n * @default false\n */\n isDisabled?: boolean;\n /**\n * If `true`, the checkbox input is marked as required,\n * and `required` attribute will be added\n *\n * @default false\n */\n isRequired?: boolean;\n /**\n * If `error`, the checkbox input is marked as invalid,\n * and `invalid` attribute will be added\n */\n validationState?: 'error' | 'none';\n /**\n * Size of the checkbox\n *\n * @default \"medium\"\n */\n size?: 'small' | 'medium' | 'large';\n /**\n * Sets the tab-index property on checkbox element\n *\n */\n tabIndex?: number;\n} & TestID &\n StyledPropsBlade;\n\nconst _Checkbox: React.ForwardRefRenderFunction<BladeElementRef, CheckboxProps> = (\n {\n defaultChecked,\n validationState,\n isChecked,\n isDisabled,\n isIndeterminate,\n isRequired,\n name,\n onChange,\n value,\n children,\n helpText,\n errorText,\n size = 'medium',\n tabIndex,\n testID,\n ...styledProps\n },\n ref,\n) => {\n const groupProps = useCheckboxGroupContext();\n\n // ban certain props in checkbox while inside group\n const hasValidationState = !isUndefined(validationState);\n const hasName = !isUndefined(name);\n const hasDefaultChecked = !isUndefined(defaultChecked);\n const hasIsChecked = !isUndefined(isChecked);\n const hasOnChange = !isUndefined(onChange);\n\n if (__DEV__) {\n if (\n (hasValidationState || hasName || hasDefaultChecked || hasIsChecked || hasOnChange) &&\n !isEmpty(groupProps)\n ) {\n const props = [\n hasValidationState ? 'validationState' : undefined,\n hasName ? 'name' : undefined,\n hasDefaultChecked ? 'defaultChecked' : undefined,\n hasIsChecked ? 'isChecked' : undefined,\n hasOnChange ? 'onChange' : undefined,\n ]\n .filter(Boolean)\n .join(',');\n\n throwBladeError({\n message: `Cannot set \\`${props}\\` on <Checkbox /> when it's inside <CheckboxGroup />, Please set it on the <CheckboxGroup /> itself`,\n moduleName: 'Checkbox',\n });\n }\n\n // mandate value prop when using inside group\n if (!value && !isEmpty(groupProps)) {\n throw new Error(\n `[Blade Checkbox]: <CheckboxGroup /> requires that you pass unique \"value\" prop to each <Checkbox />\n <CheckboxGroup>\n <Checkbox value=\"apple\">Apple</Checkbox>\n <Checkbox value=\"mango\">Mango</Checkbox>\n </CheckboxGroup>\n `,\n );\n }\n }\n\n const _validationState = validationState ?? groupProps?.validationState;\n const _hasError = _validationState === 'error';\n const _isDisabled = isDisabled ?? groupProps?.isDisabled;\n const _isRequired = Boolean(\n isRequired || groupProps?.isRequired || groupProps?.necessityIndicator === 'required',\n );\n const _name = name ?? groupProps?.name;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const _isChecked = isChecked ?? groupProps?.state?.isChecked(value!);\n const _size = groupProps.size ?? size;\n const { theme } = useTheme();\n const formHintSize = {\n small: 'medium',\n medium: 'medium',\n large: 'large',\n } as const;\n\n const showSupportingText = helpText;\n\n const handleChange: OnChange = ({ isChecked, event, value }) => {\n if (isChecked) {\n groupProps?.state?.addValue(value!);\n } else {\n groupProps?.state?.removeValue(value!);\n }\n\n onChange?.({ isChecked, event, value });\n };\n\n const { state, ids, inputProps } = useCheckbox({\n defaultChecked,\n isChecked: _isChecked,\n isIndeterminate,\n hasError: _hasError,\n hasHelperText: Boolean(showSupportingText),\n isDisabled: _isDisabled,\n isRequired: _isRequired,\n name: _name,\n value,\n onChange: handleChange,\n });\n\n // Checkbox icon's size & margin + margin-left of SelectorTitle which is 2\n const helpTextLeftSpacing = makeSize(checkboxSizes.icon[size].width + theme.spacing[3]);\n\n return (\n <BaseBox\n {...metaAttribute({ name: MetaConstants.Checkbox, testID })}\n {...getStyledProps(styledProps)}\n >\n <SelectorLabel\n componentName={MetaConstants.CheckboxLabel}\n inputProps={state.isReactNative ? inputProps : {}}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\">\n <BaseBox display=\"flex\" flexDirection=\"row\">\n <SelectorInput\n hoverTokens={checkboxHoverTokens}\n isChecked={state.isChecked || Boolean(isIndeterminate)}\n isDisabled={_isDisabled}\n hasError={_hasError}\n inputProps={inputProps}\n tabIndex={tabIndex}\n ref={ref}\n />\n <CheckboxIcon\n size={_size}\n isChecked={state.isChecked}\n isIndeterminate={isIndeterminate}\n isDisabled={_isDisabled}\n isNegative={_hasError}\n />\n {children ? (\n <SelectorTitle size={_size} isDisabled={_isDisabled}>\n {children}\n </SelectorTitle>\n ) : null}\n </BaseBox>\n {showSupportingText ? (\n <BaseBox marginLeft={helpTextLeftSpacing}>\n <SelectorSupportText size={_size} id={ids?.helpTextId}>\n {helpText}\n </SelectorSupportText>\n </BaseBox>\n ) : null}\n </BaseBox>\n </SelectorLabel>\n <FormHint\n size={formHintSize[_size]}\n errorText={errorText}\n errorTextId={ids?.errorTextId}\n type={validationState === 'error' ? 'error' : 'help'}\n />\n </BaseBox>\n );\n};\n\nconst Checkbox = assignWithoutSideEffects(React.forwardRef(_Checkbox), {\n displayName: 'Checkbox',\n});\n\nexport type { CheckboxProps };\nexport { Checkbox };\n"],"names":["_Checkbox","_ref","ref","_groupProps$state","_groupProps$size","defaultChecked","validationState","isChecked","isDisabled","isIndeterminate","isRequired","name","onChange","value","children","helpText","errorText","_ref$size","size","tabIndex","testID","styledProps","_objectWithoutProperties","_excluded","groupProps","useCheckboxGroupContext","hasValidationState","isUndefined","hasName","hasDefaultChecked","hasIsChecked","hasOnChange","isEmpty","props","undefined","filter","Boolean","join","throwBladeError","message","concat","moduleName","Error","_validationState","_hasError","_isDisabled","_isRequired","necessityIndicator","_name","_isChecked","state","_size","_useTheme","useTheme","theme","formHintSize","small","medium","large","showSupportingText","handleChange","_ref2","event","_groupProps$state2","addValue","_groupProps$state3","removeValue","_useCheckbox","useCheckbox","hasError","hasHelperText","ids","inputProps","helpTextLeftSpacing","makeSize","checkboxSizes","icon","width","spacing","_jsxs","BaseBox","_objectSpread","metaAttribute","MetaConstants","Checkbox","getStyledProps","_jsx","SelectorLabel","componentName","CheckboxLabel","isReactNative","display","flexDirection","SelectorInput","hoverTokens","checkboxHoverTokens","CheckboxIcon","isNegative","SelectorTitle","marginLeft","SelectorSupportText","id","helpTextId","FormHint","errorTextId","type","assignWithoutSideEffects","React","forwardRef","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport React from 'react';\nimport { useCheckboxGroupContext } from './CheckboxGroup/CheckboxGroupContext';\nimport { CheckboxIcon } from './CheckboxIcon';\nimport { useCheckbox } from './useCheckbox';\nimport { checkboxHoverTokens, checkboxSizes } from './checkboxTokens';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport isUndefined from '~utils/lodashButBetter/isUndefined';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { FormHint } from '~components/Form';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorTitle } from '~components/Form/Selector/SelectorTitle';\nimport { SelectorSupportText } from '~components/Form/Selector/SelectorSupportText';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport type { BladeElementRef, TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeSize, useTheme } from '~utils';\n\ntype OnChange = ({\n isChecked,\n event,\n value,\n}: {\n isChecked: boolean;\n event?: React.ChangeEvent;\n value?: string;\n}) => void;\n\ntype CheckboxProps = {\n /**\n * If `true`, The checkbox will be checked. This also makes the checkbox controlled\n * Use `onChange` to update its value\n *\n * @default false\n */\n isChecked?: boolean;\n /**\n * If `true`, the checkbox will be initially checked. This also makes the checkbox uncontrolled\n *\n * @default false\n */\n defaultChecked?: boolean;\n /**\n * The callback invoked when the checked state of the `Checkbox` changes.\n */\n onChange?: OnChange;\n /**\n * Sets the label of the checkbox\n */\n children?: React.ReactNode;\n /**\n * Help text for the checkbox\n */\n helpText?: string;\n /**\n * Error text for the checkbox\n *\n * Renders when `validationState` is set to 'error'\n */\n errorText?: string;\n /**\n * If `true`, the checkbox will be indeterminate.\n * This does not modify the isChecked property.\n *\n * @default false\n */\n isIndeterminate?: boolean;\n /**\n * The name of the input field in a checkbox\n * (Useful for form submission).\n */\n name?: string;\n /**\n * The value to be used in the checkbox input.\n * This is the value that will be returned on form submission.\n */\n value?: string;\n /**\n * If `true`, the checkbox will be disabled\n *\n * @default false\n */\n isDisabled?: boolean;\n /**\n * If `true`, the checkbox input is marked as required,\n * and `required` attribute will be added\n *\n * @default false\n */\n isRequired?: boolean;\n /**\n * If `error`, the checkbox input is marked as invalid,\n * and `invalid` attribute will be added\n */\n validationState?: 'error' | 'none';\n /**\n * Size of the checkbox\n *\n * @default \"medium\"\n */\n size?: 'small' | 'medium' | 'large';\n /**\n * Sets the tab-index property on checkbox element\n *\n */\n tabIndex?: number;\n} & TestID &\n StyledPropsBlade;\n\nconst _Checkbox: React.ForwardRefRenderFunction<BladeElementRef, CheckboxProps> = (\n {\n defaultChecked,\n validationState,\n isChecked,\n isDisabled,\n isIndeterminate,\n isRequired,\n name,\n onChange,\n value,\n children,\n helpText,\n errorText,\n size = 'medium',\n tabIndex,\n testID,\n ...styledProps\n },\n ref,\n) => {\n const groupProps = useCheckboxGroupContext();\n\n // ban certain props in checkbox while inside group\n const hasValidationState = !isUndefined(validationState);\n const hasName = !isUndefined(name);\n const hasDefaultChecked = !isUndefined(defaultChecked);\n const hasIsChecked = !isUndefined(isChecked);\n const hasOnChange = !isUndefined(onChange);\n\n if (__DEV__) {\n if (\n (hasValidationState || hasName || hasDefaultChecked || hasIsChecked || hasOnChange) &&\n !isEmpty(groupProps)\n ) {\n const props = [\n hasValidationState ? 'validationState' : undefined,\n hasName ? 'name' : undefined,\n hasDefaultChecked ? 'defaultChecked' : undefined,\n hasIsChecked ? 'isChecked' : undefined,\n hasOnChange ? 'onChange' : undefined,\n ]\n .filter(Boolean)\n .join(',');\n\n throwBladeError({\n message: `Cannot set \\`${props}\\` on <Checkbox /> when it's inside <CheckboxGroup />, Please set it on the <CheckboxGroup /> itself`,\n moduleName: 'Checkbox',\n });\n }\n\n // mandate value prop when using inside group\n if (!value && !isEmpty(groupProps)) {\n throw new Error(\n `[Blade Checkbox]: <CheckboxGroup /> requires that you pass unique \"value\" prop to each <Checkbox />\n <CheckboxGroup>\n <Checkbox value=\"apple\">Apple</Checkbox>\n <Checkbox value=\"mango\">Mango</Checkbox>\n </CheckboxGroup>\n `,\n );\n }\n }\n\n const _validationState = validationState ?? groupProps?.validationState;\n const _hasError = _validationState === 'error';\n const _isDisabled = isDisabled ?? groupProps?.isDisabled;\n const _isRequired = Boolean(\n isRequired || groupProps?.isRequired || groupProps?.necessityIndicator === 'required',\n );\n const _name = name ?? groupProps?.name;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const _isChecked = isChecked ?? groupProps?.state?.isChecked(value!);\n const _size = groupProps.size ?? size;\n const { theme } = useTheme();\n const formHintSize = {\n small: 'medium',\n medium: 'medium',\n large: 'large',\n } as const;\n\n const showSupportingText = helpText;\n\n const handleChange: OnChange = ({ isChecked, event, value }) => {\n if (isChecked) {\n groupProps?.state?.addValue(value!);\n } else {\n groupProps?.state?.removeValue(value!);\n }\n\n onChange?.({ isChecked, event, value });\n };\n\n const { state, ids, inputProps } = useCheckbox({\n defaultChecked,\n isChecked: _isChecked,\n isIndeterminate,\n hasError: _hasError,\n hasHelperText: Boolean(showSupportingText),\n isDisabled: _isDisabled,\n isRequired: _isRequired,\n name: _name,\n value,\n onChange: handleChange,\n });\n\n // Checkbox icon's size & margin + margin-left of SelectorTitle which is 2\n const helpTextLeftSpacing = makeSize(checkboxSizes.icon[size].width + theme.spacing[3]);\n\n return (\n <BaseBox\n {...metaAttribute({ name: MetaConstants.Checkbox, testID })}\n {...getStyledProps(styledProps)}\n >\n <SelectorLabel\n componentName={MetaConstants.CheckboxLabel}\n inputProps={state.isReactNative ? inputProps : {}}\n style={{ cursor: isDisabled ? 'not-allowed' : 'pointer' }}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\">\n <BaseBox display=\"flex\" flexDirection=\"row\">\n <SelectorInput\n hoverTokens={checkboxHoverTokens}\n isChecked={state.isChecked || Boolean(isIndeterminate)}\n isDisabled={_isDisabled}\n hasError={_hasError}\n inputProps={inputProps}\n tabIndex={tabIndex}\n ref={ref}\n />\n <CheckboxIcon\n size={_size}\n isChecked={state.isChecked}\n isIndeterminate={isIndeterminate}\n isDisabled={_isDisabled}\n isNegative={_hasError}\n />\n {children ? (\n <SelectorTitle size={_size} isDisabled={_isDisabled}>\n {children}\n </SelectorTitle>\n ) : null}\n </BaseBox>\n {showSupportingText ? (\n <BaseBox marginLeft={helpTextLeftSpacing}>\n <SelectorSupportText size={_size} id={ids?.helpTextId}>\n {helpText}\n </SelectorSupportText>\n </BaseBox>\n ) : null}\n </BaseBox>\n </SelectorLabel>\n <FormHint\n size={formHintSize[_size]}\n errorText={errorText}\n errorTextId={ids?.errorTextId}\n type={validationState === 'error' ? 'error' : 'help'}\n />\n </BaseBox>\n );\n};\n\nconst Checkbox = assignWithoutSideEffects(React.forwardRef(_Checkbox), {\n displayName: 'Checkbox',\n});\n\nexport type { CheckboxProps };\nexport { Checkbox };\n"],"names":["_Checkbox","_ref","ref","_groupProps$state","_groupProps$size","defaultChecked","validationState","isChecked","isDisabled","isIndeterminate","isRequired","name","onChange","value","children","helpText","errorText","_ref$size","size","tabIndex","testID","styledProps","_objectWithoutProperties","_excluded","groupProps","useCheckboxGroupContext","hasValidationState","isUndefined","hasName","hasDefaultChecked","hasIsChecked","hasOnChange","isEmpty","props","undefined","filter","Boolean","join","throwBladeError","message","concat","moduleName","Error","_validationState","_hasError","_isDisabled","_isRequired","necessityIndicator","_name","_isChecked","state","_size","_useTheme","useTheme","theme","formHintSize","small","medium","large","showSupportingText","handleChange","_ref2","event","_groupProps$state2","addValue","_groupProps$state3","removeValue","_useCheckbox","useCheckbox","hasError","hasHelperText","ids","inputProps","helpTextLeftSpacing","makeSize","checkboxSizes","icon","width","spacing","_jsxs","BaseBox","_objectSpread","metaAttribute","MetaConstants","Checkbox","getStyledProps","_jsx","SelectorLabel","componentName","CheckboxLabel","isReactNative","style","cursor","display","flexDirection","SelectorInput","hoverTokens","checkboxHoverTokens","CheckboxIcon","isNegative","SelectorTitle","marginLeft","SelectorSupportText","id","helpTextId","FormHint","errorTextId","type","assignWithoutSideEffects","React","forwardRef","displayName"],"mappings":"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"}
|
|
@@ -120,7 +120,10 @@ var _PhoneNumberInput = function _PhoneNumberInput(_ref, ref) {
|
|
|
120
120
|
};
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
-
return Object.keys(flags).
|
|
123
|
+
return Object.keys(flags).filter(function (countryCode) {
|
|
124
|
+
return !countryCode.includes('-');
|
|
125
|
+
}) // remove the non ISO 3166-1 alpha-2 country codes
|
|
126
|
+
.map(function (countryCode) {
|
|
124
127
|
return {
|
|
125
128
|
code: countryCode,
|
|
126
129
|
name: countryNameFormatter.of(countryCode)
|
package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneNumberInput.web.js","sources":["../../../../../../../src/components/Input/PhoneNumberInput/PhoneNumberInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { CountryCodeType } from '@razorpay/i18nify-js';\nimport {\n formatPhoneNumber,\n getDialCodeByCountryCode,\n getFlagsForAllCountries,\n} from '@razorpay/i18nify-js';\nimport React from 'react';\nimport type { PhoneNumberInputProps } from './types';\nimport { countryNameFormatter, CountrySelector } from './CountrySelector';\nimport { BaseInput } from '~components/Input/BaseInput';\nimport { IconButton } from '~components/Button/IconButton';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { getKeyboardAndAutocompleteProps } from '~components/Input/BaseInput/utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type { BladeElementRef } from '~utils/types';\nimport { CloseIcon } from '~components/Icons';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { useControllableState } from '~utils/useControllable';\n\nconst _PhoneNumberInput: React.ForwardRefRenderFunction<BladeElementRef, PhoneNumberInputProps> = (\n {\n defaultCountry = 'IN',\n country,\n onCountryChange,\n label,\n labelPosition,\n defaultValue,\n value,\n name,\n onChange,\n necessityIndicator,\n isRequired,\n isDisabled,\n leadingIcon,\n trailingIcon,\n validationState,\n errorText,\n helpText,\n successText,\n size = 'medium',\n onClearButtonClick,\n showCountrySelector = true,\n showDialCode = true,\n onClick,\n onBlur,\n onFocus,\n accessibilityLabel = 'Enter phone number',\n autoFocus,\n testID,\n keyboardReturnKeyType = 'done',\n autoCompleteSuggestionType,\n allowedCountries,\n placeholder,\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n\n const inputWrapperRef = React.useRef<HTMLDivElement | null>(null);\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n const [selectedCountry, setSelectedCountry] = useControllableState<CountryCodeType>({\n defaultValue: defaultCountry as CountryCodeType,\n value: country,\n onChange: (country) => onCountryChange?.({ country }),\n });\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n const renderTrailingInteractionElement = (): React.ReactNode => {\n if (!shouldShowClearButton) return null;\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (inputRef.current instanceof HTMLInputElement) {\n inputRef.current.value = '';\n inputRef.current.focus();\n }\n }\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n\n const flags = React.useMemo(() => getFlagsForAllCountries(), []);\n const countryData = React.useMemo(() => {\n if (allowedCountries) {\n return allowedCountries.map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n });\n }\n\n return (Object.keys(flags) as CountryCodeType[])\n .map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name));\n }, [allowedCountries, flags]);\n\n const handleOnChange = ({\n name,\n value,\n selectedCountry,\n }: {\n name?: string;\n value?: string;\n selectedCountry: CountryCodeType;\n }): void => {\n onChange?.({\n name: name!,\n value: value!,\n phoneNumber: value ? formatPhoneNumber(value, selectedCountry) : undefined!,\n dialCode: getDialCodeByCountryCode(selectedCountry),\n country: selectedCountry,\n });\n };\n\n const onItemClick = ({ name }: { name: string }): void => {\n const selectedCountry = name as CountryCodeType;\n setSelectedCountry(() => selectedCountry);\n handleOnChange({\n selectedCountry,\n name: inputRef.current?.name,\n value: inputRef.current?.value,\n });\n inputRef.current?.focus();\n };\n\n return (\n <BaseInput\n setInputWrapperRef={(node) => {\n inputWrapperRef.current = node as HTMLInputElement;\n }}\n ref={mergedRef}\n id=\"phone-number-input\"\n componentName={MetaConstants.PhoneNumberInput}\n label={label as string}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n defaultValue={defaultValue}\n value={value}\n name={name}\n placeholder={placeholder ?? formatPhoneNumber('1234567890', selectedCountry)}\n trailingIcon={trailingIcon}\n leadingIcon={leadingIcon}\n prefix={showDialCode ? getDialCodeByCountryCode(selectedCountry) : undefined}\n trailingInteractionElement={renderTrailingInteractionElement()}\n leadingInteractionElement={\n showCountrySelector ? (\n <CountrySelector\n size={size}\n countryData={countryData}\n flags={flags}\n inputWrapperRef={inputWrapperRef}\n isDisabled={isDisabled}\n selectedCountry={selectedCountry}\n onItemClick={onItemClick}\n />\n ) : null\n }\n onChange={({ name, value }) => {\n if (value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n handleOnChange({ name, value, selectedCountry });\n }}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n isDisabled={isDisabled}\n accessibilityLabel={accessibilityLabel}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n size={size}\n {...getKeyboardAndAutocompleteProps({\n type: 'number',\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize: 'none',\n })}\n type=\"telephone\"\n {...styledProps}\n />\n );\n};\n\n/**\n * PhoneNumberInput is a component that allows users to input phone numbers.\n * It provides a country selector dropdown to select the country code.\n *\n * @example\n *\n * ```ts\n * <PhoneNumberInput />\n * ```\n */\nconst PhoneNumberInput = assignWithoutSideEffects(React.forwardRef(_PhoneNumberInput), {\n displayName: 'PhoneNumberInput',\n});\n\nexport { PhoneNumberInput };\n"],"names":["_PhoneNumberInput","_ref","ref","_ref$defaultCountry","defaultCountry","country","onCountryChange","label","labelPosition","defaultValue","value","name","onChange","necessityIndicator","isRequired","isDisabled","leadingIcon","trailingIcon","validationState","errorText","helpText","successText","_ref$size","size","onClearButtonClick","_ref$showCountrySelec","showCountrySelector","_ref$showDialCode","showDialCode","onClick","onBlur","onFocus","_ref$accessibilityLab","accessibilityLabel","autoFocus","testID","_ref$keyboardReturnKe","keyboardReturnKeyType","autoCompleteSuggestionType","allowedCountries","placeholder","styledProps","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","inputWrapperRef","_React$useState","useState","_React$useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useControllableState","useControllableState","_useControllableState2","selectedCountry","setSelectedCountry","useEffect","Boolean","renderTrailingInteractionElement","_jsx","IconButton","icon","CloseIcon","_inputRef$current","isEmpty","current","HTMLInputElement","focus","flags","useMemo","getFlagsForAllCountries","countryData","map","countryCode","code","countryNameFormatter","of","Object","keys","sort","a","b","localeCompare","handleOnChange","_ref2","phoneNumber","formatPhoneNumber","undefined","dialCode","getDialCodeByCountryCode","onItemClick","_ref3","_inputRef$current2","_inputRef$current3","_inputRef$current4","BaseInput","_objectSpread","setInputWrapperRef","node","id","componentName","MetaConstants","PhoneNumberInput","hideLabelText","prefix","trailingInteractionElement","leadingInteractionElement","CountrySelector","_ref4","length","getKeyboardAndAutocompleteProps","type","autoCapitalize","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PhoneNumberInput.web.js","sources":["../../../../../../../src/components/Input/PhoneNumberInput/PhoneNumberInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { CountryCodeType } from '@razorpay/i18nify-js';\nimport {\n formatPhoneNumber,\n getDialCodeByCountryCode,\n getFlagsForAllCountries,\n} from '@razorpay/i18nify-js';\nimport React from 'react';\nimport type { PhoneNumberInputProps } from './types';\nimport { countryNameFormatter, CountrySelector } from './CountrySelector';\nimport { BaseInput } from '~components/Input/BaseInput';\nimport { IconButton } from '~components/Button/IconButton';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { getKeyboardAndAutocompleteProps } from '~components/Input/BaseInput/utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type { BladeElementRef } from '~utils/types';\nimport { CloseIcon } from '~components/Icons';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { useControllableState } from '~utils/useControllable';\n\nconst _PhoneNumberInput: React.ForwardRefRenderFunction<BladeElementRef, PhoneNumberInputProps> = (\n {\n defaultCountry = 'IN',\n country,\n onCountryChange,\n label,\n labelPosition,\n defaultValue,\n value,\n name,\n onChange,\n necessityIndicator,\n isRequired,\n isDisabled,\n leadingIcon,\n trailingIcon,\n validationState,\n errorText,\n helpText,\n successText,\n size = 'medium',\n onClearButtonClick,\n showCountrySelector = true,\n showDialCode = true,\n onClick,\n onBlur,\n onFocus,\n accessibilityLabel = 'Enter phone number',\n autoFocus,\n testID,\n keyboardReturnKeyType = 'done',\n autoCompleteSuggestionType,\n allowedCountries,\n placeholder,\n ...styledProps\n },\n ref,\n): React.ReactElement => {\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n\n const inputWrapperRef = React.useRef<HTMLDivElement | null>(null);\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n const [selectedCountry, setSelectedCountry] = useControllableState<CountryCodeType>({\n defaultValue: defaultCountry as CountryCodeType,\n value: country,\n onChange: (country) => onCountryChange?.({ country }),\n });\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n const renderTrailingInteractionElement = (): React.ReactNode => {\n if (!shouldShowClearButton) return null;\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (inputRef.current instanceof HTMLInputElement) {\n inputRef.current.value = '';\n inputRef.current.focus();\n }\n }\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n\n const flags = React.useMemo(() => getFlagsForAllCountries(), []);\n const countryData = React.useMemo(() => {\n if (allowedCountries) {\n return allowedCountries.map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n });\n }\n\n return (Object.keys(flags) as CountryCodeType[])\n .filter((countryCode) => !countryCode.includes('-')) // remove the non ISO 3166-1 alpha-2 country codes\n .map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name));\n }, [allowedCountries, flags]);\n\n const handleOnChange = ({\n name,\n value,\n selectedCountry,\n }: {\n name?: string;\n value?: string;\n selectedCountry: CountryCodeType;\n }): void => {\n onChange?.({\n name: name!,\n value: value!,\n phoneNumber: value ? formatPhoneNumber(value, selectedCountry) : undefined!,\n dialCode: getDialCodeByCountryCode(selectedCountry),\n country: selectedCountry,\n });\n };\n\n const onItemClick = ({ name }: { name: string }): void => {\n const selectedCountry = name as CountryCodeType;\n setSelectedCountry(() => selectedCountry);\n handleOnChange({\n selectedCountry,\n name: inputRef.current?.name,\n value: inputRef.current?.value,\n });\n inputRef.current?.focus();\n };\n\n return (\n <BaseInput\n setInputWrapperRef={(node) => {\n inputWrapperRef.current = node as HTMLInputElement;\n }}\n ref={mergedRef}\n id=\"phone-number-input\"\n componentName={MetaConstants.PhoneNumberInput}\n label={label as string}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n defaultValue={defaultValue}\n value={value}\n name={name}\n placeholder={placeholder ?? formatPhoneNumber('1234567890', selectedCountry)}\n trailingIcon={trailingIcon}\n leadingIcon={leadingIcon}\n prefix={showDialCode ? getDialCodeByCountryCode(selectedCountry) : undefined}\n trailingInteractionElement={renderTrailingInteractionElement()}\n leadingInteractionElement={\n showCountrySelector ? (\n <CountrySelector\n size={size}\n countryData={countryData}\n flags={flags}\n inputWrapperRef={inputWrapperRef}\n isDisabled={isDisabled}\n selectedCountry={selectedCountry}\n onItemClick={onItemClick}\n />\n ) : null\n }\n onChange={({ name, value }) => {\n if (value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n handleOnChange({ name, value, selectedCountry });\n }}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n isDisabled={isDisabled}\n accessibilityLabel={accessibilityLabel}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n size={size}\n {...getKeyboardAndAutocompleteProps({\n type: 'number',\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize: 'none',\n })}\n type=\"telephone\"\n {...styledProps}\n />\n );\n};\n\n/**\n * PhoneNumberInput is a component that allows users to input phone numbers.\n * It provides a country selector dropdown to select the country code.\n *\n * @example\n *\n * ```ts\n * <PhoneNumberInput />\n * ```\n */\nconst PhoneNumberInput = assignWithoutSideEffects(React.forwardRef(_PhoneNumberInput), {\n displayName: 'PhoneNumberInput',\n});\n\nexport { PhoneNumberInput };\n"],"names":["_PhoneNumberInput","_ref","ref","_ref$defaultCountry","defaultCountry","country","onCountryChange","label","labelPosition","defaultValue","value","name","onChange","necessityIndicator","isRequired","isDisabled","leadingIcon","trailingIcon","validationState","errorText","helpText","successText","_ref$size","size","onClearButtonClick","_ref$showCountrySelec","showCountrySelector","_ref$showDialCode","showDialCode","onClick","onBlur","onFocus","_ref$accessibilityLab","accessibilityLabel","autoFocus","testID","_ref$keyboardReturnKe","keyboardReturnKeyType","autoCompleteSuggestionType","allowedCountries","placeholder","styledProps","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","inputWrapperRef","_React$useState","useState","_React$useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useControllableState","useControllableState","_useControllableState2","selectedCountry","setSelectedCountry","useEffect","Boolean","renderTrailingInteractionElement","_jsx","IconButton","icon","CloseIcon","_inputRef$current","isEmpty","current","HTMLInputElement","focus","flags","useMemo","getFlagsForAllCountries","countryData","map","countryCode","code","countryNameFormatter","of","Object","keys","filter","includes","sort","a","b","localeCompare","handleOnChange","_ref2","phoneNumber","formatPhoneNumber","undefined","dialCode","getDialCodeByCountryCode","onItemClick","_ref3","_inputRef$current2","_inputRef$current3","_inputRef$current4","BaseInput","_objectSpread","setInputWrapperRef","node","id","componentName","MetaConstants","PhoneNumberInput","hideLabelText","prefix","trailingInteractionElement","leadingInteractionElement","CountrySelector","_ref4","length","getKeyboardAndAutocompleteProps","type","autoCapitalize","assignWithoutSideEffects","forwardRef","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAMA,iBAAyF,GAAG,SAA5FA,iBAAyFA,CAAAC,IAAA,EAoC7FC,GAAG,EACoB;AAAA,EAAA,IAAAC,mBAAA,GAAAF,IAAA,CAnCrBG,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,mBAAA;IACrBE,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,eAAe,GAAAL,IAAA,CAAfK,eAAe;IACfC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IACZC,KAAK,GAAAT,IAAA,CAALS,KAAK;IACLC,IAAI,GAAAV,IAAA,CAAJU,IAAI;IACJC,QAAQ,GAAAX,IAAA,CAARW,QAAQ;IACRC,kBAAkB,GAAAZ,IAAA,CAAlBY,kBAAkB;IAClBC,UAAU,GAAAb,IAAA,CAAVa,UAAU;IACVC,UAAU,GAAAd,IAAA,CAAVc,UAAU;IACVC,WAAW,GAAAf,IAAA,CAAXe,WAAW;IACXC,YAAY,GAAAhB,IAAA,CAAZgB,YAAY;IACZC,eAAe,GAAAjB,IAAA,CAAfiB,eAAe;IACfC,SAAS,GAAAlB,IAAA,CAATkB,SAAS;IACTC,QAAQ,GAAAnB,IAAA,CAARmB,QAAQ;IACRC,WAAW,GAAApB,IAAA,CAAXoB,WAAW;IAAAC,SAAA,GAAArB,IAAA,CACXsB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;IACfE,kBAAkB,GAAAvB,IAAA,CAAlBuB,kBAAkB;IAAAC,qBAAA,GAAAxB,IAAA,CAClByB,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAE,iBAAA,GAAA1B,IAAA,CAC1B2B,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,iBAAA;IACnBE,OAAO,GAAA5B,IAAA,CAAP4B,OAAO;IACPC,MAAM,GAAA7B,IAAA,CAAN6B,MAAM;IACNC,OAAO,GAAA9B,IAAA,CAAP8B,OAAO;IAAAC,qBAAA,GAAA/B,IAAA,CACPgC,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,oBAAoB,GAAAA,qBAAA;IACzCE,SAAS,GAAAjC,IAAA,CAATiC,SAAS;IACTC,MAAM,GAAAlC,IAAA,CAANkC,MAAM;IAAAC,qBAAA,GAAAnC,IAAA,CACNoC,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,qBAAA;IAC9BE,0BAA0B,GAAArC,IAAA,CAA1BqC,0BAA0B;IAC1BC,gBAAgB,GAAAtC,IAAA,CAAhBsC,gBAAgB;IAChBC,WAAW,GAAAvC,IAAA,CAAXuC,WAAW;AACRC,IAAAA,WAAW,GAAAC,wBAAA,CAAAzC,IAAA,EAAA0C,SAAA,CAAA,CAAA;AAIhB,EAAA,IAAMC,QAAQ,GAAGC,cAAK,CAACC,MAAM,CAA0B,IAAI,CAAC,CAAA;AAC5D,EAAA,IAAMC,SAAS,GAAGC,YAAY,CAAC9C,GAAG,EAAE0C,QAAQ,CAAC,CAAA;AAE7C,EAAA,IAAMK,eAAe,GAAGJ,cAAK,CAACC,MAAM,CAAwB,IAAI,CAAC,CAAA;AACjE,EAAA,IAAAI,eAAA,GAA0DL,cAAK,CAACM,QAAQ,CAAC,KAAK,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAAxEI,IAAAA,qBAAqB,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,wBAAwB,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;EACtD,IAAAI,qBAAA,GAA8CC,oBAAoB,CAAkB;AAClFhD,MAAAA,YAAY,EAAEL,cAAiC;AAC/CM,MAAAA,KAAK,EAAEL,OAAO;MACdO,QAAQ,EAAE,SAAAA,QAAAA,CAACP,OAAO,EAAA;AAAA,QAAA,OAAKC,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAG;AAAED,UAAAA,OAAO,EAAPA,OAAAA;AAAQ,SAAC,CAAC,CAAA;AAAA,OAAA;AACvD,KAAC,CAAC;IAAAqD,sBAAA,GAAAL,cAAA,CAAAG,qBAAA,EAAA,CAAA,CAAA;AAJKG,IAAAA,eAAe,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;EAM1Cb,cAAK,CAACgB,SAAS,CAAC,YAAM;IACpBN,wBAAwB,CAACO,OAAO,CAACrD,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAZA,YAAY,GAAIC,KAAK,CAAC,CAAC,CAAA;AAC1D,GAAC,EAAE,CAACD,YAAY,EAAEC,KAAK,CAAC,CAAC,CAAA;AAEzB,EAAA,IAAMqD,gCAAgC,GAAG,SAAnCA,gCAAgCA,GAA0B;AAC9D,IAAA,IAAI,CAACT,qBAAqB,EAAE,OAAO,IAAI,CAAA;IACvC,oBACEU,GAAA,CAACC,UAAU,EAAA;AACT1C,MAAAA,IAAI,EAAC,QAAQ;AACb2C,MAAAA,IAAI,EAAEC,SAAU;MAChBtC,OAAO,EAAE,SAAAA,OAAAA,GAAM;AAAA,QAAA,IAAAuC,iBAAA,CAAA;QACb,IAAIC,OAAO,CAAC3D,KAAK,CAAC,IAAIkC,QAAQ,CAAC0B,OAAO,EAAE;AACtC;AACA,UAAA,IAAI1B,QAAQ,CAAC0B,OAAO,YAAYC,gBAAgB,EAAE;AAChD3B,YAAAA,QAAQ,CAAC0B,OAAO,CAAC5D,KAAK,GAAG,EAAE,CAAA;AAC3BkC,YAAAA,QAAQ,CAAC0B,OAAO,CAACE,KAAK,EAAE,CAAA;AAC1B,WAAA;AACF,SAAA;AACA;AACAhD,QAAAA,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAkB,EAAI,CAAA;AACtBoB,QAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAwB,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,iBAAA,GAARxB,QAAQ,CAAE0B,OAAO,MAAA,IAAA,IAAAF,iBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAmBI,KAAK,EAAE,CAAA;QAC1BjB,wBAAwB,CAAC,KAAK,CAAC,CAAA;OAC/B;AACFxC,MAAAA,UAAU,EAAEA,UAAW;AACvBkB,MAAAA,kBAAkB,EAAC,qBAAA;AAAqB,KACzC,CAAC,CAAA;GAEL,CAAA;AAED,EAAA,IAAMwC,KAAK,GAAG5B,cAAK,CAAC6B,OAAO,CAAC,YAAA;IAAA,OAAMC,uBAAuB,EAAE,CAAA;AAAA,GAAA,EAAE,EAAE,CAAC,CAAA;AAChE,EAAA,IAAMC,WAAW,GAAG/B,cAAK,CAAC6B,OAAO,CAAC,YAAM;AACtC,IAAA,IAAInC,gBAAgB,EAAE;AACpB,MAAA,OAAOA,gBAAgB,CAACsC,GAAG,CAAC,UAACC,WAAW,EAAK;QAC3C,OAAO;AACLC,UAAAA,IAAI,EAAED,WAAW;AACjBnE,UAAAA,IAAI,EAAEqE,oBAAoB,CAACC,EAAE,CAACH,WAAW,CAAA;SAC1C,CAAA;AACH,OAAC,CAAC,CAAA;AACJ,KAAA;IAEA,OAAQI,MAAM,CAACC,IAAI,CAACV,KAAK,CAAC,CACvBW,MAAM,CAAC,UAACN,WAAW,EAAA;AAAA,MAAA,OAAK,CAACA,WAAW,CAACO,QAAQ,CAAC,GAAG,CAAC,CAAA;AAAA,KAAA,CAAC;AAAC,KACpDR,GAAG,CAAC,UAACC,WAAW,EAAK;MACpB,OAAO;AACLC,QAAAA,IAAI,EAAED,WAAW;AACjBnE,QAAAA,IAAI,EAAEqE,oBAAoB,CAACC,EAAE,CAACH,WAAW,CAAA;OAC1C,CAAA;AACH,KAAC,CAAC,CACDQ,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;MAAA,OAAKD,CAAC,CAAC5E,IAAI,CAAC8E,aAAa,CAACD,CAAC,CAAC7E,IAAI,CAAC,CAAA;KAAC,CAAA,CAAA;AACjD,GAAC,EAAE,CAAC4B,gBAAgB,EAAEkC,KAAK,CAAC,CAAC,CAAA;AAE7B,EAAA,IAAMiB,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAQR;AAAA,IAAA,IAPVhF,IAAI,GAAAgF,KAAA,CAAJhF,IAAI;MACJD,KAAK,GAAAiF,KAAA,CAALjF,KAAK;MACLiD,eAAe,GAAAgC,KAAA,CAAfhC,eAAe,CAAA;AAMf/C,IAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAG;AACTD,MAAAA,IAAI,EAAEA,IAAK;AACXD,MAAAA,KAAK,EAAEA,KAAM;MACbkF,WAAW,EAAElF,KAAK,GAAGmF,iBAAiB,CAACnF,KAAK,EAAEiD,eAAe,CAAC,GAAGmC,SAAU;AAC3EC,MAAAA,QAAQ,EAAEC,wBAAwB,CAACrC,eAAe,CAAC;AACnDtD,MAAAA,OAAO,EAAEsD,eAAAA;AACX,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,IAAMsC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,KAAA,EAAyC;AAAA,IAAA,IAAAC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA,CAAA;AAAA,IAAA,IAAnC1F,IAAI,GAAAuF,KAAA,CAAJvF,IAAI,CAAA;IACzB,IAAMgD,eAAe,GAAGhD,IAAuB,CAAA;AAC/CiD,IAAAA,kBAAkB,CAAC,YAAA;AAAA,MAAA,OAAMD,eAAe,CAAA;KAAC,CAAA,CAAA;AACzC+B,IAAAA,cAAc,CAAC;AACb/B,MAAAA,eAAe,EAAfA,eAAe;MACfhD,IAAI,EAAA,CAAAwF,kBAAA,GAAEvD,QAAQ,CAAC0B,OAAO,MAAA,IAAA,IAAA6B,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,kBAAA,CAAkBxF,IAAI;MAC5BD,KAAK,EAAA,CAAA0F,kBAAA,GAAExD,QAAQ,CAAC0B,OAAO,MAAA8B,IAAAA,IAAAA,kBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAkB1F,KAAAA;AAC3B,KAAC,CAAC,CAAA;AACF,IAAA,CAAA2F,kBAAA,GAAAzD,QAAQ,CAAC0B,OAAO,MAAA,IAAA,IAAA+B,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,kBAAA,CAAkB7B,KAAK,EAAE,CAAA;GAC1B,CAAA;AAED,EAAA,oBACER,GAAA,CAACsC,SAAS,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACRC,IAAAA,kBAAkB,EAAE,SAAAA,kBAACC,CAAAA,IAAI,EAAK;MAC5BxD,eAAe,CAACqB,OAAO,GAAGmC,IAAwB,CAAA;KAClD;AACFvG,IAAAA,GAAG,EAAE6C,SAAU;AACf2D,IAAAA,EAAE,EAAC,oBAAoB;IACvBC,aAAa,EAAEC,aAAa,CAACC,gBAAiB;AAC9CtG,IAAAA,KAAK,EAAEA,KAAgB;AACvBuG,IAAAA,aAAa,EAAE,CAAChD,OAAO,CAACvD,KAAK,CAAE;AAC/BC,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,YAAY,EAAEA,YAAa;AAC3BC,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,IAAI,EAAEA,IAAK;AACX6B,IAAAA,WAAW,EAAEA,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,WAAW,GAAIqD,iBAAiB,CAAC,YAAY,EAAElC,eAAe,CAAE;AAC7E1C,IAAAA,YAAY,EAAEA,YAAa;AAC3BD,IAAAA,WAAW,EAAEA,WAAY;IACzB+F,MAAM,EAAEnF,YAAY,GAAGoE,wBAAwB,CAACrC,eAAe,CAAC,GAAGmC,SAAU;IAC7EkB,0BAA0B,EAAEjD,gCAAgC,EAAG;AAC/DkD,IAAAA,yBAAyB,EACvBvF,mBAAmB,gBACjBsC,GAAA,CAACkD,eAAe,EAAA;AACd3F,MAAAA,IAAI,EAAEA,IAAK;AACXqD,MAAAA,WAAW,EAAEA,WAAY;AACzBH,MAAAA,KAAK,EAAEA,KAAM;AACbxB,MAAAA,eAAe,EAAEA,eAAgB;AACjClC,MAAAA,UAAU,EAAEA,UAAW;AACvB4C,MAAAA,eAAe,EAAEA,eAAgB;AACjCsC,MAAAA,WAAW,EAAEA,WAAAA;KACd,CAAC,GACA,IACL;AACDrF,IAAAA,QAAQ,EAAE,SAAAA,QAAAuG,CAAAA,KAAA,EAAqB;AAAA,MAAA,IAAlBxG,IAAI,GAAAwG,KAAA,CAAJxG,IAAI;QAAED,KAAK,GAAAyG,KAAA,CAALzG,KAAK,CAAA;AACtB,MAAA,IAAIA,KAAK,KAALA,IAAAA,IAAAA,KAAK,eAALA,KAAK,CAAE0G,MAAM,EAAE;AACjB;QACA7D,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChC,OAAA;MACA,IAAID,qBAAqB,IAAI,EAAC5C,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,IAAAA,KAAK,CAAE0G,MAAM,CAAE,EAAA;AAC3C;QACA7D,wBAAwB,CAAC,KAAK,CAAC,CAAA;AACjC,OAAA;AACAmC,MAAAA,cAAc,CAAC;AAAE/E,QAAAA,IAAI,EAAJA,IAAI;AAAED,QAAAA,KAAK,EAALA,KAAK;AAAEiD,QAAAA,eAAe,EAAfA,eAAAA;AAAgB,OAAC,CAAC,CAAA;KAChD;AACF9B,IAAAA,OAAO,EAAEA,OAAQ;AACjBE,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,MAAM,EAAEA,MAAO;AACff,IAAAA,UAAU,EAAEA,UAAW;AACvBkB,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCpB,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,UAAU,EAAEA,UAAW;AACvBI,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,WAAW,EAAEA,WAAAA;AACb;AAAA;AACAa,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,MAAM,EAAEA,MAAO;AACfZ,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,EACP8F,+BAA+B,CAAC;AAClCC,IAAAA,IAAI,EAAE,QAAQ;AACdjF,IAAAA,qBAAqB,EAArBA,qBAAqB;AACrBC,IAAAA,0BAA0B,EAA1BA,0BAA0B;AAC1BiF,IAAAA,cAAc,EAAE,MAAA;AAClB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACFD,IAAAA,IAAI,EAAC,WAAA;GACD7E,EAAAA,WAAW,CAChB,CAAC,CAAA;AAEN,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACMoE,IAAAA,gBAAgB,gBAAGW,wBAAwB,eAAC3E,cAAK,CAAC4E,UAAU,CAACzH,iBAAiB,CAAC,EAAE;AACrF0H,EAAAA,WAAW,EAAE,kBAAA;AACf,CAAC;;;;"}
|
|
@@ -189,6 +189,7 @@ var TableHeaderCell = /*#__PURE__*/assignWithoutSideEffects(_TableHeaderCell, {
|
|
|
189
189
|
});
|
|
190
190
|
var TableHeaderCellCheckbox = function TableHeaderCellCheckbox(_ref6) {
|
|
191
191
|
var isChecked = _ref6.isChecked,
|
|
192
|
+
isDisabled = _ref6.isDisabled,
|
|
192
193
|
isIndeterminate = _ref6.isIndeterminate,
|
|
193
194
|
onChange = _ref6.onChange;
|
|
194
195
|
return /*#__PURE__*/jsx(TableHeaderCell, {
|
|
@@ -200,6 +201,7 @@ var TableHeaderCellCheckbox = function TableHeaderCellCheckbox(_ref6) {
|
|
|
200
201
|
flex: 1,
|
|
201
202
|
children: /*#__PURE__*/jsx(Checkbox, {
|
|
202
203
|
isChecked: isChecked,
|
|
204
|
+
isDisabled: isDisabled,
|
|
203
205
|
isIndeterminate: isIndeterminate,
|
|
204
206
|
onChange: onChange
|
|
205
207
|
})
|
|
@@ -227,6 +229,7 @@ var _TableHeaderRow = function _TableHeaderRow(_ref8) {
|
|
|
227
229
|
var children = _ref8.children,
|
|
228
230
|
rowDensity = _ref8.rowDensity;
|
|
229
231
|
var _useTableContext2 = useTableContext(),
|
|
232
|
+
disabledRows = _useTableContext2.disabledRows,
|
|
230
233
|
selectionType = _useTableContext2.selectionType,
|
|
231
234
|
selectedRows = _useTableContext2.selectedRows,
|
|
232
235
|
totalItems = _useTableContext2.totalItems,
|
|
@@ -236,6 +239,7 @@ var _TableHeaderRow = function _TableHeaderRow(_ref8) {
|
|
|
236
239
|
var isMultiSelect = selectionType === 'multiple';
|
|
237
240
|
var isAllSelected = selectedRows && selectedRows.length === totalItems;
|
|
238
241
|
var isIndeterminate = selectedRows && selectedRows.length > 0 && !isAllSelected;
|
|
242
|
+
var isDisabled = disabledRows && disabledRows.length === totalItems;
|
|
239
243
|
if (rowDensity) {
|
|
240
244
|
setHeaderRowDensity(rowDensity);
|
|
241
245
|
}
|
|
@@ -247,6 +251,7 @@ var _TableHeaderRow = function _TableHeaderRow(_ref8) {
|
|
|
247
251
|
$showBorderedCells: showBorderedCells,
|
|
248
252
|
children: [isMultiSelect && /*#__PURE__*/jsx(TableHeaderCellCheckbox, {
|
|
249
253
|
isChecked: isAllSelected,
|
|
254
|
+
isDisabled: isDisabled,
|
|
250
255
|
isIndeterminate: isIndeterminate,
|
|
251
256
|
onChange: function onChange() {
|
|
252
257
|
return toggleAllRowsSelection();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeader.web.js","sources":["../../../../../../src/components/Table/TableHeader.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport { Header, HeaderRow, HeaderCell } from '@table-library/react-table-library/table';\nimport { tableHeader, tableRow } from './tokens';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport type {\n TableHeaderRowProps,\n TableHeaderCellProps,\n TableBackgroundColors,\n TableProps,\n} from './types';\nimport type { CheckboxProps } from '~components/Checkbox';\nimport { Checkbox } from '~components/Checkbox';\nimport { Text } from '~components/Typography';\nimport { castWebType, makeMotionTime, makeSize, makeSpace } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport getIn from '~utils/lodashButBetter/get';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { size } from '~tokens/global';\n\nconst SortButton = styled.button(({ theme }) => ({\n cursor: 'pointer',\n border: 'none',\n padding: 0,\n margin: 0,\n borderRadius: theme.border.radius.small,\n background: 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transitionProperty: 'color, box-shadow',\n transitionDuration: castWebType(makeMotionTime(getIn(theme.motion, 'duration.quick'))),\n transitionTimingFunction: (theme.motion.easing.standard as unknown) as string,\n '&:focus-visible': getFocusRingStyles({ theme }),\n}));\n\nconst SortIcon = ({\n isSorted,\n isSortReversed,\n}: {\n isSorted: boolean;\n isSortReversed: boolean;\n}): React.ReactElement => {\n const { theme } = useTheme();\n const defaultColor = getIn(theme.colors, 'interactive.icon.gray.muted');\n const activeColor = getIn(theme.colors, 'interactive.icon.primary.subtle');\n const upArrowColor = isSorted && isSortReversed ? activeColor : defaultColor;\n const downArrowColor = isSorted && !isSortReversed ? activeColor : defaultColor;\n return (\n <SortButton {...makeAccessible({ label: 'Toggle Sort', role: 'button' })}>\n <svg width={20} height={20} fill=\"none\">\n <path\n fill={upArrowColor}\n d=\"M10.59 2.251a.817.817 0 0 0-1.18 0L5.245 6.537a.875.875 0 0 0 0 1.212.817.817 0 0 0 1.179 0L10 4.069l3.577 3.68a.817.817 0 0 0 1.179 0 .874.874 0 0 0 0-1.212L10.589 2.25Z\"\n />\n <path\n fill={downArrowColor}\n d=\"M9.41 17.749a.817.817 0 0 0 1.18 0l4.166-4.286a.874.874 0 0 0 0-1.212.817.817 0 0 0-1.179 0L10 15.931l-3.577-3.68a.817.817 0 0 0-1.179 0 .874.874 0 0 0 0 1.212l4.167 4.286Z\"\n />\n </svg>\n </SortButton>\n );\n};\n\nconst StyledHeader = styled(Header)({\n '&&&': {\n '& tr:first-child th': {\n borderTop: 'none',\n },\n },\n});\n\nconst _TableHeader = ({ children }: TableHeaderRowProps): React.ReactElement => {\n return (\n <StyledHeader {...metaAttribute({ name: MetaConstants.TableHeader })}>{children}</StyledHeader>\n );\n};\n\nconst TableHeader = assignWithoutSideEffects(_TableHeader, {\n componentId: ComponentIds.TableHeader,\n});\n\nconst StyledHeaderCell = styled(HeaderCell)<{\n $isSortable: boolean;\n $backgroundColor: TableBackgroundColors;\n $rowDensity: NonNullable<TableProps<unknown>['rowDensity']>;\n}>(({ theme, $isSortable, $backgroundColor, $rowDensity }) => ({\n '&&&': {\n height: '100%',\n backgroundColor: getIn(theme.colors, $backgroundColor),\n borderBottomWidth: makeSpace(getIn(theme.border.width, tableHeader.borderBottomAndTopWidth)),\n borderTopWidth: makeSpace(getIn(theme.border.width, tableHeader.borderBottomAndTopWidth)),\n borderBottomColor: getIn(theme.colors, tableHeader.borderBottomAndTopColor),\n borderTopColor: getIn(theme.colors, tableHeader.borderBottomAndTopColor),\n borderBottomStyle: 'solid',\n borderTopStyle: 'solid',\n cursor: $isSortable ? 'pointer' : 'auto',\n '> div': {\n backgroundColor: getIn(theme.colors, tableHeader.backgroundColor),\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '100%',\n paddingLeft: makeSpace(getIn(theme, tableRow.paddingLeft[$rowDensity])),\n paddingRight: makeSpace(getIn(theme, tableRow.paddingRight[$rowDensity])),\n minHeight: makeSize(getIn(size, tableRow.minHeight[$rowDensity])),\n },\n '&:focus-visible': getFocusRingStyles({ theme, negativeOffset: true }),\n },\n}));\n\nconst _TableHeaderCell = ({ children, headerKey }: TableHeaderCellProps): React.ReactElement => {\n const {\n toggleSort,\n currentSortedState,\n backgroundColor,\n rowDensity,\n headerRowDensity,\n } = useTableContext();\n const isChildrenString = typeof children === 'string';\n const isSortable =\n headerKey && Boolean(currentSortedState.sortableColumns?.find((key) => key === headerKey));\n return (\n <StyledHeaderCell\n tabIndex={0}\n $isSortable={isSortable}\n $backgroundColor={backgroundColor}\n $rowDensity={headerRowDensity ?? rowDensity}\n onClick={() => {\n if (isSortable) {\n toggleSort(headerKey);\n }\n }}\n {...metaAttribute({ name: MetaConstants.TableHeaderCell })}\n >\n {isChildrenString ? (\n <Text size=\"medium\" weight=\"medium\" color=\"surface.text.gray.normal\">\n {children}\n </Text>\n ) : (\n children\n )}\n {isSortable && (\n <BaseBox paddingLeft=\"spacing.2\" backgroundColor=\"transparent\">\n <SortIcon\n isSorted={currentSortedState.sortKey === headerKey}\n isSortReversed={currentSortedState.isSortReversed}\n />\n </BaseBox>\n )}\n </StyledHeaderCell>\n );\n};\n\nconst TableHeaderCell = assignWithoutSideEffects(_TableHeaderCell, {\n componentId: ComponentIds.TableHeaderCell,\n});\n\nconst TableHeaderCellCheckbox = ({\n isChecked,\n isIndeterminate,\n onChange,\n}: {\n isChecked: CheckboxProps['isChecked'];\n isIndeterminate?: CheckboxProps['isIndeterminate'];\n onChange: CheckboxProps['onChange'];\n}): React.ReactElement => {\n return (\n <TableHeaderCell headerKey=\"SELECT\">\n <BaseBox display=\"flex\" alignItems=\"center\" justifyContent=\"center\" flex={1}>\n <Checkbox isChecked={isChecked} isIndeterminate={isIndeterminate} onChange={onChange} />\n </BaseBox>\n </TableHeaderCell>\n );\n};\n\nconst StyledHeaderRow = styled(HeaderRow)<{ $showBorderedCells: boolean }>(\n ({ theme, $showBorderedCells }) => ({\n '& th': $showBorderedCells\n ? {\n borderRightWidth: makeSpace(getIn(theme.border.width, tableRow.borderBottomWidth)),\n borderRightColor: getIn(theme.colors, tableRow.borderColor),\n borderRightStyle: 'solid',\n }\n : undefined,\n '& th:last-child ': {\n borderRight: 'none',\n },\n }),\n);\n\nconst _TableHeaderRow = ({ children, rowDensity }: TableHeaderRowProps): React.ReactElement => {\n const {\n selectionType,\n selectedRows,\n totalItems,\n toggleAllRowsSelection,\n setHeaderRowDensity,\n showBorderedCells,\n } = useTableContext();\n const isMultiSelect = selectionType === 'multiple';\n const isAllSelected = selectedRows && selectedRows.length === totalItems;\n const isIndeterminate = selectedRows && selectedRows.length > 0 && !isAllSelected;\n if (rowDensity) {\n setHeaderRowDensity(rowDensity);\n }\n return (\n <StyledHeaderRow\n role=\"rowheader\"\n {...metaAttribute({ name: MetaConstants.TableHeaderRow })}\n $showBorderedCells={showBorderedCells}\n >\n {isMultiSelect && (\n <TableHeaderCellCheckbox\n isChecked={isAllSelected}\n isIndeterminate={isIndeterminate}\n onChange={() => toggleAllRowsSelection()}\n />\n )}\n {children}\n </StyledHeaderRow>\n );\n};\n\nconst TableHeaderRow = assignWithoutSideEffects(_TableHeaderRow, {\n componentId: ComponentIds.TableHeaderRow,\n});\n\nexport { TableHeader, TableHeaderRow, TableHeaderCell };\n"],"names":["SortButton","styled","button","withConfig","displayName","componentId","_ref","theme","cursor","border","padding","margin","borderRadius","radius","small","background","display","alignItems","justifyContent","transitionProperty","transitionDuration","castWebType","makeMotionTime","getIn","motion","transitionTimingFunction","easing","standard","getFocusRingStyles","SortIcon","_ref2","isSorted","isSortReversed","_useTheme","useTheme","defaultColor","colors","activeColor","upArrowColor","downArrowColor","_jsx","_objectSpread","makeAccessible","label","role","children","_jsxs","width","height","fill","d","StyledHeader","Header","borderTop","_TableHeader","_ref3","metaAttribute","name","MetaConstants","TableHeader","assignWithoutSideEffects","ComponentIds","StyledHeaderCell","HeaderCell","_ref4","$isSortable","$backgroundColor","$rowDensity","backgroundColor","borderBottomWidth","makeSpace","tableHeader","borderBottomAndTopWidth","borderTopWidth","borderBottomColor","borderBottomAndTopColor","borderTopColor","borderBottomStyle","borderTopStyle","flexDirection","paddingLeft","tableRow","paddingRight","minHeight","makeSize","size","negativeOffset","_TableHeaderCell","_ref5","_currentSortedState$s","headerKey","_useTableContext","useTableContext","toggleSort","currentSortedState","rowDensity","headerRowDensity","isChildrenString","isSortable","Boolean","sortableColumns","find","key","tabIndex","onClick","TableHeaderCell","Text","weight","color","BaseBox","sortKey","TableHeaderCellCheckbox","_ref6","isChecked","isIndeterminate","onChange","flex","Checkbox","StyledHeaderRow","HeaderRow","_ref7","$showBorderedCells","borderRightWidth","borderRightColor","borderColor","borderRightStyle","undefined","borderRight","_TableHeaderRow","_ref8","_useTableContext2","selectionType","selectedRows","totalItems","toggleAllRowsSelection","setHeaderRowDensity","showBorderedCells","isMultiSelect","isAllSelected","length","TableHeaderRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableHeader.web.js","sources":["../../../../../../src/components/Table/TableHeader.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport { Header, HeaderRow, HeaderCell } from '@table-library/react-table-library/table';\nimport { tableHeader, tableRow } from './tokens';\nimport { useTableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport type {\n TableHeaderRowProps,\n TableHeaderCellProps,\n TableBackgroundColors,\n TableProps,\n} from './types';\nimport type { CheckboxProps } from '~components/Checkbox';\nimport { Checkbox } from '~components/Checkbox';\nimport { Text } from '~components/Typography';\nimport { castWebType, makeMotionTime, makeSize, makeSpace } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport BaseBox from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport getIn from '~utils/lodashButBetter/get';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { size } from '~tokens/global';\n\nconst SortButton = styled.button(({ theme }) => ({\n cursor: 'pointer',\n border: 'none',\n padding: 0,\n margin: 0,\n borderRadius: theme.border.radius.small,\n background: 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transitionProperty: 'color, box-shadow',\n transitionDuration: castWebType(makeMotionTime(getIn(theme.motion, 'duration.quick'))),\n transitionTimingFunction: (theme.motion.easing.standard as unknown) as string,\n '&:focus-visible': getFocusRingStyles({ theme }),\n}));\n\nconst SortIcon = ({\n isSorted,\n isSortReversed,\n}: {\n isSorted: boolean;\n isSortReversed: boolean;\n}): React.ReactElement => {\n const { theme } = useTheme();\n const defaultColor = getIn(theme.colors, 'interactive.icon.gray.muted');\n const activeColor = getIn(theme.colors, 'interactive.icon.primary.subtle');\n const upArrowColor = isSorted && isSortReversed ? activeColor : defaultColor;\n const downArrowColor = isSorted && !isSortReversed ? activeColor : defaultColor;\n return (\n <SortButton {...makeAccessible({ label: 'Toggle Sort', role: 'button' })}>\n <svg width={20} height={20} fill=\"none\">\n <path\n fill={upArrowColor}\n d=\"M10.59 2.251a.817.817 0 0 0-1.18 0L5.245 6.537a.875.875 0 0 0 0 1.212.817.817 0 0 0 1.179 0L10 4.069l3.577 3.68a.817.817 0 0 0 1.179 0 .874.874 0 0 0 0-1.212L10.589 2.25Z\"\n />\n <path\n fill={downArrowColor}\n d=\"M9.41 17.749a.817.817 0 0 0 1.18 0l4.166-4.286a.874.874 0 0 0 0-1.212.817.817 0 0 0-1.179 0L10 15.931l-3.577-3.68a.817.817 0 0 0-1.179 0 .874.874 0 0 0 0 1.212l4.167 4.286Z\"\n />\n </svg>\n </SortButton>\n );\n};\n\nconst StyledHeader = styled(Header)({\n '&&&': {\n '& tr:first-child th': {\n borderTop: 'none',\n },\n },\n});\n\nconst _TableHeader = ({ children }: TableHeaderRowProps): React.ReactElement => {\n return (\n <StyledHeader {...metaAttribute({ name: MetaConstants.TableHeader })}>{children}</StyledHeader>\n );\n};\n\nconst TableHeader = assignWithoutSideEffects(_TableHeader, {\n componentId: ComponentIds.TableHeader,\n});\n\nconst StyledHeaderCell = styled(HeaderCell)<{\n $isSortable: boolean;\n $backgroundColor: TableBackgroundColors;\n $rowDensity: NonNullable<TableProps<unknown>['rowDensity']>;\n}>(({ theme, $isSortable, $backgroundColor, $rowDensity }) => ({\n '&&&': {\n height: '100%',\n backgroundColor: getIn(theme.colors, $backgroundColor),\n borderBottomWidth: makeSpace(getIn(theme.border.width, tableHeader.borderBottomAndTopWidth)),\n borderTopWidth: makeSpace(getIn(theme.border.width, tableHeader.borderBottomAndTopWidth)),\n borderBottomColor: getIn(theme.colors, tableHeader.borderBottomAndTopColor),\n borderTopColor: getIn(theme.colors, tableHeader.borderBottomAndTopColor),\n borderBottomStyle: 'solid',\n borderTopStyle: 'solid',\n cursor: $isSortable ? 'pointer' : 'auto',\n '> div': {\n backgroundColor: getIn(theme.colors, tableHeader.backgroundColor),\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '100%',\n paddingLeft: makeSpace(getIn(theme, tableRow.paddingLeft[$rowDensity])),\n paddingRight: makeSpace(getIn(theme, tableRow.paddingRight[$rowDensity])),\n minHeight: makeSize(getIn(size, tableRow.minHeight[$rowDensity])),\n },\n '&:focus-visible': getFocusRingStyles({ theme, negativeOffset: true }),\n },\n}));\n\nconst _TableHeaderCell = ({ children, headerKey }: TableHeaderCellProps): React.ReactElement => {\n const {\n toggleSort,\n currentSortedState,\n backgroundColor,\n rowDensity,\n headerRowDensity,\n } = useTableContext();\n const isChildrenString = typeof children === 'string';\n const isSortable =\n headerKey && Boolean(currentSortedState.sortableColumns?.find((key) => key === headerKey));\n return (\n <StyledHeaderCell\n tabIndex={0}\n $isSortable={isSortable}\n $backgroundColor={backgroundColor}\n $rowDensity={headerRowDensity ?? rowDensity}\n onClick={() => {\n if (isSortable) {\n toggleSort(headerKey);\n }\n }}\n {...metaAttribute({ name: MetaConstants.TableHeaderCell })}\n >\n {isChildrenString ? (\n <Text size=\"medium\" weight=\"medium\" color=\"surface.text.gray.normal\">\n {children}\n </Text>\n ) : (\n children\n )}\n {isSortable && (\n <BaseBox paddingLeft=\"spacing.2\" backgroundColor=\"transparent\">\n <SortIcon\n isSorted={currentSortedState.sortKey === headerKey}\n isSortReversed={currentSortedState.isSortReversed}\n />\n </BaseBox>\n )}\n </StyledHeaderCell>\n );\n};\n\nconst TableHeaderCell = assignWithoutSideEffects(_TableHeaderCell, {\n componentId: ComponentIds.TableHeaderCell,\n});\n\nconst TableHeaderCellCheckbox = ({\n isChecked,\n isDisabled,\n isIndeterminate,\n onChange,\n}: {\n isChecked: CheckboxProps['isChecked'];\n isDisabled: CheckboxProps['isDisabled'];\n isIndeterminate?: CheckboxProps['isIndeterminate'];\n onChange: CheckboxProps['onChange'];\n}): React.ReactElement => {\n return (\n <TableHeaderCell headerKey=\"SELECT\">\n <BaseBox display=\"flex\" alignItems=\"center\" justifyContent=\"center\" flex={1}>\n <Checkbox\n isChecked={isChecked}\n isDisabled={isDisabled}\n isIndeterminate={isIndeterminate}\n onChange={onChange}\n />\n </BaseBox>\n </TableHeaderCell>\n );\n};\n\nconst StyledHeaderRow = styled(HeaderRow)<{ $showBorderedCells: boolean }>(\n ({ theme, $showBorderedCells }) => ({\n '& th': $showBorderedCells\n ? {\n borderRightWidth: makeSpace(getIn(theme.border.width, tableRow.borderBottomWidth)),\n borderRightColor: getIn(theme.colors, tableRow.borderColor),\n borderRightStyle: 'solid',\n }\n : undefined,\n '& th:last-child ': {\n borderRight: 'none',\n },\n }),\n);\n\nconst _TableHeaderRow = ({ children, rowDensity }: TableHeaderRowProps): React.ReactElement => {\n const {\n disabledRows,\n selectionType,\n selectedRows,\n totalItems,\n toggleAllRowsSelection,\n setHeaderRowDensity,\n showBorderedCells,\n } = useTableContext();\n const isMultiSelect = selectionType === 'multiple';\n const isAllSelected = selectedRows && selectedRows.length === totalItems;\n const isIndeterminate = selectedRows && selectedRows.length > 0 && !isAllSelected;\n const isDisabled = disabledRows && disabledRows.length === totalItems;\n if (rowDensity) {\n setHeaderRowDensity(rowDensity);\n }\n return (\n <StyledHeaderRow\n role=\"rowheader\"\n {...metaAttribute({ name: MetaConstants.TableHeaderRow })}\n $showBorderedCells={showBorderedCells}\n >\n {isMultiSelect && (\n <TableHeaderCellCheckbox\n isChecked={isAllSelected}\n isDisabled={isDisabled}\n isIndeterminate={isIndeterminate}\n onChange={() => toggleAllRowsSelection()}\n />\n )}\n {children}\n </StyledHeaderRow>\n );\n};\n\nconst TableHeaderRow = assignWithoutSideEffects(_TableHeaderRow, {\n componentId: ComponentIds.TableHeaderRow,\n});\n\nexport { TableHeader, TableHeaderRow, TableHeaderCell };\n"],"names":["SortButton","styled","button","withConfig","displayName","componentId","_ref","theme","cursor","border","padding","margin","borderRadius","radius","small","background","display","alignItems","justifyContent","transitionProperty","transitionDuration","castWebType","makeMotionTime","getIn","motion","transitionTimingFunction","easing","standard","getFocusRingStyles","SortIcon","_ref2","isSorted","isSortReversed","_useTheme","useTheme","defaultColor","colors","activeColor","upArrowColor","downArrowColor","_jsx","_objectSpread","makeAccessible","label","role","children","_jsxs","width","height","fill","d","StyledHeader","Header","borderTop","_TableHeader","_ref3","metaAttribute","name","MetaConstants","TableHeader","assignWithoutSideEffects","ComponentIds","StyledHeaderCell","HeaderCell","_ref4","$isSortable","$backgroundColor","$rowDensity","backgroundColor","borderBottomWidth","makeSpace","tableHeader","borderBottomAndTopWidth","borderTopWidth","borderBottomColor","borderBottomAndTopColor","borderTopColor","borderBottomStyle","borderTopStyle","flexDirection","paddingLeft","tableRow","paddingRight","minHeight","makeSize","size","negativeOffset","_TableHeaderCell","_ref5","_currentSortedState$s","headerKey","_useTableContext","useTableContext","toggleSort","currentSortedState","rowDensity","headerRowDensity","isChildrenString","isSortable","Boolean","sortableColumns","find","key","tabIndex","onClick","TableHeaderCell","Text","weight","color","BaseBox","sortKey","TableHeaderCellCheckbox","_ref6","isChecked","isDisabled","isIndeterminate","onChange","flex","Checkbox","StyledHeaderRow","HeaderRow","_ref7","$showBorderedCells","borderRightWidth","borderRightColor","borderColor","borderRightStyle","undefined","borderRight","_TableHeaderRow","_ref8","_useTableContext2","disabledRows","selectionType","selectedRows","totalItems","toggleAllRowsSelection","setHeaderRowDensity","showBorderedCells","isMultiSelect","isAllSelected","length","TableHeaderRow"],"mappings":"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"}
|