@elliemae/ds-form-date-time-picker 3.3.0 → 3.3.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/ControlledDateTimePicker.js +0 -1
- package/dist/esm/ControlledDateTimePicker.js.map +1 -1
- package/dist/esm/ControlledDateTimePickerCTX.js +0 -1
- package/dist/esm/ControlledDateTimePickerCTX.js.map +1 -1
- package/dist/esm/ControlledDateTimePickerDatatestid.js +0 -1
- package/dist/esm/ControlledDateTimePickerDatatestid.js.map +1 -1
- package/dist/esm/ControlledDateTimePickerTypes.js +0 -1
- package/dist/esm/ControlledDateTimePickerTypes.js.map +1 -1
- package/dist/esm/config/useChangeHandlers.js +0 -1
- package/dist/esm/config/useChangeHandlers.js.map +1 -1
- package/dist/esm/config/useControlledDateTimePicker.js +0 -1
- package/dist/esm/config/useControlledDateTimePicker.js.map +1 -1
- package/dist/esm/config/useFocusTracker.js +0 -1
- package/dist/esm/config/useFocusTracker.js.map +1 -1
- package/dist/esm/config/useGetDestructuredValues.js +0 -1
- package/dist/esm/config/useGetDestructuredValues.js.map +1 -1
- package/dist/esm/config/useGetFlags.js +0 -1
- package/dist/esm/config/useGetFlags.js.map +1 -1
- package/dist/esm/config/useGetPropsBasedOnType.js +0 -1
- package/dist/esm/config/useGetPropsBasedOnType.js.map +1 -1
- package/dist/esm/config/useGetPropsWithDefault.js +0 -1
- package/dist/esm/config/useGetPropsWithDefault.js.map +1 -1
- package/dist/esm/config/useGetReferences.js +0 -1
- package/dist/esm/config/useGetReferences.js.map +1 -1
- package/dist/esm/config/useGlobalKeyHandlers.js +0 -1
- package/dist/esm/config/useGlobalKeyHandlers.js.map +1 -1
- package/dist/esm/config/useRelevantValueFromProps.js +0 -1
- package/dist/esm/config/useRelevantValueFromProps.js.map +1 -1
- package/dist/esm/config/useValidateProps.js +0 -1
- package/dist/esm/config/useValidateProps.js.map +1 -1
- package/dist/esm/exported-related/theming.js +0 -1
- package/dist/esm/exported-related/theming.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parts/ClearButton/ClearButton.js +0 -1
- package/dist/esm/parts/ClearButton/ClearButton.js.map +1 -1
- package/dist/esm/parts/ClearButton/useClearButton.js +0 -1
- package/dist/esm/parts/ClearButton/useClearButton.js.map +1 -1
- package/dist/esm/parts/ControlledDateTimePickerContent.js +0 -1
- package/dist/esm/parts/ControlledDateTimePickerContent.js.map +1 -1
- package/dist/esm/parts/DateInputs/DDInput.js +0 -1
- package/dist/esm/parts/DateInputs/DDInput.js.map +1 -1
- package/dist/esm/parts/DateInputs/DateInputs.js +0 -1
- package/dist/esm/parts/DateInputs/DateInputs.js.map +1 -1
- package/dist/esm/parts/DateInputs/MMInput.js +0 -1
- package/dist/esm/parts/DateInputs/MMInput.js.map +1 -1
- package/dist/esm/parts/DateInputs/YYYYInput.js +0 -1
- package/dist/esm/parts/DateInputs/YYYYInput.js.map +1 -1
- package/dist/esm/parts/DateInputs/useDateInputs.js +0 -1
- package/dist/esm/parts/DateInputs/useDateInputs.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/Calendar.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/Calendar.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarBody.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarBody.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarContent.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarContent.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarContext.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarContext.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarDaysList.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarDaysList.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarFooter.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarFooter.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarHead.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarHead.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarIconTrigger.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarIconTrigger.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarMonthDays.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarMonthDays.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarWeekDays.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarWeekDays.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarWrapper.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/CalendarWrapper.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/Day.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/Day.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/Styleds.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/Styleds.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/useConfigCalendarCTX.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/useConfigCalendarCTX.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/useFocusLogic.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/useFocusLogic.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/useKeyboardHandlers.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/useKeyboardHandlers.js.map +1 -1
- package/dist/esm/parts/Pickers/Calendar/usePopperTriggerLogic.js +0 -1
- package/dist/esm/parts/Pickers/Calendar/usePopperTriggerLogic.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/Styleds.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/Styleds.js.map +1 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +0 -1
- package/dist/esm/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js.map +1 -1
- package/dist/esm/parts/Pickers/PickersIcons.js +0 -1
- package/dist/esm/parts/Pickers/PickersIcons.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/HoursList.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/HoursList.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/Styleds.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/Styleds.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheel.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheel.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelContent.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelContent.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelContext.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelContext.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelFooter.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelFooter.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelWrapper.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/TimeWheelWrapper.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/useKeyboardHandlers.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/useKeyboardHandlers.js.map +1 -1
- package/dist/esm/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +0 -1
- package/dist/esm/parts/Pickers/TimeWheel/usePopperTriggerLogic.js.map +1 -1
- package/dist/esm/parts/Styleds.js +0 -1
- package/dist/esm/parts/Styleds.js.map +1 -1
- package/dist/esm/parts/TimeInputs/HHInput.js +0 -1
- package/dist/esm/parts/TimeInputs/HHInput.js.map +1 -1
- package/dist/esm/parts/TimeInputs/MeridiemInput.js +0 -1
- package/dist/esm/parts/TimeInputs/MeridiemInput.js.map +1 -1
- package/dist/esm/parts/TimeInputs/MinutesInput.js +0 -1
- package/dist/esm/parts/TimeInputs/MinutesInput.js.map +1 -1
- package/dist/esm/parts/TimeInputs/TimeInputs.js +0 -1
- package/dist/esm/parts/TimeInputs/TimeInputs.js.map +1 -1
- package/dist/esm/parts/TimeInputs/useTimeInputs.js +0 -1
- package/dist/esm/parts/TimeInputs/useTimeInputs.js.map +1 -1
- package/dist/esm/parts/config.js +0 -1
- package/dist/esm/parts/config.js.map +1 -1
- package/dist/esm/propTypes.js +0 -1
- package/dist/esm/propTypes.js.map +1 -1
- package/dist/esm/sharedTypes.js +0 -1
- package/dist/esm/sharedTypes.js.map +1 -1
- package/dist/esm/utils/constants.js +0 -1
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/dateHelpers.js +0 -1
- package/dist/esm/utils/dateHelpers.js.map +1 -1
- package/dist/esm/utils/dateTimeHelpers.js +0 -1
- package/dist/esm/utils/dateTimeHelpers.js.map +1 -1
- package/dist/esm/utils/hooks/useGetDayFromDateString.js +0 -1
- package/dist/esm/utils/hooks/useGetDayFromDateString.js.map +1 -1
- package/dist/esm/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +0 -1
- package/dist/esm/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js.map +1 -1
- package/dist/esm/utils/hooks/useGetStartingFocusedDay.js +0 -1
- package/dist/esm/utils/hooks/useGetStartingFocusedDay.js.map +1 -1
- package/dist/esm/utils/hooks/useOnClickOutside.js +0 -1
- package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
- package/dist/esm/utils/numberHelpers.js +0 -1
- package/dist/esm/utils/numberHelpers.js.map +1 -1
- package/dist/esm/utils/stringHelpers.js +0 -1
- package/dist/esm/utils/stringHelpers.js.map +1 -1
- package/dist/esm/utils/timeHelpers.js +0 -1
- package/dist/esm/utils/timeHelpers.js.map +1 -1
- package/dist/esm/utils/typeGuards.js +0 -1
- package/dist/esm/utils/typeGuards.js.map +1 -1
- package/package.json +8 -8
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useContext, useMemo } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport { deconstructValuesFromDateString } from '../stringHelpers';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\n\nexport const useGetMonthYearFromDateStringOrEmptyStartingMonth = (): {\n year: number;\n month: DSControlledDateTimePickerInternalsT.DateMonth;\n} => {\n const { dateStringFromProps, emptyPickerStartingMonth } = useContext(ControlledDateTimePickerContext);\n\n return useMemo(() => {\n const { month: stringMonthVal, year: stringYearVal } = deconstructValuesFromDateString(dateStringFromProps);\n\n const { month: emptyStringSplitMonth, year: emptyStringSplitYear } =\n deconstructValuesFromDateString(emptyPickerStartingMonth);\n const userEmptyStringMonth = Number.parseInt(emptyStringSplitMonth, 10);\n const userEmptyStringYear = Number.parseInt(emptyStringSplitYear, 10);\n\n const month: DSControlledDateTimePickerInternalsT.DateMonth =\n stringMonthVal === '' || stringMonthVal.length !== 2\n ? ((userEmptyStringMonth - 1) as DSControlledDateTimePickerInternalsT.DateMonth)\n : ((Number.parseInt(stringMonthVal, 10) - 1) as DSControlledDateTimePickerInternalsT.DateMonth); // month is 0~11 in javascript Date...\n\n const year = stringYearVal === '' ? userEmptyStringYear : Number.parseInt(stringYearVal, 10);\n\n return { year, month };\n }, [dateStringFromProps, emptyPickerStartingMonth]);\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AAGO,MAAM,oDAAoD,MAG5D;AACH,QAAM,EAAE,qBAAqB,6BAA6B,WAAW,+BAA+B;AAEpG,SAAO,QAAQ,MAAM;AACnB,UAAM,EAAE,OAAO,gBAAgB,MAAM,kBAAkB,gCAAgC,mBAAmB;AAE1G,UAAM,EAAE,OAAO,uBAAuB,MAAM,yBAC1C,gCAAgC,wBAAwB;AAC1D,UAAM,uBAAuB,OAAO,SAAS,uBAAuB,EAAE;AACtE,UAAM,sBAAsB,OAAO,SAAS,sBAAsB,EAAE;AAEpE,UAAM,QACJ,mBAAmB,MAAM,eAAe,WAAW,IAC7C,uBAAuB,IACvB,OAAO,SAAS,gBAAgB,EAAE,IAAI;AAE9C,UAAM,OAAO,kBAAkB,KAAK,sBAAsB,OAAO,SAAS,eAAe,EAAE;AAE3F,WAAO,EAAE,MAAM,MAAM;AAAA,EACvB,GAAG,CAAC,qBAAqB,wBAAwB,CAAC;AACpD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/utils/hooks/useGetStartingFocusedDay.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport { deconstructValuesFromDateString } from '../stringHelpers';\nimport { convertToPositiveNumberIfPossible } from '../numberHelpers';\nimport { getDateValuesFromDate, isValidDayForTheMonth } from '../dateHelpers';\nimport { useGetDayFromDateString } from './useGetDayFromDateString';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\n\ninterface StartingFocusedDayT {\n startFocusedYear: number | null;\n startFocusedDay: number | null;\n startFocusedMonth: number | null;\n startFocusedDate: Date | null;\n}\nconst empty = {\n startFocusedYear: null,\n startFocusedDay: null,\n startFocusedMonth: null,\n startFocusedDate: null,\n};\nexport const useGetStartingFocusedDay = () => {\n const { onCalendarOpenFocusedDay } = useContext(ControlledDateTimePickerContext);\n const dayFromInputValues = useGetDayFromDateString();\n const {\n month: inputValuesSplitMonth,\n day: inputValuesSplitDay,\n year: inputValuesDaySplitYear,\n } = dayFromInputValues ? getDateValuesFromDate(dayFromInputValues) : { month: null, day: null, year: null };\n const isInputFilledAndValid =\n inputValuesSplitMonth &&\n inputValuesSplitDay &&\n inputValuesDaySplitYear &&\n isValidDayForTheMonth(inputValuesSplitMonth, inputValuesDaySplitYear, inputValuesSplitDay);\n const isOnCalendarOpenFocusedDayEmpty = !onCalendarOpenFocusedDay;\n const shouldFillWithOnCalendarOpenFocusedDay = !isInputFilledAndValid && !isOnCalendarOpenFocusedDayEmpty;\n return useMemo(() => {\n const startingDay: StartingFocusedDayT = { ...empty };\n\n // if input was filled start focus is the filled value (if it's valid day for the month)\n if (isInputFilledAndValid) {\n startingDay.startFocusedMonth = inputValuesSplitMonth;\n startingDay.startFocusedDay = inputValuesSplitDay;\n startingDay.startFocusedYear = inputValuesDaySplitYear;\n startingDay.startFocusedDate = dayFromInputValues;\n // if input was not filled (or filled invalid) and there is no onCalendarOpenFocusedDay start focus is not a day\n } else if (isOnCalendarOpenFocusedDayEmpty) {\n // if input was not filled and there is onCalendarOpenFocusedDay start focus is onCalendarOpenFocusedDay day\n return empty;\n } else if (shouldFillWithOnCalendarOpenFocusedDay) {\n const {\n month: focusedDaySplitMonth,\n day: focusedDaySplitDay,\n year: focusedDaySplitYear,\n } = deconstructValuesFromDateString(onCalendarOpenFocusedDay);\n const monthAsInt = convertToPositiveNumberIfPossible(focusedDaySplitMonth);\n const dayAsInt = convertToPositiveNumberIfPossible(focusedDaySplitDay);\n const yearAsInt = convertToPositiveNumberIfPossible(focusedDaySplitYear);\n // if this condition is false, return will be the same as return empty\n // because startFocusedMonth/Day/Year/Date will be === null\n // which is the expected result\n if (\n monthAsInt !== -1 &&\n dayAsInt !== -1 &&\n yearAsInt !== -1 &&\n isValidDayForTheMonth(\n (monthAsInt - 1) as DSControlledDateTimePickerInternalsT.DateMonth,\n yearAsInt,\n dayAsInt as DSControlledDateTimePickerInternalsT.DateDay,\n )\n ) {\n startingDay.startFocusedMonth = monthAsInt;\n startingDay.startFocusedDay = dayAsInt;\n startingDay.startFocusedYear = yearAsInt;\n startingDay.startFocusedDate = new Date(yearAsInt, monthAsInt - 1, dayAsInt);\n }\n }\n return startingDay;\n }, [\n dayFromInputValues,\n inputValuesDaySplitYear,\n inputValuesSplitDay,\n inputValuesSplitMonth,\n isInputFilledAndValid,\n isOnCalendarOpenFocusedDayEmpty,\n onCalendarOpenFocusedDay,\n shouldFillWithOnCalendarOpenFocusedDay,\n ]);\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AASA,MAAM,QAAQ;AAAA,EACZ,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,kBAAkB;AACpB;AACO,MAAM,2BAA2B,MAAM;AAC5C,QAAM,EAAE,6BAA6B,WAAW,+BAA+B;AAC/E,QAAM,qBAAqB,wBAAwB;AACnD,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,qBAAqB,sBAAsB,kBAAkB,IAAI,EAAE,OAAO,MAAM,KAAK,MAAM,MAAM,KAAK;AAC1G,QAAM,wBACJ,yBACA,uBACA,2BACA,sBAAsB,uBAAuB,yBAAyB,mBAAmB;AAC3F,QAAM,kCAAkC,CAAC;AACzC,QAAM,yCAAyC,CAAC,yBAAyB,CAAC;AAC1E,SAAO,QAAQ,MAAM;AACnB,UAAM,cAAmC,EAAE,GAAG,MAAM;AAGpD,QAAI,uBAAuB;AACzB,kBAAY,oBAAoB;AAChC,kBAAY,kBAAkB;AAC9B,kBAAY,mBAAmB;AAC/B,kBAAY,mBAAmB;AAAA,IAEjC,WAAW,iCAAiC;AAE1C,aAAO;AAAA,IACT,WAAW,wCAAwC;AACjD,YAAM;AAAA,QACJ,OAAO;AAAA,QACP,KAAK;AAAA,QACL,MAAM;AAAA,UACJ,gCAAgC,wBAAwB;AAC5D,YAAM,aAAa,kCAAkC,oBAAoB;AACzE,YAAM,WAAW,kCAAkC,kBAAkB;AACrE,YAAM,YAAY,kCAAkC,mBAAmB;AAIvE,UACE,eAAe,MACf,aAAa,MACb,cAAc,MACd,sBACG,aAAa,GACd,WACA,QACF,GACA;AACA,oBAAY,oBAAoB;AAChC,oBAAY,kBAAkB;AAC9B,oBAAY,mBAAmB;AAC/B,oBAAY,mBAAmB,IAAI,KAAK,WAAW,aAAa,GAAG,QAAQ;AAAA,MAC7E;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/utils/hooks/useOnClickOutside.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect } from 'react';\n\nexport const useOnClickOutside = (ref: HTMLElement | null, handler: NoopishFunc<MouseEvent | TouchEvent>): void => {\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (event.target instanceof Element)\n if (!ref || ref?.contains?.(event.target)) {\n return;\n }\n handler(event);\n };\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler]);\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AAEO,MAAM,oBAAoB,CAAC,KAAyB,YAAwD;AACjH,YAAU,MAAM;AACd,UAAM,WAAW,CAAC,UAAmC;AAEnD,UAAI,MAAM,kBAAkB;AAC1B,YAAI,CAAC,OAAO,KAAK,WAAW,MAAM,MAAM,GAAG;AACzC;AAAA,QACF;AAAA;AACF,cAAQ,KAAK;AAAA,IACf;AACA,aAAS,iBAAiB,aAAa,QAAQ;AAC/C,aAAS,iBAAiB,cAAc,QAAQ;AAChD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,QAAQ;AAClD,eAAS,oBAAoB,cAAc,QAAQ;AAAA,IACrD;AAAA,EACF,GAAG,CAAC,KAAK,OAAO,CAAC;AACnB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/numberHelpers.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const convertToPositiveNumberIfPossible = (numberString: string): number => {\n const convertedNum = Number.parseInt(numberString, 10);\n if (Number.isNaN(convertedNum)) return -1;\n return convertedNum;\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAO,MAAM,oCAAoC,CAAC,iBAAiC;AACjF,QAAM,eAAe,OAAO,SAAS,cAAc,EAAE;AACrD,MAAI,OAAO,MAAM,YAAY;AAAG,WAAO;AACvC,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/stringHelpers.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { monthNames, announcableCardinalDays } from './constants';\nimport { convertToPositiveNumberIfPossible } from './numberHelpers';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes';\n/* eslint-disable max-lines */\nexport const prependStringWithPlaceHolders = (val: string, finalLength: number, placeholder = '0'): string => {\n if (val.length === finalLength) return val;\n const stringAsAnArray = val.split('').reverse();\n return new Array(finalLength)\n .fill(placeholder)\n .map((_c, i) => (stringAsAnArray[i] ? stringAsAnArray[i] : placeholder))\n .reverse()\n .join('');\n};\nexport const fillStringWithPlaceHolders = (val: string, finalLength: number, placeholder = '_'): string => {\n if (val.length === finalLength) return val;\n const stringAsAnArray = val.split('');\n return new Array(finalLength)\n .fill(placeholder)\n .map((_c, i) => (stringAsAnArray[i] ? stringAsAnArray[i] : placeholder))\n .join('');\n};\n\nexport const getFormattedDateString = ({ month, day, year }: { month: string; day: string; year: string }): string => {\n const finalMonth = fillStringWithPlaceHolders(month, 2);\n const finalDay = fillStringWithPlaceHolders(day, 2);\n const finalYear = fillStringWithPlaceHolders(year, 4);\n return `${finalMonth}/${finalDay}/${finalYear}`;\n};\nexport const dateTimeToDate = (dateTime: string): string => dateTime?.split?.(' ')?.[0];\nexport const deconstructValuesFromDateString = (dateString: string): { month: string; day: string; year: string } => {\n const [dirtyMonth = '', dirtyDay = '', dirtyYear = ''] = dateString.split('/');\n const replaceAllRegexp = /_/g;\n return {\n month: (dirtyMonth || '').replace(replaceAllRegexp, ''),\n day: (dirtyDay || '').replace(replaceAllRegexp, ''),\n year: (dirtyYear || '').replace(replaceAllRegexp, ''),\n };\n};\nexport const deconstructValuesFromTimeString = (\n timeString: string,\n): { hours: string; minutes: string; meridiem: string } => {\n const [dirtyHour = '', dirtyMintuesAndMeridiem = ''] = timeString.split(':');\n const [dirtyMinutes = '', dirtyMeridiem = ''] = dirtyMintuesAndMeridiem.split(' ');\n const replaceAllRegexp = /_/g;\n return {\n hours: (dirtyHour || '').replace(replaceAllRegexp, ''),\n minutes: (dirtyMinutes || '').replace(replaceAllRegexp, ''),\n meridiem: (dirtyMeridiem || '').replace(replaceAllRegexp, ''),\n };\n};\n// https://regex101.com/r/U5r5lh/1/\nconst dateRegExp = /^[0-9_][0-9_]\\/[0-9_][0-9_]\\/[0-9_]{4}$/;\nexport const isValidDateString = (testString: string): boolean => {\n if (testString === '') return true;\n const isValidDateRegexp = dateRegExp.test(testString);\n if (!isValidDateRegexp) return false;\n const { month, day, year } = deconstructValuesFromDateString(testString);\n if (Number.parseInt(month, 10) > 12 || Number.parseInt(day, 10) > 31 || Number.parseInt(year, 10) > 9999)\n return false;\n\n return true;\n};\n\nexport const getFormattedTimeString = ({\n hours,\n minutes,\n // seconds,\n meridiem,\n}: {\n hours: string;\n minutes: string;\n // seconds:string;\n meridiem: string;\n}): string => {\n const finalHour = fillStringWithPlaceHolders(hours, 2);\n const finalMinutes = fillStringWithPlaceHolders(minutes, 2);\n // const finalSeconds = fillStringWithPlaceHolders(seconds, 2); // <-- seconds format\n const finalMeridiem = fillStringWithPlaceHolders(meridiem, 2);\n // return `${finalHour}:${finalMinutes}:${finalSeconds} ${finalMeridiem}`;// <-- seconds format\n return `${finalHour}:${finalMinutes} ${finalMeridiem}`;\n};\nexport const dateTimeToTime = (dateTime: string): string => {\n const [\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n date,\n // timeNumbers = '__:__:__', // <-- seconds format\n timeNumbers = '__:__',\n timeMeridiem = '__',\n ] = dateTime.split(' ');\n return `${timeNumbers} ${timeMeridiem}`;\n};\nexport const deconstructTimeValues = (\n timeString: string,\n): {\n hours: string;\n minutes: string;\n meridiem: string;\n} => {\n const [dirtyTimes = '', dirtyMeridiem] = timeString.split(' '); // <--['__:__','__']\n const [dirtyHours, dirtyMinutes] = dirtyTimes.split(':'); // <--['__','__']\n const regex = /_/g; // Note the 'g' flag, which matches all occurrences of the expression\n const newValues = {\n hours: (dirtyHours || '').replace(regex, ''),\n minutes: (dirtyMinutes || '').replace(regex, ''),\n meridiem: (dirtyMeridiem || '').replace(regex, ''),\n };\n return newValues;\n};\n\n// https://regex101.com/r/jeBmNT/1\nconst timeRegExp = /^[0-9_][0-9_]:[0-9_][0-9_]\\s[aApP_][mM_]$/;\nexport const isValidTimeString = (testString: string): boolean => {\n if (testString === '') return true;\n const isValidTimeRegexp = timeRegExp.test(testString);\n if (!isValidTimeRegexp) return false;\n const { hours, minutes } = deconstructTimeValues(testString);\n if (Number.parseInt(hours, 10) > 12 || Number.parseInt(minutes, 10) > 60) return false;\n\n return true;\n};\n\nexport const isIncompleteString = (testString: string, placeholder = '_'): boolean =>\n testString === '' || testString.includes(placeholder);\n\nexport const isEmptyDateStringMask = (testString: string): boolean => testString === '__/__/____';\nexport const isEmptyTimeStringMask = (testString: string): boolean => testString === '__:__ __';\nexport const isEmptyDateTimeStringMask = (testString: string): boolean => testString === '__/__/____ __:__ __';\n\nexport const getAriaDayFromDateString = (dateString: string): string => {\n const { month: monthString, day: dayString, year: yearString } = deconstructValuesFromDateString(dateString);\n const monthNum = convertToPositiveNumberIfPossible(monthString);\n const dayNum = convertToPositiveNumberIfPossible(dayString) as DSControlledDateTimePickerInternalsT.DateDay | -1;\n const yearNum = convertToPositiveNumberIfPossible(yearString);\n if (monthNum === -1 || dayNum === -1 || yearNum === -1) return '';\n return `${monthNames[monthNum - 1]} ${announcableCardinalDays[dayNum]} ${yearNum}`;\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAGO,MAAM,gCAAgC,CAAC,KAAa,aAAqB,cAAc,QAAgB;AAC5G,MAAI,IAAI,WAAW;AAAa,WAAO;AACvC,QAAM,kBAAkB,IAAI,MAAM,EAAE,EAAE,QAAQ;AAC9C,SAAO,IAAI,MAAM,WAAW,EACzB,KAAK,WAAW,EAChB,IAAI,CAAC,IAAI,MAAO,gBAAgB,KAAK,gBAAgB,KAAK,WAAY,EACtE,QAAQ,EACR,KAAK,EAAE;AACZ;AACO,MAAM,6BAA6B,CAAC,KAAa,aAAqB,cAAc,QAAgB;AACzG,MAAI,IAAI,WAAW;AAAa,WAAO;AACvC,QAAM,kBAAkB,IAAI,MAAM,EAAE;AACpC,SAAO,IAAI,MAAM,WAAW,EACzB,KAAK,WAAW,EAChB,IAAI,CAAC,IAAI,MAAO,gBAAgB,KAAK,gBAAgB,KAAK,WAAY,EACtE,KAAK,EAAE;AACZ;AAEO,MAAM,yBAAyB,CAAC,EAAE,OAAO,KAAK,WAAiE;AACpH,QAAM,aAAa,2BAA2B,OAAO,CAAC;AACtD,QAAM,WAAW,2BAA2B,KAAK,CAAC;AAClD,QAAM,YAAY,2BAA2B,MAAM,CAAC;AACpD,SAAO,GAAG,cAAc,YAAY;AACtC;AACO,MAAM,iBAAiB,CAAC,aAA6B,UAAU,QAAQ,GAAG,IAAI;AAC9E,MAAM,kCAAkC,CAAC,eAAqE;AACnH,QAAM,CAAC,aAAa,IAAI,WAAW,IAAI,YAAY,MAAM,WAAW,MAAM,GAAG;AAC7E,QAAM,mBAAmB;AACzB,SAAO;AAAA,IACL,OAAQ,eAAc,IAAI,QAAQ,kBAAkB,EAAE;AAAA,IACtD,KAAM,aAAY,IAAI,QAAQ,kBAAkB,EAAE;AAAA,IAClD,MAAO,cAAa,IAAI,QAAQ,kBAAkB,EAAE;AAAA,EACtD;AACF;AACO,MAAM,kCAAkC,CAC7C,eACyD;AACzD,QAAM,CAAC,YAAY,IAAI,0BAA0B,MAAM,WAAW,MAAM,GAAG;AAC3E,QAAM,CAAC,eAAe,IAAI,gBAAgB,MAAM,wBAAwB,MAAM,GAAG;AACjF,QAAM,mBAAmB;AACzB,SAAO;AAAA,IACL,OAAQ,cAAa,IAAI,QAAQ,kBAAkB,EAAE;AAAA,IACrD,SAAU,iBAAgB,IAAI,QAAQ,kBAAkB,EAAE;AAAA,IAC1D,UAAW,kBAAiB,IAAI,QAAQ,kBAAkB,EAAE;AAAA,EAC9D;AACF;AAEA,MAAM,aAAa;AACZ,MAAM,oBAAoB,CAAC,eAAgC;AAChE,MAAI,eAAe;AAAI,WAAO;AAC9B,QAAM,oBAAoB,WAAW,KAAK,UAAU;AACpD,MAAI,CAAC;AAAmB,WAAO;AAC/B,QAAM,EAAE,OAAO,KAAK,SAAS,gCAAgC,UAAU;AACvE,MAAI,OAAO,SAAS,OAAO,EAAE,IAAI,MAAM,OAAO,SAAS,KAAK,EAAE,IAAI,MAAM,OAAO,SAAS,MAAM,EAAE,IAAI;AAClG,WAAO;AAET,SAAO;AACT;AAEO,MAAM,yBAAyB,CAAC;AAAA,EACrC;AAAA,EACA;AAAA,EAEA;AAAA,MAMY;AACZ,QAAM,YAAY,2BAA2B,OAAO,CAAC;AACrD,QAAM,eAAe,2BAA2B,SAAS,CAAC;AAE1D,QAAM,gBAAgB,2BAA2B,UAAU,CAAC;AAE5D,SAAO,GAAG,aAAa,gBAAgB;AACzC;AACO,MAAM,iBAAiB,CAAC,aAA6B;AAC1D,QAAM;AAAA,IAEJ;AAAA,IAEA,cAAc;AAAA,IACd,eAAe;AAAA,MACb,SAAS,MAAM,GAAG;AACtB,SAAO,GAAG,eAAe;AAC3B;AACO,MAAM,wBAAwB,CACnC,eAKG;AACH,QAAM,CAAC,aAAa,IAAI,iBAAiB,WAAW,MAAM,GAAG;AAC7D,QAAM,CAAC,YAAY,gBAAgB,WAAW,MAAM,GAAG;AACvD,QAAM,QAAQ;AACd,QAAM,YAAY;AAAA,IAChB,OAAQ,eAAc,IAAI,QAAQ,OAAO,EAAE;AAAA,IAC3C,SAAU,iBAAgB,IAAI,QAAQ,OAAO,EAAE;AAAA,IAC/C,UAAW,kBAAiB,IAAI,QAAQ,OAAO,EAAE;AAAA,EACnD;AACA,SAAO;AACT;AAGA,MAAM,aAAa;AACZ,MAAM,oBAAoB,CAAC,eAAgC;AAChE,MAAI,eAAe;AAAI,WAAO;AAC9B,QAAM,oBAAoB,WAAW,KAAK,UAAU;AACpD,MAAI,CAAC;AAAmB,WAAO;AAC/B,QAAM,EAAE,OAAO,YAAY,sBAAsB,UAAU;AAC3D,MAAI,OAAO,SAAS,OAAO,EAAE,IAAI,MAAM,OAAO,SAAS,SAAS,EAAE,IAAI;AAAI,WAAO;AAEjF,SAAO;AACT;AAEO,MAAM,qBAAqB,CAAC,YAAoB,cAAc,QACnE,eAAe,MAAM,WAAW,SAAS,WAAW;AAE/C,MAAM,wBAAwB,CAAC,eAAgC,eAAe;AAC9E,MAAM,wBAAwB,CAAC,eAAgC,eAAe;AAC9E,MAAM,4BAA4B,CAAC,eAAgC,eAAe;AAElF,MAAM,2BAA2B,CAAC,eAA+B;AACtE,QAAM,EAAE,OAAO,aAAa,KAAK,WAAW,MAAM,eAAe,gCAAgC,UAAU;AAC3G,QAAM,WAAW,kCAAkC,WAAW;AAC9D,QAAM,SAAS,kCAAkC,SAAS;AAC1D,QAAM,UAAU,kCAAkC,UAAU;AAC5D,MAAI,aAAa,MAAM,WAAW,MAAM,YAAY;AAAI,WAAO;AAC/D,SAAO,GAAG,WAAW,WAAW,MAAM,wBAAwB,WAAW;AAC3E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/timeHelpers.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { isIncompleteString } from './stringHelpers';\nimport type { DSControlledDateTimePickerT } from '../propTypes';\n\nexport const getValidationTimeStringMetaInfo = (\n timeString: string,\n getIsDisabledTime = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n timeS: string,\n ) => false,\n): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {};\n if (!isIncompleteString(timeString)) {\n metaInfo.isDisabledTime = getIsDisabledTime(timeString);\n if (metaInfo.isDisabledTime) metaInfo.suggestedErrorMsg = 'The selected time is not allowed';\n }\n\n return metaInfo;\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AAGO,MAAM,kCAAkC,CAC7C,YACA,oBAAoB,CAElB,UACG,UACiE;AACtE,QAAM,WAA8E,CAAC;AACrF,MAAI,CAAC,mBAAmB,UAAU,GAAG;AACnC,aAAS,iBAAiB,kBAAkB,UAAU;AACtD,QAAI,SAAS;AAAgB,eAAS,oBAAoB;AAAA,EAC5D;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/typeGuards.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { DSControlledDateTimePickerT } from '../propTypes';\n\nconst dateTimeTypes = ['full-date-time', 'date-time-inputs', 'date-time-picker', 'date-time-picker-controller-only'];\nconst dateTypes = ['full-date', 'date-inputs', 'date-picker', 'date-picker-controller-only'];\nconst timeTypes = ['full-time', 'time-inputs', 'time-picker', 'time-picker-controller-only'];\n\nexport const getIsDateTime = (\n props: DSControlledDateTimePickerT.Props | DSControlledDateTimePickerT.InternalProps,\n): props is DSControlledDateTimePickerT.DateTimePickerProps | DSControlledDateTimePickerT.InternalDateTimePickerProps =>\n dateTimeTypes.includes(props.type);\n\nexport const getIsDate = (\n props: DSControlledDateTimePickerT.Props | DSControlledDateTimePickerT.InternalProps,\n): props is DSControlledDateTimePickerT.DatePickerProps | DSControlledDateTimePickerT.InternalDatePickerProps =>\n dateTypes.includes(props.type);\n\nexport const getIsTime = (\n props: DSControlledDateTimePickerT.Props | DSControlledDateTimePickerT.InternalProps,\n): props is DSControlledDateTimePickerT.TimePickerProps | DSControlledDateTimePickerT.InternalTimePickerProps =>\n timeTypes.includes(props.type);\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACEA,MAAM,gBAAgB,CAAC,kBAAkB,oBAAoB,oBAAoB,kCAAkC;AACnH,MAAM,YAAY,CAAC,aAAa,eAAe,eAAe,6BAA6B;AAC3F,MAAM,YAAY,CAAC,aAAa,eAAe,eAAe,6BAA6B;AAEpF,MAAM,gBAAgB,CAC3B,UAEA,cAAc,SAAS,MAAM,IAAI;AAE5B,MAAM,YAAY,CACvB,UAEA,UAAU,SAAS,MAAM,IAAI;AAExB,MAAM,YAAY,CACvB,UAEA,UAAU,SAAS,MAAM,IAAI;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-form-date-time-picker",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.1-rc.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Controlled Form Date Time Picker",
|
|
6
6
|
"files": [
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"indent": 4
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@elliemae/ds-button": "3.3.
|
|
39
|
-
"@elliemae/ds-grid": "3.3.
|
|
40
|
-
"@elliemae/ds-icon": "3.3.
|
|
41
|
-
"@elliemae/ds-icons": "3.3.
|
|
42
|
-
"@elliemae/ds-popperjs": "3.3.
|
|
43
|
-
"@elliemae/ds-system": "3.3.
|
|
44
|
-
"@elliemae/ds-utilities": "3.3.
|
|
38
|
+
"@elliemae/ds-button": "3.3.1-rc.2",
|
|
39
|
+
"@elliemae/ds-grid": "3.3.1-rc.2",
|
|
40
|
+
"@elliemae/ds-icon": "3.3.1-rc.2",
|
|
41
|
+
"@elliemae/ds-icons": "3.3.1-rc.2",
|
|
42
|
+
"@elliemae/ds-popperjs": "3.3.1-rc.2",
|
|
43
|
+
"@elliemae/ds-system": "3.3.1-rc.2",
|
|
44
|
+
"@elliemae/ds-utilities": "3.3.1-rc.2"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@elliemae/pui-theme": "~2.6.0",
|