@hitachivantara/uikit-react-lab 3.42.2 → 3.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -148,7 +148,8 @@ var HvTimePicker = function HvTimePicker(_ref) {
148
148
  escapeWithReference = _ref$escapeWithRefere === void 0 ? true : _ref$escapeWithRefere,
149
149
  dropdownProps = _ref.dropdownProps,
150
150
  others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
151
- // #region STATE
151
+ (0, _uikitReactCore.useDeprecated)("TimePicker", "Please use the TimePicker component in Core"); // #region STATE
152
+
152
153
  var elementId = (0, _uikitReactCore.useUniqueId)(id, "hvtimepicker");
153
154
  var localeFromProvider = (0, _uikitReactCore.useLocale)();
154
155
  var locale = localeProp || localeFromProvider;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/TimePicker/TimePicker.js"],"names":["setFocusToContent","containerRef","getElementsByTagName","focus","timeIsEqual","timeA","timeB","hours","minutes","seconds","period","timeIsValid","time","timeFormat","hourInputState","TimeFormat","H24","H12","minutesInputState","secondsInputState","HvTimePicker","classes","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","placeholder","hoursPlaceholder","minutesPlaceholder","secondsPlaceholder","valueProp","value","defaultValueProp","defaultValue","chosenTimeFormat","localeProp","locale","disableDefaultValue","onToggleCallback","onToggle","Date","getHours","getMinutes","chosenTimePeriod","disablePortal","escapeWithReference","dropdownProps","others","elementId","localeFromProvider","toString","v","PeriodPickerOptions","AM","PM","setValue","rollbackValue","lastValidValue","validationMessage","validationState","setValidationState","isOpen","setOpen","firstRender","currentValue","current","currentTimeFormat","to12","h","p","undefined","dayPeriod","handleTimeChange","updatedTimeObject","valid","handleHoursChange","updatedHours","newSelectedTime","handleMinutesChange","updatedMinutes","handleSecondsChange","updatedSeconds","handleChangePeriod","updatedPeriod","evt","open","hasLabels","hasDescription","canShowError","isStateInvalid","errorMessageId","root","formElementRoot","labelContainer","dropdownPlaceholderDisabled","dropdownPlaceholder","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","iconBaseRoot","join","trim","modifiers","enabled","timePopperContainer","TimePickerUnits","HOUR_24","type","HOUR_12","separator","MINUTE","SECOND","error","propTypes","PropTypes","shape","string","input","periodContainer","isRequired","number","bool","node","oneOf","func","instanceOf","Object","styles"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport {\n HvFormElement,\n HvBaseDropdown,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n setId,\n useUniqueId,\n useControlled,\n useLocale,\n HvTypography,\n useSavedState,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\n\nimport { TimePickerUnits, TimeFormat, PeriodPickerOptions } from \"./enums\";\nimport { getFormattedTime, getTimeFormatForLocale } from \"./timePickerFormatter\";\nimport { getHoursForTimeFormat, getTimeWithFormat24 } from \"./timePickerConverter\";\nimport UnitTimePicker from \"./UnitTimePicker\";\nimport PeriodPicker from \"./PeriodPicker\";\n\nimport styles from \"./styles\";\n\nconst setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n};\n\nconst timeIsEqual = (timeA, timeB) => {\n return (\n timeA === timeB ||\n (timeA == null && timeB == null) ||\n (timeA != null &&\n timeB != null &&\n timeA.hours === timeB.hours &&\n timeA.minutes === timeB.minutes &&\n timeA.seconds === timeB.seconds &&\n timeA.period === timeB.period)\n );\n};\n\nconst timeIsValid = (time, timeFormat) => {\n const hourInputState =\n time?.hours != null &&\n time.hours !== \"\" &&\n time.hours >= 0 &&\n ((timeFormat === TimeFormat.H24 && time.hours <= 24) ||\n (timeFormat === TimeFormat.H12 && time.hours <= 12));\n const minutesInputState =\n time?.minutes != null && time.minutes !== \"\" && time.minutes >= 0 && time.minutes <= 59;\n const secondsInputState =\n time?.seconds != null && time.seconds !== \"\" && time.seconds >= 0 && time.seconds <= 59;\n\n return hourInputState && minutesInputState && secondsInputState;\n};\n\n/**\n * A TimePicker component used to choose the time, following specifications provided by Design System. Still in development.\n */\n\nconst HvTimePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat: chosenTimeFormat,\n locale: localeProp,\n\n disableDefaultValue,\n\n onToggle: onToggleCallback,\n\n // deprecated properties:\n hours = new Date().getHours(),\n minutes = new Date().getMinutes(),\n seconds = 0,\n period: chosenTimePeriod,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n ...others\n}) => {\n // #region STATE\n const elementId = useUniqueId(id, \"hvtimepicker\");\n\n const localeFromProvider = useLocale();\n const locale = localeProp || localeFromProvider;\n const timeFormat = useMemo(\n () => (chosenTimeFormat != null ? chosenTimeFormat.toString() : getTimeFormatForLocale(locale)),\n [chosenTimeFormat, locale]\n );\n\n const [value, setValue, rollbackValue, lastValidValue] = useSavedState(() => {\n // fallback to the deprecated properties\n // we shouldn't do that when promoting to core\n // as it makes impossible to start with an empty value\n const defaultValue =\n defaultValueProp ??\n (disableDefaultValue\n ? null\n : {\n hours,\n minutes,\n seconds,\n });\n\n const v = valueProp ?? defaultValue;\n\n return v != null\n ? {\n hours: v?.hours != null ? getHoursForTimeFormat(v.hours, timeFormat) : null,\n minutes: v?.minutes,\n seconds: v?.seconds,\n period:\n timeFormat === TimeFormat.H12\n ? chosenTimePeriod ??\n (v?.hours == null || v.hours < 12 ? PeriodPickerOptions.AM : PeriodPickerOptions.PM)\n : null,\n }\n : null;\n });\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState, setValidationState] = useControlled(status, \"standBy\");\n\n const [isOpen, setOpen] = useState(false);\n // #endregion\n\n // #region SIDE EFFECTS\n const firstRender = useRef(true);\n const currentValue = useRef(value);\n useEffect(() => {\n currentValue.current = value;\n });\n const currentTimeFormat = useRef(timeFormat);\n useEffect(() => {\n currentTimeFormat.current = timeFormat;\n });\n\n useEffect(() => {\n // allow external changes to the time format (via timeFormat or locale properties)\n if (!firstRender.current && currentValue.current != null) {\n const to12 = timeFormat === TimeFormat.H12;\n\n let { hours: h, period: p } = currentValue.current;\n if (to12) {\n if (h == null || h < 12) {\n p = PeriodPickerOptions.AM;\n } else {\n p = PeriodPickerOptions.PM;\n if (h > 12) {\n h -= 12;\n }\n }\n } else {\n if (p === PeriodPickerOptions.AM) {\n if (h === 12) {\n h = 0;\n }\n } else if (h < 12) {\n h += 12;\n }\n p = undefined;\n }\n\n setValue(\n {\n hours: h,\n minutes: currentValue.current.minutes,\n seconds: currentValue.current.seconds,\n period: p,\n },\n true\n );\n }\n }, [setValue, timeFormat]);\n\n useEffect(() => {\n // allow control of value property\n if (!firstRender.current) {\n const dayPeriod =\n valueProp?.hours == null || valueProp.hours < 12\n ? PeriodPickerOptions.AM\n : PeriodPickerOptions.PM;\n\n setValue(\n valueProp != null\n ? {\n hours:\n valueProp?.hours != null\n ? getHoursForTimeFormat(valueProp.hours, currentTimeFormat.current)\n : null,\n minutes: valueProp?.minutes,\n seconds: valueProp?.seconds,\n period: currentTimeFormat.current === TimeFormat.H12 ? dayPeriod : null,\n }\n : null,\n true\n );\n }\n }, [setValue, valueProp]);\n\n useEffect(() => {\n // on close, make sure to restore the last valid value\n // (in the case the user closed with some time part invalid)\n if (!firstRender.current && !isOpen) {\n rollbackValue();\n }\n }, [isOpen, rollbackValue]);\n\n useEffect(() => {\n // run validations on each render\n // (except on the first, remaining in the standBy/untouched state)\n if (!firstRender.current) {\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && lastValidValue == null) {\n return \"invalid\";\n }\n return \"valid\";\n });\n }\n });\n\n useEffect(() => {\n firstRender.current = false;\n }, []);\n // #endregion\n\n // #region EVENT HANDLERS\n const handleTimeChange = (updatedTimeObject) => {\n if (!timeIsEqual(value, updatedTimeObject)) {\n const valid = timeIsValid(updatedTimeObject, timeFormat);\n\n // the value only is commited if valid\n setValue(updatedTimeObject, valid);\n\n if (valid) {\n // always output in 24h format\n onChange?.(getTimeWithFormat24(updatedTimeObject, timeFormat));\n }\n }\n };\n\n /**\n * Handles the change of the hours value\n * @param {Number} hours - selected hours\n * @memberof HvTimePicker\n */\n const handleHoursChange = (updatedHours) => {\n const newSelectedTime = {\n ...value,\n hours: updatedHours,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the minutes value\n * @param {Number} minutes - selected minutes\n * @memberof HvTimePicker\n */\n const handleMinutesChange = (updatedMinutes) => {\n const newSelectedTime = {\n ...value,\n minutes: updatedMinutes,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the seconds value\n * @param {Number} seconds - selected seconds\n * @memberof HvTimePicker\n */\n const handleSecondsChange = (updatedSeconds) => {\n const newSelectedTime = {\n ...value,\n seconds: updatedSeconds,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the period (am/pm)\n * @param {String} period - selected period\n * @memberof HvTimePicker\n */\n const handleChangePeriod = (updatedPeriod) => {\n const newSelectedTime = {\n ...value,\n period: updatedPeriod,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n const onToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the change of the expanded property.\n */\n if (evt === null) return;\n\n onToggleCallback?.(evt, open);\n\n setOpen(open);\n };\n // #endregion\n\n const hasLabels = label != null;\n const hasDescription = description != null;\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) || (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError ? setId(elementId, \"error\") : ariaErrorMessage;\n }\n\n return (\n <HvFormElement\n id={id}\n name={name}\n locale={locale}\n required={required}\n disabled={disabled}\n status={validationState}\n classes={{\n root: classes.formElementRoot,\n }}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabels || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabels && (\n <HvLabel id={setId(elementId, \"label\")} label={label} className={classes.label} />\n )}\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n id={setId(elementId, \"timepicker-dropdown\")}\n role=\"combobox\"\n placeholder={\n lastValidValue != null ? (\n getFormattedTime(lastValidValue, timeFormat)\n ) : (\n <HvTypography variant=\"placeholderText\">{placeholder}</HvTypography>\n )\n }\n classes={{\n placeholder: disabled ? classes.dropdownPlaceholderDisabled : classes.dropdownPlaceholder,\n header: isStateInvalid ? classes.dropdownHeaderInvalid : undefined,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n variableWidth\n placement=\"right\"\n adornment={\n <TimeIcon color={disabled ? \"atmo5\" : \"acce1\"} className={classes.iconBaseRoot} />\n }\n expanded={isOpen}\n onToggle={onToggle}\n onContainerCreation={setFocusToContent}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy].join(\" \").trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy].join(\" \").trim() ||\n undefined\n }\n disablePortal={disablePortal}\n disabled={disabled}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n {...dropdownProps}\n >\n <div className={classes.timePopperContainer}>\n <UnitTimePicker\n id={setId(elementId, \"hours\")}\n placeholder={hoursPlaceholder}\n unit={\n timeFormat === TimeFormat.H24\n ? TimePickerUnits.HOUR_24.type\n : TimePickerUnits.HOUR_12.type\n }\n unitValue={value?.hours}\n onChangeUnitTimeValue={handleHoursChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"minutes\")}\n placeholder={minutesPlaceholder}\n unit={TimePickerUnits.MINUTE.type}\n unitValue={value?.minutes}\n onChangeUnitTimeValue={handleMinutesChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"seconds\")}\n placeholder={secondsPlaceholder}\n unit={TimePickerUnits.SECOND.type}\n unitValue={value?.seconds}\n onChangeUnitTimeValue={handleSecondsChange}\n />\n {timeFormat === TimeFormat.H12 && (\n <PeriodPicker onChangePeriod={handleChangePeriod} period={value?.period} />\n )}\n </div>\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n};\n\nHvTimePicker.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied to the input/popper\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the input.\n */\n input: PropTypes.string,\n /**\n * Styles applied to the label.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the timePopperContainer.\n */\n timePopperContainer: PropTypes.string,\n /**\n * Styles applied to the separator.\n */\n separator: PropTypes.string,\n /**\n * Styles applied to the period container.\n */\n periodContainer: PropTypes.string,\n /**\n * Styles applied to the form element.\n */\n formElementRoot: PropTypes.string,\n /**\n * Styles applied to the dropdown placeholder.\n */\n dropdownPlaceholder: PropTypes.string,\n /**\n * Styles applied to the icon base.\n */\n iconBaseRoot: PropTypes.string,\n /**\n * Styles applied to the error area.\n */\n error: PropTypes.string,\n /**\n * Styles applied to the container of the labels elements.\n */\n labelContainer: PropTypes.string,\n /**\n * Styles applied to the icon information text.\n */\n description: PropTypes.string,\n /**\n * Styles applied to the dropdown when invalid information text.\n */\n dropdownHeaderInvalid: PropTypes.string,\n /**\n * Styles applied to the dropdown text when invalid.\n */\n\n dropdownPlaceholderDisabled: PropTypes.string,\n /**\n * Styles applied to the dropdown border when invalid.\n */\n dropdownHeaderOpen: PropTypes.string,\n }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The value of the form element.\n */\n value: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n /**\n * When uncontrolled, defines the initial input value.\n */\n defaultValue: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * The placeholder value when no time is selected.\n */\n placeholder: PropTypes.string,\n\n /**\n * The placeholder of the hours input.\n */\n hoursPlaceholder: PropTypes.string,\n /**\n * The placeholder of the minutes input.\n */\n minutesPlaceholder: PropTypes.string,\n /**\n * The placeholder of the seconds input.\n */\n secondsPlaceholder: PropTypes.string,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage: PropTypes.node,\n /**\n * Identifies the element that provides an error message for the time picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\": PropTypes.string,\n\n /**\n * If the time should be presented in 12 or 24 hour format.\n * If undefined, the component will use a format according to the passed locale.\n * If defined, it will \"override\" the default value given by the locale\n */\n timeFormat: PropTypes.oneOf([TimeFormat.H12, TimeFormat.H24, 12, 24, undefined]),\n\n /**\n * Locale that will provide the time format(12 or 24 hour format)\n * It is \"overwritten\" by the timeFormat prop\n */\n locale: PropTypes.string,\n\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a object param with the following props:\n * - hours (in a 24h format)\n * - minutes\n * - seconds\n * - period\n *\n * It is always invoked with the hours in a 24h format\n */\n onChange: PropTypes.func,\n\n /**\n * Callback called when dropdown changes the expanded state.\n *\n * @param {object} event The event source of the callback.\n * @param {boolean} open If the dropdown new state is open (`true`) or closed (`false`).\n */\n onToggle: PropTypes.func,\n\n /**\n * Allow starting with an empty value by not defaulting to the current time.\n * This should become the default behavior when the component is promoted to core.\n */\n disableDefaultValue: PropTypes.bool,\n\n /**\n * Default value for the hours picker\n * @deprecated use defaultValue instead\n */\n hours: PropTypes.number,\n /**\n * Default value for the minutes picker\n * @deprecated use defaultValue instead\n */\n minutes: PropTypes.number,\n /**\n * Default value for the seconds picker\n * @deprecated use defaultValue instead\n */\n seconds: PropTypes.number,\n /**\n * Default value for the period picker\n * @deprecated use defaultValue instead\n */\n period: PropTypes.string,\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n /**\n * Extra properties to be passed to the timepicker dropdown.\n */\n dropdownProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvTimePicker\" })(HvTimePicker);\n"],"file":"TimePicker.js"}
