@hitachivantara/uikit-react-core 5.11.0 → 5.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/BaseInput/BaseInput.cjs +7 -3
- package/dist/cjs/components/BaseInput/BaseInput.cjs.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.cjs +4 -0
- package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs +3 -3
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs.map +1 -1
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.styles.cjs +23 -12
- package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.styles.cjs.map +1 -1
- package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs +3 -1
- package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs +5 -3
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs +1 -2
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs +9 -21
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs.map +1 -1
- package/dist/cjs/components/Table/TableCell/TableCell.styles.cjs +1 -1
- package/dist/cjs/components/Table/TableCell/TableCell.styles.cjs.map +1 -1
- package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs +4 -4
- package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs.map +1 -1
- package/dist/esm/components/BaseInput/BaseInput.js +7 -3
- package/dist/esm/components/BaseInput/BaseInput.js.map +1 -1
- package/dist/esm/components/Calendar/Calendar.js +4 -0
- package/dist/esm/components/Calendar/Calendar.js.map +1 -1
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js +4 -4
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.styles.js +24 -13
- package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.styles.js.map +1 -1
- package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js +3 -1
- package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +5 -3
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/FilterGroup/Counter/Counter.js +1 -2
- package/dist/esm/components/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js +9 -21
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
- package/dist/esm/components/Table/TableCell/TableCell.styles.js +1 -1
- package/dist/esm/components/Table/TableCell/TableCell.styles.js.map +1 -1
- package/dist/esm/components/Table/TableRow/TableRow.styles.js +4 -4
- package/dist/esm/components/Table/TableRow/TableRow.styles.js.map +1 -1
- package/dist/types/index.d.ts +14 -2
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarHeader.styles.js","sources":["../../../../../src/components/Calendar/CalendarHeader/CalendarHeader.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { HvTypography } from \"@core/components\";\nimport { outlineStyles } from \"@core/utils\";\n\nexport const StyledRoot = styled(\"div\")({\n marginTop: theme.spacing(\"xs\"),\n backgroundColor: theme.colors.atmo1,\n borderBottom: theme.calendar.headerInputBorderBottom,\n borderTop: theme.calendar.headerInputBorderTop,\n borderLeft: theme.calendar.headerInputBorderLeft,\n borderRight: theme.calendar.headerInputBorderRight,\n borderRadius: theme.calendar.borderRadius,\n \"&:hover, &:focus\": {\n borderBottom: `1px solid ${theme.colors.secondary}`,\n },\n});\n\nexport const StyledInputBorderContainer = styled(\"div\")({\n backgroundColor: theme.colors.negative,\n height: 1,\n marginTop: -1,\n});\n\nexport const StyledInput = styled((props) => <input {...props} />)({\n border: \"none\",\n backgroundColor: \"transparent\",\n padding: `5px ${theme.spacing(\"xs\")}`,\n fontFamily: theme.fontFamily.body,\n\n color: theme.calendar.headerInputFontColor,\n fontSize: theme.calendar.headerInputFontSize,\n letterSpacing: theme.calendar.headerInputFontLetterSpacing,\n lineHeight: theme.calendar.headerInputFontLineHeight,\n fontWeight: theme.calendar.headerInputFontWeight,\n width: \"100%\",\n \"&::placeholder\": {\n color: theme.colors.secondary_60,\n },\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n});\n\nexport const StyledHeaderDayOfWeek = styled(HvTypography)({\n color: theme.calendar.headerInputFontColor,\n paddingLeft: theme.spacing(\"xs\"),\n});\n"],"names":["StyledRoot","process","env","NODE_ENV","target","label","marginTop","theme","spacing","backgroundColor","colors","atmo1","borderBottom","calendar","headerInputBorderBottom","borderTop","headerInputBorderTop","borderLeft","headerInputBorderLeft","borderRight","headerInputBorderRight","borderRadius","secondary","StyledInputBorderContainer","negative","height","StyledInput","_styled","props","_jsx","border","padding","fontFamily","body","color","headerInputFontColor","fontSize","headerInputFontSize","letterSpacing","headerInputFontLetterSpacing","lineHeight","headerInputFontLineHeight","fontWeight","headerInputFontWeight","width","secondary_60","outline","outlineStyles","StyledHeaderDayOfWeek","HvTypography","paddingLeft"],"mappings":";;;;;AAKO,MAAMA,aAAoB,wBAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACtCC,WAAWC,MAAMC,QAAQ,IAAI;AAAA,EAC7BC,iBAAiBF,MAAMG,OAAOC;AAAAA,EAC9BC,cAAcL,MAAMM,SAASC;AAAAA,EAC7BC,WAAWR,MAAMM,SAASG;AAAAA,EAC1BC,YAAYV,MAAMM,SAASK;AAAAA,EAC3BC,aAAaZ,MAAMM,SAASO;AAAAA,EAC5BC,cAAcd,MAAMM,SAASQ;AAAAA,EAC7B,oBAAoB;AAAA,IAClBT,cAAe,aAAYL,MAAMG,OAAOY;AAAAA,EAC1C;AACF,GAACrB,QAAAC,IAAAC,aAAC,eAAA,KAAA,
|
|
1
|
+
{"version":3,"file":"CalendarHeader.styles.js","sources":["../../../../../src/components/Calendar/CalendarHeader/CalendarHeader.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { HvTypography } from \"@core/components\";\nimport { outlineStyles } from \"@core/utils\";\n\nexport const StyledRoot = styled(\"div\")({\n marginTop: theme.spacing(\"xs\"),\n backgroundColor: theme.colors.atmo1,\n borderBottom: theme.calendar.headerInputBorderBottom,\n borderTop: theme.calendar.headerInputBorderTop,\n borderLeft: theme.calendar.headerInputBorderLeft,\n borderRight: theme.calendar.headerInputBorderRight,\n borderRadius: theme.calendar.borderRadius,\n \"&:hover, &:focus\": {\n borderBottom: `1px solid ${theme.colors.secondary}`,\n },\n});\n\nexport const StyledInputBorderContainer = styled(\"div\")({\n backgroundColor: theme.colors.negative,\n height: 1,\n marginTop: -1,\n});\n\nexport const StyledInput = styled((props) => <input {...props} />)({\n border: \"none\",\n backgroundColor: \"transparent\",\n padding: `5px ${theme.spacing(\"xs\")}`,\n fontFamily: theme.fontFamily.body,\n\n color: theme.calendar.headerInputFontColor,\n fontSize: theme.calendar.headerInputFontSize,\n letterSpacing: theme.calendar.headerInputFontLetterSpacing,\n lineHeight: theme.calendar.headerInputFontLineHeight,\n fontWeight: theme.calendar.headerInputFontWeight,\n width: \"100%\",\n \"&::placeholder\": {\n color: theme.colors.secondary_60,\n },\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n});\n\nexport const StyledHeaderDayOfWeek = styled(HvTypography)({\n color: theme.calendar.headerInputFontColor,\n paddingLeft: theme.spacing(\"xs\"),\n});\n\nexport const StyledTypography = styled(HvTypography)({\n display: \"flex\",\n alignItems: \"center\",\n color: theme.colors.negative,\n});\n"],"names":["StyledRoot","process","env","NODE_ENV","target","label","marginTop","theme","spacing","backgroundColor","colors","atmo1","borderBottom","calendar","headerInputBorderBottom","borderTop","headerInputBorderTop","borderLeft","headerInputBorderLeft","borderRight","headerInputBorderRight","borderRadius","secondary","StyledInputBorderContainer","negative","height","StyledInput","_styled","props","_jsx","border","padding","fontFamily","body","color","headerInputFontColor","fontSize","headerInputFontSize","letterSpacing","headerInputFontLetterSpacing","lineHeight","headerInputFontLineHeight","fontWeight","headerInputFontWeight","width","secondary_60","outline","outlineStyles","StyledHeaderDayOfWeek","HvTypography","paddingLeft","StyledTypography","display","alignItems"],"mappings":";;;;;AAKO,MAAMA,aAAoB,wBAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACtCC,WAAWC,MAAMC,QAAQ,IAAI;AAAA,EAC7BC,iBAAiBF,MAAMG,OAAOC;AAAAA,EAC9BC,cAAcL,MAAMM,SAASC;AAAAA,EAC7BC,WAAWR,MAAMM,SAASG;AAAAA,EAC1BC,YAAYV,MAAMM,SAASK;AAAAA,EAC3BC,aAAaZ,MAAMM,SAASO;AAAAA,EAC5BC,cAAcd,MAAMM,SAASQ;AAAAA,EAC7B,oBAAoB;AAAA,IAClBT,cAAe,aAAYL,MAAMG,OAAOY;AAAAA,EAC1C;AACF,GAACrB,QAAAC,IAAAC,aAAC,eAAA,KAAA,i3FAAA;AAEK,MAAMoB,6BAAoC,wBAAA,OAAKtB,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACtDI,iBAAiBF,MAAMG,OAAOc;AAAAA,EAC9BC,QAAQ;AAAA,EACRnB,WAAW;AACb,GAACL,QAAAC,IAAAC,aAAC,eAAA,KAAA,q3FAAA;AAEK,MAAMuB,cAAcC,wBAAQC,CAAUC,UAAAA,oBAAA,SAAA;AAAA,EAAA,GAAWD;AAAK,CAAA,GAAI3B,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACjEyB,QAAQ;AAAA,EACRrB,iBAAiB;AAAA,EACjBsB,SAAU,OAAMxB,MAAMC,QAAQ,IAAI;AAAA,EAClCwB,YAAYzB,MAAMyB,WAAWC;AAAAA,EAE7BC,OAAO3B,MAAMM,SAASsB;AAAAA,EACtBC,UAAU7B,MAAMM,SAASwB;AAAAA,EACzBC,eAAe/B,MAAMM,SAAS0B;AAAAA,EAC9BC,YAAYjC,MAAMM,SAAS4B;AAAAA,EAC3BC,YAAYnC,MAAMM,SAAS8B;AAAAA,EAC3BC,OAAO;AAAA,EACP,kBAAkB;AAAA,IAChBV,OAAO3B,MAAMG,OAAOmC;AAAAA,EACtB;AAAA,EACA,WAAW;AAAA,IACTC,SAAS;AAAA,EACX;AAAA,EACA,mBAAmB;AAAA,IACjB,GAAGC;AAAAA,EACL;AACF,GAAC9C,QAAAC,IAAAC,aAAC,eAAA,KAAA,q3FAAA;AAEK,MAAM6C,wBAA+BC,wBAAAA,cAAYhD,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACxD6B,OAAO3B,MAAMM,SAASsB;AAAAA,EACtBe,aAAa3C,MAAMC,QAAQ,IAAI;AACjC,GAACP,QAAAC,IAAAC,aAAC,eAAA,KAAA,q3FAAA;AAEK,MAAMgD,mBAA0BF,wBAAAA,cAAYhD,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACnD+C,SAAS;AAAA,EACTC,YAAY;AAAA,EACZnB,OAAO3B,MAAMG,OAAOc;AACtB,GAACvB,QAAAC,IAAAC,aAAC,eAAA,KAAA,q3FAAA;"}
|
|
@@ -36,6 +36,7 @@ const HvSingleCalendar = ({
|
|
|
36
36
|
onVisibleDateChange,
|
|
37
37
|
showEndDate,
|
|
38
38
|
showDayOfWeek,
|
|
39
|
+
invalidDateLabel,
|
|
39
40
|
children,
|
|
40
41
|
...others
|
|
41
42
|
}) => {
|
|
@@ -115,7 +116,8 @@ const HvSingleCalendar = ({
|
|
|
115
116
|
locale,
|
|
116
117
|
onChange: handleInputChange,
|
|
117
118
|
showEndDate: showEndDate && !isDateSelectionMode,
|
|
118
|
-
showDayOfWeek
|
|
119
|
+
showDayOfWeek,
|
|
120
|
+
invalidDateLabel
|
|
119
121
|
}), calViewMode === "calendar" && /* @__PURE__ */ jsxs("div", {
|
|
120
122
|
children: [/* @__PURE__ */ jsx(HvComposedNavigation, {
|
|
121
123
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleCalendar.js","sources":["../../../../../src/components/Calendar/SingleCalendar/SingleCalendar.tsx"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { clsx } from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { setId, keyboardCodes, isKeypress } from \"@core/utils\";\nimport { ViewMode } from \"../enums\";\nimport { isRange, isDate, getWeekdayNamesList } from \"../utils\";\nimport { generateCalendarModel } from \"../model\";\nimport { HvComposedNavigation, HvMonthSelector } from \"../CalendarNavigation\";\nimport { DateRangeProp, VisibilitySelectorActions } from \"..\";\nimport {\n StyledCalendarContainer,\n StyledCalendarGrid,\n StyledCalendarWrapper,\n} from \"./SingleCalendar.styles\";\nimport singleCalendarClasses, {\n HvSingleCalendarClasses,\n} from \"./singleCalendarClasses\";\nimport { HvCalendarCell } from \"./CalendarCell\";\nimport { HvCalendarWeekLabel } from \"../CalendarWeekLabels\";\nimport { HvCalendarHeader } from \"../CalendarHeader/CalendarHeader\";\n\nconst { Enter, ArrowLeft, ArrowRight, ArrowUp, ArrowDown } = keyboardCodes;\n\nexport const HvSingleCalendar = ({\n classes,\n className,\n id,\n locale = \"en-US\",\n value,\n visibleMonth,\n visibleYear,\n minimumDate,\n maximumDate,\n onChange,\n onInputChange,\n onVisibleDateChange,\n showEndDate,\n showDayOfWeek,\n children,\n ...others\n}: HvSingleCalendarProps) => {\n // TODO: refactor this out\n // const { HvCalendarHeader } = useContext(HvFormElementDescriptorsContext);\n\n const today = new Date();\n const localValue = isNil(value) ? today : value;\n\n const [calViewMode, setCalViewMode] = useState<ViewMode>(\"calendar\");\n\n const rangeMode = isRange(localValue);\n const isDateSelectionMode = rangeMode && !isDate(localValue.endDate);\n const calModel = rangeMode\n ? generateCalendarModel(localValue.startDate, visibleMonth, visibleYear)\n : generateCalendarModel(localValue, visibleMonth, visibleYear);\n const firstDayOfCurrentMonth = new Date(calModel.year, calModel.month - 1, 1);\n const firstDayOfCurrentMonthTime = firstDayOfCurrentMonth.getTime();\n\n const listWeekdayNames = useMemo(\n () => getWeekdayNamesList(locale, \"narrow\"),\n [locale]\n );\n\n const handleChange = (event, date: Date | DateRangeProp) => {\n event?.preventDefault();\n onChange?.(event, date);\n };\n\n const handleInputChange = (event, date) => {\n event?.preventDefault();\n onInputChange?.(event, date);\n };\n\n const getNavChild = (event: KeyboardEvent, siblings, i: number) => {\n if (isKeypress(event, ArrowLeft)) return siblings[i - 1];\n if (isKeypress(event, ArrowRight)) return siblings[i + 1];\n if (isKeypress(event, ArrowUp)) return siblings[i - 7];\n if (isKeypress(event, ArrowDown)) return siblings[i + 7];\n return undefined;\n };\n\n const handleKeyDown = (event) => {\n // This code is very brittle and should be managed with the focus wrapper\n const el = document?.activeElement;\n const parent = el?.parentElement?.parentElement;\n const siblings =\n parent != null\n ? [\n ...parent.getElementsByClassName(\n singleCalendarClasses.cellContainer as string\n ),\n ]\n : [];\n const elIndex = el ? siblings.indexOf(el) : 0;\n\n if (isKeypress(event, Enter)) {\n (el as HTMLElement).focus();\n return;\n }\n\n const child = getNavChild(event, siblings, elIndex);\n\n if (child) {\n const inMonth = child.getAttribute(\"data-in-month\");\n if (inMonth === \"true\") {\n event?.preventDefault();\n child?.focus();\n }\n }\n };\n\n /**\n * Renders the element representing the received date.\n *\n * @param currentDate - The array representing the date [YYYY, MM, DD].\n * @memberOf Calendar\n */\n const renderCalendarDate = (currentDate) => {\n return (\n <HvCalendarCell\n classes={classes}\n key={currentDate}\n tabIndex={currentDate.getTime() === firstDayOfCurrentMonthTime ? 0 : -1}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n value={currentDate}\n today={today}\n calendarValue={localValue}\n rangeMode={rangeMode}\n isDateSelectionMode={isDateSelectionMode}\n locale={locale}\n firstDayOfCurrentMonth={firstDayOfCurrentMonth}\n maximumDate={maximumDate}\n minimumDate={minimumDate}\n />\n );\n };\n\n return (\n <StyledCalendarContainer\n className={clsx(\n className,\n singleCalendarClasses.calendarContainer,\n classes?.calendarContainer\n )}\n {...others}\n >\n <StyledCalendarWrapper\n id={id}\n className={clsx(\n singleCalendarClasses.calendarWrapper,\n classes?.calendarWrapper\n )}\n >\n <HvCalendarHeader\n id={setId(id, \"header\")}\n locale={locale}\n onChange={handleInputChange}\n showEndDate={showEndDate && !isDateSelectionMode}\n showDayOfWeek={showDayOfWeek}\n />\n {calViewMode === \"calendar\" && (\n <div>\n <HvComposedNavigation\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={setCalViewMode}\n visibleYear={visibleYear || today.getFullYear()}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n />\n <StyledCalendarGrid\n className={clsx(\n singleCalendarClasses.calendarGrid,\n classes?.calendarGrid\n )}\n aria-controls={HvCalendarHeader?.[0]?.id}\n >\n <HvCalendarWeekLabel labels={listWeekdayNames} />\n {calModel.dates.map(renderCalendarDate)}\n </StyledCalendarGrid>\n </div>\n )}\n {calViewMode === \"monthly\" && (\n <HvMonthSelector\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={setCalViewMode}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n rangeMode={rangeMode}\n />\n )}\n </StyledCalendarWrapper>\n </StyledCalendarContainer>\n );\n};\n\nexport interface HvSingleCalendarProps {\n /**\n * Styles applied from the theme.\n */\n classes?: HvSingleCalendarClasses;\n /**\n * Identifier.\n */\n id?: string;\n /**\n * The class name to add at the root of the single calendar\n */\n className?: string;\n /**\n * The calendar locale.\n *\n */\n locale: string;\n /**\n * Date that the calendar would show.\n */\n value?: string | Date | DateRangeProp;\n /**\n * Date that will be used to know which month and year should be displayed on the calendar. The value of the day is\n * irrelevant.\n */\n visibleDate?: Date;\n /**\n * Controls the visible month of the Calendar\n */\n visibleMonth?: number;\n /**\n * Controls the visible month of the Calendar\n */\n visibleYear?: number;\n /**\n * Callback function to be triggered when the selected date has changed.\n */\n onChange?: (\n event:\n | React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>\n | undefined,\n value: Date | DateRangeProp\n ) => void;\n /**\n * Callback function to be triggered when the selected date input has changed.\n */\n onInputChange?: (\n event:\n | React.ChangeEvent<\n HTMLTextAreaElement | HTMLInputElement | HTMLButtonElement\n >\n | undefined,\n value: Date | DateRangeProp,\n position?: \"left\" | \"right\"\n ) => void;\n /**\n * Callback function to be triggered when visible date has changed.\n */\n onVisibleDateChange?: (\n event:\n | React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>\n | undefined,\n action: VisibilitySelectorActions,\n value?: Date | DateRangeProp | number\n ) => void;\n /**\n * The maximum selectable date after this all values are disabled.\n */\n maximumDate?: Date;\n /**\n * The minimum selectable date before this all values are disabled.\n */\n minimumDate?: Date;\n /**\n * Indicates if header should display end date in a date range.\n */\n showEndDate?: boolean;\n /**\n * Indicates if header should display the day of week.\n */\n showDayOfWeek?: boolean;\n /**\n * Content on the upper part of the calendar.\n */\n children?: React.ReactNode;\n}\n"],"names":["Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","keyboardCodes","HvSingleCalendar","classes","className","id","locale","value","visibleMonth","visibleYear","minimumDate","maximumDate","onChange","onInputChange","onVisibleDateChange","showEndDate","showDayOfWeek","children","others","today","Date","localValue","isNil","calViewMode","setCalViewMode","useState","rangeMode","isRange","isDateSelectionMode","isDate","endDate","calModel","generateCalendarModel","startDate","firstDayOfCurrentMonth","year","month","firstDayOfCurrentMonthTime","getTime","listWeekdayNames","useMemo","getWeekdayNamesList","handleChange","event","date","preventDefault","handleInputChange","getNavChild","siblings","i","isKeypress","undefined","handleKeyDown","el","document","activeElement","parent","parentElement","getElementsByClassName","singleCalendarClasses","cellContainer","elIndex","indexOf","focus","child","inMonth","getAttribute","renderCalendarDate","currentDate","HvCalendarCell","tabIndex","onKeyDown","calendarValue","StyledCalendarContainer","clsx","calendarContainer","StyledCalendarWrapper","calendarWrapper","_jsx","HvCalendarHeader","setId","HvComposedNavigation","onViewModeChange","getFullYear","getMonth","_jsxs","StyledCalendarGrid","calendarGrid","HvCalendarWeekLabel","labels","dates","map","HvMonthSelector"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleCalendar.js","sources":["../../../../../src/components/Calendar/SingleCalendar/SingleCalendar.tsx"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { clsx } from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { setId, keyboardCodes, isKeypress } from \"@core/utils\";\nimport { ViewMode } from \"../enums\";\nimport { isRange, isDate, getWeekdayNamesList } from \"../utils\";\nimport { generateCalendarModel } from \"../model\";\nimport { HvComposedNavigation, HvMonthSelector } from \"../CalendarNavigation\";\nimport { DateRangeProp, VisibilitySelectorActions } from \"..\";\nimport {\n StyledCalendarContainer,\n StyledCalendarGrid,\n StyledCalendarWrapper,\n} from \"./SingleCalendar.styles\";\nimport singleCalendarClasses, {\n HvSingleCalendarClasses,\n} from \"./singleCalendarClasses\";\nimport { HvCalendarCell } from \"./CalendarCell\";\nimport { HvCalendarWeekLabel } from \"../CalendarWeekLabels\";\nimport { HvCalendarHeader } from \"../CalendarHeader/CalendarHeader\";\n\nconst { Enter, ArrowLeft, ArrowRight, ArrowUp, ArrowDown } = keyboardCodes;\n\nexport const HvSingleCalendar = ({\n classes,\n className,\n id,\n locale = \"en-US\",\n value,\n visibleMonth,\n visibleYear,\n minimumDate,\n maximumDate,\n onChange,\n onInputChange,\n onVisibleDateChange,\n showEndDate,\n showDayOfWeek,\n invalidDateLabel,\n children,\n ...others\n}: HvSingleCalendarProps) => {\n // TODO: refactor this out\n // const { HvCalendarHeader } = useContext(HvFormElementDescriptorsContext);\n\n const today = new Date();\n const localValue = isNil(value) ? today : value;\n\n const [calViewMode, setCalViewMode] = useState<ViewMode>(\"calendar\");\n\n const rangeMode = isRange(localValue);\n const isDateSelectionMode = rangeMode && !isDate(localValue.endDate);\n const calModel = rangeMode\n ? generateCalendarModel(localValue.startDate, visibleMonth, visibleYear)\n : generateCalendarModel(localValue, visibleMonth, visibleYear);\n const firstDayOfCurrentMonth = new Date(calModel.year, calModel.month - 1, 1);\n const firstDayOfCurrentMonthTime = firstDayOfCurrentMonth.getTime();\n\n const listWeekdayNames = useMemo(\n () => getWeekdayNamesList(locale, \"narrow\"),\n [locale]\n );\n\n const handleChange = (event, date: Date | DateRangeProp) => {\n event?.preventDefault();\n onChange?.(event, date);\n };\n\n const handleInputChange = (event, date) => {\n event?.preventDefault();\n onInputChange?.(event, date);\n };\n\n const getNavChild = (event: KeyboardEvent, siblings, i: number) => {\n if (isKeypress(event, ArrowLeft)) return siblings[i - 1];\n if (isKeypress(event, ArrowRight)) return siblings[i + 1];\n if (isKeypress(event, ArrowUp)) return siblings[i - 7];\n if (isKeypress(event, ArrowDown)) return siblings[i + 7];\n return undefined;\n };\n\n const handleKeyDown = (event) => {\n // This code is very brittle and should be managed with the focus wrapper\n const el = document?.activeElement;\n const parent = el?.parentElement?.parentElement;\n const siblings =\n parent != null\n ? [\n ...parent.getElementsByClassName(\n singleCalendarClasses.cellContainer as string\n ),\n ]\n : [];\n const elIndex = el ? siblings.indexOf(el) : 0;\n\n if (isKeypress(event, Enter)) {\n (el as HTMLElement).focus();\n return;\n }\n\n const child = getNavChild(event, siblings, elIndex);\n\n if (child) {\n const inMonth = child.getAttribute(\"data-in-month\");\n if (inMonth === \"true\") {\n event?.preventDefault();\n child?.focus();\n }\n }\n };\n\n /**\n * Renders the element representing the received date.\n *\n * @param currentDate - The array representing the date [YYYY, MM, DD].\n * @memberOf Calendar\n */\n const renderCalendarDate = (currentDate) => {\n return (\n <HvCalendarCell\n classes={classes}\n key={currentDate}\n tabIndex={currentDate.getTime() === firstDayOfCurrentMonthTime ? 0 : -1}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n value={currentDate}\n today={today}\n calendarValue={localValue}\n rangeMode={rangeMode}\n isDateSelectionMode={isDateSelectionMode}\n locale={locale}\n firstDayOfCurrentMonth={firstDayOfCurrentMonth}\n maximumDate={maximumDate}\n minimumDate={minimumDate}\n />\n );\n };\n\n return (\n <StyledCalendarContainer\n className={clsx(\n className,\n singleCalendarClasses.calendarContainer,\n classes?.calendarContainer\n )}\n {...others}\n >\n <StyledCalendarWrapper\n id={id}\n className={clsx(\n singleCalendarClasses.calendarWrapper,\n classes?.calendarWrapper\n )}\n >\n <HvCalendarHeader\n id={setId(id, \"header\")}\n locale={locale}\n onChange={handleInputChange}\n showEndDate={showEndDate && !isDateSelectionMode}\n showDayOfWeek={showDayOfWeek}\n invalidDateLabel={invalidDateLabel}\n />\n {calViewMode === \"calendar\" && (\n <div>\n <HvComposedNavigation\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={setCalViewMode}\n visibleYear={visibleYear || today.getFullYear()}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n />\n <StyledCalendarGrid\n className={clsx(\n singleCalendarClasses.calendarGrid,\n classes?.calendarGrid\n )}\n aria-controls={HvCalendarHeader?.[0]?.id}\n >\n <HvCalendarWeekLabel labels={listWeekdayNames} />\n {calModel.dates.map(renderCalendarDate)}\n </StyledCalendarGrid>\n </div>\n )}\n {calViewMode === \"monthly\" && (\n <HvMonthSelector\n id={id}\n locale={locale}\n onChange={onVisibleDateChange}\n onViewModeChange={setCalViewMode}\n visibleMonth={visibleMonth || today.getMonth() + 1}\n rangeMode={rangeMode}\n />\n )}\n </StyledCalendarWrapper>\n </StyledCalendarContainer>\n );\n};\n\nexport interface HvSingleCalendarProps {\n /**\n * Styles applied from the theme.\n */\n classes?: HvSingleCalendarClasses;\n /**\n * Identifier.\n */\n id?: string;\n /**\n * The class name to add at the root of the single calendar\n */\n className?: string;\n /**\n * The calendar locale.\n *\n */\n locale: string;\n /**\n * Date that the calendar would show.\n */\n value?: string | Date | DateRangeProp;\n /**\n * Date that will be used to know which month and year should be displayed on the calendar. The value of the day is\n * irrelevant.\n */\n visibleDate?: Date;\n /**\n * Controls the visible month of the Calendar\n */\n visibleMonth?: number;\n /**\n * Controls the visible month of the Calendar\n */\n visibleYear?: number;\n /**\n * Callback function to be triggered when the selected date has changed.\n */\n onChange?: (\n event:\n | React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>\n | undefined,\n value: Date | DateRangeProp\n ) => void;\n /**\n * Callback function to be triggered when the selected date input has changed.\n */\n onInputChange?: (\n event:\n | React.ChangeEvent<\n HTMLTextAreaElement | HTMLInputElement | HTMLButtonElement\n >\n | undefined,\n value: Date | DateRangeProp,\n position?: \"left\" | \"right\"\n ) => void;\n /**\n * Callback function to be triggered when visible date has changed.\n */\n onVisibleDateChange?: (\n event:\n | React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>\n | undefined,\n action: VisibilitySelectorActions,\n value?: Date | DateRangeProp | number\n ) => void;\n /**\n * The maximum selectable date after this all values are disabled.\n */\n maximumDate?: Date;\n /**\n * The minimum selectable date before this all values are disabled.\n */\n minimumDate?: Date;\n /**\n * Indicates if header should display end date in a date range.\n */\n showEndDate?: boolean;\n /**\n * Indicates if header should display the day of week.\n */\n showDayOfWeek?: boolean;\n /**\n * Content on the upper part of the calendar.\n */\n children?: React.ReactNode;\n /**\n * Label shown when date is invalid.\n */\n invalidDateLabel?: string;\n}\n"],"names":["Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","keyboardCodes","HvSingleCalendar","classes","className","id","locale","value","visibleMonth","visibleYear","minimumDate","maximumDate","onChange","onInputChange","onVisibleDateChange","showEndDate","showDayOfWeek","invalidDateLabel","children","others","today","Date","localValue","isNil","calViewMode","setCalViewMode","useState","rangeMode","isRange","isDateSelectionMode","isDate","endDate","calModel","generateCalendarModel","startDate","firstDayOfCurrentMonth","year","month","firstDayOfCurrentMonthTime","getTime","listWeekdayNames","useMemo","getWeekdayNamesList","handleChange","event","date","preventDefault","handleInputChange","getNavChild","siblings","i","isKeypress","undefined","handleKeyDown","el","document","activeElement","parent","parentElement","getElementsByClassName","singleCalendarClasses","cellContainer","elIndex","indexOf","focus","child","inMonth","getAttribute","renderCalendarDate","currentDate","HvCalendarCell","tabIndex","onKeyDown","calendarValue","StyledCalendarContainer","clsx","calendarContainer","StyledCalendarWrapper","calendarWrapper","_jsx","HvCalendarHeader","setId","HvComposedNavigation","onViewModeChange","getFullYear","getMonth","_jsxs","StyledCalendarGrid","calendarGrid","HvCalendarWeekLabel","labels","dates","map","HvMonthSelector"],"mappings":"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"}
|
|
@@ -28,7 +28,8 @@ import { HvTypography } from "../Typography/Typography.js";
|
|
|
28
28
|
const DEFAULT_LABELS = {
|
|
29
29
|
applyLabel: "Apply",
|
|
30
30
|
cancelLabel: "Cancel",
|
|
31
|
-
clearLabel: "Clear"
|
|
31
|
+
clearLabel: "Clear",
|
|
32
|
+
invalidLabel: "Invalid date"
|
|
32
33
|
};
|
|
33
34
|
const HvDatePicker = ({
|
|
34
35
|
classes,
|
|
@@ -232,7 +233,7 @@ const HvDatePicker = ({
|
|
|
232
233
|
label: "StyledTypography"
|
|
233
234
|
})({
|
|
234
235
|
color: dateString ? theme.colors.secondary : theme.datePicker.dropdownPlaceholderColor
|
|
235
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxZjZCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ2xhc3NOYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtcmVhY3QtaWNvbnNcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7XG4gIEh2Q2FsZW5kYXIsXG4gIEh2SW5mb01lc3NhZ2UsXG4gIEh2V2FybmluZ1RleHQsXG4gIEh2Q2FsZW5kYXJQcm9wcyxcbiAgSHZBY3Rpb25CYXIsXG4gIEh2QnV0dG9uLFxuICBIdkZvcm1FbGVtZW50LFxuICBIdlR5cG9ncmFwaHksXG4gIEh2QmFzZURyb3Bkb3duLFxuICBIdkxhYmVsLFxufSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZCwgdXNlTGFiZWxzLCB1c2VUaGVtZSwgdXNlVW5pcXVlSWQgfSBmcm9tIFwiQGNvcmUvaG9va3NcIjtcbmltcG9ydCB7IEh2QmFzZVByb3BzIH0gZnJvbSBcIkBjb3JlL3R5cGVzXCI7XG5pbXBvcnQgeyBzZXRJZCwgdXNlU2F2ZWRTdGF0ZSB9IGZyb20gXCJAY29yZS91dGlsc1wiO1xuaW1wb3J0IHsgaXNJbnZhbGlkIH0gZnJvbSBcIi4uL0Zvcm1zL0Zvcm1FbGVtZW50L3ZhbGlkYXRpb25TdGF0ZXNcIjtcbmltcG9ydCB7IGlzRGF0ZSB9IGZyb20gXCIuLi9DYWxlbmRhci91dGlsc1wiO1xuaW1wb3J0IHsgZ2V0RGF0ZUxhYmVsIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB1c2VWaXNpYmxlRGF0ZSBmcm9tIFwiLi91c2VWaXNpYmxlRGF0ZVwiO1xuaW1wb3J0IGRhdGVQaWNrZXJDbGFzc2VzLCB7IEh2RGF0ZVBpY2tlckNsYXNzZXMgfSBmcm9tIFwiLi9kYXRlUGlja2VyQ2xhc3Nlc1wiO1xuaW1wb3J0IHsgc3R5bGVzIH0gZnJvbSBcIi4vRGF0ZVBpY2tlci5zdHlsZXNcIjtcblxuY29uc3QgREVGQVVMVF9MQUJFTFMgPSB7XG4gIGFwcGx5TGFiZWw6IFwiQXBwbHlcIixcbiAgY2FuY2VsTGFiZWw6IFwiQ2FuY2VsXCIsXG4gIGNsZWFyTGFiZWw6IFwiQ2xlYXJcIixcbn07XG5cbmV4cG9ydCB0eXBlIEh2RGF0ZVBpY2tlclN0YXR1cyA9IFwic3RhbmRCeVwiIHwgXCJ2YWxpZFwiIHwgXCJpbnZhbGlkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHZEYXRlUGlja2VyUHJvcHNcbiAgZXh0ZW5kcyBIdkJhc2VQcm9wczxIVE1MRGl2RWxlbWVudCwgXCJvbkNoYW5nZVwiPiB7XG4gIC8qKlxuICAgKiBDbGFzcyBuYW1lcyB0byBiZSBhcHBsaWVkLlxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBKc3MgT2JqZWN0IHVzZWQgdG8gb3ZlcnJpZGUgb3IgZXh0ZW5kIHRoZSBjb21wb25lbnQgc3R5bGVzIGFwcGxpZWQuXG4gICAqL1xuICBjbGFzc2VzPzogSHZEYXRlUGlja2VyQ2xhc3NlcztcbiAgLyoqXG4gICAqIElkIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGZvcm0gZWxlbWVudCByb290IG5vZGUuXG4gICAqL1xuICBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvcm0gZWxlbWVudCBuYW1lLlxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgZm9ybSBlbGVtZW50LlxuICAgKlxuICAgKiBUaGUgZm9ybSBlbGVtZW50IG11c3QgYmUgbGFiZWxlZCBmb3IgYWNjZXNzaWJpbGl0eSByZWFzb25zLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGFuIGFyaWEtbGFiZWwgb3IgYXJpYS1sYWJlbGxlZGJ5IG11c3QgYmUgcHJvdmlkZWQgaW5zdGVhZC5cbiAgICovXG4gIGxhYmVsPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBcImFyaWEtbGFiZWxsZWRieVwiPzogc3RyaW5nO1xuICAvKipcbiAgICogUHJvdmlkZSBhZGRpdGlvbmFsIGRlc2NyaXB0aXZlIHRleHQgZm9yIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHBsYWNlaG9sZGVyIHZhbHVlIHdoZW4gbm90aGluZyBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZm9ybSBlbGVtZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdXNlciBpbnB1dCBpcyByZXF1aXJlZCBvbiB0aGUgZm9ybSBlbGVtZW50LlxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqXG4gICAqIFZhbGlkIGlzIGNvcnJlY3QsIGludmFsaWQgaXMgaW5jb3JyZWN0IGFuZCBzdGFuZEJ5IG1lYW5zIG5vIHZhbGlkYXRpb25zIGhhdmUgcnVuLlxuICAgKlxuICAgKiBXaGVuIHVuY29udHJvbGxlZCBhbmQgdW5zcGVjaWZpZWQgaXQgd2lsbCBkZWZhdWx0IHRvIFwic3RhbmRCeVwiIGFuZCBjaGFuZ2UgdG8gZWl0aGVyIFwidmFsaWRcIlxuICAgKiBvciBcImludmFsaWRcIiBhZnRlciBhbnkgY2hhbmdlIHRvIHRoZSBzdGF0ZS5cbiAgICovXG4gIHN0YXR1cz86IEh2RGF0ZVBpY2tlclN0YXR1cztcbiAgLyoqXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIHNob3cgd2hlbiB0aGUgdmFsaWRhdGlvbiBzdGF0dXMgaXMgXCJpbnZhbGlkXCIuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiUmVxdWlyZWRcIiB3aGVuIHRoZSBzdGF0dXMgaXMgdW5jb250cm9sbGVkIGFuZCBubyBgYXJpYS1lcnJvcm1lc3NhZ2VgIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgc3RhdHVzTWVzc2FnZT86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhbiBlcnJvciBtZXNzYWdlIGZvciB0aGUgZGF0ZSBwaWNrZXIuXG4gICAqXG4gICAqIFdpbGwgb25seSBiZSB1c2VkIHdoZW4gdGhlIHZhbGlkYXRpb24gc3RhdHVzIGlzIGludmFsaWQuXG4gICAqL1xuICBcImFyaWEtZXJyb3JtZXNzYWdlXCI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxsYmFjayBmaXJlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgb25DaGFuZ2U/OiAoZGF0ZT86IERhdGUsIGVuZERhdGU/OiBEYXRlKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIGNhbGxiYWNrIGZpcmVkIHdoZW4gdXNlciBjbGlja3Mgb24gY2FuY2VsLlxuICAgKi9cbiAgb25DYW5jZWw/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIGNhbGxiYWNrIGZpcmVkIHdoZW4gdXNlciBjbGlja3Mgb24gY2xlYXIuXG4gICAqL1xuICBvbkNsZWFyPzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgbGFiZWxzIGZvciB0aGUgZGF0ZXBpY2tlci5cbiAgICovXG4gIGxhYmVscz86IHtcbiAgICAvKipcbiAgICAgKiBBcHBseSBidXR0b24gbGFiZWwuXG4gICAgICovXG4gICAgYXBwbHlMYWJlbD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBDYW5jZWwgYnV0dG9uIGxhYmVsLlxuICAgICAqL1xuICAgIGNhbmNlbExhYmVsPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIENsZWFyIGJ1dHRvbiBsYWJlbC5cbiAgICAgKi9cbiAgICBjbGVhckxhYmVsPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgaW5wdXQgd2hlbiBpbiBzaW5nbGUgY2FsZW5kYXIgbW9kZS5cbiAgICovXG4gIHZhbHVlPzogRGF0ZTtcbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGUgc3RhcnQgZGF0ZSB3aGVuIGluIHJhbmdlIG1vZGUuXG4gICAqL1xuICBzdGFydFZhbHVlPzogRGF0ZTtcbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGUgZW5kIGRhdGUgd2hlbiBpbiByYW5nZSBtb2RlLlxuICAgKi9cbiAgZW5kVmFsdWU/OiBEYXRlO1xuICAvKipcbiAgICogRmxhZyBpbmZvcm1pbmcgaWYgdGhlIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGluIHJhbmdlIG1vZGUgb3IgaW4gc2luZ2xlIG1vZGUuXG4gICAqIFRPRE86IHJlbW92ZSB0aGlzIGluIGZhdm91ciBvZiBkaXNjcmltaW5hdGVkIHVuaW9uXG4gICAqL1xuICByYW5nZU1vZGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHBsYWNlbWVudCB3aGVyZSB0aGUgY2FsZW5kYXIgc2hvdWxkIGJlIHBsYWNlZCBhY2NvcmRpbmcgdG8gdGhlIGlucHV0LiBPcHRpb25zIGFyZSBgbGVmdGAgb3IgYHJpZ2h0YC5cbiAgICogTm90ZSB0aGlzIHByb3Agb25seSBhZmZlY3RzIHRoZSBjYWxlbmRhciB3aGVuIGluIGByYW5nZU1vZGVgLlxuICAgKi9cbiAgaG9yaXpvbnRhbFBsYWNlbWVudD86IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICAvKipcbiAgICogVGhlIGNhbGVuZGFyIGxvY2FsZS4gSWYgdW5kZWZpbmVkLCBpdCB1c2VzIGNhbGVuZGFyIGRlZmF1bHRcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ29udHJvbHMgaWYgYWN0aW9ucyBidXR0b25zIGFyZSB2aXNpYmxlIGF0IHRoZSBjYWxlbmRhci5cbiAgICovXG4gIHNob3dBY3Rpb25zPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIGlmIGNsZWFyIGJ1dHRvbiBpcyB2aXNpYmxlIGF0IHRoZSBjYWxlbmRhcixcbiAgICogb25seSB3b3JrcyBpZiBzaG93aW5nIGFjdGlvbnMgb3IgaW4gcmFuZ2UgbW9kZS5cbiAgICovXG4gIHNob3dDbGVhcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBwb3J0YWwgYmVoYXZpb3IuIFRoZSBjaGlsZHJlbiBzdGF5IHdpdGhpbiBpdCdzIHBhcmVudCBET00gaGllcmFyY2h5LlxuICAgKi9cbiAgZGlzYWJsZVBvcnRhbD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXRzIGlmIHRoZSBjYWxlbmRhciBjb250YWluZXIgc2hvdWxkIGZvbGxvdyB0aGUgZGF0ZSBwaWNrZXIgaW5wdXQgb3V0IG9mIHRoZSBzY3JlZW4gb3Igc3RheSB2aXNpYmxlLlxuICAgKi9cbiAgZXNjYXBlV2l0aFJlZmVyZW5jZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBlbGVtZW50IHBsYWNlZCBiZWZvcmUgdGhlIENhbGVuZGFyXG4gICAqL1xuICBzdGFydEFkb3JubWVudD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BzIHRvIGJlIHBhc3NlZCBvbnRvIHRoZSBiYXNlRHJvcGRvd24uXG4gICAqL1xuICBkcm9wZG93blByb3BzPzogT2JqZWN0O1xuICAvKipcbiAgICogSWYgYHRydWVgIHRoZSBEYXRlUGlja2VyIHdpbGwgYmUgaW4gcmVhZCBvbmx5IG1vZGUsIHVuYWJsZSB0byBiZSBpbnRlcmFjdGVkLlxuICAgKi9cbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBwcm9wcyBwYXNzZWQgdG8gdGhlIEh2Q2FsZW5kYXIgY29tcG9uZW50LlxuICAgKi9cbiAgY2FsZW5kYXJQcm9wcz86IFBhcnRpYWw8SHZDYWxlbmRhclByb3BzPjtcbn1cblxuLyoqXG4gKiBBIGRhdGUgcGlja2VyLCBwb3B1cCBjYWxlbmRhciBvciBkYXRlIHJhbmdlIHBpY2tlciBpcyBhIGdyYXBoaWNhbCB1c2VyXG4gKiBpbnRlcmZhY2Ugd2lkZ2V0IHdoaWNoIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBjYWxlbmRhci5cbiAqL1xuZXhwb3J0IGNvbnN0IEh2RGF0ZVBpY2tlciA9ICh7XG4gIGNsYXNzZXMsXG4gIGNsYXNzTmFtZSxcblxuICBpZCxcbiAgbmFtZSxcblxuICByZXF1aXJlZCA9IGZhbHNlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICByZWFkT25seSxcblxuICBsYWJlbCxcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgXCJhcmlhLWxhYmVsbGVkYnlcIjogYXJpYUxhYmVsbGVkQnksXG4gIGRlc2NyaXB0aW9uLFxuICBcImFyaWEtZGVzY3JpYmVkYnlcIjogYXJpYURlc2NyaWJlZEJ5LFxuXG4gIG9uQ2hhbmdlLFxuICBvbkNhbmNlbCxcbiAgb25DbGVhcixcbiAgc3RhdHVzLFxuICBzdGF0dXNNZXNzYWdlLFxuICBcImFyaWEtZXJyb3JtZXNzYWdlXCI6IGFyaWFFcnJvck1lc3NhZ2UsXG5cbiAgcGxhY2Vob2xkZXIsXG5cbiAgbGFiZWxzOiBsYWJlbHNQcm9wLFxuXG4gIHZhbHVlLFxuICBzdGFydFZhbHVlLFxuICBlbmRWYWx1ZSxcblxuICByYW5nZU1vZGUgPSBmYWxzZSxcbiAgc3RhcnRBZG9ybm1lbnQsXG4gIGhvcml6b250YWxQbGFjZW1lbnQgPSBcInJpZ2h0XCIsXG4gIGxvY2FsZTogbG9jYWxlUHJvcCxcbiAgc2hvd0FjdGlvbnMgPSBmYWxzZSxcbiAgc2hvd0NsZWFyID0gZmFsc2UsXG4gIGRpc2FibGVQb3J0YWwgPSB0cnVlLFxuICBlc2NhcGVXaXRoUmVmZXJlbmNlID0gdHJ1ZSxcbiAgZHJvcGRvd25Qcm9wcyxcbiAgY2FsZW5kYXJQcm9wcyxcbiAgLi4ub3RoZXJzXG59OiBIdkRhdGVQaWNrZXJQcm9wcykgPT4ge1xuICBjb25zdCBsYWJlbHMgPSB1c2VMYWJlbHMoREVGQVVMVF9MQUJFTFMsIGxhYmVsc1Byb3ApO1xuXG4gIGNvbnN0IGVsZW1lbnRJZCA9IHVzZVVuaXF1ZUlkKGlkLCBcImh2ZGF0ZXBpY2tlclwiKTtcblxuICBjb25zdCBbdmFsaWRhdGlvblN0YXRlLCBzZXRWYWxpZGF0aW9uU3RhdGVdID0gdXNlQ29udHJvbGxlZChcbiAgICBzdGF0dXMsXG4gICAgXCJzdGFuZEJ5XCJcbiAgKTtcblxuICBjb25zdCBbdmFsaWRhdGlvbk1lc3NhZ2VdID0gdXNlQ29udHJvbGxlZChzdGF0dXNNZXNzYWdlLCBcIlJlcXVpcmVkXCIpO1xuXG4gIGNvbnN0IGxvY2FsZSA9IGxvY2FsZVByb3AgfHwgXCJlbi1VU1wiO1xuXG4gIGNvbnN0IFtjYWxlbmRhck9wZW4sIHNldENhbGVuZGFyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgW3N0YXJ0RGF0ZSwgc2V0U3RhcnREYXRlLCByb2xsYmFja1N0YXJ0RGF0ZV0gPSB1c2VTYXZlZFN0YXRlKFxuICAgIHJhbmdlTW9kZSA/IHN0YXJ0VmFsdWUgOiB2YWx1ZVxuICApO1xuICBjb25zdCBbZW5kRGF0ZSwgc2V0RW5kRGF0ZSwgcm9sbGJhY2tFbmREYXRlXSA9IHVzZVNhdmVkU3RhdGUoZW5kVmFsdWUpO1xuXG4gIGNvbnN0IFt2aXNpYmxlRGF0ZSwgZGlzcGF0Y2hBY3Rpb25dID0gdXNlVmlzaWJsZURhdGUoc3RhcnREYXRlLCBlbmREYXRlKTtcblxuICBjb25zdCBmb2N1c1RhcmdldCA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgeyBhY3RpdmVUaGVtZSB9ID0gdXNlVGhlbWUoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFN0YXJ0RGF0ZShyYW5nZU1vZGUgPyBzdGFydFZhbHVlIDogdmFsdWUsIHRydWUpO1xuICAgIHNldEVuZERhdGUoZW5kVmFsdWUsIHRydWUpO1xuICB9LCBbdmFsdWUsIHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCByYW5nZU1vZGVdKTtcblxuICBjb25zdCBlbmREYXRlSXNTZXQgPSB1c2VSZWYoZmFsc2UpO1xuICBlbmREYXRlSXNTZXQuY3VycmVudCA9IGVuZERhdGUgIT0gbnVsbDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGFydERhdGUgIT0gbnVsbCkge1xuICAgICAgZGlzcGF0Y2hBY3Rpb24oe1xuICAgICAgICB0eXBlOiBcIm1vbnRoX3llYXJcIixcbiAgICAgICAgdGFyZ2V0OiBlbmREYXRlSXNTZXQuY3VycmVudCA/IFwibGVmdFwiIDogXCJiZXN0XCIsXG4gICAgICAgIHllYXI6IHN0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBtb250aDogc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZGlzcGF0Y2hBY3Rpb24sIHN0YXJ0RGF0ZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGVuZERhdGUgIT0gbnVsbCkge1xuICAgICAgZGlzcGF0Y2hBY3Rpb24oe1xuICAgICAgICB0eXBlOiBcIm1vbnRoX3llYXJcIixcbiAgICAgICAgdGFyZ2V0OiBcInJpZ2h0XCIsXG4gICAgICAgIHllYXI6IGVuZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgbW9udGg6IGVuZERhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaEFjdGlvbiwgZW5kRGF0ZV0pO1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBgQXBwbHlgIGFjdGlvbi4gQm90aCBzaW5nbGUgYW5kIHJhbmdlZCBtb2RlcyBhcmUgaGFuZGxlZCBoZXJlLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlQXBwbHkgPSAoKSA9PiB7XG4gICAgc2V0U3RhcnREYXRlKHN0YXJ0RGF0ZSwgdHJ1ZSk7XG4gICAgc2V0RW5kRGF0ZShlbmREYXRlID8/IHN0YXJ0RGF0ZSwgdHJ1ZSk7XG5cbiAgICBvbkNoYW5nZT8uKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG5cbiAgICBzZXRWYWxpZGF0aW9uU3RhdGUoKCkgPT4ge1xuICAgICAgLy8gdGhpcyB3aWxsIG9ubHkgcnVuIGlmIHN0YXR1cyBpcyB1bmNvbnRyb2xsZWRcbiAgICAgIGlmIChyZXF1aXJlZCAmJiAoIWlzRGF0ZShzdGFydERhdGUpIHx8IChyYW5nZU1vZGUgJiYgIWlzRGF0ZShlbmREYXRlKSkpKSB7XG4gICAgICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFwidmFsaWRcIjtcbiAgICB9KTtcblxuICAgIHNldENhbGVuZGFyT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGBDYW5jZWxgIGFjdGlvbi4gQm90aCBzaW5nbGUgYW5kIHJhbmdlZCBtb2RlcyBhcmUgaGFuZGxlZCBoZXJlLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlQ2FuY2VsID0gKCkgPT4ge1xuICAgIHJvbGxiYWNrU3RhcnREYXRlKCk7XG4gICAgcm9sbGJhY2tFbmREYXRlKCk7XG5cbiAgICBvbkNhbmNlbD8uKCk7XG5cbiAgICBzZXRDYWxlbmRhck9wZW4oZmFsc2UpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBgQ2FuY2VsYCBhY3Rpb24uIEJvdGggc2luZ2xlIGFuZCByYW5nZWQgbW9kZXMgYXJlIGhhbmRsZWQgaGVyZS5cbiAgICovXG4gIGNvbnN0IGhhbmRsZUNsZWFyID0gKCkgPT4ge1xuICAgIHNldFN0YXJ0RGF0ZSh1bmRlZmluZWQsIGZhbHNlKTtcbiAgICBzZXRFbmREYXRlKHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgIG9uQ2xlYXI/LigpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNhbGVuZGFyQ2xvc2UgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2hvdWxkU2F2ZSA9ICEocmFuZ2VNb2RlIHx8IHNob3dBY3Rpb25zKTtcbiAgICBpZiAoc2hvdWxkU2F2ZSkge1xuICAgICAgaGFuZGxlQXBwbHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlQ2FuY2VsKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IChldnQsIG9wZW4pID0+IHtcbiAgICAvKiBcbiAgICAgSWYgZXZ0IGlzIG51bGwgdGhpcyB0b2dnbGUgd2Fzbid0IHRyaWdnZXJlZCBieSB0aGUgdXNlci5cbiAgICAgaW5zdGVhZCBpdCB3YXMgdHJpZ2dlcmVkIGJ5IHRoZSBiYXNlRHJvcGRvd24gdXNlRWZmZWN0IGFmdGVyXG4gICAgIHRoZSBkYXRlcGlja2VyIGNoYW5nZWQgdGhlIGV4cGFuZGVkIHZhbHVlIHRoaXMgYmFzZURyb3Bkb3duIGJlaGF2aW9yIG5lZWRzIGEgcmV2aWV3XG4gICAgKi9cbiAgICBpZiAoZXZ0ID09PSBudWxsKSByZXR1cm47XG4gICAgc2V0Q2FsZW5kYXJPcGVuKG9wZW4pO1xuICAgIGlmICghb3BlbikgaGFuZGxlQ2FsZW5kYXJDbG9zZSgpO1xuICB9O1xuXG4gIGNvbnN0IGZvY3VzT25Db250YWluZXIgPSAoKSA9PiB7XG4gICAgZm9jdXNUYXJnZXQuY3VycmVudD8uZm9jdXMoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEYXRlQ2hhbmdlID0gKGV2ZW50LCBuZXdEYXRlKSA9PiB7XG4gICAgaWYgKCFpc0RhdGUobmV3RGF0ZSkpIHJldHVybjtcblxuICAgIGNvbnN0IGF1dG9TYXZlID0gIXNob3dBY3Rpb25zICYmICFyYW5nZU1vZGU7XG5cbiAgICBpZiAocmFuZ2VNb2RlKSB7XG4gICAgICBpZiAoIXN0YXJ0RGF0ZSB8fCAoc3RhcnREYXRlICYmIGVuZERhdGUpIHx8IG5ld0RhdGUgPCBzdGFydERhdGUpIHtcbiAgICAgICAgc2V0U3RhcnREYXRlKG5ld0RhdGUpO1xuICAgICAgICBzZXRFbmREYXRlKHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRFbmREYXRlKG5ld0RhdGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRTdGFydERhdGUobmV3RGF0ZSwgYXV0b1NhdmUpO1xuICAgIH1cblxuICAgIGlmIChhdXRvU2F2ZSkge1xuICAgICAgb25DaGFuZ2U/LihuZXdEYXRlKTtcblxuICAgICAgc2V0VmFsaWRhdGlvblN0YXRlKCgpID0+IHtcbiAgICAgICAgLy8gdGhpcyB3aWxsIG9ubHkgcnVuIGlmIHN0YXR1cyBpcyB1bmNvbnRyb2xsZWRcbiAgICAgICAgaWYgKHJlcXVpcmVkICYmICFpc0RhdGUobmV3RGF0ZSkpIHtcbiAgICAgICAgICByZXR1cm4gXCJpbnZhbGlkXCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gXCJ2YWxpZFwiO1xuICAgICAgfSk7XG5cbiAgICAgIHNldENhbGVuZGFyT3BlbihmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUlucHV0RGF0ZUNoYW5nZSA9IChldmVudCwgbmV3RGF0ZSwgcG9zaXRpb24pID0+IHtcbiAgICBpZiAoIWlzRGF0ZShuZXdEYXRlKSkgcmV0dXJuO1xuXG4gICAgaWYgKCFyYW5nZU1vZGUpIHtcbiAgICAgIGhhbmRsZURhdGVDaGFuZ2UoZXZlbnQsIG5ld0RhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwb3NpdGlvbiA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgIGlmIChlbmREYXRlKSBzZXRTdGFydERhdGUobmV3RGF0ZSA+IGVuZERhdGUgPyBlbmREYXRlIDogbmV3RGF0ZSk7XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gXCJyaWdodFwiKSB7XG4gICAgICBpZiAoIXN0YXJ0RGF0ZSkge1xuICAgICAgICBpZiAoZW5kRGF0ZSkgc2V0U3RhcnREYXRlKG5ld0RhdGUgPiBlbmREYXRlID8gZW5kRGF0ZSA6IG5ld0RhdGUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzZXRFbmREYXRlKG5ld0RhdGUgPCBzdGFydERhdGUgPyBzdGFydERhdGUgOiBuZXdEYXRlKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGNvbnRhaW5lciBmb3IgdGhlIGFjdGlvbiBlbGVtZW50cy5cbiAgICovXG4gIGNvbnN0IHJlbmRlckFjdGlvbnMgPSAoKSA9PiAoXG4gICAgPENsYXNzTmFtZXM+XG4gICAgICB7KHsgY3NzLCBjeCB9KSA9PiAoXG4gICAgICAgIDxIdkFjdGlvbkJhclxuICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICBzaG93Q2xlYXJcbiAgICAgICAgICAgICAgPyBjeChcbiAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmFjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuYWN0aW9uQ29udGFpbmVyKSxcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM/LmFjdGlvbkNvbnRhaW5lclxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAge3Nob3dDbGVhciAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMubGVmdENvbnRhaW5lcixcbiAgICAgICAgICAgICAgICBjbGFzc2VzPy5sZWZ0Q29udGFpbmVyXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxIdkJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPXtzZXRJZChpZCwgXCJhY3Rpb25cIiwgXCJjbGVhclwiKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5hY3Rpb24pLFxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeUdob3N0XCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGVhcn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYWJlbHM/LmNsZWFyTGFiZWx9XG4gICAgICAgICAgICAgIDwvSHZCdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLnJpZ2h0Q29udGFpbmVyLFxuICAgICAgICAgICAgICBjbGFzc2VzPy5yaWdodENvbnRhaW5lclxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8SHZCdXR0b25cbiAgICAgICAgICAgICAgaWQ9e3NldElkKGlkLCBcImFjdGlvblwiLCBcImFwcGx5XCIpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmFjdGlvbixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmFjdGlvbiksXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5R2hvc3RcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVBcHBseX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xhYmVscz8uYXBwbHlMYWJlbH1cbiAgICAgICAgICAgIDwvSHZCdXR0b24+XG4gICAgICAgICAgICA8SHZCdXR0b25cbiAgICAgICAgICAgICAgaWQ9e3NldElkKGlkLCBcImFjdGlvblwiLCBcImNhbmNlbFwiKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5hY3Rpb24sXG4gICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5hY3Rpb24pLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmFjdGlvblxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeUdob3N0XCJcbiAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2FuY2VsfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGFiZWxzPy5jYW5jZWxMYWJlbH1cbiAgICAgICAgICAgIDwvSHZCdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvSHZBY3Rpb25CYXI+XG4gICAgICApfVxuICAgIDwvQ2xhc3NOYW1lcz5cbiAgKTtcblxuICBjb25zdCBzdHlsZWRUeXBvZ3JhcGh5ID0gKGRhdGVTdHJpbmcsIHZhcmlhbnQsIHRleHQpID0+IHtcbiAgICBjb25zdCBTdHlsZWRUeXBvZ3JhcGh5ID0gc3R5bGVkKEh2VHlwb2dyYXBoeSkoe1xuICAgICAgY29sb3I6IGRhdGVTdHJpbmdcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5XG4gICAgICAgIDogdGhlbWUuZGF0ZVBpY2tlci5kcm9wZG93blBsYWNlaG9sZGVyQ29sb3IsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gPFN0eWxlZFR5cG9ncmFwaHkgdmFyaWFudD17dmFyaWFudH0+e3RleHR9PC9TdHlsZWRUeXBvZ3JhcGh5PjtcbiAgfTtcblxuICBjb25zdCByZW5kZXJJbnB1dCA9IChkYXRlU3RyaW5nKSA9PlxuICAgIHN0eWxlZFR5cG9ncmFwaHkoXG4gICAgICBkYXRlU3RyaW5nLFxuICAgICAgYWN0aXZlVGhlbWU/LmRhdGVQaWNrZXIucGxhY2Vob2xkZXJWYXJpYW50LFxuICAgICAgKGRhdGVTdHJpbmcgfHwgcGxhY2Vob2xkZXIpID09PSB1bmRlZmluZWQgPyBcIlwiIDogZGF0ZVN0cmluZyB8fCBwbGFjZWhvbGRlclxuICAgICk7XG5cbiAgY29uc3QgZGF0ZVZhbHVlID0gcmFuZ2VNb2RlID8geyBzdGFydERhdGUsIGVuZERhdGUgfSA6IHN0YXJ0RGF0ZTtcblxuICBjb25zdCBoYXNMYWJlbCA9IGxhYmVsICE9IG51bGw7XG4gIGNvbnN0IGhhc0Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24gIT0gbnVsbDtcblxuICAvLyB0aGUgZXJyb3IgbWVzc2FnZSBhcmVhIHdpbGwgb25seSBiZSBjcmVhdGVkIGlmOlxuICAvLyAtIGFuIGV4dGVybmFsIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhbiBlcnJvciBtZXNzYWdlIGlzbid0IGlkZW50aWZpZWQgdmlhIGFyaWEtZXJyb3JtZXNzYWdlIEFORFxuICAvLyAgIC0gYm90aCBzdGF0dXMgYW5kIHN0YXR1c01lc3NhZ2UgcHJvcGVydGllcyBhcmUgYmVpbmcgY29udHJvbGxlZCBPUlxuICAvLyAgIC0gc3RhdHVzIGlzIHVuY29udHJvbGxlZCBhbmQgcmVxdWlyZWQgaXMgdHJ1ZVxuICBjb25zdCBjYW5TaG93RXJyb3IgPVxuICAgIGFyaWFFcnJvck1lc3NhZ2UgPT0gbnVsbCAmJlxuICAgICgoc3RhdHVzICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzTWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB8fFxuICAgICAgKHN0YXR1cyA9PT0gdW5kZWZpbmVkICYmIHJlcXVpcmVkKSk7XG5cbiAgY29uc3QgaXNTdGF0ZUludmFsaWQgPSBpc0ludmFsaWQodmFsaWRhdGlvblN0YXRlKTtcblxuICBsZXQgZXJyb3JNZXNzYWdlSWQ7XG4gIGlmIChpc1N0YXRlSW52YWxpZCkge1xuICAgIGVycm9yTWVzc2FnZUlkID0gY2FuU2hvd0Vycm9yXG4gICAgICA/IHNldElkKGVsZW1lbnRJZCwgXCJlcnJvclwiKVxuICAgICAgOiBhcmlhRXJyb3JNZXNzYWdlO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q2xhc3NOYW1lcz5cbiAgICAgIHsoeyBjc3MsIGN4IH0pID0+IChcbiAgICAgICAgPEh2Rm9ybUVsZW1lbnRcbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17ZGF0ZVZhbHVlfVxuICAgICAgICAgIHN0YXR1cz17dmFsaWRhdGlvblN0YXRlfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLnJvb3QsXG4gICAgICAgICAgICBjc3Moc3R5bGVzLnJvb3QpLFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgY2xhc3Nlcz8ucm9vdFxuICAgICAgICAgICl9XG4gICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgIHsuLi5vdGhlcnN9XG4gICAgICAgID5cbiAgICAgICAgICB7KGhhc0xhYmVsIHx8IGhhc0Rlc2NyaXB0aW9uKSAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMubGFiZWxDb250YWluZXIsXG4gICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5sYWJlbENvbnRhaW5lciksXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8ubGFiZWxDb250YWluZXJcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2hhc0xhYmVsICYmIChcbiAgICAgICAgICAgICAgICA8SHZMYWJlbFxuICAgICAgICAgICAgICAgICAgaWQ9e3NldElkKGVsZW1lbnRJZCwgXCJsYWJlbFwiKX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICB7aGFzRGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICAgIDxIdkluZm9NZXNzYWdlXG4gICAgICAgICAgICAgICAgICBpZD17c2V0SWQoZWxlbWVudElkLCBcImRlc2NyaXB0aW9uXCIpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuZGVzY3JpcHRpb24pLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPy5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgPC9IdkluZm9NZXNzYWdlPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8SHZCYXNlRHJvcGRvd25cbiAgICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICAgIHJvb3Q6IGN4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmRyb3Bkb3duLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuZHJvcGRvd24pLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmRyb3Bkb3duXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHBhbmVsOiBjeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5wYW5lbCxcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLnBhbmVsKSxcbiAgICAgICAgICAgICAgICBjbGFzc2VzPy5wYW5lbFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBoZWFkZXI6IGlzU3RhdGVJbnZhbGlkXG4gICAgICAgICAgICAgICAgPyBjeChcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuZHJvcGRvd25IZWFkZXJJbnZhbGlkLFxuICAgICAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmRyb3Bkb3duSGVhZGVySW52YWxpZCksXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXM/LmRyb3Bkb3duSGVhZGVySW52YWxpZFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBoZWFkZXJPcGVuOiBjeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5kcm9wZG93bkhlYWRlck9wZW4sXG4gICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5kcm9wZG93bkhlYWRlck9wZW4pLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmRyb3Bkb3duSGVhZGVyT3BlblxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgICB2YXJpYWJsZVdpZHRoXG4gICAgICAgICAgICBwbGFjZW1lbnQ9e2hvcml6b250YWxQbGFjZW1lbnR9XG4gICAgICAgICAgICBleHBhbmRlZD17Y2FsZW5kYXJPcGVufVxuICAgICAgICAgICAgb25Ub2dnbGU9e2hhbmRsZVRvZ2dsZX1cbiAgICAgICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtoYW5kbGVDYWxlbmRhckNsb3NlfVxuICAgICAgICAgICAgb25Db250YWluZXJDcmVhdGlvbj17Zm9jdXNPbkNvbnRhaW5lcn1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtyZW5kZXJJbnB1dChcbiAgICAgICAgICAgICAgZ2V0RGF0ZUxhYmVsKGRhdGVWYWx1ZSwgcmFuZ2VNb2RlLCBsb2NhbGUpXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgYWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPENhbGVuZGFyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmljb24sXG4gICAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmljb24pLFxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uaWNvblxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgY29sb3I9e2Rpc2FibGVkID8gXCJzZWNvbmRhcnlfODBcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBvcHBlclByb3BzPXt7XG4gICAgICAgICAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICAgICAgICAgIHsgbmFtZTogXCJwcmV2ZW50T3ZlcmZsb3dcIiwgZW5hYmxlZDogZXNjYXBlV2l0aFJlZmVyZW5jZSB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtcbiAgICAgICAgICAgICAgW2xhYmVsICYmIHNldElkKGVsZW1lbnRJZCwgXCJsYWJlbFwiKSwgYXJpYUxhYmVsbGVkQnldXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpXG4gICAgICAgICAgICAgICAgLnRyaW0oKSB8fCB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFyaWEtaW52YWxpZD17aXNTdGF0ZUludmFsaWQgPyB0cnVlIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYXJpYS1lcnJvcm1lc3NhZ2U9e2Vycm9yTWVzc2FnZUlkfVxuICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17XG4gICAgICAgICAgICAgIFtkZXNjcmlwdGlvbiAmJiBzZXRJZChlbGVtZW50SWQsIFwiZGVzY3JpcHRpb25cIiksIGFyaWFEZXNjcmliZWRCeV1cbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgICAgICAudHJpbSgpIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgey4uLmRyb3Bkb3duUHJvcHN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiByZWY9e2ZvY3VzVGFyZ2V0fSB0YWJJbmRleD17LTF9IC8+XG4gICAgICAgICAgICA8SHZDYWxlbmRhclxuICAgICAgICAgICAgICBpZD17c2V0SWQoaWQsIFwiY2FsZW5kYXJcIil9XG4gICAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtzdGFydEFkb3JubWVudH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZURhdGVDaGFuZ2V9XG4gICAgICAgICAgICAgIG9uSW5wdXRDaGFuZ2U9e2hhbmRsZUlucHV0RGF0ZUNoYW5nZX1cbiAgICAgICAgICAgICAgb25WaXNpYmxlRGF0ZUNoYW5nZT17KF9ldmVudCwgdHlwZSwgbW9udGgsIHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoQWN0aW9uKHsgdHlwZSwgdGFyZ2V0LCBtb250aCB9KTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgbG9jYWxlPXtsb2NhbGV9XG4gICAgICAgICAgICAgIHsuLi52aXNpYmxlRGF0ZX1cbiAgICAgICAgICAgICAgey4uLmNhbGVuZGFyUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyhyYW5nZU1vZGUgfHwgc2hvd0FjdGlvbnMpICYmIHJlbmRlckFjdGlvbnMoKX1cbiAgICAgICAgICA8L0h2QmFzZURyb3Bkb3duPlxuICAgICAgICAgIHtjYW5TaG93RXJyb3IgJiYgKFxuICAgICAgICAgICAgPEh2V2FybmluZ1RleHRcbiAgICAgICAgICAgICAgaWQ9e3NldElkKGVsZW1lbnRJZCwgXCJlcnJvclwiKX1cbiAgICAgICAgICAgICAgZGlzYWJsZUJvcmRlclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KGRhdGVQaWNrZXJDbGFzc2VzLmVycm9yLCBjbGFzc2VzPy5lcnJvcil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt2YWxpZGF0aW9uTWVzc2FnZX1cbiAgICAgICAgICAgIDwvSHZXYXJuaW5nVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0h2Rm9ybUVsZW1lbnQ+XG4gICAgICApfVxuICAgIDwvQ2xhc3NOYW1lcz5cbiAgKTtcbn07XG4iXX0= */");
|
|
236
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwZjZCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGF0ZVBpY2tlci9EYXRlUGlja2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ2xhc3NOYW1lcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtcmVhY3QtaWNvbnNcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7XG4gIEh2Q2FsZW5kYXIsXG4gIEh2SW5mb01lc3NhZ2UsXG4gIEh2V2FybmluZ1RleHQsXG4gIEh2Q2FsZW5kYXJQcm9wcyxcbiAgSHZBY3Rpb25CYXIsXG4gIEh2QnV0dG9uLFxuICBIdkZvcm1FbGVtZW50LFxuICBIdlR5cG9ncmFwaHksXG4gIEh2QmFzZURyb3Bkb3duLFxuICBIdkxhYmVsLFxufSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZCwgdXNlTGFiZWxzLCB1c2VUaGVtZSwgdXNlVW5pcXVlSWQgfSBmcm9tIFwiQGNvcmUvaG9va3NcIjtcbmltcG9ydCB7IEh2QmFzZVByb3BzIH0gZnJvbSBcIkBjb3JlL3R5cGVzXCI7XG5pbXBvcnQgeyBzZXRJZCwgdXNlU2F2ZWRTdGF0ZSB9IGZyb20gXCJAY29yZS91dGlsc1wiO1xuaW1wb3J0IHsgaXNJbnZhbGlkIH0gZnJvbSBcIi4uL0Zvcm1zL0Zvcm1FbGVtZW50L3ZhbGlkYXRpb25TdGF0ZXNcIjtcbmltcG9ydCB7IGlzRGF0ZSB9IGZyb20gXCIuLi9DYWxlbmRhci91dGlsc1wiO1xuaW1wb3J0IHsgZ2V0RGF0ZUxhYmVsIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB1c2VWaXNpYmxlRGF0ZSBmcm9tIFwiLi91c2VWaXNpYmxlRGF0ZVwiO1xuaW1wb3J0IGRhdGVQaWNrZXJDbGFzc2VzLCB7IEh2RGF0ZVBpY2tlckNsYXNzZXMgfSBmcm9tIFwiLi9kYXRlUGlja2VyQ2xhc3Nlc1wiO1xuaW1wb3J0IHsgc3R5bGVzIH0gZnJvbSBcIi4vRGF0ZVBpY2tlci5zdHlsZXNcIjtcblxuY29uc3QgREVGQVVMVF9MQUJFTFMgPSB7XG4gIGFwcGx5TGFiZWw6IFwiQXBwbHlcIixcbiAgY2FuY2VsTGFiZWw6IFwiQ2FuY2VsXCIsXG4gIGNsZWFyTGFiZWw6IFwiQ2xlYXJcIixcbiAgaW52YWxpZExhYmVsOiBcIkludmFsaWQgZGF0ZVwiLFxufTtcblxuZXhwb3J0IHR5cGUgSHZEYXRlUGlja2VyU3RhdHVzID0gXCJzdGFuZEJ5XCIgfCBcInZhbGlkXCIgfCBcImludmFsaWRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBIdkRhdGVQaWNrZXJQcm9wc1xuICBleHRlbmRzIEh2QmFzZVByb3BzPEhUTUxEaXZFbGVtZW50LCBcIm9uQ2hhbmdlXCI+IHtcbiAgLyoqXG4gICAqIENsYXNzIG5hbWVzIHRvIGJlIGFwcGxpZWQuXG4gICAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIEpzcyBPYmplY3QgdXNlZCB0byBvdmVycmlkZSBvciBleHRlbmQgdGhlIGNvbXBvbmVudCBzdHlsZXMgYXBwbGllZC5cbiAgICovXG4gIGNsYXNzZXM/OiBIdkRhdGVQaWNrZXJDbGFzc2VzO1xuICAvKipcbiAgICogSWQgdG8gYmUgYXBwbGllZCB0byB0aGUgZm9ybSBlbGVtZW50IHJvb3Qgbm9kZS5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBlbGVtZW50IG5hbWUuXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqXG4gICAqIFRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSBsYWJlbGVkIGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnMuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgYW4gYXJpYS1sYWJlbCBvciBhcmlhLWxhYmVsbGVkYnkgbXVzdCBiZSBwcm92aWRlZCBpbnN0ZWFkLlxuICAgKi9cbiAgbGFiZWw/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBcImFyaWEtbGFiZWxcIj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIFwiYXJpYS1sYWJlbGxlZGJ5XCI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcm92aWRlIGFkZGl0aW9uYWwgZGVzY3JpcHRpdmUgdGV4dCBmb3IgdGhlIGZvcm0gZWxlbWVudC5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGxhY2Vob2xkZXIgdmFsdWUgd2hlbiBub3RoaW5nIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBmb3JtIGVsZW1lbnQgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB1c2VyIGlucHV0IGlzIHJlcXVpcmVkIG9uIHRoZSBmb3JtIGVsZW1lbnQuXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGZvcm0gZWxlbWVudC5cbiAgICpcbiAgICogVmFsaWQgaXMgY29ycmVjdCwgaW52YWxpZCBpcyBpbmNvcnJlY3QgYW5kIHN0YW5kQnkgbWVhbnMgbm8gdmFsaWRhdGlvbnMgaGF2ZSBydW4uXG4gICAqXG4gICAqIFdoZW4gdW5jb250cm9sbGVkIGFuZCB1bnNwZWNpZmllZCBpdCB3aWxsIGRlZmF1bHQgdG8gXCJzdGFuZEJ5XCIgYW5kIGNoYW5nZSB0byBlaXRoZXIgXCJ2YWxpZFwiXG4gICAqIG9yIFwiaW52YWxpZFwiIGFmdGVyIGFueSBjaGFuZ2UgdG8gdGhlIHN0YXRlLlxuICAgKi9cbiAgc3RhdHVzPzogSHZEYXRlUGlja2VyU3RhdHVzO1xuICAvKipcbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gc2hvdyB3aGVuIHRoZSB2YWxpZGF0aW9uIHN0YXR1cyBpcyBcImludmFsaWRcIi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gXCJSZXF1aXJlZFwiIHdoZW4gdGhlIHN0YXR1cyBpcyB1bmNvbnRyb2xsZWQgYW5kIG5vIGBhcmlhLWVycm9ybWVzc2FnZWAgaXMgcHJvdmlkZWQuXG4gICAqL1xuICBzdGF0dXNNZXNzYWdlPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCB0aGF0IHByb3ZpZGVzIGFuIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBkYXRlIHBpY2tlci5cbiAgICpcbiAgICogV2lsbCBvbmx5IGJlIHVzZWQgd2hlbiB0aGUgdmFsaWRhdGlvbiBzdGF0dXMgaXMgaW52YWxpZC5cbiAgICovXG4gIFwiYXJpYS1lcnJvcm1lc3NhZ2VcIj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhbGxiYWNrIGZpcmVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZT86IChkYXRlPzogRGF0ZSwgZW5kRGF0ZT86IERhdGUpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgZmlyZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBjYW5jZWwuXG4gICAqL1xuICBvbkNhbmNlbD86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgZmlyZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBjbGVhci5cbiAgICovXG4gIG9uQ2xlYXI/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSBsYWJlbHMgZm9yIHRoZSBkYXRlcGlja2VyLlxuICAgKi9cbiAgbGFiZWxzPzoge1xuICAgIC8qKlxuICAgICAqIEFwcGx5IGJ1dHRvbiBsYWJlbC5cbiAgICAgKi9cbiAgICBhcHBseUxhYmVsPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIENhbmNlbCBidXR0b24gbGFiZWwuXG4gICAgICovXG4gICAgY2FuY2VsTGFiZWw/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQ2xlYXIgYnV0dG9uIGxhYmVsLlxuICAgICAqL1xuICAgIGNsZWFyTGFiZWw/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogSW52YWxpZCBEYXRlIGxhYmVsLlxuICAgICAqL1xuICAgIGludmFsaWREYXRlTGFiZWw/OiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBpbnB1dCB3aGVuIGluIHNpbmdsZSBjYWxlbmRhciBtb2RlLlxuICAgKi9cbiAgdmFsdWU/OiBEYXRlO1xuICAvKipcbiAgICogVGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBzdGFydCBkYXRlIHdoZW4gaW4gcmFuZ2UgbW9kZS5cbiAgICovXG4gIHN0YXJ0VmFsdWU/OiBEYXRlO1xuICAvKipcbiAgICogVGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBlbmQgZGF0ZSB3aGVuIGluIHJhbmdlIG1vZGUuXG4gICAqL1xuICBlbmRWYWx1ZT86IERhdGU7XG4gIC8qKlxuICAgKiBGbGFnIGluZm9ybWluZyBpZiB0aGUgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgaW4gcmFuZ2UgbW9kZSBvciBpbiBzaW5nbGUgbW9kZS5cbiAgICogVE9ETzogcmVtb3ZlIHRoaXMgaW4gZmF2b3VyIG9mIGRpc2NyaW1pbmF0ZWQgdW5pb25cbiAgICovXG4gIHJhbmdlTW9kZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgcGxhY2VtZW50IHdoZXJlIHRoZSBjYWxlbmRhciBzaG91bGQgYmUgcGxhY2VkIGFjY29yZGluZyB0byB0aGUgaW5wdXQuIE9wdGlvbnMgYXJlIGBsZWZ0YCBvciBgcmlnaHRgLlxuICAgKiBOb3RlIHRoaXMgcHJvcCBvbmx5IGFmZmVjdHMgdGhlIGNhbGVuZGFyIHdoZW4gaW4gYHJhbmdlTW9kZWAuXG4gICAqL1xuICBob3Jpem9udGFsUGxhY2VtZW50PzogXCJsZWZ0XCIgfCBcInJpZ2h0XCI7XG4gIC8qKlxuICAgKiBUaGUgY2FsZW5kYXIgbG9jYWxlLiBJZiB1bmRlZmluZWQsIGl0IHVzZXMgY2FsZW5kYXIgZGVmYXVsdFxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBpZiBhY3Rpb25zIGJ1dHRvbnMgYXJlIHZpc2libGUgYXQgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgc2hvd0FjdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbHMgaWYgY2xlYXIgYnV0dG9uIGlzIHZpc2libGUgYXQgdGhlIGNhbGVuZGFyLFxuICAgKiBvbmx5IHdvcmtzIGlmIHNob3dpbmcgYWN0aW9ucyBvciBpbiByYW5nZSBtb2RlLlxuICAgKi9cbiAgc2hvd0NsZWFyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIHBvcnRhbCBiZWhhdmlvci4gVGhlIGNoaWxkcmVuIHN0YXkgd2l0aGluIGl0J3MgcGFyZW50IERPTSBoaWVyYXJjaHkuXG4gICAqL1xuICBkaXNhYmxlUG9ydGFsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNldHMgaWYgdGhlIGNhbGVuZGFyIGNvbnRhaW5lciBzaG91bGQgZm9sbG93IHRoZSBkYXRlIHBpY2tlciBpbnB1dCBvdXQgb2YgdGhlIHNjcmVlbiBvciBzdGF5IHZpc2libGUuXG4gICAqL1xuICBlc2NhcGVXaXRoUmVmZXJlbmNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIGVsZW1lbnQgcGxhY2VkIGJlZm9yZSB0aGUgQ2FsZW5kYXJcbiAgICovXG4gIHN0YXJ0QWRvcm5tZW50PzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcHMgdG8gYmUgcGFzc2VkIG9udG8gdGhlIGJhc2VEcm9wZG93bi5cbiAgICovXG4gIGRyb3Bkb3duUHJvcHM/OiBPYmplY3Q7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAgdGhlIERhdGVQaWNrZXIgd2lsbCBiZSBpbiByZWFkIG9ubHkgbW9kZSwgdW5hYmxlIHRvIGJlIGludGVyYWN0ZWQuXG4gICAqL1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHByb3BzIHBhc3NlZCB0byB0aGUgSHZDYWxlbmRhciBjb21wb25lbnQuXG4gICAqL1xuICBjYWxlbmRhclByb3BzPzogUGFydGlhbDxIdkNhbGVuZGFyUHJvcHM+O1xufVxuXG4vKipcbiAqIEEgZGF0ZSBwaWNrZXIsIHBvcHVwIGNhbGVuZGFyIG9yIGRhdGUgcmFuZ2UgcGlja2VyIGlzIGEgZ3JhcGhpY2FsIHVzZXJcbiAqIGludGVyZmFjZSB3aWRnZXQgd2hpY2ggYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGNhbGVuZGFyLlxuICovXG5leHBvcnQgY29uc3QgSHZEYXRlUGlja2VyID0gKHtcbiAgY2xhc3NlcyxcbiAgY2xhc3NOYW1lLFxuXG4gIGlkLFxuICBuYW1lLFxuXG4gIHJlcXVpcmVkID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIHJlYWRPbmx5LFxuXG4gIGxhYmVsLFxuICBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLFxuICBcImFyaWEtbGFiZWxsZWRieVwiOiBhcmlhTGFiZWxsZWRCeSxcbiAgZGVzY3JpcHRpb24sXG4gIFwiYXJpYS1kZXNjcmliZWRieVwiOiBhcmlhRGVzY3JpYmVkQnksXG5cbiAgb25DaGFuZ2UsXG4gIG9uQ2FuY2VsLFxuICBvbkNsZWFyLFxuICBzdGF0dXMsXG4gIHN0YXR1c01lc3NhZ2UsXG4gIFwiYXJpYS1lcnJvcm1lc3NhZ2VcIjogYXJpYUVycm9yTWVzc2FnZSxcblxuICBwbGFjZWhvbGRlcixcblxuICBsYWJlbHM6IGxhYmVsc1Byb3AsXG5cbiAgdmFsdWUsXG4gIHN0YXJ0VmFsdWUsXG4gIGVuZFZhbHVlLFxuXG4gIHJhbmdlTW9kZSA9IGZhbHNlLFxuICBzdGFydEFkb3JubWVudCxcbiAgaG9yaXpvbnRhbFBsYWNlbWVudCA9IFwicmlnaHRcIixcbiAgbG9jYWxlOiBsb2NhbGVQcm9wLFxuICBzaG93QWN0aW9ucyA9IGZhbHNlLFxuICBzaG93Q2xlYXIgPSBmYWxzZSxcbiAgZGlzYWJsZVBvcnRhbCA9IHRydWUsXG4gIGVzY2FwZVdpdGhSZWZlcmVuY2UgPSB0cnVlLFxuICBkcm9wZG93blByb3BzLFxuICBjYWxlbmRhclByb3BzLFxuICAuLi5vdGhlcnNcbn06IEh2RGF0ZVBpY2tlclByb3BzKSA9PiB7XG4gIGNvbnN0IGxhYmVscyA9IHVzZUxhYmVscyhERUZBVUxUX0xBQkVMUywgbGFiZWxzUHJvcCk7XG5cbiAgY29uc3QgZWxlbWVudElkID0gdXNlVW5pcXVlSWQoaWQsIFwiaHZkYXRlcGlja2VyXCIpO1xuXG4gIGNvbnN0IFt2YWxpZGF0aW9uU3RhdGUsIHNldFZhbGlkYXRpb25TdGF0ZV0gPSB1c2VDb250cm9sbGVkKFxuICAgIHN0YXR1cyxcbiAgICBcInN0YW5kQnlcIlxuICApO1xuXG4gIGNvbnN0IFt2YWxpZGF0aW9uTWVzc2FnZV0gPSB1c2VDb250cm9sbGVkKHN0YXR1c01lc3NhZ2UsIFwiUmVxdWlyZWRcIik7XG5cbiAgY29uc3QgbG9jYWxlID0gbG9jYWxlUHJvcCB8fCBcImVuLVVTXCI7XG5cbiAgY29uc3QgW2NhbGVuZGFyT3Blbiwgc2V0Q2FsZW5kYXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBbc3RhcnREYXRlLCBzZXRTdGFydERhdGUsIHJvbGxiYWNrU3RhcnREYXRlXSA9IHVzZVNhdmVkU3RhdGUoXG4gICAgcmFuZ2VNb2RlID8gc3RhcnRWYWx1ZSA6IHZhbHVlXG4gICk7XG4gIGNvbnN0IFtlbmREYXRlLCBzZXRFbmREYXRlLCByb2xsYmFja0VuZERhdGVdID0gdXNlU2F2ZWRTdGF0ZShlbmRWYWx1ZSk7XG5cbiAgY29uc3QgW3Zpc2libGVEYXRlLCBkaXNwYXRjaEFjdGlvbl0gPSB1c2VWaXNpYmxlRGF0ZShzdGFydERhdGUsIGVuZERhdGUpO1xuXG4gIGNvbnN0IGZvY3VzVGFyZ2V0ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICBjb25zdCB7IGFjdGl2ZVRoZW1lIH0gPSB1c2VUaGVtZSgpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0U3RhcnREYXRlKHJhbmdlTW9kZSA/IHN0YXJ0VmFsdWUgOiB2YWx1ZSwgdHJ1ZSk7XG4gICAgc2V0RW5kRGF0ZShlbmRWYWx1ZSwgdHJ1ZSk7XG4gIH0sIFt2YWx1ZSwgc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIHJhbmdlTW9kZV0pO1xuXG4gIGNvbnN0IGVuZERhdGVJc1NldCA9IHVzZVJlZihmYWxzZSk7XG4gIGVuZERhdGVJc1NldC5jdXJyZW50ID0gZW5kRGF0ZSAhPSBudWxsO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXJ0RGF0ZSAhPSBudWxsKSB7XG4gICAgICBkaXNwYXRjaEFjdGlvbih7XG4gICAgICAgIHR5cGU6IFwibW9udGhfeWVhclwiLFxuICAgICAgICB0YXJnZXQ6IGVuZERhdGVJc1NldC5jdXJyZW50ID8gXCJsZWZ0XCIgOiBcImJlc3RcIixcbiAgICAgICAgeWVhcjogc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIG1vbnRoOiBzdGFydERhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaEFjdGlvbiwgc3RhcnREYXRlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZW5kRGF0ZSAhPSBudWxsKSB7XG4gICAgICBkaXNwYXRjaEFjdGlvbih7XG4gICAgICAgIHR5cGU6IFwibW9udGhfeWVhclwiLFxuICAgICAgICB0YXJnZXQ6IFwicmlnaHRcIixcbiAgICAgICAgeWVhcjogZW5kRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBtb250aDogZW5kRGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2Rpc3BhdGNoQWN0aW9uLCBlbmREYXRlXSk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGBBcHBseWAgYWN0aW9uLiBCb3RoIHNpbmdsZSBhbmQgcmFuZ2VkIG1vZGVzIGFyZSBoYW5kbGVkIGhlcmUuXG4gICAqL1xuICBjb25zdCBoYW5kbGVBcHBseSA9ICgpID0+IHtcbiAgICBzZXRTdGFydERhdGUoc3RhcnREYXRlLCB0cnVlKTtcbiAgICBzZXRFbmREYXRlKGVuZERhdGUgPz8gc3RhcnREYXRlLCB0cnVlKTtcblxuICAgIG9uQ2hhbmdlPy4oc3RhcnREYXRlLCBlbmREYXRlKTtcblxuICAgIHNldFZhbGlkYXRpb25TdGF0ZSgoKSA9PiB7XG4gICAgICAvLyB0aGlzIHdpbGwgb25seSBydW4gaWYgc3RhdHVzIGlzIHVuY29udHJvbGxlZFxuICAgICAgaWYgKHJlcXVpcmVkICYmICghaXNEYXRlKHN0YXJ0RGF0ZSkgfHwgKHJhbmdlTW9kZSAmJiAhaXNEYXRlKGVuZERhdGUpKSkpIHtcbiAgICAgICAgcmV0dXJuIFwiaW52YWxpZFwiO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gXCJ2YWxpZFwiO1xuICAgIH0pO1xuXG4gICAgc2V0Q2FsZW5kYXJPcGVuKGZhbHNlKTtcbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYENhbmNlbGAgYWN0aW9uLiBCb3RoIHNpbmdsZSBhbmQgcmFuZ2VkIG1vZGVzIGFyZSBoYW5kbGVkIGhlcmUuXG4gICAqL1xuICBjb25zdCBoYW5kbGVDYW5jZWwgPSAoKSA9PiB7XG4gICAgcm9sbGJhY2tTdGFydERhdGUoKTtcbiAgICByb2xsYmFja0VuZERhdGUoKTtcblxuICAgIG9uQ2FuY2VsPy4oKTtcblxuICAgIHNldENhbGVuZGFyT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGBDYW5jZWxgIGFjdGlvbi4gQm90aCBzaW5nbGUgYW5kIHJhbmdlZCBtb2RlcyBhcmUgaGFuZGxlZCBoZXJlLlxuICAgKi9cbiAgY29uc3QgaGFuZGxlQ2xlYXIgPSAoKSA9PiB7XG4gICAgc2V0U3RhcnREYXRlKHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgIHNldEVuZERhdGUodW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgb25DbGVhcj8uKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2FsZW5kYXJDbG9zZSA9ICgpID0+IHtcbiAgICBjb25zdCBzaG91bGRTYXZlID0gIShyYW5nZU1vZGUgfHwgc2hvd0FjdGlvbnMpO1xuICAgIGlmIChzaG91bGRTYXZlKSB7XG4gICAgICBoYW5kbGVBcHBseSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVDYW5jZWwoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlID0gKGV2dCwgb3BlbikgPT4ge1xuICAgIC8qIFxuICAgICBJZiBldnQgaXMgbnVsbCB0aGlzIHRvZ2dsZSB3YXNuJ3QgdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyLlxuICAgICBpbnN0ZWFkIGl0IHdhcyB0cmlnZ2VyZWQgYnkgdGhlIGJhc2VEcm9wZG93biB1c2VFZmZlY3QgYWZ0ZXJcbiAgICAgdGhlIGRhdGVwaWNrZXIgY2hhbmdlZCB0aGUgZXhwYW5kZWQgdmFsdWUgdGhpcyBiYXNlRHJvcGRvd24gYmVoYXZpb3IgbmVlZHMgYSByZXZpZXdcbiAgICAqL1xuICAgIGlmIChldnQgPT09IG51bGwpIHJldHVybjtcbiAgICBzZXRDYWxlbmRhck9wZW4ob3Blbik7XG4gICAgaWYgKCFvcGVuKSBoYW5kbGVDYWxlbmRhckNsb3NlKCk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXNPbkNvbnRhaW5lciA9ICgpID0+IHtcbiAgICBmb2N1c1RhcmdldC5jdXJyZW50Py5mb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURhdGVDaGFuZ2UgPSAoZXZlbnQsIG5ld0RhdGUpID0+IHtcbiAgICBpZiAoIWlzRGF0ZShuZXdEYXRlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgYXV0b1NhdmUgPSAhc2hvd0FjdGlvbnMgJiYgIXJhbmdlTW9kZTtcblxuICAgIGlmIChyYW5nZU1vZGUpIHtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8IChzdGFydERhdGUgJiYgZW5kRGF0ZSkgfHwgbmV3RGF0ZSA8IHN0YXJ0RGF0ZSkge1xuICAgICAgICBzZXRTdGFydERhdGUobmV3RGF0ZSk7XG4gICAgICAgIHNldEVuZERhdGUodW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEVuZERhdGUobmV3RGF0ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFN0YXJ0RGF0ZShuZXdEYXRlLCBhdXRvU2F2ZSk7XG4gICAgfVxuXG4gICAgaWYgKGF1dG9TYXZlKSB7XG4gICAgICBvbkNoYW5nZT8uKG5ld0RhdGUpO1xuXG4gICAgICBzZXRWYWxpZGF0aW9uU3RhdGUoKCkgPT4ge1xuICAgICAgICAvLyB0aGlzIHdpbGwgb25seSBydW4gaWYgc3RhdHVzIGlzIHVuY29udHJvbGxlZFxuICAgICAgICBpZiAocmVxdWlyZWQgJiYgIWlzRGF0ZShuZXdEYXRlKSkge1xuICAgICAgICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcInZhbGlkXCI7XG4gICAgICB9KTtcblxuICAgICAgc2V0Q2FsZW5kYXJPcGVuKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSW5wdXREYXRlQ2hhbmdlID0gKGV2ZW50LCBuZXdEYXRlLCBwb3NpdGlvbikgPT4ge1xuICAgIGlmICghaXNEYXRlKG5ld0RhdGUpKSByZXR1cm47XG5cbiAgICBpZiAoIXJhbmdlTW9kZSkge1xuICAgICAgaGFuZGxlRGF0ZUNoYW5nZShldmVudCwgbmV3RGF0ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uID09PSBcImxlZnRcIikge1xuICAgICAgaWYgKGVuZERhdGUpIHNldFN0YXJ0RGF0ZShuZXdEYXRlID4gZW5kRGF0ZSA/IGVuZERhdGUgOiBuZXdEYXRlKTtcbiAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSBcInJpZ2h0XCIpIHtcbiAgICAgIGlmICghc3RhcnREYXRlKSB7XG4gICAgICAgIGlmIChlbmREYXRlKSBzZXRTdGFydERhdGUobmV3RGF0ZSA+IGVuZERhdGUgPyBlbmREYXRlIDogbmV3RGF0ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHNldEVuZERhdGUobmV3RGF0ZSA8IHN0YXJ0RGF0ZSA/IHN0YXJ0RGF0ZSA6IG5ld0RhdGUpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgY29udGFpbmVyIGZvciB0aGUgYWN0aW9uIGVsZW1lbnRzLlxuICAgKi9cbiAgY29uc3QgcmVuZGVyQWN0aW9ucyA9ICgpID0+IChcbiAgICA8Q2xhc3NOYW1lcz5cbiAgICAgIHsoeyBjc3MsIGN4IH0pID0+IChcbiAgICAgICAgPEh2QWN0aW9uQmFyXG4gICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgIHNob3dDbGVhclxuICAgICAgICAgICAgICA/IGN4KFxuICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuYWN0aW9uQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5hY3Rpb25Db250YWluZXIpLFxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICB7c2hvd0NsZWFyICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5sZWZ0Q29udGFpbmVyLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LmxlZnRDb250YWluZXJcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEh2QnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9e3NldElkKGlkLCBcImFjdGlvblwiLCBcImNsZWFyXCIpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5hY3Rpb24sXG4gICAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmFjdGlvbiksXG4gICAgICAgICAgICAgICAgICBjbGFzc2VzPy5hY3Rpb25cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5R2hvc3RcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsZWFyfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVscz8uY2xlYXJMYWJlbH1cbiAgICAgICAgICAgICAgPC9IdkJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMucmlnaHRDb250YWluZXIsXG4gICAgICAgICAgICAgIGNsYXNzZXM/LnJpZ2h0Q29udGFpbmVyXG4gICAgICAgICAgICApfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxIdkJ1dHRvblxuICAgICAgICAgICAgICBpZD17c2V0SWQoaWQsIFwiYWN0aW9uXCIsIFwiYXBwbHlcIil9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuYWN0aW9uKSxcbiAgICAgICAgICAgICAgICBjbGFzc2VzPy5hY3Rpb25cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlHaG9zdFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUFwcGx5fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGFiZWxzPy5hcHBseUxhYmVsfVxuICAgICAgICAgICAgPC9IdkJ1dHRvbj5cbiAgICAgICAgICAgIDxIdkJ1dHRvblxuICAgICAgICAgICAgICBpZD17c2V0SWQoaWQsIFwiYWN0aW9uXCIsIFwiY2FuY2VsXCIpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmFjdGlvbixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmFjdGlvbiksXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8uYWN0aW9uXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5R2hvc3RcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDYW5jZWx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsYWJlbHM/LmNhbmNlbExhYmVsfVxuICAgICAgICAgICAgPC9IdkJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9IdkFjdGlvbkJhcj5cbiAgICAgICl9XG4gICAgPC9DbGFzc05hbWVzPlxuICApO1xuXG4gIGNvbnN0IHN0eWxlZFR5cG9ncmFwaHkgPSAoZGF0ZVN0cmluZywgdmFyaWFudCwgdGV4dCkgPT4ge1xuICAgIGNvbnN0IFN0eWxlZFR5cG9ncmFwaHkgPSBzdHlsZWQoSHZUeXBvZ3JhcGh5KSh7XG4gICAgICBjb2xvcjogZGF0ZVN0cmluZ1xuICAgICAgICA/IHRoZW1lLmNvbG9ycy5zZWNvbmRhcnlcbiAgICAgICAgOiB0aGVtZS5kYXRlUGlja2VyLmRyb3Bkb3duUGxhY2Vob2xkZXJDb2xvcixcbiAgICB9KTtcblxuICAgIHJldHVybiA8U3R5bGVkVHlwb2dyYXBoeSB2YXJpYW50PXt2YXJpYW50fT57dGV4dH08L1N0eWxlZFR5cG9ncmFwaHk+O1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlcklucHV0ID0gKGRhdGVTdHJpbmcpID0+XG4gICAgc3R5bGVkVHlwb2dyYXBoeShcbiAgICAgIGRhdGVTdHJpbmcsXG4gICAgICBhY3RpdmVUaGVtZT8uZGF0ZVBpY2tlci5wbGFjZWhvbGRlclZhcmlhbnQsXG4gICAgICAoZGF0ZVN0cmluZyB8fCBwbGFjZWhvbGRlcikgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBkYXRlU3RyaW5nIHx8IHBsYWNlaG9sZGVyXG4gICAgKTtcblxuICBjb25zdCBkYXRlVmFsdWUgPSByYW5nZU1vZGUgPyB7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9IDogc3RhcnREYXRlO1xuXG4gIGNvbnN0IGhhc0xhYmVsID0gbGFiZWwgIT0gbnVsbDtcbiAgY29uc3QgaGFzRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbiAhPSBudWxsO1xuXG4gIC8vIHRoZSBlcnJvciBtZXNzYWdlIGFyZWEgd2lsbCBvbmx5IGJlIGNyZWF0ZWQgaWY6XG4gIC8vIC0gYW4gZXh0ZXJuYWwgZWxlbWVudCB0aGF0IHByb3ZpZGVzIGFuIGVycm9yIG1lc3NhZ2UgaXNuJ3QgaWRlbnRpZmllZCB2aWEgYXJpYS1lcnJvcm1lc3NhZ2UgQU5EXG4gIC8vICAgLSBib3RoIHN0YXR1cyBhbmQgc3RhdHVzTWVzc2FnZSBwcm9wZXJ0aWVzIGFyZSBiZWluZyBjb250cm9sbGVkIE9SXG4gIC8vICAgLSBzdGF0dXMgaXMgdW5jb250cm9sbGVkIGFuZCByZXF1aXJlZCBpcyB0cnVlXG4gIGNvbnN0IGNhblNob3dFcnJvciA9XG4gICAgYXJpYUVycm9yTWVzc2FnZSA9PSBudWxsICYmXG4gICAgKChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXNNZXNzYWdlICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAoc3RhdHVzID09PSB1bmRlZmluZWQgJiYgcmVxdWlyZWQpKTtcblxuICBjb25zdCBpc1N0YXRlSW52YWxpZCA9IGlzSW52YWxpZCh2YWxpZGF0aW9uU3RhdGUpO1xuXG4gIGxldCBlcnJvck1lc3NhZ2VJZDtcbiAgaWYgKGlzU3RhdGVJbnZhbGlkKSB7XG4gICAgZXJyb3JNZXNzYWdlSWQgPSBjYW5TaG93RXJyb3JcbiAgICAgID8gc2V0SWQoZWxlbWVudElkLCBcImVycm9yXCIpXG4gICAgICA6IGFyaWFFcnJvck1lc3NhZ2U7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDbGFzc05hbWVzPlxuICAgICAgeyh7IGNzcywgY3ggfSkgPT4gKFxuICAgICAgICA8SHZGb3JtRWxlbWVudFxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXtkYXRlVmFsdWV9XG4gICAgICAgICAgc3RhdHVzPXt2YWxpZGF0aW9uU3RhdGV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMucm9vdCxcbiAgICAgICAgICAgIGNzcyhzdHlsZXMucm9vdCksXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBjbGFzc2VzPy5yb290XG4gICAgICAgICAgKX1cbiAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgey4uLm90aGVyc31cbiAgICAgICAgPlxuICAgICAgICAgIHsoaGFzTGFiZWwgfHwgaGFzRGVzY3JpcHRpb24pICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5sYWJlbENvbnRhaW5lcixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmxhYmVsQ29udGFpbmVyKSxcbiAgICAgICAgICAgICAgICBjbGFzc2VzPy5sYWJlbENvbnRhaW5lclxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzTGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgIDxIdkxhYmVsXG4gICAgICAgICAgICAgICAgICBpZD17c2V0SWQoZWxlbWVudElkLCBcImxhYmVsXCIpfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMubGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPy5sYWJlbFxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHtoYXNEZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgPEh2SW5mb01lc3NhZ2VcbiAgICAgICAgICAgICAgICAgIGlkPXtzZXRJZChlbGVtZW50SWQsIFwiZGVzY3JpcHRpb25cIil9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5kZXNjcmlwdGlvbiksXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXM/LmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICA8L0h2SW5mb01lc3NhZ2U+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxIdkJhc2VEcm9wZG93blxuICAgICAgICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgICAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgICAgICAgcm9vdDogY3goXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuZHJvcGRvd24sXG4gICAgICAgICAgICAgICAgY3NzKHN0eWxlcy5kcm9wZG93biksXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8uZHJvcGRvd25cbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgcGFuZWw6IGN4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLnBhbmVsLFxuICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMucGFuZWwpLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM/LnBhbmVsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGhlYWRlcjogaXNTdGF0ZUludmFsaWRcbiAgICAgICAgICAgICAgICA/IGN4KFxuICAgICAgICAgICAgICAgICAgICBkYXRlUGlja2VyQ2xhc3Nlcy5kcm9wZG93bkhlYWRlckludmFsaWQsXG4gICAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuZHJvcGRvd25IZWFkZXJJbnZhbGlkKSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz8uZHJvcGRvd25IZWFkZXJJbnZhbGlkXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGhlYWRlck9wZW46IGN4KFxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJDbGFzc2VzLmRyb3Bkb3duSGVhZGVyT3BlbixcbiAgICAgICAgICAgICAgICBjc3Moc3R5bGVzLmRyb3Bkb3duSGVhZGVyT3BlbiksXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz8uZHJvcGRvd25IZWFkZXJPcGVuXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZGlzYWJsZVBvcnRhbD17ZGlzYWJsZVBvcnRhbH1cbiAgICAgICAgICAgIHZhcmlhYmxlV2lkdGhcbiAgICAgICAgICAgIHBsYWNlbWVudD17aG9yaXpvbnRhbFBsYWNlbWVudH1cbiAgICAgICAgICAgIGV4cGFuZGVkPXtjYWxlbmRhck9wZW59XG4gICAgICAgICAgICBvblRvZ2dsZT17aGFuZGxlVG9nZ2xlfVxuICAgICAgICAgICAgb25DbGlja091dHNpZGU9e2hhbmRsZUNhbGVuZGFyQ2xvc2V9XG4gICAgICAgICAgICBvbkNvbnRhaW5lckNyZWF0aW9uPXtmb2N1c09uQ29udGFpbmVyfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3JlbmRlcklucHV0KFxuICAgICAgICAgICAgICBnZXREYXRlTGFiZWwoZGF0ZVZhbHVlLCByYW5nZU1vZGUsIGxvY2FsZSlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBhZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8Q2FsZW5kYXJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgZGF0ZVBpY2tlckNsYXNzZXMuaWNvbixcbiAgICAgICAgICAgICAgICAgIGNzcyhzdHlsZXMuaWNvbiksXG4gICAgICAgICAgICAgICAgICBjbGFzc2VzPy5pY29uXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICBjb2xvcj17ZGlzYWJsZWQgPyBcInNlY29uZGFyeV84MFwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcG9wcGVyUHJvcHM9e3tcbiAgICAgICAgICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgICAgICAgICAgeyBuYW1lOiBcInByZXZlbnRPdmVyZmxvd1wiLCBlbmFibGVkOiBlc2NhcGVXaXRoUmVmZXJlbmNlIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1xuICAgICAgICAgICAgICBbbGFiZWwgJiYgc2V0SWQoZWxlbWVudElkLCBcImxhYmVsXCIpLCBhcmlhTGFiZWxsZWRCeV1cbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgICAgICAudHJpbSgpIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXJpYS1pbnZhbGlkPXtpc1N0YXRlSW52YWxpZCA/IHRydWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBhcmlhLWVycm9ybWVzc2FnZT17ZXJyb3JNZXNzYWdlSWR9XG4gICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtcbiAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uICYmIHNldElkKGVsZW1lbnRJZCwgXCJkZXNjcmlwdGlvblwiKSwgYXJpYURlc2NyaWJlZEJ5XVxuICAgICAgICAgICAgICAgIC5qb2luKFwiIFwiKVxuICAgICAgICAgICAgICAgIC50cmltKCkgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7Li4uZHJvcGRvd25Qcm9wc31cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IHJlZj17Zm9jdXNUYXJnZXR9IHRhYkluZGV4PXstMX0gLz5cbiAgICAgICAgICAgIDxIdkNhbGVuZGFyXG4gICAgICAgICAgICAgIGlkPXtzZXRJZChpZCwgXCJjYWxlbmRhclwiKX1cbiAgICAgICAgICAgICAgc3RhcnRBZG9ybm1lbnQ9e3N0YXJ0QWRvcm5tZW50fVxuICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRGF0ZUNoYW5nZX1cbiAgICAgICAgICAgICAgb25JbnB1dENoYW5nZT17aGFuZGxlSW5wdXREYXRlQ2hhbmdlfVxuICAgICAgICAgICAgICBvblZpc2libGVEYXRlQ2hhbmdlPXsoX2V2ZW50LCB0eXBlLCBtb250aCwgdGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hBY3Rpb24oeyB0eXBlLCB0YXJnZXQsIG1vbnRoIH0pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc2libGVEYXRlfVxuICAgICAgICAgICAgICB7Li4uY2FsZW5kYXJQcm9wc31cbiAgICAgICAgICAgICAgaW52YWxpZERhdGVMYWJlbD17bGFiZWxzPy5pbnZhbGlkRGF0ZUxhYmVsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHsocmFuZ2VNb2RlIHx8IHNob3dBY3Rpb25zKSAmJiByZW5kZXJBY3Rpb25zKCl9XG4gICAgICAgICAgPC9IdkJhc2VEcm9wZG93bj5cbiAgICAgICAgICB7Y2FuU2hvd0Vycm9yICYmIChcbiAgICAgICAgICAgIDxIdldhcm5pbmdUZXh0XG4gICAgICAgICAgICAgIGlkPXtzZXRJZChlbGVtZW50SWQsIFwiZXJyb3JcIil9XG4gICAgICAgICAgICAgIGRpc2FibGVCb3JkZXJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChkYXRlUGlja2VyQ2xhc3Nlcy5lcnJvciwgY2xhc3Nlcz8uZXJyb3IpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dmFsaWRhdGlvbk1lc3NhZ2V9XG4gICAgICAgICAgICA8L0h2V2FybmluZ1RleHQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9IdkZvcm1FbGVtZW50PlxuICAgICAgKX1cbiAgICA8L0NsYXNzTmFtZXM+XG4gICk7XG59O1xuIl19 */");
|
|
236
237
|
return /* @__PURE__ */ jsx(StyledTypography, {
|
|
237
238
|
variant,
|
|
238
239
|
children: text
|
|
@@ -328,7 +329,8 @@ const HvDatePicker = ({
|
|
|
328
329
|
},
|
|
329
330
|
locale,
|
|
330
331
|
...visibleDate,
|
|
331
|
-
...calendarProps
|
|
332
|
+
...calendarProps,
|
|
333
|
+
invalidDateLabel: labels == null ? void 0 : labels.invalidDateLabel
|
|
332
334
|
}), (rangeMode || showActions) && renderActions()]
|
|
333
335
|
}), canShowError && /* @__PURE__ */ jsx(HvWarningText, {
|
|
334
336
|
id: setId(elementId, "error"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from \"react\";\nimport { ClassNames } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport { Calendar } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport {\n HvCalendar,\n HvInfoMessage,\n HvWarningText,\n HvCalendarProps,\n HvActionBar,\n HvButton,\n HvFormElement,\n HvTypography,\n HvBaseDropdown,\n HvLabel,\n} from \"@core/components\";\nimport { useControlled, useLabels, useTheme, useUniqueId } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { setId, useSavedState } from \"@core/utils\";\nimport { isInvalid } from \"../Forms/FormElement/validationStates\";\nimport { isDate } from \"../Calendar/utils\";\nimport { getDateLabel } from \"./utils\";\nimport useVisibleDate from \"./useVisibleDate\";\nimport datePickerClasses, { HvDatePickerClasses } from \"./datePickerClasses\";\nimport { styles } from \"./DatePicker.styles\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear\",\n};\n\nexport type HvDatePickerStatus = \"standBy\" | \"valid\" | \"invalid\";\n\nexport interface HvDatePickerProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvDatePickerClasses;\n /**\n * Id to be applied to the form element root node.\n */\n id?: string;\n\n /**\n * The form element name.\n */\n name?: string;\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?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-label\"?: string;\n /**\n * @ignore\n */\n \"aria-labelledby\"?: string;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-describedby\"?: string;\n /**\n * The placeholder value when nothing is selected.\n */\n placeholder?: string;\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\n required?: boolean;\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?: HvDatePickerStatus;\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?: React.ReactNode;\n /**\n * Identifies the element that provides an error message for the date picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\"?: string;\n\n /**\n * The callback fired when the value changes.\n */\n onChange?: (date?: Date, endDate?: Date) => void;\n /**\n * The callback fired when user clicks on cancel.\n */\n onCancel?: () => void;\n /**\n * The callback fired when user clicks on clear.\n */\n onClear?: () => void;\n /**\n * An object containing all the labels for the datepicker.\n */\n labels?: {\n /**\n * Apply button label.\n */\n applyLabel?: string;\n /**\n * Cancel button label.\n */\n cancelLabel?: string;\n /**\n * Clear button label.\n */\n clearLabel?: string;\n };\n\n /**\n * The initial value of the input when in single calendar mode.\n */\n value?: Date;\n /**\n * The initial value for the start date when in range mode.\n */\n startValue?: Date;\n /**\n * The initial value for the end date when in range mode.\n */\n endValue?: Date;\n /**\n * Flag informing if the the component should be in range mode or in single mode.\n * TODO: remove this in favour of discriminated union\n */\n rangeMode?: boolean;\n /**\n * The placement where the calendar should be placed according to the input. Options are `left` or `right`.\n * Note this prop only affects the calendar when in `rangeMode`.\n */\n horizontalPlacement?: \"left\" | \"right\";\n /**\n * The calendar locale. If undefined, it uses calendar default\n */\n locale?: string;\n\n /**\n * Controls if actions buttons are visible at the calendar.\n */\n showActions?: boolean;\n /**\n * Controls if clear button is visible at the calendar,\n * only works if showing actions or in range mode.\n */\n showClear?: boolean;\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal?: boolean;\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference?: boolean;\n /**\n * An element placed before the Calendar\n */\n startAdornment?: React.ReactNode;\n /**\n * An object containing props to be passed onto the baseDropdown.\n */\n dropdownProps?: Object;\n /**\n * If `true` the DatePicker will be in read only mode, unable to be interacted.\n */\n readOnly?: boolean;\n /**\n * Additional props passed to the HvCalendar component.\n */\n calendarProps?: Partial<HvCalendarProps>;\n}\n\n/**\n * A date picker, popup calendar or date range picker is a graphical user\n * interface widget which allows the user to select a date from a calendar.\n */\nexport const HvDatePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n readOnly,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n\n labels: labelsProp,\n\n value,\n startValue,\n endValue,\n\n rangeMode = false,\n startAdornment,\n horizontalPlacement = \"right\",\n locale: localeProp,\n showActions = false,\n showClear = false,\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n calendarProps,\n ...others\n}: HvDatePickerProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const elementId = useUniqueId(id, \"hvdatepicker\");\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const locale = localeProp || \"en-US\";\n\n const [calendarOpen, setCalendarOpen] = useState(false);\n\n const [startDate, setStartDate, rollbackStartDate] = useSavedState(\n rangeMode ? startValue : value\n );\n const [endDate, setEndDate, rollbackEndDate] = useSavedState(endValue);\n\n const [visibleDate, dispatchAction] = useVisibleDate(startDate, endDate);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const { activeTheme } = useTheme();\n\n useEffect(() => {\n setStartDate(rangeMode ? startValue : value, true);\n setEndDate(endValue, true);\n }, [value, startValue, endValue, rangeMode]);\n\n const endDateIsSet = useRef(false);\n endDateIsSet.current = endDate != null;\n\n useEffect(() => {\n if (startDate != null) {\n dispatchAction({\n type: \"month_year\",\n target: endDateIsSet.current ? \"left\" : \"best\",\n year: startDate.getFullYear(),\n month: startDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, startDate]);\n\n useEffect(() => {\n if (endDate != null) {\n dispatchAction({\n type: \"month_year\",\n target: \"right\",\n year: endDate.getFullYear(),\n month: endDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, endDate]);\n\n /**\n * Handles the `Apply` action. Both single and ranged modes are handled here.\n */\n const handleApply = () => {\n setStartDate(startDate, true);\n setEndDate(endDate ?? startDate, true);\n\n onChange?.(startDate, endDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && (!isDate(startDate) || (rangeMode && !isDate(endDate)))) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleCancel = () => {\n rollbackStartDate();\n rollbackEndDate();\n\n onCancel?.();\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleClear = () => {\n setStartDate(undefined, false);\n setEndDate(undefined, false);\n onClear?.();\n };\n\n const handleCalendarClose = () => {\n const shouldSave = !(rangeMode || showActions);\n if (shouldSave) {\n handleApply();\n } else {\n handleCancel();\n }\n };\n\n const handleToggle = (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 datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setCalendarOpen(open);\n if (!open) handleCalendarClose();\n };\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const handleDateChange = (event, newDate) => {\n if (!isDate(newDate)) return;\n\n const autoSave = !showActions && !rangeMode;\n\n if (rangeMode) {\n if (!startDate || (startDate && endDate) || newDate < startDate) {\n setStartDate(newDate);\n setEndDate(undefined);\n } else {\n setEndDate(newDate);\n }\n } else {\n setStartDate(newDate, autoSave);\n }\n\n if (autoSave) {\n onChange?.(newDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && !isDate(newDate)) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n }\n };\n\n const handleInputDateChange = (event, newDate, position) => {\n if (!isDate(newDate)) return;\n\n if (!rangeMode) {\n handleDateChange(event, newDate);\n return;\n }\n\n if (position === \"left\") {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n } else if (position === \"right\") {\n if (!startDate) {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n return;\n }\n setEndDate(newDate < startDate ? startDate : newDate);\n }\n };\n\n /**\n * Renders the container for the action elements.\n */\n const renderActions = () => (\n <ClassNames>\n {({ css, cx }) => (\n <HvActionBar\n className={\n showClear\n ? cx(\n datePickerClasses.actionContainer,\n css(styles.actionContainer),\n classes?.actionContainer\n )\n : \"\"\n }\n >\n {showClear && (\n <div\n className={cx(\n datePickerClasses.leftContainer,\n classes?.leftContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"clear\")}\n className={cx(\n datePickerClasses.action,\n css(styles.action),\n classes?.action\n )}\n variant=\"primaryGhost\"\n onClick={handleClear}\n >\n {labels?.clearLabel}\n </HvButton>\n </div>\n )}\n <div\n className={cx(\n datePickerClasses.rightContainer,\n classes?.rightContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"apply\")}\n className={cx(\n datePickerClasses.action,\n css(styles.action),\n classes?.action\n )}\n variant=\"primaryGhost\"\n onClick={handleApply}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"action\", \"cancel\")}\n className={cx(\n datePickerClasses.action,\n css(styles.action),\n classes?.action\n )}\n variant=\"primaryGhost\"\n onClick={handleCancel}\n >\n {labels?.cancelLabel}\n </HvButton>\n </div>\n </HvActionBar>\n )}\n </ClassNames>\n );\n\n const styledTypography = (dateString, variant, text) => {\n const StyledTypography = styled(HvTypography)({\n color: dateString\n ? theme.colors.secondary\n : theme.datePicker.dropdownPlaceholderColor,\n });\n\n return <StyledTypography variant={variant}>{text}</StyledTypography>;\n };\n\n const renderInput = (dateString) =>\n styledTypography(\n dateString,\n activeTheme?.datePicker.placeholderVariant,\n (dateString || placeholder) === undefined ? \"\" : dateString || placeholder\n );\n\n const dateValue = rangeMode ? { startDate, endDate } : startDate;\n\n const hasLabel = 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) ||\n (status === undefined && required));\n\n const isStateInvalid = isInvalid(validationState);\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <HvFormElement\n id={id}\n name={name}\n value={dateValue}\n status={validationState}\n disabled={disabled}\n required={required}\n className={cx(\n datePickerClasses.root,\n css(styles.root),\n className,\n classes?.root\n )}\n readOnly={readOnly}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div\n className={cx(\n datePickerClasses.labelContainer,\n css(styles.labelContainer),\n classes?.labelContainer\n )}\n >\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={cx(\n datePickerClasses.label,\n css(styles.label),\n classes?.label\n )}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage\n id={setId(elementId, \"description\")}\n className={cx(\n datePickerClasses.description,\n css(styles.description),\n classes?.description\n )}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n role=\"combobox\"\n classes={{\n root: cx(\n datePickerClasses.dropdown,\n css(styles.dropdown),\n classes?.dropdown\n ),\n panel: cx(\n datePickerClasses.panel,\n css(styles.panel),\n classes?.panel\n ),\n header: isStateInvalid\n ? cx(\n datePickerClasses.dropdownHeaderInvalid,\n css(styles.dropdownHeaderInvalid),\n classes?.dropdownHeaderInvalid\n )\n : undefined,\n headerOpen: cx(\n datePickerClasses.dropdownHeaderOpen,\n css(styles.dropdownHeaderOpen),\n classes?.dropdownHeaderOpen\n ),\n }}\n readOnly={readOnly}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={calendarOpen}\n onToggle={handleToggle}\n onClickOutside={handleCalendarClose}\n onContainerCreation={focusOnContainer}\n placeholder={renderInput(\n getDateLabel(dateValue, rangeMode, locale)\n )}\n adornment={\n <Calendar\n className={cx(\n datePickerClasses.icon,\n css(styles.icon),\n classes?.icon\n )}\n color={disabled ? \"secondary_80\" : undefined}\n />\n }\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...dropdownProps}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <HvCalendar\n id={setId(id, \"calendar\")}\n startAdornment={startAdornment}\n onChange={handleDateChange}\n onInputChange={handleInputDateChange}\n onVisibleDateChange={(_event, type, month, target) => {\n dispatchAction({ type, target, month });\n }}\n locale={locale}\n {...visibleDate}\n {...calendarProps}\n />\n {(rangeMode || showActions) && renderActions()}\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={cx(datePickerClasses.error, classes?.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n )}\n </ClassNames>\n );\n};\n"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","HvDatePicker","classes","className","id","name","required","disabled","readOnly","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","ariaErrorMessage","placeholder","labels","labelsProp","value","startValue","endValue","rangeMode","startAdornment","horizontalPlacement","locale","localeProp","showActions","showClear","disablePortal","escapeWithReference","dropdownProps","calendarProps","others","useLabels","elementId","useUniqueId","validationState","setValidationState","useControlled","validationMessage","calendarOpen","setCalendarOpen","useState","startDate","setStartDate","rollbackStartDate","useSavedState","endDate","setEndDate","rollbackEndDate","visibleDate","dispatchAction","useVisibleDate","focusTarget","useRef","activeTheme","useTheme","useEffect","endDateIsSet","current","type","target","year","getFullYear","month","getMonth","handleApply","isDate","handleCancel","handleClear","undefined","handleCalendarClose","shouldSave","handleToggle","evt","open","focusOnContainer","focus","handleDateChange","event","newDate","autoSave","handleInputDateChange","position","renderActions","_jsx","ClassNames","children","css","cx","HvActionBar","datePickerClasses","actionContainer","styles","leftContainer","HvButton","setId","action","variant","onClick","_jsxs","rightContainer","styledTypography","dateString","text","StyledTypography","HvTypography","process","env","NODE_ENV","color","theme","colors","secondary","datePicker","dropdownPlaceholderColor","renderInput","placeholderVariant","dateValue","hasLabel","hasDescription","canShowError","isStateInvalid","isInvalid","errorMessageId","HvFormElement","root","labelContainer","HvLabel","HvInfoMessage","HvBaseDropdown","role","dropdown","panel","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","variableWidth","placement","expanded","onToggle","onClickOutside","onContainerCreation","getDateLabel","adornment","Calendar","icon","popperProps","modifiers","enabled","join","trim","ref","tabIndex","HvCalendar","onInputChange","onVisibleDateChange","_event","HvWarningText","disableBorder","error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAMA,iBAAiB;AAAA,EACrBC,YAAY;AAAA,EACZC,aAAa;AAAA,EACbC,YAAY;AACd;AAkLO,MAAMC,eAAeA,CAAC;AAAA,EAC3BC;AAAAA,EACAC;AAAAA,EAEAC;AAAAA,EACAC;AAAAA,EAEAC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC;AAAAA,EAEAC;AAAAA,EACA,cAAcC;AAAAA,EACd,mBAAmBC;AAAAA,EACnBC;AAAAA,EACA,oBAAoBC;AAAAA,EAEpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,qBAAqBC;AAAAA,EAErBC;AAAAA,EAEAC,QAAQC;AAAAA,EAERC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EAEAC,YAAY;AAAA,EACZC;AAAAA,EACAC,sBAAsB;AAAA,EACtBC,QAAQC;AAAAA,EACRC,cAAc;AAAA,EACdC,YAAY;AAAA,EACZC,gBAAgB;AAAA,EAChBC,sBAAsB;AAAA,EACtBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACc,MAAM;AACjBhB,QAAAA,SAASiB,UAAUzC,gBAAgByB,UAAU;AAE7CiB,QAAAA,YAAYC,YAAYpC,IAAI,cAAc;AAEhD,QAAM,CAACqC,iBAAiBC,kBAAkB,IAAIC,cAC5C1B,QACA,SAAS;AAGX,QAAM,CAAC2B,iBAAiB,IAAID,cAAczB,eAAe,UAAU;AAEnE,QAAMW,SAASC,cAAc;AAE7B,QAAM,CAACe,cAAcC,eAAe,IAAIC,SAAS,KAAK;AAEhD,QAAA,CAACC,WAAWC,cAAcC,iBAAiB,IAAIC,cACnDzB,YAAYF,aAAaD,KAAK;AAEhC,QAAM,CAAC6B,SAASC,YAAYC,eAAe,IAAIH,cAAc1B,QAAQ;AAErE,QAAM,CAAC8B,aAAaC,cAAc,IAAIC,eAAeT,WAAWI,OAAO;AAEjEM,QAAAA,cAAcC,OAAuB,IAAI;AAEzC,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,SAAU;AAElCC,YAAU,MAAM;AACDpC,iBAAAA,YAAYF,aAAaD,OAAO,IAAI;AACjD8B,eAAW5B,UAAU,IAAI;AAAA,KACxB,CAACF,OAAOC,YAAYC,UAAUC,SAAS,CAAC;AAErCqC,QAAAA,eAAeJ,OAAO,KAAK;AACjCI,eAAaC,UAAUZ,WAAW;AAElCU,YAAU,MAAM;AACd,QAAId,aAAa,MAAM;AACN,qBAAA;AAAA,QACbiB,MAAM;AAAA,QACNC,QAAQH,aAAaC,UAAU,SAAS;AAAA,QACxCG,MAAMnB,UAAUoB,YAAa;AAAA,QAC7BC,OAAOrB,UAAUsB,SAAAA,IAAa;AAAA,MAAA,CAC/B;AAAA,IACH;AAAA,EAAA,GACC,CAACd,gBAAgBR,SAAS,CAAC;AAE9Bc,YAAU,MAAM;AACd,QAAIV,WAAW,MAAM;AACJ,qBAAA;AAAA,QACba,MAAM;AAAA,QACNC,QAAQ;AAAA,QACRC,MAAMf,QAAQgB,YAAa;AAAA,QAC3BC,OAAOjB,QAAQkB,SAAAA,IAAa;AAAA,MAAA,CAC7B;AAAA,IACH;AAAA,EAAA,GACC,CAACd,gBAAgBJ,OAAO,CAAC;AAK5B,QAAMmB,cAAcA,MAAM;AACxBtB,iBAAaD,WAAW,IAAI;AACjBI,eAAAA,WAAWJ,WAAW,IAAI;AAErClC,yCAAWkC,WAAWI;AAEtBV,uBAAmB,MAAM;AAEnBpC,UAAAA,aAAa,CAACkE,OAAOxB,SAAS,KAAMtB,aAAa,CAAC8C,OAAOpB,OAAO,IAAK;AAChE,eAAA;AAAA,MACT;AAEO,aAAA;AAAA,IAAA,CACR;AAEDN,oBAAgB,KAAK;AAAA,EAAA;AAMvB,QAAM2B,eAAeA,MAAM;AACN;AACF;AAEL;AAEZ3B,oBAAgB,KAAK;AAAA,EAAA;AAMvB,QAAM4B,cAAcA,MAAM;AACxBzB,iBAAa0B,QAAW,KAAK;AAC7BtB,eAAWsB,QAAW,KAAK;AAChB;AAAA,EAAA;AAGb,QAAMC,sBAAsBA,MAAM;AAC1BC,UAAAA,aAAa,EAAEnD,aAAaK;AAClC,QAAI8C,YAAY;AACD;IAAA,OACR;AACS;IAChB;AAAA,EAAA;AAGIC,QAAAA,eAAeA,CAACC,KAAKC,SAAS;AAMlC,QAAID,QAAQ;AAAM;AAClBjC,oBAAgBkC,IAAI;AACpB,QAAI,CAACA;AAA2B;EAAA;AAGlC,QAAMC,mBAAmBA,MAAM;;AAC7BvB,sBAAYM,YAAZN,mBAAqBwB;AAAAA,EAAO;AAGxBC,QAAAA,mBAAmBA,CAACC,OAAOC,YAAY;AACvC,QAAA,CAACb,OAAOa,OAAO;AAAG;AAEhBC,UAAAA,WAAW,CAACvD,eAAe,CAACL;AAElC,QAAIA,WAAW;AACb,UAAI,CAACsB,aAAcA,aAAaI,WAAYiC,UAAUrC,WAAW;AAC/DC,qBAAaoC,OAAO;AACpBhC,mBAAWsB,MAAS;AAAA,MAAA,OACf;AACLtB,mBAAWgC,OAAO;AAAA,MACpB;AAAA,IAAA,OACK;AACLpC,mBAAaoC,SAASC,QAAQ;AAAA,IAChC;AAEA,QAAIA,UAAU;AACZxE,2CAAWuE;AAEX3C,yBAAmB,MAAM;AAEvB,YAAIpC,YAAY,CAACkE,OAAOa,OAAO,GAAG;AACzB,iBAAA;AAAA,QACT;AAEO,eAAA;AAAA,MAAA,CACR;AAEDvC,sBAAgB,KAAK;AAAA,IACvB;AAAA,EAAA;AAGF,QAAMyC,wBAAwBA,CAACH,OAAOC,SAASG,aAAa;AACtD,QAAA,CAAChB,OAAOa,OAAO;AAAG;AAEtB,QAAI,CAAC3D,WAAW;AACdyD,uBAAiBC,OAAOC,OAAO;AAC/B;AAAA,IACF;AAEA,QAAIG,aAAa,QAAQ;AACnBpC,UAAAA;AAAsBiC,qBAAAA,UAAUjC,UAAUA,UAAUiC,OAAO;AAAA,IAAA,WACtDG,aAAa,SAAS;AAC/B,UAAI,CAACxC,WAAW;AACVI,YAAAA;AAAsBiC,uBAAAA,UAAUjC,UAAUA,UAAUiC,OAAO;AAC/D;AAAA,MACF;AACWA,iBAAAA,UAAUrC,YAAYA,YAAYqC,OAAO;AAAA,IACtD;AAAA,EAAA;AAMII,QAAAA,gBAAgBA,MACpBC,oBAACC,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,MAAKC;AAAAA,IAAAA,2BACNC,aAAW;AAAA,MACV5F,WACE6B,YACI8D,GACEE,kBAAkBC,iBAClBJ,IAAIK,OAAOD,eAAe,GAC1B/F,mCAAS+F,eAAe,IAE1B;AAAA,MACLL,UAAA,CAEA5D,aACC0D,oBAAA,OAAA;AAAA,QACEvF,WAAW2F,GACTE,kBAAkBG,eAClBjG,mCAASiG,aAAa;AAAA,QACtBP,8BAEDQ,UAAQ;AAAA,UACPhG,IAAIiG,MAAMjG,IAAI,UAAU,OAAO;AAAA,UAC/BD,WAAW2F,GACTE,kBAAkBM,QAClBT,IAAIK,OAAOI,MAAM,GACjBpG,mCAASoG,MAAM;AAAA,UAEjBC,SAAQ;AAAA,UACRC,SAAS9B;AAAAA,UAAYkB,UAEpBvE,iCAAQrB;AAAAA,QAAAA,CAAU;AAAA,MAAA,CACV,GAGfyG,qBAAA,OAAA;AAAA,QACEtG,WAAW2F,GACTE,kBAAkBU,gBAClBxG,mCAASwG,cAAc;AAAA,QACvBd,UAAA,CAEFF,oBAACU,UAAQ;AAAA,UACPhG,IAAIiG,MAAMjG,IAAI,UAAU,OAAO;AAAA,UAC/BD,WAAW2F,GACTE,kBAAkBM,QAClBT,IAAIK,OAAOI,MAAM,GACjBpG,mCAASoG,MAAM;AAAA,UAEjBC,SAAQ;AAAA,UACRC,SAASjC;AAAAA,UAAYqB,UAEpBvE,iCAAQvB;AAAAA,QAAAA,CACA,GACX4F,oBAACU,UAAQ;AAAA,UACPhG,IAAIiG,MAAMjG,IAAI,UAAU,QAAQ;AAAA,UAChCD,WAAW2F,GACTE,kBAAkBM,QAClBT,IAAIK,OAAOI,MAAM,GACjBpG,mCAASoG,MAAM;AAAA,UAEjBC,SAAQ;AAAA,UACRC,SAAS/B;AAAAA,UAAamB,UAErBvE,iCAAQtB;AAAAA,QAAAA,CACA,CAAA;AAAA,MAAA,CACP,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAIb;AAED,QAAM4G,mBAAmBA,CAACC,YAAYL,SAASM,SAAS;AACtD,UAAMC,mBAA0BC,wBAAAA,cAAYC,QAAAC,IAAAC,aAAA,eAAA;AAAA,MAAAhD,QAAA;AAAA,IAAA,IAAA;AAAA,MAAAA,QAAA;AAAA,MAAAzD,OAAA;AAAA,IAAA,CAAA,EAAE;AAAA,MAC5C0G,OAAOP,aACHQ,MAAMC,OAAOC,YACbF,MAAMG,WAAWC;AAAAA,IAAAA,GACtBR,QAAAC,IAAAC,aAAC,eAAA,KAAA,q2zBAAA;AAEF,+BAAQJ,kBAAgB;AAAA,MAACP;AAAAA,MAAiBX,UAAEiB;AAAAA,IAAAA,CAAwB;AAAA,EAAA;AAGtE,QAAMY,cAAeb,CAAAA,eACnBD,iBACEC,YACAhD,2CAAa2D,WAAWG,qBACvBd,cAAcxF,iBAAiBuD,SAAY,KAAKiC,cAAcxF,WAAW;AAG9E,QAAMuG,YAAYjG,YAAY;AAAA,IAAEsB;AAAAA,IAAWI;AAAAA,EAAYJ,IAAAA;AAEvD,QAAM4E,WAAWnH,SAAS;AAC1B,QAAMoH,iBAAiBjH,eAAe;AAMhCkH,QAAAA,eACJ3G,oBAAoB,SAClBF,WAAW0D,UAAazD,kBAAkByD,UACzC1D,WAAW0D,UAAarE;AAEvByH,QAAAA,iBAAiBC,UAAUvF,eAAe;AAE5CwF,MAAAA;AACJ,MAAIF,gBAAgB;AAClBE,qBAAiBH,eACbzB,MAAM9D,WAAW,OAAO,IACxBpB;AAAAA,EACN;AAEA,6BACGwE,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,MAAKC;AAAAA,IAAAA,2BACNoC,eAAa;AAAA,MACZ9H;AAAAA,MACAC;AAAAA,MACAkB,OAAOoG;AAAAA,MACP1G,QAAQwB;AAAAA,MACRlC;AAAAA,MACAD;AAAAA,MACAH,WAAW2F,GACTE,kBAAkBmC,MAClBtC,IAAIK,OAAOiC,IAAI,GACfhI,WACAD,mCAASiI,IAAI;AAAA,MAEf3H;AAAAA,MAAmB,GACf6B;AAAAA,MAAMuD,YAERgC,YAAYC,wCACZ,OAAA;AAAA,QACE1H,WAAW2F,GACTE,kBAAkBoC,gBAClBvC,IAAIK,OAAOkC,cAAc,GACzBlI,mCAASkI,cAAc;AAAA,QACvBxC,UAEDgC,CAAAA,YACClC,oBAAC2C,SAAO;AAAA,UACNjI,IAAIiG,MAAM9D,WAAW,OAAO;AAAA,UAC5B9B;AAAAA,UACAN,WAAW2F,GACTE,kBAAkBvF,OAClBoF,IAAIK,OAAOzF,KAAK,GAChBP,mCAASO,KAAK;AAAA,QAAA,CACd,GAILoH,kBACCnC,oBAAC4C,eAAa;AAAA,UACZlI,IAAIiG,MAAM9D,WAAW,aAAa;AAAA,UAClCpC,WAAW2F,GACTE,kBAAkBpF,aAClBiF,IAAIK,OAAOtF,WAAW,GACtBV,mCAASU,WAAW;AAAA,UACpBgF,UAEDhF;AAAAA,QAAAA,CAEJ,CAAA;AAAA,MAAA,CAEJ,GACD6F,qBAAC8B,gBAAc;AAAA,QACbC,MAAK;AAAA,QACLtI,SAAS;AAAA,UACPiI,MAAMrC,GACJE,kBAAkByC,UAClB5C,IAAIK,OAAOuC,QAAQ,GACnBvI,mCAASuI,QAAQ;AAAA,UAEnBC,OAAO5C,GACLE,kBAAkB0C,OAClB7C,IAAIK,OAAOwC,KAAK,GAChBxI,mCAASwI,KAAK;AAAA,UAEhBC,QAAQZ,iBACJjC,GACEE,kBAAkB4C,uBAClB/C,IAAIK,OAAO0C,qBAAqB,GAChC1I,mCAAS0I,qBAAqB,IAEhCjE;AAAAA,UACJkE,YAAY/C,GACVE,kBAAkB8C,oBAClBjD,IAAIK,OAAO4C,kBAAkB,GAC7B5I,mCAAS4I,kBAAkB;AAAA,QAE/B;AAAA,QACAtI;AAAAA,QACAD;AAAAA,QACA0B;AAAAA,QACA8G,eAAa;AAAA,QACbC,WAAWpH;AAAAA,QACXqH,UAAUpG;AAAAA,QACVqG,UAAUpE;AAAAA,QACVqE,gBAAgBvE;AAAAA,QAChBwE,qBAAqBnE;AAAAA,QACrB7D,aAAaqG,YACX4B,aAAa1B,WAAWjG,WAAWG,MAAM,CAAC;AAAA,QAE5CyH,+BACGC,UAAQ;AAAA,UACPpJ,WAAW2F,GACTE,kBAAkBwD,MAClB3D,IAAIK,OAAOsD,IAAI,GACftJ,mCAASsJ,IAAI;AAAA,UAEfrC,OAAO5G,WAAW,iBAAiBoE;AAAAA,QAAAA,CAEtC;AAAA,QACD8E,aAAa;AAAA,UACXC,WAAW,CACT;AAAA,YAAErJ,MAAM;AAAA,YAAmBsJ,SAASzH;AAAAA,UAAAA,CAAqB;AAAA,QAE7D;AAAA,QACA,iBAAc;AAAA,QACd,cAAYxB;AAAAA,QACZ,mBACE,CAACD,SAAS4F,MAAM9D,WAAW,OAAO,GAAG5B,cAAc,EAChDiJ,KAAK,GAAG,EACRC,UAAUlF;AAAAA,QAEf,gBAAcoD,iBAAiB,OAAOpD;AAAAA,QACtC,qBAAmBsD;AAAAA,QACnB,oBACE,CAACrH,eAAeyF,MAAM9D,WAAW,aAAa,GAAG1B,eAAe,EAC7D+I,KAAK,GAAG,EACRC,UAAUlF;AAAAA,QACd,GACGxC;AAAAA,QAAayD,WAEjBF,oBAAA,OAAA;AAAA,UAAKoE,KAAKpG;AAAAA,UAAaqG,UAAU;AAAA,QAAA,CAAM,GACvCrE,oBAACsE,YAAU;AAAA,UACT5J,IAAIiG,MAAMjG,IAAI,UAAU;AAAA,UACxBuB;AAAAA,UACAb,UAAUqE;AAAAA,UACV8E,eAAe1E;AAAAA,UACf2E,qBAAqBA,CAACC,QAAQlG,MAAMI,OAAOH,WAAW;AACrC,2BAAA;AAAA,cAAED;AAAAA,cAAMC;AAAAA,cAAQG;AAAAA,YAAAA,CAAO;AAAA,UACxC;AAAA,UACAxC;AAAAA,UAAe,GACX0B;AAAAA,UAAW,GACXnB;AAAAA,QAAa,CAAA,IAEjBV,aAAaK,gBAAgB0D,eAAe;AAAA,MAAA,CAAA,GAE/CqC,gBACCpC,oBAAC0E,eAAa;AAAA,QACZhK,IAAIiG,MAAM9D,WAAW,OAAO;AAAA,QAC5B8H,eAAa;AAAA,QACblK,WAAW2F,GAAGE,kBAAkBsE,OAAOpK,mCAASoK,KAAK;AAAA,QAAE1E,UAEtDhD;AAAAA,MAAAA,CAEJ,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAGM;AAEjB;"}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from \"react\";\nimport { ClassNames } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport { Calendar } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport {\n HvCalendar,\n HvInfoMessage,\n HvWarningText,\n HvCalendarProps,\n HvActionBar,\n HvButton,\n HvFormElement,\n HvTypography,\n HvBaseDropdown,\n HvLabel,\n} from \"@core/components\";\nimport { useControlled, useLabels, useTheme, useUniqueId } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { setId, useSavedState } from \"@core/utils\";\nimport { isInvalid } from \"../Forms/FormElement/validationStates\";\nimport { isDate } from \"../Calendar/utils\";\nimport { getDateLabel } from \"./utils\";\nimport useVisibleDate from \"./useVisibleDate\";\nimport datePickerClasses, { HvDatePickerClasses } from \"./datePickerClasses\";\nimport { styles } from \"./DatePicker.styles\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear\",\n invalidLabel: \"Invalid date\",\n};\n\nexport type HvDatePickerStatus = \"standBy\" | \"valid\" | \"invalid\";\n\nexport interface HvDatePickerProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvDatePickerClasses;\n /**\n * Id to be applied to the form element root node.\n */\n id?: string;\n\n /**\n * The form element name.\n */\n name?: string;\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?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-label\"?: string;\n /**\n * @ignore\n */\n \"aria-labelledby\"?: string;\n /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-describedby\"?: string;\n /**\n * The placeholder value when nothing is selected.\n */\n placeholder?: string;\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\n required?: boolean;\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?: HvDatePickerStatus;\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?: React.ReactNode;\n /**\n * Identifies the element that provides an error message for the date picker.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\"?: string;\n\n /**\n * The callback fired when the value changes.\n */\n onChange?: (date?: Date, endDate?: Date) => void;\n /**\n * The callback fired when user clicks on cancel.\n */\n onCancel?: () => void;\n /**\n * The callback fired when user clicks on clear.\n */\n onClear?: () => void;\n /**\n * An object containing all the labels for the datepicker.\n */\n labels?: {\n /**\n * Apply button label.\n */\n applyLabel?: string;\n /**\n * Cancel button label.\n */\n cancelLabel?: string;\n /**\n * Clear button label.\n */\n clearLabel?: string;\n /**\n * Invalid Date label.\n */\n invalidDateLabel?: string;\n };\n\n /**\n * The initial value of the input when in single calendar mode.\n */\n value?: Date;\n /**\n * The initial value for the start date when in range mode.\n */\n startValue?: Date;\n /**\n * The initial value for the end date when in range mode.\n */\n endValue?: Date;\n /**\n * Flag informing if the the component should be in range mode or in single mode.\n * TODO: remove this in favour of discriminated union\n */\n rangeMode?: boolean;\n /**\n * The placement where the calendar should be placed according to the input. Options are `left` or `right`.\n * Note this prop only affects the calendar when in `rangeMode`.\n */\n horizontalPlacement?: \"left\" | \"right\";\n /**\n * The calendar locale. If undefined, it uses calendar default\n */\n locale?: string;\n\n /**\n * Controls if actions buttons are visible at the calendar.\n */\n showActions?: boolean;\n /**\n * Controls if clear button is visible at the calendar,\n * only works if showing actions or in range mode.\n */\n showClear?: boolean;\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal?: boolean;\n /**\n * Sets if the calendar container should follow the date picker input out of the screen or stay visible.\n */\n escapeWithReference?: boolean;\n /**\n * An element placed before the Calendar\n */\n startAdornment?: React.ReactNode;\n /**\n * An object containing props to be passed onto the baseDropdown.\n */\n dropdownProps?: Object;\n /**\n * If `true` the DatePicker will be in read only mode, unable to be interacted.\n */\n readOnly?: boolean;\n /**\n * Additional props passed to the HvCalendar component.\n */\n calendarProps?: Partial<HvCalendarProps>;\n}\n\n/**\n * A date picker, popup calendar or date range picker is a graphical user\n * interface widget which allows the user to select a date from a calendar.\n */\nexport const HvDatePicker = ({\n classes,\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n readOnly,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n\n labels: labelsProp,\n\n value,\n startValue,\n endValue,\n\n rangeMode = false,\n startAdornment,\n horizontalPlacement = \"right\",\n locale: localeProp,\n showActions = false,\n showClear = false,\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps,\n calendarProps,\n ...others\n}: HvDatePickerProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const elementId = useUniqueId(id, \"hvdatepicker\");\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const locale = localeProp || \"en-US\";\n\n const [calendarOpen, setCalendarOpen] = useState(false);\n\n const [startDate, setStartDate, rollbackStartDate] = useSavedState(\n rangeMode ? startValue : value\n );\n const [endDate, setEndDate, rollbackEndDate] = useSavedState(endValue);\n\n const [visibleDate, dispatchAction] = useVisibleDate(startDate, endDate);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const { activeTheme } = useTheme();\n\n useEffect(() => {\n setStartDate(rangeMode ? startValue : value, true);\n setEndDate(endValue, true);\n }, [value, startValue, endValue, rangeMode]);\n\n const endDateIsSet = useRef(false);\n endDateIsSet.current = endDate != null;\n\n useEffect(() => {\n if (startDate != null) {\n dispatchAction({\n type: \"month_year\",\n target: endDateIsSet.current ? \"left\" : \"best\",\n year: startDate.getFullYear(),\n month: startDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, startDate]);\n\n useEffect(() => {\n if (endDate != null) {\n dispatchAction({\n type: \"month_year\",\n target: \"right\",\n year: endDate.getFullYear(),\n month: endDate.getMonth() + 1,\n });\n }\n }, [dispatchAction, endDate]);\n\n /**\n * Handles the `Apply` action. Both single and ranged modes are handled here.\n */\n const handleApply = () => {\n setStartDate(startDate, true);\n setEndDate(endDate ?? startDate, true);\n\n onChange?.(startDate, endDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && (!isDate(startDate) || (rangeMode && !isDate(endDate)))) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleCancel = () => {\n rollbackStartDate();\n rollbackEndDate();\n\n onCancel?.();\n\n setCalendarOpen(false);\n };\n\n /**\n * Handles the `Cancel` action. Both single and ranged modes are handled here.\n */\n const handleClear = () => {\n setStartDate(undefined, false);\n setEndDate(undefined, false);\n onClear?.();\n };\n\n const handleCalendarClose = () => {\n const shouldSave = !(rangeMode || showActions);\n if (shouldSave) {\n handleApply();\n } else {\n handleCancel();\n }\n };\n\n const handleToggle = (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 datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setCalendarOpen(open);\n if (!open) handleCalendarClose();\n };\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const handleDateChange = (event, newDate) => {\n if (!isDate(newDate)) return;\n\n const autoSave = !showActions && !rangeMode;\n\n if (rangeMode) {\n if (!startDate || (startDate && endDate) || newDate < startDate) {\n setStartDate(newDate);\n setEndDate(undefined);\n } else {\n setEndDate(newDate);\n }\n } else {\n setStartDate(newDate, autoSave);\n }\n\n if (autoSave) {\n onChange?.(newDate);\n\n setValidationState(() => {\n // this will only run if status is uncontrolled\n if (required && !isDate(newDate)) {\n return \"invalid\";\n }\n\n return \"valid\";\n });\n\n setCalendarOpen(false);\n }\n };\n\n const handleInputDateChange = (event, newDate, position) => {\n if (!isDate(newDate)) return;\n\n if (!rangeMode) {\n handleDateChange(event, newDate);\n return;\n }\n\n if (position === \"left\") {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n } else if (position === \"right\") {\n if (!startDate) {\n if (endDate) setStartDate(newDate > endDate ? endDate : newDate);\n return;\n }\n setEndDate(newDate < startDate ? startDate : newDate);\n }\n };\n\n /**\n * Renders the container for the action elements.\n */\n const renderActions = () => (\n <ClassNames>\n {({ css, cx }) => (\n <HvActionBar\n className={\n showClear\n ? cx(\n datePickerClasses.actionContainer,\n css(styles.actionContainer),\n classes?.actionContainer\n )\n : \"\"\n }\n >\n {showClear && (\n <div\n className={cx(\n datePickerClasses.leftContainer,\n classes?.leftContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"clear\")}\n className={cx(\n datePickerClasses.action,\n css(styles.action),\n classes?.action\n )}\n variant=\"primaryGhost\"\n onClick={handleClear}\n >\n {labels?.clearLabel}\n </HvButton>\n </div>\n )}\n <div\n className={cx(\n datePickerClasses.rightContainer,\n classes?.rightContainer\n )}\n >\n <HvButton\n id={setId(id, \"action\", \"apply\")}\n className={cx(\n datePickerClasses.action,\n css(styles.action),\n classes?.action\n )}\n variant=\"primaryGhost\"\n onClick={handleApply}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"action\", \"cancel\")}\n className={cx(\n datePickerClasses.action,\n css(styles.action),\n classes?.action\n )}\n variant=\"primaryGhost\"\n onClick={handleCancel}\n >\n {labels?.cancelLabel}\n </HvButton>\n </div>\n </HvActionBar>\n )}\n </ClassNames>\n );\n\n const styledTypography = (dateString, variant, text) => {\n const StyledTypography = styled(HvTypography)({\n color: dateString\n ? theme.colors.secondary\n : theme.datePicker.dropdownPlaceholderColor,\n });\n\n return <StyledTypography variant={variant}>{text}</StyledTypography>;\n };\n\n const renderInput = (dateString) =>\n styledTypography(\n dateString,\n activeTheme?.datePicker.placeholderVariant,\n (dateString || placeholder) === undefined ? \"\" : dateString || placeholder\n );\n\n const dateValue = rangeMode ? { startDate, endDate } : startDate;\n\n const hasLabel = 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) ||\n (status === undefined && required));\n\n const isStateInvalid = isInvalid(validationState);\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <HvFormElement\n id={id}\n name={name}\n value={dateValue}\n status={validationState}\n disabled={disabled}\n required={required}\n className={cx(\n datePickerClasses.root,\n css(styles.root),\n className,\n classes?.root\n )}\n readOnly={readOnly}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div\n className={cx(\n datePickerClasses.labelContainer,\n css(styles.labelContainer),\n classes?.labelContainer\n )}\n >\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={cx(\n datePickerClasses.label,\n css(styles.label),\n classes?.label\n )}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage\n id={setId(elementId, \"description\")}\n className={cx(\n datePickerClasses.description,\n css(styles.description),\n classes?.description\n )}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvBaseDropdown\n role=\"combobox\"\n classes={{\n root: cx(\n datePickerClasses.dropdown,\n css(styles.dropdown),\n classes?.dropdown\n ),\n panel: cx(\n datePickerClasses.panel,\n css(styles.panel),\n classes?.panel\n ),\n header: isStateInvalid\n ? cx(\n datePickerClasses.dropdownHeaderInvalid,\n css(styles.dropdownHeaderInvalid),\n classes?.dropdownHeaderInvalid\n )\n : undefined,\n headerOpen: cx(\n datePickerClasses.dropdownHeaderOpen,\n css(styles.dropdownHeaderOpen),\n classes?.dropdownHeaderOpen\n ),\n }}\n readOnly={readOnly}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={calendarOpen}\n onToggle={handleToggle}\n onClickOutside={handleCalendarClose}\n onContainerCreation={focusOnContainer}\n placeholder={renderInput(\n getDateLabel(dateValue, rangeMode, locale)\n )}\n adornment={\n <Calendar\n className={cx(\n datePickerClasses.icon,\n css(styles.icon),\n classes?.icon\n )}\n color={disabled ? \"secondary_80\" : undefined}\n />\n }\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...dropdownProps}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <HvCalendar\n id={setId(id, \"calendar\")}\n startAdornment={startAdornment}\n onChange={handleDateChange}\n onInputChange={handleInputDateChange}\n onVisibleDateChange={(_event, type, month, target) => {\n dispatchAction({ type, target, month });\n }}\n locale={locale}\n {...visibleDate}\n {...calendarProps}\n invalidDateLabel={labels?.invalidDateLabel}\n />\n {(rangeMode || showActions) && renderActions()}\n </HvBaseDropdown>\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={cx(datePickerClasses.error, classes?.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n )}\n </ClassNames>\n );\n};\n"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","invalidLabel","HvDatePicker","classes","className","id","name","required","disabled","readOnly","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","ariaErrorMessage","placeholder","labels","labelsProp","value","startValue","endValue","rangeMode","startAdornment","horizontalPlacement","locale","localeProp","showActions","showClear","disablePortal","escapeWithReference","dropdownProps","calendarProps","others","useLabels","elementId","useUniqueId","validationState","setValidationState","useControlled","validationMessage","calendarOpen","setCalendarOpen","useState","startDate","setStartDate","rollbackStartDate","useSavedState","endDate","setEndDate","rollbackEndDate","visibleDate","dispatchAction","useVisibleDate","focusTarget","useRef","activeTheme","useTheme","useEffect","endDateIsSet","current","type","target","year","getFullYear","month","getMonth","handleApply","isDate","handleCancel","handleClear","undefined","handleCalendarClose","shouldSave","handleToggle","evt","open","focusOnContainer","focus","handleDateChange","event","newDate","autoSave","handleInputDateChange","position","renderActions","_jsx","ClassNames","children","css","cx","HvActionBar","datePickerClasses","actionContainer","styles","leftContainer","HvButton","setId","action","variant","onClick","_jsxs","rightContainer","styledTypography","dateString","text","StyledTypography","HvTypography","process","env","NODE_ENV","color","theme","colors","secondary","datePicker","dropdownPlaceholderColor","renderInput","placeholderVariant","dateValue","hasLabel","hasDescription","canShowError","isStateInvalid","isInvalid","errorMessageId","HvFormElement","root","labelContainer","HvLabel","HvInfoMessage","HvBaseDropdown","role","dropdown","panel","header","dropdownHeaderInvalid","headerOpen","dropdownHeaderOpen","variableWidth","placement","expanded","onToggle","onClickOutside","onContainerCreation","getDateLabel","adornment","Calendar","icon","popperProps","modifiers","enabled","join","trim","ref","tabIndex","HvCalendar","onInputChange","onVisibleDateChange","_event","invalidDateLabel","HvWarningText","disableBorder","error"],"mappings":"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"}
|
|
@@ -20,7 +20,6 @@ const HvFilterGroupCounter = ({
|
|
|
20
20
|
id,
|
|
21
21
|
classes
|
|
22
22
|
}) => {
|
|
23
|
-
var _a;
|
|
24
23
|
const {
|
|
25
24
|
filterOptions,
|
|
26
25
|
filterValues = [],
|
|
@@ -29,7 +28,7 @@ const HvFilterGroupCounter = ({
|
|
|
29
28
|
const options = id && filterOptions.find((option) => option.id === id) ? [filterOptions.find((option) => option.id === id)] : filterOptions;
|
|
30
29
|
const optionIdx = filterOptions.findIndex((option) => option.id === id);
|
|
31
30
|
let groupsCounter = 0;
|
|
32
|
-
|
|
31
|
+
appliedFilters.filter((elem) => elem !== void 0).forEach((fg, i) => {
|
|
33
32
|
groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);
|
|
34
33
|
});
|
|
35
34
|
const partialCounter = id ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0 : groupsCounter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Counter.js","sources":["../../../../../src/components/FilterGroup/Counter/Counter.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { ClassNames } from \"@emotion/react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { styles } from \"./Counter.styles\";\nimport { HvFilterGroupFilters, HvFilterGroupValue } from \"../FilterGroup\";\nimport filterGroupCounterClasses, {\n HvFilterGroupCounterClasses,\n} from \"./counterClasses\";\n\nexport interface HvFilterGroupCounterProps {\n className?: string;\n id?: string;\n classes?: HvFilterGroupCounterClasses;\n}\n\nconst getExistingFiltersById = (\n idx: number,\n filterValues: HvFilterGroupValue,\n filterOptions: HvFilterGroupFilters\n) => {\n let total = 0;\n filterValues[idx]?.forEach((fv) => {\n if (filterOptions[idx]?.data.find((f) => f.id === fv)) {\n total += 1;\n }\n });\n return total;\n};\n\nexport const HvFilterGroupCounter = ({\n className,\n id,\n classes,\n}: HvFilterGroupCounterProps) => {\n const {\n filterOptions,\n filterValues = [],\n appliedFilters = [],\n } = useContext(HvFilterGroupContext);\n\n const options =\n id && filterOptions.find((option) => option.id === id)\n ? ([\n filterOptions.find((option) => option.id === id),\n ] as HvFilterGroupFilters)\n : filterOptions;\n const optionIdx = filterOptions.findIndex((option) => option.id === id);\n\n let groupsCounter = 0;\n appliedFilters\n
|
|
1
|
+
{"version":3,"file":"Counter.js","sources":["../../../../../src/components/FilterGroup/Counter/Counter.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { ClassNames } from \"@emotion/react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { styles } from \"./Counter.styles\";\nimport { HvFilterGroupFilters, HvFilterGroupValue } from \"../FilterGroup\";\nimport filterGroupCounterClasses, {\n HvFilterGroupCounterClasses,\n} from \"./counterClasses\";\n\nexport interface HvFilterGroupCounterProps {\n className?: string;\n id?: string;\n classes?: HvFilterGroupCounterClasses;\n}\n\nconst getExistingFiltersById = (\n idx: number,\n filterValues: HvFilterGroupValue,\n filterOptions: HvFilterGroupFilters\n) => {\n let total = 0;\n filterValues[idx]?.forEach((fv) => {\n if (filterOptions[idx]?.data.find((f) => f.id === fv)) {\n total += 1;\n }\n });\n return total;\n};\n\nexport const HvFilterGroupCounter = ({\n className,\n id,\n classes,\n}: HvFilterGroupCounterProps) => {\n const {\n filterOptions,\n filterValues = [],\n appliedFilters = [],\n } = useContext(HvFilterGroupContext);\n\n const options =\n id && filterOptions.find((option) => option.id === id)\n ? ([\n filterOptions.find((option) => option.id === id),\n ] as HvFilterGroupFilters)\n : filterOptions;\n const optionIdx = filterOptions.findIndex((option) => option.id === id);\n\n let groupsCounter = 0;\n appliedFilters\n .filter((elem) => elem !== undefined)\n .forEach((fg, i) => {\n groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);\n });\n\n const partialCounter = id\n ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0\n : groupsCounter;\n\n const totalCounter = options.reduce(\n (acc, option) => acc + option.data.length,\n 0\n );\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <div\n className={cx(\n filterGroupCounterClasses.root,\n css(styles.root),\n className,\n classes?.root\n )}\n >\n {partialCounter > 0 ? (\n <p\n className={cx(\n filterGroupCounterClasses.partialCounter,\n css(styles.partialCounter),\n classes?.partialCounter\n )}\n >\n {partialCounter}\n </p>\n ) : (\n partialCounter\n )}\n {` / ${totalCounter}`}\n </div>\n )}\n </ClassNames>\n );\n};\n"],"names":["getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","HvFilterGroupCounter","className","classes","appliedFilters","useContext","HvFilterGroupContext","options","option","optionIdx","findIndex","groupsCounter","filter","elem","undefined","fg","i","partialCounter","totalCounter","reduce","acc","length","ClassNames","children","css","cx","filterGroupCounterClasses","root","styles"],"mappings":";;;;;;AAeA,MAAMA,yBAAyBA,CAC7BC,KACAC,cACAC,kBACG;;AACH,MAAIC,QAAQ;AACCH,qBAAAA,GAAG,MAAHA,mBAAMI,QAASC,CAAO,OAAA;;AAC7BH,SAAAA,MAAAA,cAAcF,GAAG,MAAjBE,gBAAAA,IAAoBI,KAAKC,KAAMC,CAAMA,MAAAA,EAAEC,OAAOJ,KAAK;AAC5C,eAAA;AAAA,IACX;AAAA,EAAA;AAEKF,SAAAA;AACT;AAEO,MAAMO,uBAAuBA,CAAC;AAAA,EACnCC;AAAAA,EACAF;AAAAA,EACAG;AACyB,MAAM;AACzB,QAAA;AAAA,IACJV;AAAAA,IACAD,eAAe,CAAE;AAAA,IACjBY,iBAAiB,CAAA;AAAA,EAAA,IACfC,WAAWC,oBAAoB;AAEnC,QAAMC,UACJP,MAAMP,cAAcK,KAAMU,CAAAA,WAAWA,OAAOR,OAAOA,EAAE,IAChD,CACCP,cAAcK,KAAMU,CAAAA,WAAWA,OAAOR,OAAOA,EAAE,CAAC,IAElDP;AACN,QAAMgB,YAAYhB,cAAciB,UAAWF,CAAWA,WAAAA,OAAOR,OAAOA,EAAE;AAEtE,MAAIW,gBAAgB;AAEjBC,iBAAAA,OAAQC,UAASA,SAASC,MAAS,EACnCnB,QAAQ,CAACoB,IAAIC,MAAM;AACD1B,qBAAAA,uBAAuB0B,GAAGxB,cAAcC,aAAa;AAAA,EAAA,CACvE;AAEH,QAAMwB,iBAAiBjB,KACnBV,uBAAuBmB,WAAWjB,cAAcC,aAAa,KAAK,IAClEkB;AAEEO,QAAAA,eAAeX,QAAQY,OAC3B,CAACC,KAAKZ,WAAWY,MAAMZ,OAAOX,KAAKwB,QACnC,CAAC;AAGH,6BACGC,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,MAAKC;AAAAA,IAAAA,2BACP,OAAA;AAAA,MACEvB,WAAWuB,GACTC,0BAA0BC,MAC1BH,IAAII,OAAOD,IAAI,GACfzB,WACAC,mCAASwB,IAAI;AAAA,MACbJ,UAEDN,CAAAA,iBAAiB,wBAChB,KAAA;AAAA,QACEf,WAAWuB,GACTC,0BAA0BT,gBAC1BO,IAAII,OAAOX,cAAc,GACzBd,mCAASc,cAAc;AAAA,QACvBM,UAEDN;AAAAA,MAAc,CAAA,IAGjBA,gBAEA,MAAKC,cAAc;AAAA,IAAA,CAAA;AAAA,EAAA,CAGd;AAEjB;"}
|