@transferwise/components 0.0.0-experimental-9442a3d → 0.0.0-experimental-fe42ce4
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/dateInput/DateInput.js +2 -2
- package/build/dateInput/DateInput.js.map +1 -1
- package/build/dateInput/DateInput.mjs +2 -2
- package/build/dateInput/DateInput.mjs.map +1 -1
- package/build/i18n/en.json +2 -0
- package/build/i18n/en.json.js +2 -0
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +2 -0
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/index.mjs +1 -0
- package/build/index.mjs.map +1 -1
- package/build/main.css +66 -0
- package/build/moneyInputField/AmountInput.js +284 -0
- package/build/moneyInputField/AmountInput.js.map +1 -0
- package/build/moneyInputField/AmountInput.mjs +282 -0
- package/build/moneyInputField/AmountInput.mjs.map +1 -0
- package/build/moneyInputField/AnimatedNumber.js +50 -0
- package/build/moneyInputField/AnimatedNumber.js.map +1 -0
- package/build/moneyInputField/AnimatedNumber.mjs +48 -0
- package/build/moneyInputField/AnimatedNumber.mjs.map +1 -0
- package/build/moneyInputField/Chevron.js +33 -0
- package/build/moneyInputField/Chevron.js.map +1 -0
- package/build/moneyInputField/Chevron.mjs +31 -0
- package/build/moneyInputField/Chevron.mjs.map +1 -0
- package/build/moneyInputField/CurrencySelector.js +160 -0
- package/build/moneyInputField/CurrencySelector.js.map +1 -0
- package/build/moneyInputField/CurrencySelector.mjs +157 -0
- package/build/moneyInputField/CurrencySelector.mjs.map +1 -0
- package/build/moneyInputField/MoneyInputField.js +112 -0
- package/build/moneyInputField/MoneyInputField.js.map +1 -0
- package/build/moneyInputField/MoneyInputField.messages.js +17 -0
- package/build/moneyInputField/MoneyInputField.messages.js.map +1 -0
- package/build/moneyInputField/MoneyInputField.messages.mjs +13 -0
- package/build/moneyInputField/MoneyInputField.messages.mjs.map +1 -0
- package/build/moneyInputField/MoneyInputField.mjs +108 -0
- package/build/moneyInputField/MoneyInputField.mjs.map +1 -0
- package/build/moneyInputField/useFocus.js +37 -0
- package/build/moneyInputField/useFocus.js.map +1 -0
- package/build/moneyInputField/useFocus.mjs +35 -0
- package/build/moneyInputField/useFocus.mjs.map +1 -0
- package/build/moneyInputField/useInputStyle.js +71 -0
- package/build/moneyInputField/useInputStyle.js.map +1 -0
- package/build/moneyInputField/useInputStyle.mjs +69 -0
- package/build/moneyInputField/useInputStyle.mjs.map +1 -0
- package/build/moneyInputField/utils.js +87 -0
- package/build/moneyInputField/utils.js.map +1 -0
- package/build/moneyInputField/utils.mjs +78 -0
- package/build/moneyInputField/utils.mjs.map +1 -0
- package/build/phoneNumberInput/PhoneNumberInput.js +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
- package/build/styles/inputs/Input.css +5 -0
- package/build/styles/inputs/TextArea.css +5 -0
- package/build/styles/main.css +66 -0
- package/build/styles/moneyInputField/AmountInput.css +32 -0
- package/build/styles/moneyInputField/Chevron.css +12 -0
- package/build/styles/moneyInputField/CurrencySelector.css +6 -0
- package/build/styles/moneyInputField/MoneyInputField.css +61 -0
- package/build/types/index.d.ts +2 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/moneyInputField/AmountInput.d.ts +13 -0
- package/build/types/moneyInputField/AmountInput.d.ts.map +1 -0
- package/build/types/moneyInputField/AnimatedNumber.d.ts +9 -0
- package/build/types/moneyInputField/AnimatedNumber.d.ts.map +1 -0
- package/build/types/moneyInputField/Chevron.d.ts +6 -0
- package/build/types/moneyInputField/Chevron.d.ts.map +1 -0
- package/build/types/moneyInputField/CurrencySelector.d.ts +30 -0
- package/build/types/moneyInputField/CurrencySelector.d.ts.map +1 -0
- package/build/types/moneyInputField/MoneyInputField.d.ts +22 -0
- package/build/types/moneyInputField/MoneyInputField.d.ts.map +1 -0
- package/build/types/moneyInputField/MoneyInputField.messages.d.ts +12 -0
- package/build/types/moneyInputField/MoneyInputField.messages.d.ts.map +1 -0
- package/build/types/moneyInputField/index.d.ts +3 -0
- package/build/types/moneyInputField/index.d.ts.map +1 -0
- package/build/types/moneyInputField/useFocus.d.ts +7 -0
- package/build/types/moneyInputField/useFocus.d.ts.map +1 -0
- package/build/types/moneyInputField/useInputStyle.d.ts +10 -0
- package/build/types/moneyInputField/useInputStyle.d.ts.map +1 -0
- package/build/types/moneyInputField/useSelectionRange.d.ts +10 -0
- package/build/types/moneyInputField/useSelectionRange.d.ts.map +1 -0
- package/build/types/moneyInputField/utils.d.ts +22 -0
- package/build/types/moneyInputField/utils.d.ts.map +1 -0
- package/build/types/test-utils/index.d.ts +4 -0
- package/build/types/test-utils/index.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/DisabledComponents.story.tsx +156 -0
- package/src/dateInput/DateInput.tsx +2 -2
- package/src/i18n/en.json +2 -0
- package/src/index.ts +2 -0
- package/src/inputs/Input.css +5 -0
- package/src/inputs/TextArea.css +5 -0
- package/src/inputs/_common.less +5 -0
- package/src/main.css +66 -0
- package/src/main.less +1 -0
- package/src/moneyInputField/AmountInput.css +32 -0
- package/src/moneyInputField/AmountInput.less +43 -0
- package/src/moneyInputField/AmountInput.tsx +355 -0
- package/src/moneyInputField/AnimatedNumber.tsx +40 -0
- package/src/moneyInputField/Chevron.css +12 -0
- package/src/moneyInputField/Chevron.less +13 -0
- package/src/moneyInputField/Chevron.tsx +35 -0
- package/src/moneyInputField/CurrencySelector.css +6 -0
- package/src/moneyInputField/CurrencySelector.less +7 -0
- package/src/moneyInputField/CurrencySelector.tsx +219 -0
- package/src/moneyInputField/MoneyInputField.css +61 -0
- package/src/moneyInputField/MoneyInputField.less +16 -0
- package/src/moneyInputField/MoneyInputField.messages.ts +13 -0
- package/src/moneyInputField/MoneyInputField.story.tsx +193 -0
- package/src/moneyInputField/MoneyInputField.tsx +118 -0
- package/src/moneyInputField/index.ts +2 -0
- package/src/moneyInputField/useFocus.ts +35 -0
- package/src/moneyInputField/useInputStyle.ts +85 -0
- package/src/moneyInputField/useSelectionRange.ts +23 -0
- package/src/moneyInputField/utils.spec.ts +114 -0
- package/src/moneyInputField/utils.ts +116 -0
- package/src/phoneNumberInput/PhoneNumberInput.tsx +1 -1
- package/src/ssr.spec.tsx +1 -0
|
@@ -260,7 +260,7 @@ const DateInput = ({
|
|
|
260
260
|
type: typography.Typography.BODY_DEFAULT,
|
|
261
261
|
children: dayLabel
|
|
262
262
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
263
|
-
className: `input-group input-group-${size$1}`,
|
|
263
|
+
className: `input-group input-group-${size$1} ${disabled ? 'disabled' : ''}`,
|
|
264
264
|
children: /*#__PURE__*/jsxRuntime.jsx(Input.Input, {
|
|
265
265
|
ref: dayRef,
|
|
266
266
|
id: `${id}:day`,
|
|
@@ -289,7 +289,7 @@ const DateInput = ({
|
|
|
289
289
|
type: typography.Typography.BODY_DEFAULT,
|
|
290
290
|
children: yearLabel
|
|
291
291
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
292
|
-
className: `input-group input-group-${size$1}`,
|
|
292
|
+
className: `input-group input-group-${size$1} ${disabled ? 'disabled' : ''}`,
|
|
293
293
|
children: /*#__PURE__*/jsxRuntime.jsx(Input.Input, {
|
|
294
294
|
ref: yearRef,
|
|
295
295
|
id: `${id}:year`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.js","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n disabled?: boolean;\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n monthFormat?: `${MonthFormat}`;\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n dayLabel ||= formatMessage(messages.dayLabel);\n monthLabel ||= formatMessage(messages.monthLabel);\n yearLabel ||= formatMessage(messages.yearLabel);\n placeholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{monthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={placeholders?.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{dayLabel}</Body>\n <div className={`input-group input-group-${size}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{yearLabel}</Body>\n <div className={`input-group input-group-${size}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={placeholders?.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","messages","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateInput.js","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n disabled?: boolean;\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n monthFormat?: `${MonthFormat}`;\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n dayLabel ||= formatMessage(messages.dayLabel);\n monthLabel ||= formatMessage(messages.monthLabel);\n yearLabel ||= formatMessage(messages.yearLabel);\n placeholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{monthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={placeholders?.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{dayLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{yearLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={placeholders?.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","messages","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
|
@@ -256,7 +256,7 @@ const DateInput = ({
|
|
|
256
256
|
type: Typography.BODY_DEFAULT,
|
|
257
257
|
children: dayLabel
|
|
258
258
|
}), /*#__PURE__*/jsx("div", {
|
|
259
|
-
className: `input-group input-group-${size}`,
|
|
259
|
+
className: `input-group input-group-${size} ${disabled ? 'disabled' : ''}`,
|
|
260
260
|
children: /*#__PURE__*/jsx(Input, {
|
|
261
261
|
ref: dayRef,
|
|
262
262
|
id: `${id}:day`,
|
|
@@ -285,7 +285,7 @@ const DateInput = ({
|
|
|
285
285
|
type: Typography.BODY_DEFAULT,
|
|
286
286
|
children: yearLabel
|
|
287
287
|
}), /*#__PURE__*/jsx("div", {
|
|
288
|
-
className: `input-group input-group-${size}`,
|
|
288
|
+
className: `input-group input-group-${size} ${disabled ? 'disabled' : ''}`,
|
|
289
289
|
children: /*#__PURE__*/jsx(Input, {
|
|
290
290
|
ref: yearRef,
|
|
291
291
|
id: `${id}:year`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.mjs","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n disabled?: boolean;\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n monthFormat?: `${MonthFormat}`;\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n dayLabel ||= formatMessage(messages.dayLabel);\n monthLabel ||= formatMessage(messages.monthLabel);\n yearLabel ||= formatMessage(messages.yearLabel);\n placeholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{monthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={placeholders?.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{dayLabel}</Body>\n <div className={`input-group input-group-${size}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{yearLabel}</Body>\n <div className={`input-group input-group-${size}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={placeholders?.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","messages","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateInput.mjs","sources":["../../src/dateInput/DateInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport Body from '../body';\nimport { Input } from '../inputs/Input';\nimport {\n SelectInput,\n SelectInputOptionContent,\n type SelectInputProps,\n} from '../inputs/SelectInput';\nimport {\n DateMode,\n MonthFormat,\n Size,\n SizeLarge,\n SizeMedium,\n SizeSmall,\n Typography,\n} from '../common';\nimport { MDY, YMD, getMonthNames, isDateValid, isMonthAndYearFormat } from '../common/dateUtils';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport messages from './DateInput.messages';\nimport { convertToLocalMidnight } from './utils';\n\nexport interface DateInputProps {\n /** @deprecated Use `Field` wrapper or the `aria-labelledby` attribute instead. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n disabled?: boolean;\n size?: SizeSmall | SizeMedium | SizeLarge;\n value?: Date | string;\n onChange: (value: string | null) => void;\n onFocus?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement | HTMLFieldSetElement>;\n dayLabel?: string;\n dayAutoComplete?: string;\n monthLabel?: string;\n yearLabel?: string;\n yearAutoComplete?: string;\n monthFormat?: `${MonthFormat}`;\n mode?: `${DateMode}`;\n placeholders?: {\n day?: string;\n month?: string;\n year?: string;\n };\n id?: string;\n selectProps?: Partial<SelectInputProps<number | null>>;\n}\n\n/**\n * To be passed to SelectInput's parentId prop for correct blur handling.\n */\nconst DATE_INPUT_PARENT_ID = 'dateInput';\n\nconst DateInput = ({\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-label': ariaLabel,\n disabled = false,\n size = Size.MEDIUM,\n value,\n dayLabel,\n dayAutoComplete,\n monthLabel,\n yearLabel,\n yearAutoComplete,\n monthFormat = MonthFormat.LONG,\n mode = DateMode.DAY_MONTH_YEAR,\n onChange,\n onFocus,\n onBlur,\n placeholders,\n id: idProp,\n selectProps = {},\n}: DateInputProps) => {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const dayRef = useRef<HTMLInputElement>(null);\n const monthRef = useRef<HTMLButtonElement>(null);\n const yearRef = useRef<HTMLInputElement>(null);\n const id = idProp ?? inputAttributes.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const getDateObject = (): Date | undefined => {\n if (value && isDateValid(value)) {\n return typeof value === 'string' ? convertToLocalMidnight(value) : value;\n }\n return undefined;\n };\n\n const getInitialDate = (unit: 'year' | 'month' | 'day'): number | null => {\n if (value && isDateValid(value)) {\n const dateObject = getDateObject();\n\n if (typeof value === 'string' && isMonthAndYearFormat(value) && unit === 'day') {\n return null;\n }\n\n if (dateObject !== undefined) {\n switch (unit) {\n case 'year':\n return dateObject.getFullYear();\n case 'month':\n return dateObject.getMonth();\n case 'day':\n return dateObject.getDate();\n default:\n return null;\n }\n }\n }\n return null;\n };\n\n const [day, setDay] = useState(() => getInitialDate('day'));\n const [displayDay, setDisplayDay] = useState(day?.toString());\n const [month, setMonth] = useState(() => getInitialDate('month'));\n const [year, setYear] = useState(() => getInitialDate('year'));\n const [displayYear, setDisplayYear] = useState(year?.toString());\n const [lastBroadcastedValue, setLastBroadcastedValue] = useState<Date | null | undefined>(\n getDateObject,\n );\n const monthNames = getMonthNames(locale, monthFormat);\n\n const monthYearOnly = mode === DateMode.MONTH_YEAR;\n const monthBeforeDay = MDY.has(locale);\n const yearFirst = YMD.has(locale);\n\n dayLabel ||= formatMessage(messages.dayLabel);\n monthLabel ||= formatMessage(messages.monthLabel);\n yearLabel ||= formatMessage(messages.yearLabel);\n placeholders = {\n day: placeholders?.day || formatMessage(messages.dayPlaceholder),\n month: placeholders?.month || formatMessage(messages.monthLabel),\n year: placeholders?.year || formatMessage(messages.yearPlaceholder),\n };\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n // Not the best way to do this, but we're forced to recreate the native Label-click behavior\n if (monthYearOnly || monthBeforeDay) {\n monthRef.current?.click();\n } else if (yearFirst) {\n yearRef.current?.focus();\n } else {\n dayRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, id, monthBeforeDay, monthYearOnly, yearFirst]);\n\n const getDateAsString = (date: Date) => {\n if (!isDateValid(date)) {\n return '';\n }\n switch (mode) {\n case DateMode.MONTH_YEAR:\n return [date.getFullYear(), `0${date.getMonth() + 1}`.slice(-2)].join('-');\n case DateMode.DAY_MONTH_YEAR:\n default:\n return [\n date.getFullYear(),\n `0${date.getMonth() + 1}`.slice(-2),\n `0${date.getDate()}`.slice(-2),\n ].join('-');\n }\n };\n\n const getSelectElement = () => {\n return (\n <label className=\"d-flex flex-column\">\n <Body type={Typography.BODY_DEFAULT}>{monthLabel}</Body>\n <SelectInput\n triggerRef={monthRef}\n id={`${id}:month`}\n parentId={DATE_INPUT_PARENT_ID}\n name=\"month\"\n disabled={disabled}\n placeholder={placeholders?.month}\n items={Array.from({ length: 12 }, (_, index) => ({ type: 'option', value: index }))}\n size={size}\n value={month}\n renderValue={(selectedValue) => (\n <SelectInputOptionContent title={monthNames[selectedValue]} />\n )}\n onChange={(selectedValue) => handleMonthChange(selectedValue)}\n {...selectProps}\n />\n </label>\n );\n };\n\n const isDayValid = (newDay: number, newMonth: number, newYear: number) => {\n const maxDay = new Date(newYear, newMonth + 1, 0).getDate();\n return newDay <= maxDay;\n };\n\n const handleInternalValue = (newDay = day, newMonth = month, newYear = year) => {\n if (newDay == null || newDay === 0 || newMonth == null || newYear == null || newYear === 0) {\n broadcastNewValue(null);\n return;\n }\n if (!isDayValid(newDay, newMonth, newYear)) {\n broadcastNewValue(null);\n return;\n }\n\n const dateValue = new Date(newYear, newMonth, newDay);\n if (newYear < 100) {\n dateValue.setFullYear(newYear);\n }\n\n if (!isDateValid(dateValue)) {\n broadcastNewValue(null);\n return;\n }\n\n if (mode === DateMode.MONTH_YEAR) {\n if (newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n } else if (newDay !== day || newMonth !== month || newYear !== year) {\n broadcastNewValue(dateValue);\n }\n };\n\n const handleDayChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newDayString = event.target.value.replace(/\\D/g, '');\n const newDayNumber = Number.parseInt(newDayString, 10);\n\n setDay(newDayNumber);\n setDisplayDay(newDayString);\n handleInternalValue(newDayNumber, month, year);\n };\n\n const handleMonthChange = (selectedMonth: number | null) => {\n if (selectedMonth === null) {\n setMonth(null);\n handleInternalValue(day, null, year);\n return;\n }\n setMonth(selectedMonth);\n handleInternalValue(day, selectedMonth, year);\n };\n\n const handleYearChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newYearString = event.target.value.replace(/\\D/g, '');\n const newYearNumber = Number.parseInt(newYearString, 10);\n\n if (newYearString.length >= 4 && newYearString.length <= 6) {\n setYear(newYearNumber);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, newYearNumber);\n } else {\n setYear(null);\n setDisplayYear(newYearString);\n handleInternalValue(day, month, null);\n }\n };\n\n const broadcastNewValue = (newValue: Date | null) => {\n if (newValue !== lastBroadcastedValue) {\n setLastBroadcastedValue(newValue);\n onChange(newValue != null ? getDateAsString(newValue) : null);\n }\n };\n\n const monthWidth = clsx({\n 'col-sm-8 tw-date--month': monthYearOnly,\n 'col-sm-5 tw-date--month': !monthYearOnly,\n });\n\n const getMonth = () => {\n return <div className={monthWidth}>{getSelectElement()}</div>;\n };\n\n const getDay = () => {\n return (\n <div className=\"col-sm-3 tw-date--day\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{dayLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={dayRef}\n id={`${id}:day`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"day\"\n autoComplete={dayAutoComplete}\n value={displayDay || ''}\n placeholder={placeholders?.day}\n disabled={disabled}\n min={1}\n max={31}\n maxLength={2}\n onChange={(event) => handleDayChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n const getYear = () => {\n return (\n <div className=\"col-sm-4 tw-date--year\">\n <label>\n <Body type={Typography.BODY_DEFAULT}>{yearLabel}</Body>\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={yearRef}\n id={`${id}:year`}\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n name=\"year\"\n autoComplete={yearAutoComplete}\n placeholder={placeholders?.year}\n value={displayYear || ''}\n disabled={disabled}\n min={0}\n max={9999}\n maxLength={6}\n onChange={(event) => handleYearChange(event)}\n />\n </div>\n </label>\n </div>\n );\n };\n\n return (\n <fieldset\n id={id}\n className=\"tw-date\"\n aria-describedby={inputAttributes['aria-describedby']}\n aria-invalid={inputAttributes['aria-invalid']}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n data-wds-dateinput=\"\"\n onFocus={(event) =>\n shouldPropagateOnFocus(event) ? onFocus?.(event) : event.stopPropagation()\n }\n onBlur={(event) => (shouldPropagateOnBlur(event) ? onBlur?.(event) : event.stopPropagation())}\n >\n <div className=\"row\">\n {(() => {\n if (monthYearOnly) {\n return (\n <>\n {!yearFirst && getMonth()}\n {getYear()}\n {yearFirst && getMonth()}\n </>\n );\n }\n if (monthBeforeDay) {\n return (\n <>\n {getMonth()}\n {getDay()}\n {getYear()}\n </>\n );\n }\n if (yearFirst) {\n return (\n <>\n {getYear()}\n {getMonth()}\n {getDay()}\n </>\n );\n }\n return (\n <>\n {getDay()}\n {getMonth()}\n {getYear()}\n </>\n );\n })()}\n </div>\n </fieldset>\n );\n};\n\n// Should only propagate if the relatedTarget is not part of this DateInput component.\nfunction shouldPropagateOnFocus({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n return blurredElementParent !== focusedElementParent;\n}\n\n// Should only propagate if the focus-gaining element is not part\n// of this DateInput component or the (dropdown) of the month select.\nfunction shouldPropagateOnBlur({\n target,\n relatedTarget,\n}: Pick<React.FocusEvent, 'target' | 'relatedTarget'>) {\n const blurredElementParent = target.closest('[data-wds-dateinput]');\n const focusedElementParent = relatedTarget?.closest('[data-wds-dateinput]');\n\n return (\n blurredElementParent !== focusedElementParent &&\n !target?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`) &&\n !relatedTarget?.closest(`[data-wds-parent=\"${DATE_INPUT_PARENT_ID}\"]`)\n );\n}\n\nexport default DateInput;\n"],"names":["DATE_INPUT_PARENT_ID","DateInput","ariaLabelledByProp","ariaLabel","disabled","size","Size","MEDIUM","value","dayLabel","dayAutoComplete","monthLabel","yearLabel","yearAutoComplete","monthFormat","MonthFormat","LONG","mode","DateMode","DAY_MONTH_YEAR","onChange","onFocus","onBlur","placeholders","id","idProp","selectProps","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","dayRef","useRef","monthRef","yearRef","ariaLabelledBy","locale","formatMessage","useIntl","getDateObject","isDateValid","convertToLocalMidnight","undefined","getInitialDate","unit","dateObject","isMonthAndYearFormat","getFullYear","getMonth","getDate","day","setDay","useState","displayDay","setDisplayDay","toString","month","setMonth","year","setYear","displayYear","setDisplayYear","lastBroadcastedValue","setLastBroadcastedValue","monthNames","getMonthNames","monthYearOnly","MONTH_YEAR","monthBeforeDay","MDY","has","yearFirst","YMD","messages","dayPlaceholder","yearPlaceholder","useEffect","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","getDateAsString","date","slice","join","getSelectElement","_jsxs","className","children","_jsx","Body","type","Typography","BODY_DEFAULT","SelectInput","triggerRef","parentId","name","placeholder","items","Array","from","length","_","index","renderValue","selectedValue","SelectInputOptionContent","title","handleMonthChange","isDayValid","newDay","newMonth","newYear","maxDay","Date","handleInternalValue","broadcastNewValue","dateValue","setFullYear","handleDayChange","event","newDayString","target","replace","newDayNumber","Number","parseInt","selectedMonth","handleYearChange","newYearString","newYearNumber","newValue","monthWidth","clsx","getDay","Input","ref","inputMode","pattern","autoComplete","min","max","maxLength","getYear","shouldPropagateOnFocus","stopPropagation","shouldPropagateOnBlur","_Fragment","relatedTarget","blurredElementParent","closest","focusedElementParent"],"mappings":"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"}
|
package/build/i18n/en.json
CHANGED
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
"neptune.MoneyInput.Select.placeholder": "Select an option...",
|
|
24
24
|
"neptune.MoneyInput.Select.searchPlaceholder": "Type a currency or country",
|
|
25
25
|
"neptune.MoneyInput.Select.selectCurrencyLabel": "Select currency",
|
|
26
|
+
"neptune.MoneyInputField.currency.search.placeholder": "Type a currency / country",
|
|
27
|
+
"neptune.MoneyInputField.currency.select.currency": "Select currency",
|
|
26
28
|
"neptune.PhoneNumberInput.SelectInput.placeholder": "Select an option...",
|
|
27
29
|
"neptune.PhoneNumberInput.countryCodeLabel": "Country code",
|
|
28
30
|
"neptune.PhoneNumberInput.phoneNumberLabel": "Phone number",
|
package/build/i18n/en.json.js
CHANGED
|
@@ -27,6 +27,8 @@ var en = {
|
|
|
27
27
|
"neptune.MoneyInput.Select.placeholder": "Select an option...",
|
|
28
28
|
"neptune.MoneyInput.Select.searchPlaceholder": "Type a currency or country",
|
|
29
29
|
"neptune.MoneyInput.Select.selectCurrencyLabel": "Select currency",
|
|
30
|
+
"neptune.MoneyInputField.currency.search.placeholder": "Type a currency / country",
|
|
31
|
+
"neptune.MoneyInputField.currency.select.currency": "Select currency",
|
|
30
32
|
"neptune.PhoneNumberInput.SelectInput.placeholder": "Select an option...",
|
|
31
33
|
"neptune.PhoneNumberInput.countryCodeLabel": "Country code",
|
|
32
34
|
"neptune.PhoneNumberInput.phoneNumberLabel": "Phone number",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/i18n/en.json.mjs
CHANGED
|
@@ -23,6 +23,8 @@ var en = {
|
|
|
23
23
|
"neptune.MoneyInput.Select.placeholder": "Select an option...",
|
|
24
24
|
"neptune.MoneyInput.Select.searchPlaceholder": "Type a currency or country",
|
|
25
25
|
"neptune.MoneyInput.Select.selectCurrencyLabel": "Select currency",
|
|
26
|
+
"neptune.MoneyInputField.currency.search.placeholder": "Type a currency / country",
|
|
27
|
+
"neptune.MoneyInputField.currency.select.currency": "Select currency",
|
|
26
28
|
"neptune.PhoneNumberInput.SelectInput.placeholder": "Select an option...",
|
|
27
29
|
"neptune.PhoneNumberInput.countryCodeLabel": "Country code",
|
|
28
30
|
"neptune.PhoneNumberInput.phoneNumberLabel": "Phone number",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/index.js
CHANGED
|
@@ -67,6 +67,7 @@ var Markdown = require('./markdown/Markdown.js');
|
|
|
67
67
|
var Modal = require('./modal/Modal.js');
|
|
68
68
|
var Money = require('./money/Money.js');
|
|
69
69
|
var MoneyInput = require('./moneyInput/MoneyInput.js');
|
|
70
|
+
var MoneyInputField = require('./moneyInputField/MoneyInputField.js');
|
|
70
71
|
var NavigationOption = require('./navigationOption/NavigationOption.js');
|
|
71
72
|
var NavigationOptionsList = require('./navigationOptionsList/NavigationOptionsList.js');
|
|
72
73
|
var Nudge = require('./nudge/Nudge.js');
|
|
@@ -229,6 +230,7 @@ exports.Markdown = Markdown.default;
|
|
|
229
230
|
exports.Modal = Modal.default;
|
|
230
231
|
exports.Money = Money.default;
|
|
231
232
|
exports.MoneyInput = MoneyInput.default;
|
|
233
|
+
exports.MoneyInputField = MoneyInputField.default;
|
|
232
234
|
exports.NavigationOption = NavigationOption.default;
|
|
233
235
|
exports.NavigationOptionsList = NavigationOptionsList.default;
|
|
234
236
|
exports.Nudge = Nudge.default;
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/index.mjs
CHANGED
|
@@ -65,6 +65,7 @@ export { default as Markdown } from './markdown/Markdown.mjs';
|
|
|
65
65
|
export { default as Modal } from './modal/Modal.mjs';
|
|
66
66
|
export { default as Money } from './money/Money.mjs';
|
|
67
67
|
export { default as MoneyInput } from './moneyInput/MoneyInput.mjs';
|
|
68
|
+
export { default as MoneyInputField } from './moneyInputField/MoneyInputField.mjs';
|
|
68
69
|
export { default as NavigationOption } from './navigationOption/NavigationOption.mjs';
|
|
69
70
|
export { default as NavigationOptionsList } from './navigationOptionsList/NavigationOptionsList.mjs';
|
|
70
71
|
export { default as Nudge } from './nudge/Nudge.mjs';
|
package/build/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/main.css
CHANGED
|
@@ -2660,6 +2660,11 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
|
|
|
2660
2660
|
transition-duration: 300ms;
|
|
2661
2661
|
/* TODO: Remove these overrides once `.form-control` isn’t used anymore */
|
|
2662
2662
|
}
|
|
2663
|
+
.disabled .np-form-control,
|
|
2664
|
+
:disabled .np-form-control {
|
|
2665
|
+
opacity: 1;
|
|
2666
|
+
opacity: initial;
|
|
2667
|
+
}
|
|
2663
2668
|
.np-form-control:focus-visible {
|
|
2664
2669
|
outline: none;
|
|
2665
2670
|
}
|
|
@@ -4436,6 +4441,67 @@ button.np-link {
|
|
|
4436
4441
|
box-shadow: inset 0 0 0 1px #c9cbce !important;
|
|
4437
4442
|
box-shadow: inset 0 0 0 1px var(--color-interactive-secondary) !important;
|
|
4438
4443
|
}
|
|
4444
|
+
.wds-amount-input-container {
|
|
4445
|
+
width: 100%;
|
|
4446
|
+
}
|
|
4447
|
+
.wds-amount-input-input-container {
|
|
4448
|
+
display: flex;
|
|
4449
|
+
justify-content: right;
|
|
4450
|
+
width: 100%;
|
|
4451
|
+
transition: font-size 0.4s cubic-bezier(0.3, 0, 0.1, 1), height 0.4s cubic-bezier(0.3, 0, 0.1, 1), margin-top 0.4s cubic-bezier(0.3, 0, 0.1, 1), color 0.4s ease;
|
|
4452
|
+
color: var(--color-interactive-primary);
|
|
4453
|
+
overflow: hidden;
|
|
4454
|
+
margin-bottom: 0 !important;
|
|
4455
|
+
}
|
|
4456
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4457
|
+
.wds-amount-input-input-container {
|
|
4458
|
+
transition: none;
|
|
4459
|
+
}
|
|
4460
|
+
}
|
|
4461
|
+
.wds-amount-input-input {
|
|
4462
|
+
border: none;
|
|
4463
|
+
outline: none;
|
|
4464
|
+
flex-grow: 1;
|
|
4465
|
+
text-align: right;
|
|
4466
|
+
background-color: transparent;
|
|
4467
|
+
}
|
|
4468
|
+
.wds-amount-input-input:focus-visible {
|
|
4469
|
+
outline: none;
|
|
4470
|
+
}
|
|
4471
|
+
.wds-amount-input-placeholder {
|
|
4472
|
+
flex-grow: 0;
|
|
4473
|
+
display: flex;
|
|
4474
|
+
align-items: center;
|
|
4475
|
+
}
|
|
4476
|
+
.wds-currency-selector:disabled {
|
|
4477
|
+
opacity: 1 !important;
|
|
4478
|
+
cursor: auto !important;
|
|
4479
|
+
cursor: initial !important;
|
|
4480
|
+
mix-blend-mode: initial !important;
|
|
4481
|
+
}
|
|
4482
|
+
.wds-chevron-container {
|
|
4483
|
+
width: 32px;
|
|
4484
|
+
width: var(--size-32);
|
|
4485
|
+
overflow: hidden;
|
|
4486
|
+
color: var(--color-interactive-primary);
|
|
4487
|
+
margin-left: 8px;
|
|
4488
|
+
margin-left: var(--size-8);
|
|
4489
|
+
transition: width 0.3s ease;
|
|
4490
|
+
}
|
|
4491
|
+
.wds-chevron-hidden {
|
|
4492
|
+
width: 0;
|
|
4493
|
+
}
|
|
4494
|
+
.wds-money-input-field {
|
|
4495
|
+
display: flex;
|
|
4496
|
+
}
|
|
4497
|
+
.wds-money-input-field-currency-selector {
|
|
4498
|
+
flex-shrink: 0;
|
|
4499
|
+
margin-right: 24px;
|
|
4500
|
+
margin-right: var(--size-24);
|
|
4501
|
+
}
|
|
4502
|
+
.wds-money-input-field-chevron {
|
|
4503
|
+
transform: translateY(-5%);
|
|
4504
|
+
}
|
|
4439
4505
|
.np-navigation-option {
|
|
4440
4506
|
-webkit-text-decoration: none;
|
|
4441
4507
|
text-decoration: none;
|