1
+ {"version":3,"sources":["../../src/TimePicker/TimePicker.js"],"names":["setFocusToContent","containerRef","getElementsByTagName","focus","timeIsEqual","timeA","timeB","hours","minutes","seconds","period","timeIsValid","time","timeFormat","hourInputState","TimeFormat","H24","H12","minutesInputState","secondsInputState","HvTimePicker","classes","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","placeholder","hoursPlaceholder","minutesPlaceholder","secondsPlaceholder","valueProp","value","defaultValueProp","defaultValue","chosenTimeFormat","localeProp","locale","disableDefaultValue","onToggleCallback","onToggle","Date","getHours","getMinutes","chosenTimePeriod","disablePortal","escapeWithReference","dropdownProps","others","elementId","localeFromProvider","toString","v","PeriodPickerOptions","AM","PM","setValue","rollbackValue","lastValidValue","validationMessage","validationState","setValidationState","isOpen","setOpen","firstRender","currentValue","current","currentTimeFormat","to12","h","p","undefined","dayPeriod","handleTimeChange","updatedTimeObject","valid","handleHoursChange","updatedHours","newSelectedTime","handleMinutesChange","updatedMinutes","handleSecondsChange","updatedSeconds","handleChangePeriod","updatedPeriod","evt","open","hasLabels","hasDescription","canShowError","isStateInvalid","errorMessageId","root","formElementRoot","labelContainer","dropdownPlaceholderDisabled","dropdownPlaceholder","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","iconBaseRoot","join","trim","modifiers","enabled","timePopperContainer","TimePickerUnits","HOUR_24","type","HOUR_12","separator","MINUTE","SECOND","error","propTypes","PropTypes","shape","string","input","periodContainer","isRequired","number","bool","node","oneOf","func","instanceOf","Object","styles"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport {\n HvFormElement,\n HvBaseDropdown,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n setId,\n useUniqueId,\n useControlled,\n useLocale,\n HvTypography,\n useSavedState,\n useDeprecated,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\n\nimport { TimePickerUnits, TimeFormat, PeriodPickerOptions } from \"./enums\";\nimport { getFormattedTime, getTimeFormatForLocale } from \"./timePickerFormatter\";\nimport { getHoursForTimeFormat, getTimeWithFormat24 } from \"./timePickerConverter\";\nimport UnitTimePicker from \"./UnitTimePicker\";\nimport PeriodPicker from \"./PeriodPicker\";\n\nimport styles from \"./styles\";\n\nconst setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n};\n\nconst timeIsEqual = (timeA, timeB) => {\n return (\n timeA === timeB ||\n (timeA == null && timeB == null) ||\n (timeA != null &&\n timeB != null &&\n timeA.hours === timeB.hours &&\n timeA.minutes === timeB.minutes &&\n timeA.seconds === timeB.seconds &&\n timeA.period === timeB.period)\n );\n};\n\nconst timeIsValid = (time, timeFormat) => {\n const hourInputState =\n time?.hours != null &&\n time.hours !== \"\" &&\n time.hours >= 0 &&\n ((timeFormat === TimeFormat.H24 && time.hours <= 24) ||\n (timeFormat === TimeFormat.H12 && time.hours <= 12));\n const minutesInputState =\n time?.minutes != null && time.minutes !== \"\" && time.minutes >= 0 && time.minutes <= 59;\n const secondsInputState =\n time?.seconds != null && time.seconds !== \"\" && time.seconds >= 0 && time.seconds <= 59;\n\n return hourInputState && minutesInputState && secondsInputState;\n};\n\n/**\n * A TimePicker component used to choose the time, following specifications provided by Design System. Still in development.\n */\n\nconst HvTimePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat: chosenTimeFormat,\n locale: localeProp,\n\n disableDefaultValue,\n\n onToggle: onToggleCallback,\n\n // deprecated properties:\n hours = new Date().getHours(),\n minutes = new Date().getMinutes(),\n seconds = 0,\n period: chosenTimePeriod,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n ...others\n}) => {\n useDeprecated(\"TimePicker\", \"Please use the TimePicker component in Core\");\n\n // #region STATE\n const elementId = useUniqueId(id, \"hvtimepicker\");\n\n const localeFromProvider = useLocale();\n const locale = localeProp || localeFromProvider;\n const timeFormat = useMemo(\n () => (chosenTimeFormat != null ? chosenTimeFormat.toString() : getTimeFormatForLocale(locale)),\n [chosenTimeFormat, locale]\n );\n\n const [value, setValue, rollbackValue, lastValidValue] = useSavedState(() => {\n // fallback to the deprecated properties\n // we shouldn't do that when promoting to core\n // as it makes impossible to start with an empty value\n const defaultValue =\n defaultValueProp ??\n (disableDefaultValue\n ? null\n : {\n hours,\n minutes,\n seconds,\n });\n\n const v = valueProp ?? defaultValue;\n\n return v != null\n ? {\n hours: v?.hours != null ? getHoursForTimeFormat(v.hours, timeFormat) : null,\n minutes: v?.minutes,\n seconds: v?.seconds,\n period:\n timeFormat === TimeFormat.H12\n ? chosenTimePeriod ??\n (v?.hours == null || v.hours < 12 ? PeriodPickerOptions.AM : PeriodPickerOptions.PM)\n : null,\n }\n : null;\n });\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState, setValidationState] = useControlled(status, \"standBy\");\n\n const [isOpen, setOpen] = useState(false);\n // #endregion\n\n // #region SIDE EFFECTS\n const firstRender = useRef(true);\n const currentValue = useRef(value);\n useEffect(() => {\n currentValue.current = value;\n });\n const currentTimeFormat = useRef(timeFormat);\n useEffect(() => {\n currentTimeFormat.current = timeFormat;\n });\n\n useEffect(() => {\n // allow external changes to the time format (via timeFormat or locale properties)\n if (!firstRender.current && currentValue.current != null) {\n const to12 = timeFormat === TimeFormat.H12;\n\n let { hours: h, period: p } = currentValue.current;\n if (to12) {\n if (h == null || h < 12) {\n p = PeriodPickerOptions.AM;\n } else {\n p = PeriodPickerOptions.PM;\n if (h > 12) {\n h -= 12;\n }\n }\n } else {\n if (p === PeriodPickerOptions.AM) {\n if (h === 12) {\n h = 0;\n }\n } else if (h < 12) {\n h += 12;\n }\n p = undefined;\n }\n\n setValue(\n {\n hours: h,\n minutes: currentValue.current.minutes,\n seconds: currentValue.current.seconds,\n period: p,\n },\n true\n );\n }\n }, [setValue, timeFormat]);\n\n useEffect(() => {\n // allow control of value property\n if (!firstRender.current) {\n const dayPeriod =\n valueProp?.hours == null || valueProp.hours < 12\n ? PeriodPickerOptions.AM\n : PeriodPickerOptions.PM;\n\n setValue(\n valueProp != null\n ? {\n hours:\n valueProp?.hours != null\n ? getHoursForTimeFormat(valueProp.hours, currentTimeFormat.current)\n : null,\n minutes: valueProp?.minutes,\n seconds: valueProp?.seconds,\n period: currentTimeFormat.current === TimeFormat.H12 ? dayPeriod : null,\n }\n : null,\n true\n );\n }\n }, [setValue, valueProp]);\n\n useEffect(() => {\n // on close, make sure to restore the last valid value\n // (in the case the user closed with some time part invalid)\n if (!firstRender.current && !isOpen) {\n rollbackValue();\n }\n }, [isOpen, rollbackValue]);\n\n useEffect(() => {\n // run validations on each render\n // (except on the first, remaining in the standBy/untouched state)\n if (!firstRender.current) {\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && lastValidValue == null) {\n return \"invalid\";\n }\n return \"valid\";\n });\n }\n });\n\n useEffect(() => {\n firstRender.current = false;\n }, []);\n // #endregion\n\n // #region EVENT HANDLERS\n const handleTimeChange = (updatedTimeObject) => {\n if (!timeIsEqual(value, updatedTimeObject)) {\n const valid = timeIsValid(updatedTimeObject, timeFormat);\n\n // the value only is commited if valid\n setValue(updatedTimeObject, valid);\n\n if (valid) {\n // always output in 24h format\n onChange?.(getTimeWithFormat24(updatedTimeObject, timeFormat));\n }\n }\n };\n\n /**\n * Handles the change of the hours value\n * @param {Number} hours - selected hours\n * @memberof HvTimePicker\n */\n const handleHoursChange = (updatedHours) => {\n const newSelectedTime = {\n ...value,\n hours: updatedHours,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the minutes value\n * @param {Number} minutes - selected minutes\n * @memberof HvTimePicker\n */\n const handleMinutesChange = (updatedMinutes) => {\n const newSelectedTime = {\n ...value,\n minutes: updatedMinutes,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the seconds value\n * @param {Number} seconds - selected seconds\n * @memberof HvTimePicker\n */\n const handleSecondsChange = (updatedSeconds) => {\n const newSelectedTime = {\n ...value,\n seconds: updatedSeconds,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the period (am/pm)\n * @param {String} period - selected period\n * @memberof HvTimePicker\n */\n const handleChangePeriod = (updatedPeriod) => {\n const newSelectedTime = {\n ...value,\n period: updatedPeriod,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n const onToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the change of the expanded property.\n */\n if (evt === null) return;\n\n onToggleCallback?.(evt, open);\n\n setOpen(open);\n };\n // #endregion\n\n const hasLabels = label != null;\n const hasDescription = description != null;\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) || (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError ? setId(elementId, \"error\") : ariaErrorMessage;\n }\n\n return (\n <HvFormElement\n id={id}\n name={name}\n locale={locale}\n required={required}\n disabled={disabled}\n status={validationState}\n classes={{\n root: classes.formElementRoot,\n }}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabels || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabels && (\n <HvLabel id={setId(elementId, \"label\")} label={label} className={classes.label} />\n )}\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n id={setId(elementId, \"timepicker-dropdown\")}\n role=\"combobox\"\n placeholder={\n lastValidValue != null ? (\n getFormattedTime(lastValidValue, timeFormat)\n ) : (\n <HvTypography variant=\"placeholderText\">{placeholder}</HvTypography>\n )\n }\n classes={{\n placeholder: disabled ? classes.dropdownPlaceholderDisabled : classes.dropdownPlaceholder,\n header: isStateInvalid ? classes.dropdownHeaderInvalid : undefined,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n variableWidth\n placement=\"right\"\n adornment={\n <TimeIcon color={disabled ? \"atmo5\" : \"acce1\"} className={classes.iconBaseRoot} />\n }\n expanded={isOpen}\n onToggle={onToggle}\n onContainerCreation={setFocusToContent}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy].join(\" \").trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy].join(\" \").trim() ||\n undefined\n }\n disablePortal={disablePortal}\n disabled={disabled}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n {...dropdownProps}\n >\n <div className={classes.timePopperContainer}>\n <UnitTimePicker\n id={setId(elementId, \"hours\")}\n placeholder={hoursPlaceholder}\n unit={\n timeFormat === TimeFormat.H24\n ? TimePickerUnits.HOUR_24.type\n : TimePickerUnits.HOUR_12.type\n }\n unitValue={value?.hours}\n onChangeUnitTimeValue={handleHoursChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"minutes\")}\n placeholder={minutesPlaceholder}\n unit={TimePickerUnits.MINUTE.type}\n unitValue={value?.minutes}\n onChangeUnitTimeValue={handleMinutesChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"seconds\")}\n placeholder={secondsPlaceholder}\n unit={TimePickerUnits.SECOND.type}\n unitValue={value?.seconds}\n onChangeUnitTimeValue={handleSecondsChange}\n />\n {timeFormat === TimeFormat.H12 && (\n <PeriodPicker onChangePeriod={handleChangePeriod} period={value?.period} />\n )}\n </div>\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n};\n\nHvTimePicker.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied to the input/popper\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the input.\n */\n input: PropTypes.string,\n /**\n * Styles applied to the label.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the timePopperContainer.\n */\n timePopperContainer: PropTypes.string,\n /**\n * Styles applied to the separator.\n */\n separator: PropTypes.string,\n /**\n * Styles applied to the period container.\n */\n periodContainer: PropTypes.string,\n /**\n * Styles applied to the form element.\n */\n formElementRoot: PropTypes.string,\n /**\n * Styles applied to the dropdown placeholder.\n */\n dropdownPlaceholder: PropTypes.string,\n /**\n * Styles applied to the icon base.\n */\n iconBaseRoot: PropTypes.string,\n /**\n * Styles applied to the error area.\n */\n error: PropTypes.string,\n /**\n * Styles applied to the container of the labels elements.\n */\n labelContainer: PropTypes.string,\n /**\n * Styles applied to the icon information text.\n */\n description: PropTypes.string,\n /**\n * Styles applied to the dropdown when invalid information text.\n */\n dropdownHeaderInvalid: PropTypes.string,\n /**\n * Styles applied to the dropdown text when invalid.\n */\n\n dropdownPlaceholderDisabled: PropTypes.string,\n /**\n * Styles applied to the dropdown border when invalid.\n */\n dropdownHeaderOpen: PropTypes.string,\n }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The value of the form element.\n */\n value: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n /**\n * When uncontrolled, defines the initial input value.\n */\n defaultValue: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * The placeholder value when no time is selected.\n */\n placeholder: PropTypes.string,\n\n /**\n * The placeholder of the hours input.\n */\n hoursPlaceholder: PropTypes.string,\n /**\n * The placeholder of the minutes input.\n */\n minutesPlaceholder: PropTypes.string,\n /**\n * The placeholder of the seconds input.\n */\n secondsPlaceholder: PropTypes.string,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage: PropTypes.node,\n /**\n * Identifies the element that provides an error message for the time picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\": PropTypes.string,\n\n /**\n * If the time should be presented in 12 or 24 hour format.\n * If undefined, the component will use a format according to the passed locale.\n * If defined, it will \"override\" the default value given by the locale\n */\n timeFormat: PropTypes.oneOf([TimeFormat.H12, TimeFormat.H24, 12, 24, undefined]),\n\n /**\n * Locale that will provide the time format(12 or 24 hour format)\n * It is \"overwritten\" by the timeFormat prop\n */\n locale: PropTypes.string,\n\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a object param with the following props:\n * - hours (in a 24h format)\n * - minutes\n * - seconds\n * - period\n *\n * It is always invoked with the hours in a 24h format\n */\n onChange: PropTypes.func,\n\n /**\n * Callback called when dropdown changes the expanded state.\n *\n * @param {object} event The event source of the callback.\n * @param {boolean} open If the dropdown new state is open (`true`) or closed (`false`).\n */\n onToggle: PropTypes.func,\n\n /**\n * Allow starting with an empty value by not defaulting to the current time.\n * This should become the default behavior when the component is promoted to core.\n */\n disableDefaultValue: PropTypes.bool,\n\n /**\n * Default value for the hours picker\n * @deprecated use defaultValue instead\n */\n hours: PropTypes.number,\n /**\n * Default value for the minutes picker\n * @deprecated use defaultValue instead\n */\n minutes: PropTypes.number,\n /**\n * Default value for the seconds picker\n * @deprecated use defaultValue instead\n */\n seconds: PropTypes.number,\n /**\n * Default value for the period picker\n * @deprecated use defaultValue instead\n */\n period: PropTypes.string,\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n /**\n * Extra properties to be passed to the timepicker dropdown.\n */\n dropdownProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvTimePicker\" })(HvTimePicker);\n"],"file":"TimePicker.js"}
@@ -24,7 +24,7 @@ import React, { useState, useEffect, useRef, useMemo } from "react";
24
24
  import PropTypes from "prop-types";
25
25
  import clsx from "clsx";
26
26
  import { withStyles } from "@material-ui/core";
27
- import { HvFormElement, HvBaseDropdown, HvLabel, HvWarningText, HvInfoMessage, setId, useUniqueId, useControlled, useLocale, HvTypography, useSavedState } from "@hitachivantara/uikit-react-core";
27
+ import { HvFormElement, HvBaseDropdown, HvLabel, HvWarningText, HvInfoMessage, setId, useUniqueId, useControlled, useLocale, HvTypography, useSavedState, useDeprecated } from "@hitachivantara/uikit-react-core";
28
28
  import { Time as TimeIcon } from "@hitachivantara/uikit-react-icons";
29
29
  import { TimePickerUnits, TimeFormat, PeriodPickerOptions } from "./enums";
30
30
  import { getFormattedTime, getTimeFormatForLocale } from "./timePickerFormatter";
@@ -99,7 +99,8 @@ var HvTimePicker = function HvTimePicker(_ref) {
99
99
  dropdownProps = _ref.dropdownProps,
100
100
  others = _objectWithoutProperties(_ref, _excluded);
101
101
 
102
- // #region STATE
102
+ useDeprecated("TimePicker", "Please use the TimePicker component in Core"); // #region STATE
103
+
103
104
  var elementId = useUniqueId(id, "hvtimepicker");
104
105
  var localeFromProvider = useLocale();
105
106
  var locale = localeProp || localeFromProvider;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/TimePicker/TimePicker.js"],"names":["React","useState","useEffect","useRef","useMemo","PropTypes","clsx","withStyles","HvFormElement","HvBaseDropdown","HvLabel","HvWarningText","HvInfoMessage","setId","useUniqueId","useControlled","useLocale","HvTypography","useSavedState","Time","TimeIcon","TimePickerUnits","TimeFormat","PeriodPickerOptions","getFormattedTime","getTimeFormatForLocale","getHoursForTimeFormat","getTimeWithFormat24","UnitTimePicker","PeriodPicker","styles","setFocusToContent","containerRef","getElementsByTagName","focus","timeIsEqual","timeA","timeB","hours","minutes","seconds","period","timeIsValid","time","timeFormat","hourInputState","H24","H12","minutesInputState","secondsInputState","HvTimePicker","classes","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","placeholder","hoursPlaceholder","minutesPlaceholder","secondsPlaceholder","valueProp","value","defaultValueProp","defaultValue","chosenTimeFormat","localeProp","locale","disableDefaultValue","onToggleCallback","onToggle","Date","getHours","getMinutes","chosenTimePeriod","disablePortal","escapeWithReference","dropdownProps","others","elementId","localeFromProvider","toString","v","AM","PM","setValue","rollbackValue","lastValidValue","validationMessage","validationState","setValidationState","isOpen","setOpen","firstRender","currentValue","current","currentTimeFormat","to12","h","p","undefined","dayPeriod","handleTimeChange","updatedTimeObject","valid","handleHoursChange","updatedHours","newSelectedTime","handleMinutesChange","updatedMinutes","handleSecondsChange","updatedSeconds","handleChangePeriod","updatedPeriod","evt","open","hasLabels","hasDescription","canShowError","isStateInvalid","errorMessageId","root","formElementRoot","labelContainer","dropdownPlaceholderDisabled","dropdownPlaceholder","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","iconBaseRoot","join","trim","modifiers","enabled","timePopperContainer","HOUR_24","type","HOUR_12","separator","MINUTE","SECOND","error","propTypes","shape","string","input","periodContainer","isRequired","number","bool","node","oneOf","func","instanceOf","Object"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport {\n HvFormElement,\n HvBaseDropdown,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n setId,\n useUniqueId,\n useControlled,\n useLocale,\n HvTypography,\n useSavedState,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\n\nimport { TimePickerUnits, TimeFormat, PeriodPickerOptions } from \"./enums\";\nimport { getFormattedTime, getTimeFormatForLocale } from \"./timePickerFormatter\";\nimport { getHoursForTimeFormat, getTimeWithFormat24 } from \"./timePickerConverter\";\nimport UnitTimePicker from \"./UnitTimePicker\";\nimport PeriodPicker from \"./PeriodPicker\";\n\nimport styles from \"./styles\";\n\nconst setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n};\n\nconst timeIsEqual = (timeA, timeB) => {\n return (\n timeA === timeB ||\n (timeA == null && timeB == null) ||\n (timeA != null &&\n timeB != null &&\n timeA.hours === timeB.hours &&\n timeA.minutes === timeB.minutes &&\n timeA.seconds === timeB.seconds &&\n timeA.period === timeB.period)\n );\n};\n\nconst timeIsValid = (time, timeFormat) => {\n const hourInputState =\n time?.hours != null &&\n time.hours !== \"\" &&\n time.hours >= 0 &&\n ((timeFormat === TimeFormat.H24 && time.hours <= 24) ||\n (timeFormat === TimeFormat.H12 && time.hours <= 12));\n const minutesInputState =\n time?.minutes != null && time.minutes !== \"\" && time.minutes >= 0 && time.minutes <= 59;\n const secondsInputState =\n time?.seconds != null && time.seconds !== \"\" && time.seconds >= 0 && time.seconds <= 59;\n\n return hourInputState && minutesInputState && secondsInputState;\n};\n\n/**\n * A TimePicker component used to choose the time, following specifications provided by Design System. Still in development.\n */\n\nconst HvTimePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat: chosenTimeFormat,\n locale: localeProp,\n\n disableDefaultValue,\n\n onToggle: onToggleCallback,\n\n // deprecated properties:\n hours = new Date().getHours(),\n minutes = new Date().getMinutes(),\n seconds = 0,\n period: chosenTimePeriod,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n ...others\n}) => {\n // #region STATE\n const elementId = useUniqueId(id, \"hvtimepicker\");\n\n const localeFromProvider = useLocale();\n const locale = localeProp || localeFromProvider;\n const timeFormat = useMemo(\n () => (chosenTimeFormat != null ? chosenTimeFormat.toString() : getTimeFormatForLocale(locale)),\n [chosenTimeFormat, locale]\n );\n\n const [value, setValue, rollbackValue, lastValidValue] = useSavedState(() => {\n // fallback to the deprecated properties\n // we shouldn't do that when promoting to core\n // as it makes impossible to start with an empty value\n const defaultValue =\n defaultValueProp ??\n (disableDefaultValue\n ? null\n : {\n hours,\n minutes,\n seconds,\n });\n\n const v = valueProp ?? defaultValue;\n\n return v != null\n ? {\n hours: v?.hours != null ? getHoursForTimeFormat(v.hours, timeFormat) : null,\n minutes: v?.minutes,\n seconds: v?.seconds,\n period:\n timeFormat === TimeFormat.H12\n ? chosenTimePeriod ??\n (v?.hours == null || v.hours < 12 ? PeriodPickerOptions.AM : PeriodPickerOptions.PM)\n : null,\n }\n : null;\n });\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState, setValidationState] = useControlled(status, \"standBy\");\n\n const [isOpen, setOpen] = useState(false);\n // #endregion\n\n // #region SIDE EFFECTS\n const firstRender = useRef(true);\n const currentValue = useRef(value);\n useEffect(() => {\n currentValue.current = value;\n });\n const currentTimeFormat = useRef(timeFormat);\n useEffect(() => {\n currentTimeFormat.current = timeFormat;\n });\n\n useEffect(() => {\n // allow external changes to the time format (via timeFormat or locale properties)\n if (!firstRender.current && currentValue.current != null) {\n const to12 = timeFormat === TimeFormat.H12;\n\n let { hours: h, period: p } = currentValue.current;\n if (to12) {\n if (h == null || h < 12) {\n p = PeriodPickerOptions.AM;\n } else {\n p = PeriodPickerOptions.PM;\n if (h > 12) {\n h -= 12;\n }\n }\n } else {\n if (p === PeriodPickerOptions.AM) {\n if (h === 12) {\n h = 0;\n }\n } else if (h < 12) {\n h += 12;\n }\n p = undefined;\n }\n\n setValue(\n {\n hours: h,\n minutes: currentValue.current.minutes,\n seconds: currentValue.current.seconds,\n period: p,\n },\n true\n );\n }\n }, [setValue, timeFormat]);\n\n useEffect(() => {\n // allow control of value property\n if (!firstRender.current) {\n const dayPeriod =\n valueProp?.hours == null || valueProp.hours < 12\n ? PeriodPickerOptions.AM\n : PeriodPickerOptions.PM;\n\n setValue(\n valueProp != null\n ? {\n hours:\n valueProp?.hours != null\n ? getHoursForTimeFormat(valueProp.hours, currentTimeFormat.current)\n : null,\n minutes: valueProp?.minutes,\n seconds: valueProp?.seconds,\n period: currentTimeFormat.current === TimeFormat.H12 ? dayPeriod : null,\n }\n : null,\n true\n );\n }\n }, [setValue, valueProp]);\n\n useEffect(() => {\n // on close, make sure to restore the last valid value\n // (in the case the user closed with some time part invalid)\n if (!firstRender.current && !isOpen) {\n rollbackValue();\n }\n }, [isOpen, rollbackValue]);\n\n useEffect(() => {\n // run validations on each render\n // (except on the first, remaining in the standBy/untouched state)\n if (!firstRender.current) {\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && lastValidValue == null) {\n return \"invalid\";\n }\n return \"valid\";\n });\n }\n });\n\n useEffect(() => {\n firstRender.current = false;\n }, []);\n // #endregion\n\n // #region EVENT HANDLERS\n const handleTimeChange = (updatedTimeObject) => {\n if (!timeIsEqual(value, updatedTimeObject)) {\n const valid = timeIsValid(updatedTimeObject, timeFormat);\n\n // the value only is commited if valid\n setValue(updatedTimeObject, valid);\n\n if (valid) {\n // always output in 24h format\n onChange?.(getTimeWithFormat24(updatedTimeObject, timeFormat));\n }\n }\n };\n\n /**\n * Handles the change of the hours value\n * @param {Number} hours - selected hours\n * @memberof HvTimePicker\n */\n const handleHoursChange = (updatedHours) => {\n const newSelectedTime = {\n ...value,\n hours: updatedHours,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the minutes value\n * @param {Number} minutes - selected minutes\n * @memberof HvTimePicker\n */\n const handleMinutesChange = (updatedMinutes) => {\n const newSelectedTime = {\n ...value,\n minutes: updatedMinutes,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the seconds value\n * @param {Number} seconds - selected seconds\n * @memberof HvTimePicker\n */\n const handleSecondsChange = (updatedSeconds) => {\n const newSelectedTime = {\n ...value,\n seconds: updatedSeconds,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the period (am/pm)\n * @param {String} period - selected period\n * @memberof HvTimePicker\n */\n const handleChangePeriod = (updatedPeriod) => {\n const newSelectedTime = {\n ...value,\n period: updatedPeriod,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n const onToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the change of the expanded property.\n */\n if (evt === null) return;\n\n onToggleCallback?.(evt, open);\n\n setOpen(open);\n };\n // #endregion\n\n const hasLabels = label != null;\n const hasDescription = description != null;\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) || (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError ? setId(elementId, \"error\") : ariaErrorMessage;\n }\n\n return (\n <HvFormElement\n id={id}\n name={name}\n locale={locale}\n required={required}\n disabled={disabled}\n status={validationState}\n classes={{\n root: classes.formElementRoot,\n }}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabels || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabels && (\n <HvLabel id={setId(elementId, \"label\")} label={label} className={classes.label} />\n )}\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n id={setId(elementId, \"timepicker-dropdown\")}\n role=\"combobox\"\n placeholder={\n lastValidValue != null ? (\n getFormattedTime(lastValidValue, timeFormat)\n ) : (\n <HvTypography variant=\"placeholderText\">{placeholder}</HvTypography>\n )\n }\n classes={{\n placeholder: disabled ? classes.dropdownPlaceholderDisabled : classes.dropdownPlaceholder,\n header: isStateInvalid ? classes.dropdownHeaderInvalid : undefined,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n variableWidth\n placement=\"right\"\n adornment={\n <TimeIcon color={disabled ? \"atmo5\" : \"acce1\"} className={classes.iconBaseRoot} />\n }\n expanded={isOpen}\n onToggle={onToggle}\n onContainerCreation={setFocusToContent}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy].join(\" \").trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy].join(\" \").trim() ||\n undefined\n }\n disablePortal={disablePortal}\n disabled={disabled}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n {...dropdownProps}\n >\n <div className={classes.timePopperContainer}>\n <UnitTimePicker\n id={setId(elementId, \"hours\")}\n placeholder={hoursPlaceholder}\n unit={\n timeFormat === TimeFormat.H24\n ? TimePickerUnits.HOUR_24.type\n : TimePickerUnits.HOUR_12.type\n }\n unitValue={value?.hours}\n onChangeUnitTimeValue={handleHoursChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"minutes\")}\n placeholder={minutesPlaceholder}\n unit={TimePickerUnits.MINUTE.type}\n unitValue={value?.minutes}\n onChangeUnitTimeValue={handleMinutesChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"seconds\")}\n placeholder={secondsPlaceholder}\n unit={TimePickerUnits.SECOND.type}\n unitValue={value?.seconds}\n onChangeUnitTimeValue={handleSecondsChange}\n />\n {timeFormat === TimeFormat.H12 && (\n <PeriodPicker onChangePeriod={handleChangePeriod} period={value?.period} />\n )}\n </div>\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n};\n\nHvTimePicker.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied to the input/popper\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the input.\n */\n input: PropTypes.string,\n /**\n * Styles applied to the label.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the timePopperContainer.\n */\n timePopperContainer: PropTypes.string,\n /**\n * Styles applied to the separator.\n */\n separator: PropTypes.string,\n /**\n * Styles applied to the period container.\n */\n periodContainer: PropTypes.string,\n /**\n * Styles applied to the form element.\n */\n formElementRoot: PropTypes.string,\n /**\n * Styles applied to the dropdown placeholder.\n */\n dropdownPlaceholder: PropTypes.string,\n /**\n * Styles applied to the icon base.\n */\n iconBaseRoot: PropTypes.string,\n /**\n * Styles applied to the error area.\n */\n error: PropTypes.string,\n /**\n * Styles applied to the container of the labels elements.\n */\n labelContainer: PropTypes.string,\n /**\n * Styles applied to the icon information text.\n */\n description: PropTypes.string,\n /**\n * Styles applied to the dropdown when invalid information text.\n */\n dropdownHeaderInvalid: PropTypes.string,\n /**\n * Styles applied to the dropdown text when invalid.\n */\n\n dropdownPlaceholderDisabled: PropTypes.string,\n /**\n * Styles applied to the dropdown border when invalid.\n */\n dropdownHeaderOpen: PropTypes.string,\n }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The value of the form element.\n */\n value: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n /**\n * When uncontrolled, defines the initial input value.\n */\n defaultValue: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * The placeholder value when no time is selected.\n */\n placeholder: PropTypes.string,\n\n /**\n * The placeholder of the hours input.\n */\n hoursPlaceholder: PropTypes.string,\n /**\n * The placeholder of the minutes input.\n */\n minutesPlaceholder: PropTypes.string,\n /**\n * The placeholder of the seconds input.\n */\n secondsPlaceholder: PropTypes.string,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage: PropTypes.node,\n /**\n * Identifies the element that provides an error message for the time picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\": PropTypes.string,\n\n /**\n * If the time should be presented in 12 or 24 hour format.\n * If undefined, the component will use a format according to the passed locale.\n * If defined, it will \"override\" the default value given by the locale\n */\n timeFormat: PropTypes.oneOf([TimeFormat.H12, TimeFormat.H24, 12, 24, undefined]),\n\n /**\n * Locale that will provide the time format(12 or 24 hour format)\n * It is \"overwritten\" by the timeFormat prop\n */\n locale: PropTypes.string,\n\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a object param with the following props:\n * - hours (in a 24h format)\n * - minutes\n * - seconds\n * - period\n *\n * It is always invoked with the hours in a 24h format\n */\n onChange: PropTypes.func,\n\n /**\n * Callback called when dropdown changes the expanded state.\n *\n * @param {object} event The event source of the callback.\n * @param {boolean} open If the dropdown new state is open (`true`) or closed (`false`).\n */\n onToggle: PropTypes.func,\n\n /**\n * Allow starting with an empty value by not defaulting to the current time.\n * This should become the default behavior when the component is promoted to core.\n */\n disableDefaultValue: PropTypes.bool,\n\n /**\n * Default value for the hours picker\n * @deprecated use defaultValue instead\n */\n hours: PropTypes.number,\n /**\n * Default value for the minutes picker\n * @deprecated use defaultValue instead\n */\n minutes: PropTypes.number,\n /**\n * Default value for the seconds picker\n * @deprecated use defaultValue instead\n */\n seconds: PropTypes.number,\n /**\n * Default value for the period picker\n * @deprecated use defaultValue instead\n */\n period: PropTypes.string,\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n /**\n * Extra properties to be passed to the timepicker dropdown.\n */\n dropdownProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvTimePicker\" })(HvTimePicker);\n"],"file":"TimePicker.js"}
1
+ {"version":3,"sources":["../../../src/TimePicker/TimePicker.js"],"names":["React","useState","useEffect","useRef","useMemo","PropTypes","clsx","withStyles","HvFormElement","HvBaseDropdown","HvLabel","HvWarningText","HvInfoMessage","setId","useUniqueId","useControlled","useLocale","HvTypography","useSavedState","useDeprecated","Time","TimeIcon","TimePickerUnits","TimeFormat","PeriodPickerOptions","getFormattedTime","getTimeFormatForLocale","getHoursForTimeFormat","getTimeWithFormat24","UnitTimePicker","PeriodPicker","styles","setFocusToContent","containerRef","getElementsByTagName","focus","timeIsEqual","timeA","timeB","hours","minutes","seconds","period","timeIsValid","time","timeFormat","hourInputState","H24","H12","minutesInputState","secondsInputState","HvTimePicker","classes","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","placeholder","hoursPlaceholder","minutesPlaceholder","secondsPlaceholder","valueProp","value","defaultValueProp","defaultValue","chosenTimeFormat","localeProp","locale","disableDefaultValue","onToggleCallback","onToggle","Date","getHours","getMinutes","chosenTimePeriod","disablePortal","escapeWithReference","dropdownProps","others","elementId","localeFromProvider","toString","v","AM","PM","setValue","rollbackValue","lastValidValue","validationMessage","validationState","setValidationState","isOpen","setOpen","firstRender","currentValue","current","currentTimeFormat","to12","h","p","undefined","dayPeriod","handleTimeChange","updatedTimeObject","valid","handleHoursChange","updatedHours","newSelectedTime","handleMinutesChange","updatedMinutes","handleSecondsChange","updatedSeconds","handleChangePeriod","updatedPeriod","evt","open","hasLabels","hasDescription","canShowError","isStateInvalid","errorMessageId","root","formElementRoot","labelContainer","dropdownPlaceholderDisabled","dropdownPlaceholder","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","iconBaseRoot","join","trim","modifiers","enabled","timePopperContainer","HOUR_24","type","HOUR_12","separator","MINUTE","SECOND","error","propTypes","shape","string","input","periodContainer","isRequired","number","bool","node","oneOf","func","instanceOf","Object"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport {\n HvFormElement,\n HvBaseDropdown,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n setId,\n useUniqueId,\n useControlled,\n useLocale,\n HvTypography,\n useSavedState,\n useDeprecated,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\n\nimport { TimePickerUnits, TimeFormat, PeriodPickerOptions } from \"./enums\";\nimport { getFormattedTime, getTimeFormatForLocale } from \"./timePickerFormatter\";\nimport { getHoursForTimeFormat, getTimeWithFormat24 } from \"./timePickerConverter\";\nimport UnitTimePicker from \"./UnitTimePicker\";\nimport PeriodPicker from \"./PeriodPicker\";\n\nimport styles from \"./styles\";\n\nconst setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n};\n\nconst timeIsEqual = (timeA, timeB) => {\n return (\n timeA === timeB ||\n (timeA == null && timeB == null) ||\n (timeA != null &&\n timeB != null &&\n timeA.hours === timeB.hours &&\n timeA.minutes === timeB.minutes &&\n timeA.seconds === timeB.seconds &&\n timeA.period === timeB.period)\n );\n};\n\nconst timeIsValid = (time, timeFormat) => {\n const hourInputState =\n time?.hours != null &&\n time.hours !== \"\" &&\n time.hours >= 0 &&\n ((timeFormat === TimeFormat.H24 && time.hours <= 24) ||\n (timeFormat === TimeFormat.H12 && time.hours <= 12));\n const minutesInputState =\n time?.minutes != null && time.minutes !== \"\" && time.minutes >= 0 && time.minutes <= 59;\n const secondsInputState =\n time?.seconds != null && time.seconds !== \"\" && time.seconds >= 0 && time.seconds <= 59;\n\n return hourInputState && minutesInputState && secondsInputState;\n};\n\n/**\n * A TimePicker component used to choose the time, following specifications provided by Design System. Still in development.\n */\n\nconst HvTimePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat: chosenTimeFormat,\n locale: localeProp,\n\n disableDefaultValue,\n\n onToggle: onToggleCallback,\n\n // deprecated properties:\n hours = new Date().getHours(),\n minutes = new Date().getMinutes(),\n seconds = 0,\n period: chosenTimePeriod,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n ...others\n}) => {\n useDeprecated(\"TimePicker\", \"Please use the TimePicker component in Core\");\n\n // #region STATE\n const elementId = useUniqueId(id, \"hvtimepicker\");\n\n const localeFromProvider = useLocale();\n const locale = localeProp || localeFromProvider;\n const timeFormat = useMemo(\n () => (chosenTimeFormat != null ? chosenTimeFormat.toString() : getTimeFormatForLocale(locale)),\n [chosenTimeFormat, locale]\n );\n\n const [value, setValue, rollbackValue, lastValidValue] = useSavedState(() => {\n // fallback to the deprecated properties\n // we shouldn't do that when promoting to core\n // as it makes impossible to start with an empty value\n const defaultValue =\n defaultValueProp ??\n (disableDefaultValue\n ? null\n : {\n hours,\n minutes,\n seconds,\n });\n\n const v = valueProp ?? defaultValue;\n\n return v != null\n ? {\n hours: v?.hours != null ? getHoursForTimeFormat(v.hours, timeFormat) : null,\n minutes: v?.minutes,\n seconds: v?.seconds,\n period:\n timeFormat === TimeFormat.H12\n ? chosenTimePeriod ??\n (v?.hours == null || v.hours < 12 ? PeriodPickerOptions.AM : PeriodPickerOptions.PM)\n : null,\n }\n : null;\n });\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState, setValidationState] = useControlled(status, \"standBy\");\n\n const [isOpen, setOpen] = useState(false);\n // #endregion\n\n // #region SIDE EFFECTS\n const firstRender = useRef(true);\n const currentValue = useRef(value);\n useEffect(() => {\n currentValue.current = value;\n });\n const currentTimeFormat = useRef(timeFormat);\n useEffect(() => {\n currentTimeFormat.current = timeFormat;\n });\n\n useEffect(() => {\n // allow external changes to the time format (via timeFormat or locale properties)\n if (!firstRender.current && currentValue.current != null) {\n const to12 = timeFormat === TimeFormat.H12;\n\n let { hours: h, period: p } = currentValue.current;\n if (to12) {\n if (h == null || h < 12) {\n p = PeriodPickerOptions.AM;\n } else {\n p = PeriodPickerOptions.PM;\n if (h > 12) {\n h -= 12;\n }\n }\n } else {\n if (p === PeriodPickerOptions.AM) {\n if (h === 12) {\n h = 0;\n }\n } else if (h < 12) {\n h += 12;\n }\n p = undefined;\n }\n\n setValue(\n {\n hours: h,\n minutes: currentValue.current.minutes,\n seconds: currentValue.current.seconds,\n period: p,\n },\n true\n );\n }\n }, [setValue, timeFormat]);\n\n useEffect(() => {\n // allow control of value property\n if (!firstRender.current) {\n const dayPeriod =\n valueProp?.hours == null || valueProp.hours < 12\n ? PeriodPickerOptions.AM\n : PeriodPickerOptions.PM;\n\n setValue(\n valueProp != null\n ? {\n hours:\n valueProp?.hours != null\n ? getHoursForTimeFormat(valueProp.hours, currentTimeFormat.current)\n : null,\n minutes: valueProp?.minutes,\n seconds: valueProp?.seconds,\n period: currentTimeFormat.current === TimeFormat.H12 ? dayPeriod : null,\n }\n : null,\n true\n );\n }\n }, [setValue, valueProp]);\n\n useEffect(() => {\n // on close, make sure to restore the last valid value\n // (in the case the user closed with some time part invalid)\n if (!firstRender.current && !isOpen) {\n rollbackValue();\n }\n }, [isOpen, rollbackValue]);\n\n useEffect(() => {\n // run validations on each render\n // (except on the first, remaining in the standBy/untouched state)\n if (!firstRender.current) {\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && lastValidValue == null) {\n return \"invalid\";\n }\n return \"valid\";\n });\n }\n });\n\n useEffect(() => {\n firstRender.current = false;\n }, []);\n // #endregion\n\n // #region EVENT HANDLERS\n const handleTimeChange = (updatedTimeObject) => {\n if (!timeIsEqual(value, updatedTimeObject)) {\n const valid = timeIsValid(updatedTimeObject, timeFormat);\n\n // the value only is commited if valid\n setValue(updatedTimeObject, valid);\n\n if (valid) {\n // always output in 24h format\n onChange?.(getTimeWithFormat24(updatedTimeObject, timeFormat));\n }\n }\n };\n\n /**\n * Handles the change of the hours value\n * @param {Number} hours - selected hours\n * @memberof HvTimePicker\n */\n const handleHoursChange = (updatedHours) => {\n const newSelectedTime = {\n ...value,\n hours: updatedHours,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the minutes value\n * @param {Number} minutes - selected minutes\n * @memberof HvTimePicker\n */\n const handleMinutesChange = (updatedMinutes) => {\n const newSelectedTime = {\n ...value,\n minutes: updatedMinutes,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the seconds value\n * @param {Number} seconds - selected seconds\n * @memberof HvTimePicker\n */\n const handleSecondsChange = (updatedSeconds) => {\n const newSelectedTime = {\n ...value,\n seconds: updatedSeconds,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n /**\n * Handles the change of the period (am/pm)\n * @param {String} period - selected period\n * @memberof HvTimePicker\n */\n const handleChangePeriod = (updatedPeriod) => {\n const newSelectedTime = {\n ...value,\n period: updatedPeriod,\n };\n\n handleTimeChange(newSelectedTime);\n };\n\n const onToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the change of the expanded property.\n */\n if (evt === null) return;\n\n onToggleCallback?.(evt, open);\n\n setOpen(open);\n };\n // #endregion\n\n const hasLabels = label != null;\n const hasDescription = description != null;\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) || (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError ? setId(elementId, \"error\") : ariaErrorMessage;\n }\n\n return (\n <HvFormElement\n id={id}\n name={name}\n locale={locale}\n required={required}\n disabled={disabled}\n status={validationState}\n classes={{\n root: classes.formElementRoot,\n }}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabels || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabels && (\n <HvLabel id={setId(elementId, \"label\")} label={label} className={classes.label} />\n )}\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n id={setId(elementId, \"timepicker-dropdown\")}\n role=\"combobox\"\n placeholder={\n lastValidValue != null ? (\n getFormattedTime(lastValidValue, timeFormat)\n ) : (\n <HvTypography variant=\"placeholderText\">{placeholder}</HvTypography>\n )\n }\n classes={{\n placeholder: disabled ? classes.dropdownPlaceholderDisabled : classes.dropdownPlaceholder,\n header: isStateInvalid ? classes.dropdownHeaderInvalid : undefined,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n variableWidth\n placement=\"right\"\n adornment={\n <TimeIcon color={disabled ? \"atmo5\" : \"acce1\"} className={classes.iconBaseRoot} />\n }\n expanded={isOpen}\n onToggle={onToggle}\n onContainerCreation={setFocusToContent}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy].join(\" \").trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy].join(\" \").trim() ||\n undefined\n }\n disablePortal={disablePortal}\n disabled={disabled}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n {...dropdownProps}\n >\n <div className={classes.timePopperContainer}>\n <UnitTimePicker\n id={setId(elementId, \"hours\")}\n placeholder={hoursPlaceholder}\n unit={\n timeFormat === TimeFormat.H24\n ? TimePickerUnits.HOUR_24.type\n : TimePickerUnits.HOUR_12.type\n }\n unitValue={value?.hours}\n onChangeUnitTimeValue={handleHoursChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"minutes\")}\n placeholder={minutesPlaceholder}\n unit={TimePickerUnits.MINUTE.type}\n unitValue={value?.minutes}\n onChangeUnitTimeValue={handleMinutesChange}\n />\n <span className={classes.separator}>:</span>\n <UnitTimePicker\n id={setId(elementId, \"seconds\")}\n placeholder={secondsPlaceholder}\n unit={TimePickerUnits.SECOND.type}\n unitValue={value?.seconds}\n onChangeUnitTimeValue={handleSecondsChange}\n />\n {timeFormat === TimeFormat.H12 && (\n <PeriodPicker onChangePeriod={handleChangePeriod} period={value?.period} />\n )}\n </div>\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n};\n\nHvTimePicker.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied to the input/popper\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the input.\n */\n input: PropTypes.string,\n /**\n * Styles applied to the label.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the timePopperContainer.\n */\n timePopperContainer: PropTypes.string,\n /**\n * Styles applied to the separator.\n */\n separator: PropTypes.string,\n /**\n * Styles applied to the period container.\n */\n periodContainer: PropTypes.string,\n /**\n * Styles applied to the form element.\n */\n formElementRoot: PropTypes.string,\n /**\n * Styles applied to the dropdown placeholder.\n */\n dropdownPlaceholder: PropTypes.string,\n /**\n * Styles applied to the icon base.\n */\n iconBaseRoot: PropTypes.string,\n /**\n * Styles applied to the error area.\n */\n error: PropTypes.string,\n /**\n * Styles applied to the container of the labels elements.\n */\n labelContainer: PropTypes.string,\n /**\n * Styles applied to the icon information text.\n */\n description: PropTypes.string,\n /**\n * Styles applied to the dropdown when invalid information text.\n */\n dropdownHeaderInvalid: PropTypes.string,\n /**\n * Styles applied to the dropdown text when invalid.\n */\n\n dropdownPlaceholderDisabled: PropTypes.string,\n /**\n * Styles applied to the dropdown border when invalid.\n */\n dropdownHeaderOpen: PropTypes.string,\n }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The value of the form element.\n */\n value: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n /**\n * When uncontrolled, defines the initial input value.\n */\n defaultValue: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n period: PropTypes.string,\n }),\n\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * The placeholder value when no time is selected.\n */\n placeholder: PropTypes.string,\n\n /**\n * The placeholder of the hours input.\n */\n hoursPlaceholder: PropTypes.string,\n /**\n * The placeholder of the minutes input.\n */\n minutesPlaceholder: PropTypes.string,\n /**\n * The placeholder of the seconds input.\n */\n secondsPlaceholder: PropTypes.string,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage: PropTypes.node,\n /**\n * Identifies the element that provides an error message for the time picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\": PropTypes.string,\n\n /**\n * If the time should be presented in 12 or 24 hour format.\n * If undefined, the component will use a format according to the passed locale.\n * If defined, it will \"override\" the default value given by the locale\n */\n timeFormat: PropTypes.oneOf([TimeFormat.H12, TimeFormat.H24, 12, 24, undefined]),\n\n /**\n * Locale that will provide the time format(12 or 24 hour format)\n * It is \"overwritten\" by the timeFormat prop\n */\n locale: PropTypes.string,\n\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a object param with the following props:\n * - hours (in a 24h format)\n * - minutes\n * - seconds\n * - period\n *\n * It is always invoked with the hours in a 24h format\n */\n onChange: PropTypes.func,\n\n /**\n * Callback called when dropdown changes the expanded state.\n *\n * @param {object} event The event source of the callback.\n * @param {boolean} open If the dropdown new state is open (`true`) or closed (`false`).\n */\n onToggle: PropTypes.func,\n\n /**\n * Allow starting with an empty value by not defaulting to the current time.\n * This should become the default behavior when the component is promoted to core.\n */\n disableDefaultValue: PropTypes.bool,\n\n /**\n * Default value for the hours picker\n * @deprecated use defaultValue instead\n */\n hours: PropTypes.number,\n /**\n * Default value for the minutes picker\n * @deprecated use defaultValue instead\n */\n minutes: PropTypes.number,\n /**\n * Default value for the seconds picker\n * @deprecated use defaultValue instead\n */\n seconds: PropTypes.number,\n /**\n * Default value for the period picker\n * @deprecated use defaultValue instead\n */\n period: PropTypes.string,\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n /**\n * Extra properties to be passed to the timepicker dropdown.\n */\n dropdownProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvTimePicker\" })(HvTimePicker);\n"],"file":"TimePicker.js"}
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  const _excluded = ["id", "className", "classes", "open", "footer", "notifications", "hasNewNotifications", "emptyStatePanelTitle", "emptyStatePanelMessage", "emptyStatePanelIcon", "labels", "newNotificationsButtonAction", "locale"];
4
+ import "core-js/modules/es.array.includes.js";
4
5
  import "core-js/modules/web.dom-collections.iterator.js";
5
6
  import React, { useState, useEffect } from "react";
6
7
  import PropTypes from "prop-types";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/NotificationPanel/NotificationPanel.js"],"names":["React","useState","useEffect","PropTypes","clsx","dayjs","deprecatedPropType","withStyles","HvPanel","HvActionBar","HvDropDownMenu","setId","useLabels","useLocale","styles","Notification","EmptyStatePanel","NotificationsIndicator","DEFAULT_LABELS","notificationGroupHeader","newNotifications","olderNotifications","notificationIndicator","label","buttonLabel","getGenericLocale","locale","includes","substr","indexOf","importAndLoadLocale","then","catch","genericLocale","console","warn","HvNotificationPanel","id","className","classes","open","footer","notifications","hasNewNotifications","emptyStatePanelTitle","emptyStatePanelMessage","emptyStatePanelIcon","labels","labelsProp","newNotificationsButtonAction","localeProp","others","localeFromProvider","highlighted","setHighlighted","undefined","isExpanded","setIsExpanded","isLocaleLoaded","setIsLocaleLoaded","isMounted","generateNotificationsActions","notificationId","onToggle","actions","expand","dList","values","event","item","callback","s","dropDownMenuProps","notificationElementGenerator","notificationsToRender","map","notification","notificationIsHighlighted","title","isRead","icon","date","onClick","onKeyPress","hasNotifications","length","renderNotifications","root","closed","panel","emptyState","actionBarRoot","actionBar","propTypes","string","bool","shape","notificationsIndicator","isRequired","arrayOf","oneOfType","number","object","element","func","action","instanceOf","Object","node","name"],"mappings":";;;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,kBAAT,EAA6BC,UAA7B,QAA+C,mBAA/C;AACA,SACEC,OADF,EAEEC,WAFF,EAGEC,cAHF,EAIEC,KAJF,EAKEC,SALF,EAMEC,SANF,QAOO,kCAPP;AASA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AACA,OAAOC,sBAAP,MAAmC,0BAAnC;AAEA,MAAMC,cAAc,GAAG;AACrBC,EAAAA,uBAAuB,EAAE;AACvBC,IAAAA,gBAAgB,EAAE,KADK;AAEvBC,IAAAA,kBAAkB,EAAE;AAFG,GADJ;AAKrBC,EAAAA,qBAAqB,EAAE;AACrBC,IAAAA,KAAK,EAAE,4BADc;AAErBC,IAAAA,WAAW,EAAE;AAFQ;AALF,CAAvB;AAWA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,gBAAgB,GAAIC,MAAD,IAC9BA,MAAM,CAACC,QAAP,CAAgB,GAAhB,KAAwBD,MAAM,CAACE,MAAP,CAAc,CAAd,EAAiBF,MAAM,CAACG,OAAP,CAAe,GAAf,CAAjB,CADnB;AAGP;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,mBAAmB,GAAG,MAAOJ,MAAP,IAAkB;AAC5C,QAAM,OAAQ,gBAAeA,MAAO,KAA9B,EACHK,IADG,CACE,MAAM;AACV1B,IAAAA,KAAK,CAACqB,MAAN,CAAaA,MAAb;AACD,GAHG,EAIHM,KAJG,CAIG,YAAY;AACjB,UAAMC,aAAa,GAAGR,gBAAgB,CAACC,MAAD,CAAtC;AACA,UAAM,OAAQ,gBAAeO,aAAc,KAArC,EACHF,IADG,CACE,MAAM1B,KAAK,CAACqB,MAAN,CAAaO,aAAb,CADR,EAEJ;AAFI,KAGHD,KAHG,CAGG,MAAME,OAAO,CAACC,IAAR,CAAc,0BAAyBT,MAAO,+BAA9C,CAHT,CAAN;AAID,GAVG,CAAN;AAWD,CAZD;AAcA;AACA;AACA;;;AACA,MAAMU,mBAAmB,GAAG,QAetB;AAAA,MAfuB;AAC3BC,IAAAA,EAD2B;AAE3BC,IAAAA,SAF2B;AAG3BC,IAAAA,OAH2B;AAI3BC,IAAAA,IAJ2B;AAK3BC,IAAAA,MAL2B;AAM3BC,IAAAA,aAN2B;AAO3BC,IAAAA,mBAAmB,GAAG,KAPK;AAQ3BC,IAAAA,oBAAoB,GAAG,kBARI;AAS3BC,IAAAA,sBAAsB,GAAG,sCATE;AAU3BC,IAAAA,mBAV2B;AAW3BC,IAAAA,MAAM,EAAEC,UAXmB;AAY3BC,IAAAA,4BAZ2B;AAa3BvB,IAAAA,MAAM,EAAEwB;AAbmB,GAevB;AAAA,MADDC,MACC;;AACJ,QAAMC,kBAAkB,GAAGvC,SAAS,EAApC;AAEA,QAAMa,MAAM,GAAGwB,UAAU,IAAIE,kBAA7B;AAEA,QAAM,CAACC,WAAD,EAAcC,cAAd,IAAgCrD,QAAQ,CAACsD,SAAD,CAA9C;AACA,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BxD,QAAQ,CAAC,KAAD,CAA5C;AACA,QAAM,CAACyD,cAAD,EAAiBC,iBAAjB,IAAsC1D,QAAQ,CAAC,KAAD,CAApD;AAEAC,EAAAA,SAAS,CAAC,MAAM;AACd;AACA,QAAI0D,SAAS,GAAG,IAAhB;;AAEA,QAAI,CAACF,cAAL,EAAqB;AACnB5B,MAAAA,mBAAmB,CAACJ,MAAD,CAAnB,CAA4BK,IAA5B,CAAiC,MAAM;AACrC,YAAI6B,SAAJ,EAAe;AACbD,UAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD;AACF,OAJD;AAKD;;AACD,WAAO,MAAM;AACXC,MAAAA,SAAS,GAAG,KAAZ;AACD,KAFD;AAGD,GAdQ,CAAT;AAgBA,QAAMb,MAAM,GAAGnC,SAAS,CAACM,cAAD,EAAiB8B,UAAjB,CAAxB;;AAEA,QAAMa,4BAA4B,GAAG,CAACC,cAAD,EAAiBC,QAAjB,EAA2BC,OAA3B,KAAuC;AAC1E,UAAMC,MAAM,GAAGH,cAAc,KAAKT,WAAlC;AACA,UAAMa,KAAK,GAAG,CAAC,GAAGF,OAAO,CAACG,MAAZ,CAAd;AACA,wBACE,oBAAC,cAAD;AACE,MAAA,QAAQ,EAAEF,MADZ;AAEE,MAAA,OAAO,EAAE,CAACG,KAAD,EAAQC,IAAR,KAAiB;AAAA;;AACxBf,QAAAA,cAAc,CAACC,SAAD,CAAd;AACAc,QAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,8BAAAA,IAAI,CAAEC,QAAN,uEAAAD,IAAI,EAAaD,KAAb,EAAoBN,cAApB,CAAJ;AACD,OALH;AAME,MAAA,QAAQ,EAAEI,KANZ;AAOE,MAAA,QAAQ,EAAE,CAACE,KAAD,EAAQG,CAAR,KAAc;AACtBR,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGK,KAAH,EAAUG,CAAV,CAAR;;AACA,YAAIA,CAAJ,EAAO;AACLjB,UAAAA,cAAc,CAACQ,cAAD,CAAd;AACD,SAFD,MAEO;AACLR,UAAAA,cAAc,CAACC,SAAD,CAAd;AACD;;AACDE,QAAAA,aAAa,CAAC,CAACD,UAAF,CAAb;AACD;AAfH,OAgBMQ,OAAO,CAACQ,iBAhBd,EADF;AAoBD,GAvBD;;AAyBA,QAAMC,4BAA4B,GAAIC,qBAAD,IAA2B;AAC9D,WAAOA,qBAAqB,CAACC,GAAtB,CAA2BC,YAAD,IAAkB;AACjD,YAAMC,yBAAyB,GAAGxB,WAAW,KAAKuB,YAAY,CAACvC,EAA/D;AACA,0BACE,oBAAC,YAAD;AACE,QAAA,GAAG,EAAEuC,YAAY,CAACvC,EADpB;AAEE,QAAA,cAAc,EAAEuC,YAAY,CAACvC,EAF/B;AAGE,QAAA,KAAK,EAAEuC,YAAY,CAACE,KAHtB;AAIE,QAAA,MAAM,EAAEF,YAAY,CAACG,MAJvB;AAKE,QAAA,IAAI,EAAEH,YAAY,CAACI,IALrB;AAME,QAAA,IAAI,EAAEJ,YAAY,CAACK,IANrB;AAOE,QAAA,OAAO,EAAEL,YAAY,CAACM,OAPxB;AAQE,QAAA,UAAU,EAAEN,YAAY,CAACO,UAR3B;AASE,QAAA,cAAc,EAAEtB,4BAA4B,CAC1Ce,YAAY,CAACvC,EAD6B,EAE1CuC,YAAY,CAACb,QAF6B,EAG1Ca,YAAY,CAACZ,OAH6B,CAT9C;AAcE,QAAA,aAAa,EAAEa,yBAdjB;AAeE,QAAA,MAAM,EAAEnD;AAfV,QADF;AAmBD,KArBM,CAAP;AAsBD,GAvBD;;AAyBA,QAAM0D,gBAAgB,GAAG1C,aAAa,CAAC2C,MAAd,GAAuB,CAAhD;;AAEA,QAAMC,mBAAmB,GAAIZ,qBAAD,IAC1BD,4BAA4B,CAACC,qBAAD,CAD9B;;AAGA,sBACE,oBAAC,OAAD;AACE,IAAA,EAAE,EAAErC,EADN;AAEE,IAAA,SAAS,EAAEjC,IAAI,CAACkC,SAAD,EAAYC,OAAO,CAACgD,IAApB,EACK/C,IAAI,KAAK,KADd,IACZD,OAAO,CAACiD,MADI,EAEGhD,IAFH,IAEZD,OAAO,CAACC,IAFI;AAFjB,KAMMW,MANN,GAQGR,mBAAmB,iBAClB,oBAAC,sBAAD;AACE,IAAA,MAAM,EAAEI,MAAM,CAACzB,qBADjB;AAEE,IAAA,OAAO,EAAE2B;AAFX,IATJ,EAcGmC,gBAAgB,gBACf;AAAK,IAAA,SAAS,EAAE7C,OAAO,CAACkD;AAAxB,KACG/C,aAAa,CAAC2C,MAAd,GAAuB,CAAvB,IAA4BC,mBAAmB,CAAC5C,aAAD,CADlD,CADe,gBAKf,oBAAC,eAAD;AACE,IAAA,EAAE,EAAE/B,KAAK,CAAC0B,EAAD,EAAK,aAAL,CADX;AAEE,IAAA,KAAK,EAAEO,oBAFT;AAGE,IAAA,OAAO,EAAEC,sBAHX;AAIE,IAAA,IAAI,EAAEC,mBAJR;AAKE,IAAA,SAAS,EAAEP,OAAO,CAACmD;AALrB,IAnBJ,EA2BGjD,MAAM,iBACL,oBAAC,WAAD;AACE,IAAA,EAAE,EAAE9B,KAAK,CAAC0B,EAAD,EAAK,YAAL,CADX;AAEE,IAAA,OAAO,EAAE;AACPkD,MAAAA,IAAI,EAAEhD,OAAO,CAACoD;AADP,KAFX;AAKE,IAAA,SAAS,EAAEpD,OAAO,CAACqD;AALrB,KAOGnD,MAPH,CA5BJ,CADF;AAyCD,CA1ID;;AA4IA,wCAAAL,mBAAmB,CAACyD,SAApB,GAAgC;AAC9B;AACF;AACA;AACExD,EAAAA,EAAE,EAAElC,SAAS,CAAC2F,MAJgB;;AAK9B;AACF;AACA;AACExD,EAAAA,SAAS,EAAEnC,SAAS,CAAC2F,MARS;;AAS9B;AACF;AACA;AACA;AACA;AACEtD,EAAAA,IAAI,EAAElC,kBAAkB,CAACH,SAAS,CAAC4F,IAAX,CAdM;;AAe9B;AACF;AACA;AACExD,EAAAA,OAAO,EAAEpC,SAAS,CAAC6F,KAAV,CAAgB;AACvB;AACJ;AACA;AACIT,IAAAA,IAAI,EAAEpF,SAAS,CAAC2F,MAJO;;AAKvB;AACJ;AACA;AACIN,IAAAA,MAAM,EAAErF,SAAS,CAAC2F,MARK;;AASvB;AACJ;AACA;AACItD,IAAAA,IAAI,EAAErC,SAAS,CAAC2F,MAZO;;AAavB;AACJ;AACA;AACIL,IAAAA,KAAK,EAAEtF,SAAS,CAAC2F,MAhBM;;AAiBvB;AACJ;AACA;AACIF,IAAAA,SAAS,EAAEzF,SAAS,CAAC2F,MApBE;;AAqBvB;AACJ;AACA;AACIH,IAAAA,aAAa,EAAExF,SAAS,CAAC2F,MAxBF;;AAyBvB;AACJ;AACA;AACIG,IAAAA,sBAAsB,EAAE9F,SAAS,CAAC2F,MA5BX;;AA6BvB;AACJ;AACA;AACIJ,IAAAA,UAAU,EAAEvF,SAAS,CAAC2F;AAhCC,GAAhB,EAiCNI,UAnD2B;;AAoD9B;AACF;AACA;AACExD,EAAAA,aAAa,EAAEvC,SAAS,CAACgG,OAAV,CACbhG,SAAS,CAAC6F,KAAV,CAAgB;AACd3D,IAAAA,EAAE,EAAElC,SAAS,CAAC2F,MAAV,CAAiBI,UADP;AAEdpB,IAAAA,KAAK,EAAE3E,SAAS,CAAC2F,MAAV,CAAiBI,UAFV;AAGdnB,IAAAA,MAAM,EAAE5E,SAAS,CAAC4F,IAAV,CAAeG,UAHT;AAIdjB,IAAAA,IAAI,EAAE9E,SAAS,CAACiG,SAAV,CAAoB,CAACjG,SAAS,CAAC2F,MAAX,EAAmB3F,SAAS,CAACkG,MAA7B,EAAqClG,SAAS,CAACmG,MAA/C,CAApB,EAA4EJ,UAJpE;AAKdlB,IAAAA,IAAI,EAAE7E,SAAS,CAACoG,OALF;AAMdrB,IAAAA,OAAO,EAAE/E,SAAS,CAACqG,IANL;AAOdrB,IAAAA,UAAU,EAAEhF,SAAS,CAACqG,IAPR;AAQdzC,IAAAA,QAAQ,EAAE5D,SAAS,CAACqG,IARN;AASdxC,IAAAA,OAAO,EAAE7D,SAAS,CAAC6F,KAAV,CAAgB;AACvBzE,MAAAA,KAAK,EAAEpB,SAAS,CAAC4F,IADM;AAEvBU,MAAAA,MAAM,EAAEtG,SAAS,CAAC2F,MAFK;AAGvBxB,MAAAA,QAAQ,EAAEnE,SAAS,CAACqG,IAHG;AAIvBhC,MAAAA,iBAAiB,EAAErE,SAAS,CAACuG,UAAV,CAAqBC,MAArB;AAJI,KAAhB;AATK,GAAhB,CADa,CAvDe;;AAyE9B;AACF;AACA;AACEhE,EAAAA,mBAAmB,EAAExC,SAAS,CAAC4F,IA5ED;;AA6E9B;AACF;AACA;AACEtD,EAAAA,MAAM,EAAEtC,SAAS,CAACyG,IAhFY;;AAiF9B;AACF;AACA;AACEhE,EAAAA,oBAAoB,EAAEzC,SAAS,CAAC2F,MApFF;;AAqF9B;AACF;AACA;AACEjD,EAAAA,sBAAsB,EAAE1C,SAAS,CAAC2F,MAxFJ;;AAyF9B;AACF;AACA;AACEhD,EAAAA,mBAAmB,EAAE3C,SAAS,CAACyG,IA5FD;;AA6F9B;AACF;AACA;AACE7D,EAAAA,MAAM,EAAE5C,SAAS,CAAC6F,KAAV,CAAgB;AACtB;AACJ;AACA;AACI7E,IAAAA,uBAAuB,EAAE;AACvBE,MAAAA,kBAAkB,EAAElB,SAAS,CAAC2F,MADP;AAEvB1E,MAAAA,gBAAgB,EAAEjB,SAAS,CAAC2F;AAFL,KAJH;;AAQtB;AACJ;AACA;AACIxE,IAAAA,qBAAqB,EAAE;AACrBC,MAAAA,KAAK,EAAEpB,SAAS,CAAC2F,MADI;AAErBtE,MAAAA,WAAW,EAAErB,SAAS,CAAC2F;AAFF;AAXD,GAAhB,CAhGsB;;AAgH9B;AACF;AACA;AACE7C,EAAAA,4BAA4B,EAAE9C,SAAS,CAACqG,IAnHV;;AAoH9B;AACF;AACA;AACE9E,EAAAA,MAAM,EAAEvB,SAAS,CAAC2F;AAvHY,CAAhC;AA0HA,eAAevF,UAAU,CAACO,MAAD,EAAS;AAAE+F,EAAAA,IAAI,EAAE;AAAR,CAAT,CAAV,CAAoDzE,mBAApD,CAAf","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport dayjs from \"dayjs\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport {\n HvPanel,\n HvActionBar,\n HvDropDownMenu,\n setId,\n useLabels,\n useLocale,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport styles from \"./styles\";\n\nimport Notification from \"./Notification\";\nimport EmptyStatePanel from \"./EmptyStatePanel\";\nimport NotificationsIndicator from \"./NotificationsIndicator\";\n\nconst DEFAULT_LABELS = {\n notificationGroupHeader: {\n newNotifications: \"New\",\n olderNotifications: \"Earlier\",\n },\n notificationIndicator: {\n label: \"You have new notifications\",\n buttonLabel: \"Update\",\n },\n};\n\n/**\n * Obtains a simplified locale, if possible, e.g: \"en-US\" returns \"en\".\n *\n * @param {string} locale - The locale to be used\n * @returns The more generic locale if found\n */\nexport const getGenericLocale = (locale) =>\n locale.includes(\"-\") && locale.substr(0, locale.indexOf(\"-\"));\n\n/**\n * Imports and load the received locale in order to be used by dayjs. If the provided locale or a generic one\n * obtained is not possible to load, then dayjs will fallback to its default.\n *\n * @param {string} locale - The locale to be used\n */\nconst importAndLoadLocale = async (locale) => {\n await import(`dayjs/locale/${locale}.js`)\n .then(() => {\n dayjs.locale(locale);\n })\n .catch(async () => {\n const genericLocale = getGenericLocale(locale);\n await import(`dayjs/locale/${genericLocale}.js`)\n .then(() => dayjs.locale(genericLocale))\n // eslint-disable-next-line no-console\n .catch(() => console.warn(`Unable to load locale: ${locale}. Falling back to the default`));\n });\n};\n\n/**\n * Notification Panel displays all of read and unread notifications. Still in development\n */\nconst HvNotificationPanel = ({\n id,\n className,\n classes,\n open,\n footer,\n notifications,\n hasNewNotifications = false,\n emptyStatePanelTitle = \"No notifications\",\n emptyStatePanelMessage = \"You currently have no notifications.\",\n emptyStatePanelIcon,\n labels: labelsProp,\n newNotificationsButtonAction,\n locale: localeProp,\n ...others\n}) => {\n const localeFromProvider = useLocale();\n\n const locale = localeProp || localeFromProvider;\n\n const [highlighted, setHighlighted] = useState(undefined);\n const [isExpanded, setIsExpanded] = useState(false);\n const [isLocaleLoaded, setIsLocaleLoaded] = useState(false);\n\n useEffect(() => {\n // We're using this mount logic to avoid potential memory leak problems.\n let isMounted = true;\n\n if (!isLocaleLoaded) {\n importAndLoadLocale(locale).then(() => {\n if (isMounted) {\n setIsLocaleLoaded(true);\n }\n });\n }\n return () => {\n isMounted = false;\n };\n });\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const generateNotificationsActions = (notificationId, onToggle, actions) => {\n const expand = notificationId === highlighted;\n const dList = [...actions.values];\n return (\n <HvDropDownMenu\n expanded={expand}\n onClick={(event, item) => {\n setHighlighted(undefined);\n item?.callback?.(event, notificationId);\n }}\n dataList={dList}\n onToggle={(event, s) => {\n onToggle?.(event, s);\n if (s) {\n setHighlighted(notificationId);\n } else {\n setHighlighted(undefined);\n }\n setIsExpanded(!isExpanded);\n }}\n {...actions.dropDownMenuProps}\n />\n );\n };\n\n const notificationElementGenerator = (notificationsToRender) => {\n return notificationsToRender.map((notification) => {\n const notificationIsHighlighted = highlighted === notification.id;\n return (\n <Notification\n key={notification.id}\n notificationId={notification.id}\n title={notification.title}\n isRead={notification.isRead}\n icon={notification.icon}\n date={notification.date}\n onClick={notification.onClick}\n onKeyPress={notification.onKeyPress}\n rightContainer={generateNotificationsActions(\n notification.id,\n notification.onToggle,\n notification.actions\n )}\n isHighlighted={notificationIsHighlighted}\n locale={locale}\n />\n );\n });\n };\n\n const hasNotifications = notifications.length > 0;\n\n const renderNotifications = (notificationsToRender) =>\n notificationElementGenerator(notificationsToRender);\n\n return (\n <HvPanel\n id={id}\n className={clsx(className, classes.root, {\n [classes.closed]: open === false,\n [classes.open]: open,\n })}\n {...others}\n >\n {hasNewNotifications && (\n <NotificationsIndicator\n labels={labels.notificationIndicator}\n onClick={newNotificationsButtonAction}\n />\n )}\n {hasNotifications ? (\n <div className={classes.panel}>\n {notifications.length > 0 && renderNotifications(notifications)}\n </div>\n ) : (\n <EmptyStatePanel\n id={setId(id, \"empty-state\")}\n title={emptyStatePanelTitle}\n message={emptyStatePanelMessage}\n icon={emptyStatePanelIcon}\n className={classes.emptyState}\n />\n )}\n {footer && (\n <HvActionBar\n id={setId(id, \"action-bar\")}\n classes={{\n root: classes.actionBarRoot,\n }}\n className={classes.actionBar}\n >\n {footer}\n </HvActionBar>\n )}\n </HvPanel>\n );\n};\n\nHvNotificationPanel.propTypes = {\n /**\n * Id to be applied to the root node of the panel.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied to the root element.\n */\n className: PropTypes.string,\n /**\n * 'true' if panel is open or 'false' if the panel is not open\n *\n * @deprecated This logic should be external, i.e. using the HvAppSwitcherPanel inside a Drawer component.\n */\n open: deprecatedPropType(PropTypes.bool),\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * styles object applied to the root\n */\n root: PropTypes.string,\n /**\n * styles object applied to the root when closed\n */\n closed: PropTypes.string,\n /**\n * styles object applied to the root when open\n */\n open: PropTypes.string,\n /**\n * styles object applied to the panel\n */\n panel: PropTypes.string,\n /**\n * styles object applied to the action bar\n */\n actionBar: PropTypes.string,\n /**\n * styles object applied to the root of the action bar\n */\n actionBarRoot: PropTypes.string,\n /**\n * styles object applied to the new notification indicator\n */\n notificationsIndicator: PropTypes.string,\n /**\n * styles object applied to the empty state panel\n */\n emptyState: PropTypes.string,\n }).isRequired,\n /**\n * The properties of the notifications to be rendered in the Panel.\n */\n notifications: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n isRead: PropTypes.bool.isRequired,\n date: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).isRequired,\n icon: PropTypes.element,\n onClick: PropTypes.func,\n onKeyPress: PropTypes.func,\n onToggle: PropTypes.func,\n actions: PropTypes.shape({\n label: PropTypes.bool,\n action: PropTypes.string,\n callback: PropTypes.func,\n dropDownMenuProps: PropTypes.instanceOf(Object),\n }),\n })\n ),\n /**\n * Whether to render the new notifications indicator\n */\n hasNewNotifications: PropTypes.bool,\n /**\n * Action buttons to render in footer\n */\n footer: PropTypes.node,\n /**\n * Title of the EmptyStatePanel\n */\n emptyStatePanelTitle: PropTypes.string,\n /**\n * Message of the EmptyStatePanel\n */\n emptyStatePanelMessage: PropTypes.string,\n /**\n * Empty Panel custom Icon\n */\n emptyStatePanelIcon: PropTypes.node,\n /**\n * Labels to apply to the Panel\n */\n labels: PropTypes.shape({\n /**\n * Labels to apply to the groups separating newer and older notifications\n */\n notificationGroupHeader: {\n olderNotifications: PropTypes.string,\n newNotifications: PropTypes.string,\n },\n /**\n * Labels to apply to the element of the New Notifications Indicator\n */\n notificationIndicator: {\n label: PropTypes.string,\n buttonLabel: PropTypes.string,\n },\n }),\n /**\n * Function to be supplied to the notification update button\n */\n newNotificationsButtonAction: PropTypes.func,\n /**\n * The locale to be used on the notification date, if undefined it will use the one from the HvProvider\n */\n locale: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvNotificationPanel\" })(HvNotificationPanel);\n"],"file":"NotificationPanel.js"}
1
+ {"version":3,"sources":["../../../src/NotificationPanel/NotificationPanel.js"],"names":["React","useState","useEffect","PropTypes","clsx","dayjs","deprecatedPropType","withStyles","HvPanel","HvActionBar","HvDropDownMenu","setId","useLabels","useLocale","styles","Notification","EmptyStatePanel","NotificationsIndicator","DEFAULT_LABELS","notificationGroupHeader","newNotifications","olderNotifications","notificationIndicator","label","buttonLabel","getGenericLocale","locale","includes","substr","indexOf","importAndLoadLocale","then","catch","genericLocale","console","warn","HvNotificationPanel","id","className","classes","open","footer","notifications","hasNewNotifications","emptyStatePanelTitle","emptyStatePanelMessage","emptyStatePanelIcon","labels","labelsProp","newNotificationsButtonAction","localeProp","others","localeFromProvider","highlighted","setHighlighted","undefined","isExpanded","setIsExpanded","isLocaleLoaded","setIsLocaleLoaded","isMounted","generateNotificationsActions","notificationId","onToggle","actions","expand","dList","values","event","item","callback","s","dropDownMenuProps","notificationElementGenerator","notificationsToRender","map","notification","notificationIsHighlighted","title","isRead","icon","date","onClick","onKeyPress","hasNotifications","length","renderNotifications","root","closed","panel","emptyState","actionBarRoot","actionBar","propTypes","string","bool","shape","notificationsIndicator","isRequired","arrayOf","oneOfType","number","object","element","func","action","instanceOf","Object","node","name"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport dayjs from \"dayjs\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport {\n HvPanel,\n HvActionBar,\n HvDropDownMenu,\n setId,\n useLabels,\n useLocale,\n} from \"@hitachivantara/uikit-react-core\";\n\nimport styles from \"./styles\";\n\nimport Notification from \"./Notification\";\nimport EmptyStatePanel from \"./EmptyStatePanel\";\nimport NotificationsIndicator from \"./NotificationsIndicator\";\n\nconst DEFAULT_LABELS = {\n notificationGroupHeader: {\n newNotifications: \"New\",\n olderNotifications: \"Earlier\",\n },\n notificationIndicator: {\n label: \"You have new notifications\",\n buttonLabel: \"Update\",\n },\n};\n\n/**\n * Obtains a simplified locale, if possible, e.g: \"en-US\" returns \"en\".\n *\n * @param {string} locale - The locale to be used\n * @returns The more generic locale if found\n */\nexport const getGenericLocale = (locale) =>\n locale.includes(\"-\") && locale.substr(0, locale.indexOf(\"-\"));\n\n/**\n * Imports and load the received locale in order to be used by dayjs. If the provided locale or a generic one\n * obtained is not possible to load, then dayjs will fallback to its default.\n *\n * @param {string} locale - The locale to be used\n */\nconst importAndLoadLocale = async (locale) => {\n await import(`dayjs/locale/${locale}.js`)\n .then(() => {\n dayjs.locale(locale);\n })\n .catch(async () => {\n const genericLocale = getGenericLocale(locale);\n await import(`dayjs/locale/${genericLocale}.js`)\n .then(() => dayjs.locale(genericLocale))\n // eslint-disable-next-line no-console\n .catch(() => console.warn(`Unable to load locale: ${locale}. Falling back to the default`));\n });\n};\n\n/**\n * Notification Panel displays all of read and unread notifications. Still in development\n */\nconst HvNotificationPanel = ({\n id,\n className,\n classes,\n open,\n footer,\n notifications,\n hasNewNotifications = false,\n emptyStatePanelTitle = \"No notifications\",\n emptyStatePanelMessage = \"You currently have no notifications.\",\n emptyStatePanelIcon,\n labels: labelsProp,\n newNotificationsButtonAction,\n locale: localeProp,\n ...others\n}) => {\n const localeFromProvider = useLocale();\n\n const locale = localeProp || localeFromProvider;\n\n const [highlighted, setHighlighted] = useState(undefined);\n const [isExpanded, setIsExpanded] = useState(false);\n const [isLocaleLoaded, setIsLocaleLoaded] = useState(false);\n\n useEffect(() => {\n // We're using this mount logic to avoid potential memory leak problems.\n let isMounted = true;\n\n if (!isLocaleLoaded) {\n importAndLoadLocale(locale).then(() => {\n if (isMounted) {\n setIsLocaleLoaded(true);\n }\n });\n }\n return () => {\n isMounted = false;\n };\n });\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const generateNotificationsActions = (notificationId, onToggle, actions) => {\n const expand = notificationId === highlighted;\n const dList = [...actions.values];\n return (\n <HvDropDownMenu\n expanded={expand}\n onClick={(event, item) => {\n setHighlighted(undefined);\n item?.callback?.(event, notificationId);\n }}\n dataList={dList}\n onToggle={(event, s) => {\n onToggle?.(event, s);\n if (s) {\n setHighlighted(notificationId);\n } else {\n setHighlighted(undefined);\n }\n setIsExpanded(!isExpanded);\n }}\n {...actions.dropDownMenuProps}\n />\n );\n };\n\n const notificationElementGenerator = (notificationsToRender) => {\n return notificationsToRender.map((notification) => {\n const notificationIsHighlighted = highlighted === notification.id;\n return (\n <Notification\n key={notification.id}\n notificationId={notification.id}\n title={notification.title}\n isRead={notification.isRead}\n icon={notification.icon}\n date={notification.date}\n onClick={notification.onClick}\n onKeyPress={notification.onKeyPress}\n rightContainer={generateNotificationsActions(\n notification.id,\n notification.onToggle,\n notification.actions\n )}\n isHighlighted={notificationIsHighlighted}\n locale={locale}\n />\n );\n });\n };\n\n const hasNotifications = notifications.length > 0;\n\n const renderNotifications = (notificationsToRender) =>\n notificationElementGenerator(notificationsToRender);\n\n return (\n <HvPanel\n id={id}\n className={clsx(className, classes.root, {\n [classes.closed]: open === false,\n [classes.open]: open,\n })}\n {...others}\n >\n {hasNewNotifications && (\n <NotificationsIndicator\n labels={labels.notificationIndicator}\n onClick={newNotificationsButtonAction}\n />\n )}\n {hasNotifications ? (\n <div className={classes.panel}>\n {notifications.length > 0 && renderNotifications(notifications)}\n </div>\n ) : (\n <EmptyStatePanel\n id={setId(id, \"empty-state\")}\n title={emptyStatePanelTitle}\n message={emptyStatePanelMessage}\n icon={emptyStatePanelIcon}\n className={classes.emptyState}\n />\n )}\n {footer && (\n <HvActionBar\n id={setId(id, \"action-bar\")}\n classes={{\n root: classes.actionBarRoot,\n }}\n className={classes.actionBar}\n >\n {footer}\n </HvActionBar>\n )}\n </HvPanel>\n );\n};\n\nHvNotificationPanel.propTypes = {\n /**\n * Id to be applied to the root node of the panel.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied to the root element.\n */\n className: PropTypes.string,\n /**\n * 'true' if panel is open or 'false' if the panel is not open\n *\n * @deprecated This logic should be external, i.e. using the HvAppSwitcherPanel inside a Drawer component.\n */\n open: deprecatedPropType(PropTypes.bool),\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * styles object applied to the root\n */\n root: PropTypes.string,\n /**\n * styles object applied to the root when closed\n */\n closed: PropTypes.string,\n /**\n * styles object applied to the root when open\n */\n open: PropTypes.string,\n /**\n * styles object applied to the panel\n */\n panel: PropTypes.string,\n /**\n * styles object applied to the action bar\n */\n actionBar: PropTypes.string,\n /**\n * styles object applied to the root of the action bar\n */\n actionBarRoot: PropTypes.string,\n /**\n * styles object applied to the new notification indicator\n */\n notificationsIndicator: PropTypes.string,\n /**\n * styles object applied to the empty state panel\n */\n emptyState: PropTypes.string,\n }).isRequired,\n /**\n * The properties of the notifications to be rendered in the Panel.\n */\n notifications: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n isRead: PropTypes.bool.isRequired,\n date: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).isRequired,\n icon: PropTypes.element,\n onClick: PropTypes.func,\n onKeyPress: PropTypes.func,\n onToggle: PropTypes.func,\n actions: PropTypes.shape({\n label: PropTypes.bool,\n action: PropTypes.string,\n callback: PropTypes.func,\n dropDownMenuProps: PropTypes.instanceOf(Object),\n }),\n })\n ),\n /**\n * Whether to render the new notifications indicator\n */\n hasNewNotifications: PropTypes.bool,\n /**\n * Action buttons to render in footer\n */\n footer: PropTypes.node,\n /**\n * Title of the EmptyStatePanel\n */\n emptyStatePanelTitle: PropTypes.string,\n /**\n * Message of the EmptyStatePanel\n */\n emptyStatePanelMessage: PropTypes.string,\n /**\n * Empty Panel custom Icon\n */\n emptyStatePanelIcon: PropTypes.node,\n /**\n * Labels to apply to the Panel\n */\n labels: PropTypes.shape({\n /**\n * Labels to apply to the groups separating newer and older notifications\n */\n notificationGroupHeader: {\n olderNotifications: PropTypes.string,\n newNotifications: PropTypes.string,\n },\n /**\n * Labels to apply to the element of the New Notifications Indicator\n */\n notificationIndicator: {\n label: PropTypes.string,\n buttonLabel: PropTypes.string,\n },\n }),\n /**\n * Function to be supplied to the notification update button\n */\n newNotificationsButtonAction: PropTypes.func,\n /**\n * The locale to be used on the notification date, if undefined it will use the one from the HvProvider\n */\n locale: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvNotificationPanel\" })(HvNotificationPanel);\n"],"file":"NotificationPanel.js"}
@@ -1,4 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import "core-js/modules/es.array.includes.js";
2
3
  import React, { useMemo } from "react";
3
4
  import PropTypes from "prop-types";
4
5
  import { HvDropdown } from "@hitachivantara/uikit-react-core";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/QueryBuilder/Rule/Operator/Operator.js"],"names":["React","useMemo","PropTypes","HvDropdown","Context","isBigList","Operator","id","combinator","attribute","operator","context","useContext","dispatchAction","attributes","operators","labels","value","values","attributeSpec","options","type","filter","o","combinators","includes","map","key","label","selected","rule","placeholder","length","Array","isArray","undefined","virtualized","height","propTypes","number","string","memo"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { HvDropdown } from \"@hitachivantara/uikit-react-core\";\n\nimport Context from \"../../Context\";\nimport { isBigList } from \"../../utils\";\n\nconst Operator = ({ id, combinator, attribute, operator }) => {\n const context = React.useContext(Context);\n\n const { dispatchAction, attributes, operators, labels } = context;\n\n const value = operator ?? null;\n\n const values = useMemo(() => {\n const attributeSpec = attribute ? attributes[attribute] : null;\n const options = attributeSpec\n ? operators[attributeSpec.type].filter((o) => o.combinators.includes(combinator)) ?? []\n : [];\n return options.map((key) => ({\n id: key.operator,\n label: key.label,\n selected: key.operator === value,\n }));\n }, [attribute, attributes, operators, combinator, value]);\n\n return (\n <HvDropdown\n required\n status=\"valid\"\n singleSelectionToggle={false}\n label={labels.rule.operator.label}\n placeholder={labels.rule.operator.placeholder}\n values={values}\n disabled={values.length === 0}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected) && selected.id) {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: selected.id,\n value: value === \"range\" || selected.id === \"range\" ? null : undefined,\n });\n } else {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: null,\n value: null,\n });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nOperator.propTypes = {\n id: PropTypes.number,\n combinator: PropTypes.string,\n attribute: PropTypes.string,\n operator: PropTypes.string,\n};\n\nexport default React.memo(Operator);\n"],"file":"Operator.js"}
1
+ {"version":3,"sources":["../../../../../src/QueryBuilder/Rule/Operator/Operator.js"],"names":["React","useMemo","PropTypes","HvDropdown","Context","isBigList","Operator","id","combinator","attribute","operator","context","useContext","dispatchAction","attributes","operators","labels","value","values","attributeSpec","options","type","filter","o","combinators","includes","map","key","label","selected","rule","placeholder","length","Array","isArray","undefined","virtualized","height","propTypes","number","string","memo"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { HvDropdown } from \"@hitachivantara/uikit-react-core\";\n\nimport Context from \"../../Context\";\nimport { isBigList } from \"../../utils\";\n\nconst Operator = ({ id, combinator, attribute, operator }) => {\n const context = React.useContext(Context);\n\n const { dispatchAction, attributes, operators, labels } = context;\n\n const value = operator ?? null;\n\n const values = useMemo(() => {\n const attributeSpec = attribute ? attributes[attribute] : null;\n const options = attributeSpec\n ? operators[attributeSpec.type].filter((o) => o.combinators.includes(combinator)) ?? []\n : [];\n return options.map((key) => ({\n id: key.operator,\n label: key.label,\n selected: key.operator === value,\n }));\n }, [attribute, attributes, operators, combinator, value]);\n\n return (\n <HvDropdown\n required\n status=\"valid\"\n singleSelectionToggle={false}\n label={labels.rule.operator.label}\n placeholder={labels.rule.operator.placeholder}\n values={values}\n disabled={values.length === 0}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected) && selected.id) {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: selected.id,\n value: value === \"range\" || selected.id === \"range\" ? null : undefined,\n });\n } else {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: null,\n value: null,\n });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nOperator.propTypes = {\n id: PropTypes.number,\n combinator: PropTypes.string,\n attribute: PropTypes.string,\n operator: PropTypes.string,\n};\n\nexport default React.memo(Operator);\n"],"file":"Operator.js"}
@@ -1,5 +1,6 @@
1
1
  var _Delete;
2
2
 
3
+ import "core-js/modules/es.array.includes.js";
3
4
  import React, { useMemo, useContext } from "react";
4
5
  import PropTypes from "prop-types";
5
6
  import { HvGrid, HvButton, withTooltip } from "@hitachivantara/uikit-react-core";