@sis-cc/dotstatsuite-visions 13.8.0 → 13.10.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/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/Button/Button.js +15 -17
- package/dist/Button/Button.js.map +1 -1
- package/dist/CollapseButtons/CollapseButtons.js +130 -98
- package/dist/CollapseButtons/CollapseButtons.js.map +1 -1
- package/dist/CollapsibleTree/CollapsibleTree.js.map +1 -1
- package/dist/Contact/Contact.js.map +1 -1
- package/dist/DynamicDrawer/DynamicDrawer.js +1 -0
- package/dist/DynamicDrawer/DynamicDrawer.js.map +1 -1
- package/dist/Logo/Logo.js +1 -1
- package/dist/Logo/Logo.js.map +1 -1
- package/dist/PeriodPicker/PeriodPicker.js +1 -9
- package/dist/PeriodPicker/PeriodPicker.js.map +1 -1
- package/dist/TableHtml5/TableHtml5.js +0 -1
- package/dist/TableHtml5/TableHtml5.js.map +1 -1
- package/dist/TableLayout/TableLayout.js.map +1 -1
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/theme/theme.js +5 -5
- package/dist/theme/theme.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeriodPicker.js","sources":["../../src/PeriodPicker/constants.js","../../src/PeriodPicker/lib.js","../../src/PeriodPicker/styles.js","../../src/PeriodPicker/PeriodPicker.jsx"],"sourcesContent":["export const YEARS = 'years';\nexport const SEMESTERS = 'semesters';\nexport const QUARTERS = 'quarters';\nexport const MONTHS = 'months';\nexport const WEEKS = 'weeks';\nexport const DAYS = 'days';\nexport const FULL_HOURS = 'full_hours';\nexport const HOURS = 'hours';\nexport const MINUTES = 'minutes';\nexport const frequencies = [\n YEARS,\n MONTHS,\n DAYS,\n HOURS,\n MINUTES,\n FULL_HOURS,\n QUARTERS,\n WEEKS,\n SEMESTERS,\n];\n\nexport const YEAR = 'year';\nexport const SEMESTER = 'semester';\nexport const QUARTER = 'quarter';\nexport const MONTH = 'month';\nexport const WEEK = 'week';\nexport const DAY = 'day';\nexport const FULL_HOUR = 'full_hour';\nexport const HOUR = 'hour';\nexport const MINUTE = 'minute';\n\nexport const layoutFrequencies = {\n S: [\n [\n { values: YEARS, id: YEAR },\n { values: SEMESTERS, id: SEMESTER },\n ],\n ],\n A: [[{ values: YEARS, id: YEAR }]],\n Q: [\n [\n { values: YEARS, id: YEAR },\n { values: QUARTERS, id: QUARTER },\n ],\n ],\n M: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n ],\n ],\n W: [\n [\n { values: YEARS, id: YEAR },\n { values: WEEKS, id: WEEK },\n ],\n ],\n B: [\n [\n { values: YEARS, id: YEAR },\n { values: WEEKS, id: WEEK },\n ],\n ],\n D: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n ],\n H: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n [{ values: FULL_HOURS, id: FULL_HOUR }],\n ],\n N: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n [\n { values: HOURS, id: HOUR },\n { values: MINUTES, id: MINUTE },\n ],\n ],\n};\n\nexport const defaultOutputValues = {\n [YEARS]: '----',\n [SEMESTERS]: '-',\n [QUARTERS]: '-',\n [MONTHS]: '--',\n [WEEKS]: '--',\n [DAYS]: '--',\n [FULL_HOURS]: '--:00',\n [HOURS]: '--',\n [MINUTES]: '--',\n};\n\nexport const formatOrder = [YEAR, MONTH, DAY, HOUR, MINUTE, FULL_HOUR, QUARTER, WEEK, SEMESTER];\nexport const defaultfreq = 'A';\n","import * as R from 'ramda';\nimport {\n addDays,\n addMonths,\n addQuarters,\n addWeeks,\n closestTo,\n endOfISOWeek,\n endOfISOWeekYear,\n format,\n getDaysInMonth,\n getISOWeeksInYear,\n getMonth,\n getYear,\n isWithinInterval,\n parseISO,\n startOfISOWeek,\n startOfISOWeekYear,\n startOfYear,\n} from 'date-fns';\nimport numeral from 'numeral';\nimport {\n YEAR,\n SEMESTER,\n QUARTER,\n MONTH,\n WEEK,\n DAY,\n HOUR,\n FULL_HOUR,\n MINUTE,\n YEARS,\n SEMESTERS,\n QUARTERS,\n MONTHS,\n WEEKS,\n DAYS,\n FULL_HOURS,\n HOURS,\n MINUTES,\n layoutFrequencies,\n frequencies,\n defaultOutputValues,\n formatOrder,\n defaultfreq,\n} from './constants';\n\nconst isWeekInPreviousYear = date => {\n const startIsoWeek = startOfISOWeek(date);\n return R.pipe(\n R.times(n => getYear(addDays(startIsoWeek, n))),\n R.uniq,\n R.length,\n R.equals(1),\n )(4);\n};\nconst supportedFrequenciesKey = R.keys(layoutFrequencies);\nconst dec = R.ifElse(R.gte(0), R.identity, R.dec);\nconst addSemesters =\n (semester = 0) =>\n date =>\n addMonths(date, R.multiply(6)(dec(Number(semester))));\nconst getSemesterValue = R.ifElse(R.pipe(Number, R.inc, R.gte(6)), R.always(1), R.always(2));\nconst getFormat = value => numeral(value).format('[0]0');\nconst getHour = R.pipe(R.pick([HOUR, FULL_HOUR]), R.values, R.head);\nconst getRanges = (value = [0]) => R.range(R.head(value), R.inc(R.last(value)));\nconst setRange = range => prop =>\n R.pipe(getRanges, R.prepend(R.prop(prop)(defaultOutputValues)))(R.prop(prop)(range));\n// export const getDestructuringDate = date =>\n// R.pipe(\n// date => format(date, 'yyyy M d H m HH Q I [S]'),\n// R.replace(/S/, R.pipe(date => getMonth(date), getSemesterValue)(date)),\n// R.split(' '),\n// R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),\n// )(date);\nexport const getDestructuringDate = date => {\n if (!date || isNaN(new Date(date))) return [];\n const validDate = typeof date === 'string' ? parseISO(date) : date;\n return R.pipe(\n d => {\n const semester = getSemesterValue(getMonth(d));\n const formatted = format(d, 'yyyy M d H m HH Q I');\n return `${formatted} ${semester}`;\n },\n R.split(' '),\n R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),\n )(validDate);\n};\n\nconst updateLimit = (value, isSamePeriod, defaultValue) => {\n if (isSamePeriod) return value;\n return defaultValue;\n};\n\nexport const getRange = R.curry((boundaries, date) => {\n if (R.isNil(R.head(boundaries)) || R.isNil(R.last(boundaries))) {\n return {\n [YEARS]: [NaN],\n [HOURS]: [NaN],\n [FULL_HOURS]: [NaN],\n [MONTHS]: [NaN],\n [WEEKS]: [NaN],\n [SEMESTERS]: [NaN],\n [QUARTERS]: [NaN],\n [DAYS]: [NaN],\n [MINUTES]: [NaN],\n };\n }\n const destructuredDate = getDestructuringDate(date);\n const destructuredBoundaries = R.map(getDestructuringDate, boundaries);\n const [years, months, days, hours, minutes, , quarters, weeks, semesters] =\n R.transpose(destructuredBoundaries);\n\n if (R.isNil(date)) {\n return {\n [YEARS]: years,\n [HOURS]: [NaN],\n [FULL_HOURS]: [NaN],\n [MONTHS]: [NaN],\n [WEEKS]: [NaN],\n [SEMESTERS]: [NaN],\n [QUARTERS]: [NaN],\n [DAYS]: [NaN],\n [MINUTES]: [NaN],\n };\n }\n const listEqualsValueFromDate = R.pipe(\n R.transpose,\n R.reduce((acc, [type, date, start, end]) => {\n return { ...acc, [type]: [R.equals(date, start), R.equals(date, end)] };\n }, {}),\n )([frequencies, destructuredDate, ...destructuredBoundaries]);\n\n const equalsYears = R.prop('years')(listEqualsValueFromDate);\n const equalsMonths = R.prop('months')(listEqualsValueFromDate);\n const equalsDays = R.prop('days')(listEqualsValueFromDate);\n\n const hoursRange = R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.all(R.identity)([\n R.nth(index, equalsDays),\n R.nth(index, equalsMonths),\n R.nth(index, equalsYears),\n ]);\n return updateLimit(R.nth(index, hours), isSamePeriod, value);\n })([0, 23]);\n\n return {\n [YEARS]: years,\n [HOURS]: hoursRange,\n [FULL_HOURS]: hoursRange,\n [MONTHS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(months), R.nth(index, equalsYears), value),\n )([1, 12]),\n [WEEKS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(weeks), R.nth(index, equalsYears), value),\n )([1, getISOWeeksInYear(date)]),\n [SEMESTERS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(semesters), R.nth(index, equalsYears), value),\n )([1, 2]),\n [QUARTERS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(quarters), R.nth(index, equalsYears), value),\n )([1, 4]),\n [DAYS]: R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.and(R.nth(index, equalsMonths), R.nth(index, equalsYears));\n return updateLimit(R.nth(index)(days), isSamePeriod, value);\n })([1, getDaysInMonth(date)]),\n [MINUTES]: R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.all(R.identity)([\n R.nth(index, R.prop('hours')(listEqualsValueFromDate)),\n R.nth(index, equalsDays),\n R.nth(index, equalsMonths),\n R.nth(index, equalsYears),\n ]);\n return updateLimit(R.nth(index)(minutes), isSamePeriod, value);\n })([0, 59]),\n };\n});\n\nconst getAjustedDate = frequency =>\n R.when(\n R.always(R.or(R.equals('W', frequency), R.equals('B', frequency))),\n R.ifElse(isWeekInPreviousYear, startOfISOWeek, endOfISOWeek),\n );\n\nexport const isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));\nexport const getDefaultFrequency = ({ defaultFrequency, frequencies }) => {\n const isNotIncludes = R.complement(R.and)(\n R.includes(defaultFrequency)(frequencies),\n R.includes(defaultFrequency)(supportedFrequenciesKey),\n );\n return R.or(R.either(R.isEmpty, R.isNil)(defaultFrequency), isNotIncludes)\n ? R.head(frequencies)\n : defaultFrequency;\n};\n\nexport const getFrequencyOptions = (frequencyoptions, frequencyLabels) => {\n const availableFrequencies = R.or(R.isEmpty(frequencyoptions), R.isNil(frequencyoptions))\n ? [defaultfreq]\n : R.filter(freq => R.includes(freq, supportedFrequenciesKey))(frequencyoptions);\n const options = R.map(option => ({ value: option, label: R.prop(option, frequencyLabels) }))(\n availableFrequencies,\n );\n if (R.isEmpty(options)) return [{ value: 'A', label: R.propOr('Annual', 'A', frequencyLabels) }];\n return options;\n};\n\nexport const getLayout = (type, range) => {\n const layoutPeriods = R.propOr([], type)(layoutFrequencies);\n const hasYear = R.complement(R.isEmpty)(getRanges(range.years));\n return R.map(\n R.reduce((acc, period) => {\n if (hasYear) return R.append(R.evolve({ values: setRange(range) }, period), acc);\n return R.append(\n R.evolve(\n { values: R.pipe(R.flip(R.prop)(defaultOutputValues), R.flip(R.append)([])) },\n period,\n ),\n acc,\n );\n }, []),\n )(layoutPeriods);\n};\n\nexport const getPeriodValue = R.pipe(R.zip(formatOrder), R.fromPairs);\n\nexport const getDate = (type, dateValue, value, isEnd) => {\n if (R.isNil(value)) return undefined;\n const dateValueUpdated = R.pipe(\n R.ifElse(R.pipe(getHour, R.isNil), R.identity, R.set(R.lensProp('hour'), getHour(value))),\n R.mergeRight(dateValue),\n R.over(R.lensProp('month'), R.defaultTo(isEnd ? 12 : 1)),\n R.over(R.lensProp('day'), R.defaultTo(isEnd ? 31 : 1)),\n R.over(R.lensProp('hour'), R.defaultTo(isEnd ? 23 : 0)),\n R.over(R.lensProp('minute'), R.defaultTo(isEnd ? 59 : 0)),\n )(value);\n const { year, month, day, hour, minute } = dateValueUpdated;\n const date = new Date(year, R.dec(month), day, hour, minute);\n if (R.equals(type, 'Q')) {\n if (R.isEmpty(dateValue) && isEnd) {\n return R.pipe(startOfYear, R.flip(addQuarters)(3))(date);\n }\n return R.pipe(startOfYear, date =>\n addQuarters(date, dec(R.propOr(0, QUARTER)(dateValueUpdated))),\n )(date);\n }\n if (R.equals(type, 'S')) {\n if (R.isEmpty(dateValue) && isEnd) return R.pipe(startOfYear, addSemesters(2))(date);\n return R.pipe(startOfYear, addSemesters(R.prop(SEMESTER)(dateValueUpdated)))(date);\n }\n if (R.or(R.equals(type, 'W'), R.equals(type, 'B'))) {\n const weekDate = new Date(year, 6, 1, 0, 0, 0, 0);\n if (R.isEmpty(dateValue)) {\n return R.pipe(\n R.ifElse(R.always(isEnd), endOfISOWeekYear, startOfISOWeekYear),\n getAjustedDate(type),\n )(weekDate);\n }\n const weeksInYear = R.dec(getISOWeeksInYear(weekDate));\n const nbWeeks = R.pipe(\n R.propOr(0, WEEK),\n R.dec,\n R.ifElse(R.lt(weeksInYear), R.always(weeksInYear), R.identity),\n )(dateValueUpdated);\n return R.pipe(\n startOfISOWeekYear,\n date => addWeeks(date, nbWeeks),\n R.of,\n R.map(getAjustedDate(type)),\n R.head,\n )(weekDate);\n }\n return date;\n};\n\nexport const getDateInTheRange = boundaries => date => {\n if (R.isNil(date)) return date;\n const [start, end] = boundaries;\n return isWithinInterval(date, { start, end }) ? date : closestTo(date, boundaries);\n};\n\nexport const numeralFormat = {\n [YEAR]: R.identity,\n [SEMESTER]: R.identity,\n [QUARTER]: R.identity,\n [MONTH]: getFormat,\n [WEEK]: getFormat,\n [DAY]: getFormat,\n [FULL_HOUR]: R.converge(R.concat, [getFormat, R.always(':00')]),\n [HOUR]: getFormat,\n [MINUTE]: getFormat,\n};\n","import makeStyles from '@mui/styles/makeStyles';\n\nexport default makeStyles(theme => ({\n headerContainer: {\n marginBottom: theme.spacing(0.5),\n },\n sideLabel: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n paddingRight: theme.spacing(0.5),\n paddingBottom: theme.spacing(0.5),\n },\n headerLabel: {\n display: 'flex',\n justifyContent: 'center',\n },\n selectContainer: {\n marginTop: theme.spacing(1),\n },\n}));\n","import React from 'react';\nimport * as R from 'ramda';\nimport { compareAsc, compareDesc, isSameYear } from 'date-fns';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { numeralFormat } from './lib';\nimport { Button } from '../Button/Button';\nimport { Select } from '../Select/Select';\nimport useStyles from './styles';\nimport { defaultfreq } from './constants';\nimport {\n getRange,\n getFrequencyOptions,\n getDefaultFrequency,\n getLayout,\n getPeriodValue,\n getDate,\n getDateInTheRange,\n getDestructuringDate,\n isValidNumber,\n} from './lib';\nimport { withBlank } from '../utils';\n\nconst CustomPeriodPicker = ({\n defaultFrequency = defaultfreq,\n availableFrequencies = [defaultfreq],\n boundaries: _boundaries,\n availableBoundaries: _availableBoundaries,\n changePeriod,\n changeFrequency,\n period: _period,\n labels,\n periodDisabled,\n frequencyDisabled,\n disabled,\n}) => {\n const classes = useStyles();\n const frequencies = getFrequencyOptions(availableFrequencies, labels);\n if (R.isEmpty(frequencies)) return null;\n const frequency = getDefaultFrequency({\n defaultFrequency,\n frequencies: R.pluck('value')(frequencies),\n });\n const period = R.defaultTo([], _period);\n const boundaries = R.defaultTo([], _boundaries);\n const availableBoundaries = R.defaultTo([], _availableBoundaries);\n const isPeriodDisabled = R.or(R.any(R.isEmpty)([period, boundaries]), periodDisabled);\n const startDate = R.head(period);\n const endDate = R.last(period);\n\n const startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];\n const endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];\n const ranges = [\n getRange(startPeriodBoundaries, startDate),\n getRange(endPeriodBoundaries, endDate),\n ];\n\n const showFrequency = R.and(R.gt(R.length(frequencies), 1), R.not(frequencyDisabled));\n const destructuringDates = R.map(getDestructuringDate)(period);\n\n const onClickFrequency = (e, value) => {\n if (R.is(Function, changeFrequency)) return changeFrequency(value);\n };\n const _getIsDisabled = getter => (value, id) => {\n const fn = R.prop(getter)({ start: R.head, end: R.last });\n if (!isValidNumber(Number(value)) || R.length(availableBoundaries) !== 2) {\n return false;\n }\n const dateValue = getPeriodValue(fn(destructuringDates));\n\n let date = getDate(frequency, dateValue, { [id]: Number(value) }, getter === 'end');\n const [availableStart, availableEnd] = availableBoundaries;\n if (id === 'year') {\n if (isSameYear(date, availableStart)) {\n date = availableStart;\n } else if (isSameYear(date, availableEnd)) {\n date = availableEnd;\n }\n }\n return compareAsc(date, availableStart) === -1 || compareDesc(date, availableEnd) === -1;\n };\n const onChangePeriod = (getter, id) => value => {\n const fn = R.prop(getter)({ start: R.head, end: R.last });\n const lensIndex = R.prop(getter)({ start: R.lensIndex(0), end: R.lensIndex(1) });\n const dateValue = getPeriodValue(fn(destructuringDates));\n const selectedValue = R.ifElse(\n isValidNumber,\n R.assoc(id, R.__, {}),\n R.always(undefined),\n )(Number(value));\n const newDate = getDate(frequency, dateValue, selectedValue, getter === 'end');\n if (R.is(Function, changePeriod)) {\n return changePeriod(\n R.pipe(R.set(lensIndex, newDate), ([startDate, endDate]) => [\n getDateInTheRange(startPeriodBoundaries)(startDate),\n getDateInTheRange(endPeriodBoundaries)(endDate),\n ])(period),\n );\n }\n };\n return (\n <Grid data-testid=\"period-picker-test-id\" container direction=\"row\">\n {showFrequency && (\n <Grid\n item\n xs={12}\n className={classes.headerContainer}\n data-testid=\"period-picker-frequency-test-id\"\n >\n {R.map(freq => (\n <Button\n sx={{ margin: 2 }}\n aria-label={freq.label}\n key={freq.value}\n onClick={e => onClickFrequency(e, R.prop('value', freq))}\n selected={frequency}\n >\n {freq.label}\n </Button>\n ))(frequencies)}\n </Grid>\n )}\n {R.not(isPeriodDisabled) && (\n <Grid container item xs={12} justifyContent={'space-between'}>\n {R.map(({ getter, layout, label, value, testId, getIsDisabled }) => (\n <Grid key={getter} item xs={5} data-testid={testId} justifyContent={'space-between'}>\n <Grid container direction=\"row\">\n <Grid item xs={12} className={classes.sideLabel}>\n <Typography\n variant=\"body2\"\n tabIndex={0} // eslint-disable-line jsx-a11y/no-noninteractive-tabindex\n aria-label={label}\n >\n {label}\n </Typography>\n </Grid>\n </Grid>\n <Grid container direction=\"row\">\n <Grid item xs={12}>\n <Grid container className={classes.headerContainer} spacing={1}>\n {R.map(row =>\n R.map(({ id, values }) => {\n const selectedValue = R.isNil(R.prop(id)(value))\n ? R.head(values)\n : R.prop(id)(value);\n return (\n <Grid\n key={id}\n item\n xs={12 / R.length(row)}\n className={classes.selectContainer}\n >\n <Select\n onChange={onChangePeriod(getter, id)}\n label={R.prop(id)(labels)}\n id={`${id}-${label}`}\n dataTestId={`${id}-${label}-test-id`}\n value={selectedValue}\n disabled={disabled || false}\n items={R.map(option => ({\n id,\n value: option,\n disabled: getIsDisabled(option, id),\n label: R.ifElse(\n R.is(String),\n R.identity,\n R.prop(id)(numeralFormat),\n )(option),\n }))(values)}\n />\n </Grid>\n );\n })(row),\n )(layout)}\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n ))([\n {\n getter: 'start',\n testId: 'period-picker-start-period-test-id',\n layout: getLayout(frequency, R.head(ranges)),\n label: R.prop('start')(labels),\n value: getPeriodValue(R.head(destructuringDates)),\n getIsDisabled: _getIsDisabled('start'),\n },\n {\n getter: 'end',\n testId: 'period-picker-end-period-test-id',\n layout: getLayout(frequency, R.last(ranges), /*R.last(availableRanges)*/ []),\n label: R.prop('end')(labels),\n value: getPeriodValue(R.last(destructuringDates)),\n getIsDisabled: _getIsDisabled('end'),\n },\n ])}\n </Grid>\n )}\n </Grid>\n );\n};\n\nexport const PeriodPicker = withBlank(({ periodDisabled, frequencyDisabled, isBlank }) => ({\n isBlank: R.or(isBlank, R.and(periodDisabled, frequencyDisabled)),\n}))(CustomPeriodPicker);\n"],"names":["startDate","endDate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PeriodPicker.js","sources":["../../src/PeriodPicker/constants.js","../../src/PeriodPicker/lib.js","../../src/PeriodPicker/styles.js","../../src/PeriodPicker/PeriodPicker.jsx"],"sourcesContent":["export const YEARS = 'years';\nexport const SEMESTERS = 'semesters';\nexport const QUARTERS = 'quarters';\nexport const MONTHS = 'months';\nexport const WEEKS = 'weeks';\nexport const DAYS = 'days';\nexport const FULL_HOURS = 'full_hours';\nexport const HOURS = 'hours';\nexport const MINUTES = 'minutes';\nexport const frequencies = [\n YEARS,\n MONTHS,\n DAYS,\n HOURS,\n MINUTES,\n FULL_HOURS,\n QUARTERS,\n WEEKS,\n SEMESTERS,\n];\n\nexport const YEAR = 'year';\nexport const SEMESTER = 'semester';\nexport const QUARTER = 'quarter';\nexport const MONTH = 'month';\nexport const WEEK = 'week';\nexport const DAY = 'day';\nexport const FULL_HOUR = 'full_hour';\nexport const HOUR = 'hour';\nexport const MINUTE = 'minute';\n\nexport const layoutFrequencies = {\n S: [\n [\n { values: YEARS, id: YEAR },\n { values: SEMESTERS, id: SEMESTER },\n ],\n ],\n A: [[{ values: YEARS, id: YEAR }]],\n Q: [\n [\n { values: YEARS, id: YEAR },\n { values: QUARTERS, id: QUARTER },\n ],\n ],\n M: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n ],\n ],\n W: [\n [\n { values: YEARS, id: YEAR },\n { values: WEEKS, id: WEEK },\n ],\n ],\n B: [\n [\n { values: YEARS, id: YEAR },\n { values: WEEKS, id: WEEK },\n ],\n ],\n D: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n ],\n H: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n [{ values: FULL_HOURS, id: FULL_HOUR }],\n ],\n N: [\n [\n { values: YEARS, id: YEAR },\n { values: MONTHS, id: MONTH },\n { values: DAYS, id: DAY },\n ],\n [\n { values: HOURS, id: HOUR },\n { values: MINUTES, id: MINUTE },\n ],\n ],\n};\n\nexport const defaultOutputValues = {\n [YEARS]: '----',\n [SEMESTERS]: '-',\n [QUARTERS]: '-',\n [MONTHS]: '--',\n [WEEKS]: '--',\n [DAYS]: '--',\n [FULL_HOURS]: '--:00',\n [HOURS]: '--',\n [MINUTES]: '--',\n};\n\nexport const formatOrder = [YEAR, MONTH, DAY, HOUR, MINUTE, FULL_HOUR, QUARTER, WEEK, SEMESTER];\nexport const defaultfreq = 'A';\n","import * as R from 'ramda';\nimport {\n addDays,\n addMonths,\n addQuarters,\n addWeeks,\n closestTo,\n endOfISOWeek,\n endOfISOWeekYear,\n format,\n getDaysInMonth,\n getISOWeeksInYear,\n getMonth,\n getYear,\n isWithinInterval,\n parseISO,\n startOfISOWeek,\n startOfISOWeekYear,\n startOfYear,\n} from 'date-fns';\nimport numeral from 'numeral';\nimport {\n YEAR,\n SEMESTER,\n QUARTER,\n MONTH,\n WEEK,\n DAY,\n HOUR,\n FULL_HOUR,\n MINUTE,\n YEARS,\n SEMESTERS,\n QUARTERS,\n MONTHS,\n WEEKS,\n DAYS,\n FULL_HOURS,\n HOURS,\n MINUTES,\n layoutFrequencies,\n frequencies,\n defaultOutputValues,\n formatOrder,\n defaultfreq,\n} from './constants';\n\nconst isWeekInPreviousYear = date => {\n const startIsoWeek = startOfISOWeek(date);\n return R.pipe(\n R.times(n => getYear(addDays(startIsoWeek, n))),\n R.uniq,\n R.length,\n R.equals(1),\n )(4);\n};\nconst supportedFrequenciesKey = R.keys(layoutFrequencies);\nconst dec = R.ifElse(R.gte(0), R.identity, R.dec);\nconst addSemesters =\n (semester = 0) =>\n date =>\n addMonths(date, R.multiply(6)(dec(Number(semester))));\nconst getSemesterValue = R.ifElse(R.pipe(Number, R.inc, R.gte(6)), R.always(1), R.always(2));\nconst getFormat = value => numeral(value).format('[0]0');\nconst getHour = R.pipe(R.pick([HOUR, FULL_HOUR]), R.values, R.head);\nconst getRanges = (value = [0]) => R.range(R.head(value), R.inc(R.last(value)));\nconst setRange = range => prop =>\n R.pipe(getRanges, R.prepend(R.prop(prop)(defaultOutputValues)))(R.prop(prop)(range));\n// export const getDestructuringDate = date =>\n// R.pipe(\n// date => format(date, 'yyyy M d H m HH Q I [S]'),\n// R.replace(/S/, R.pipe(date => getMonth(date), getSemesterValue)(date)),\n// R.split(' '),\n// R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),\n// )(date);\nexport const getDestructuringDate = date => {\n if (!date || isNaN(new Date(date))) return [];\n const validDate = typeof date === 'string' ? parseISO(date) : date;\n return R.pipe(\n d => {\n const semester = getSemesterValue(getMonth(d));\n const formatted = format(d, 'yyyy M d H m HH Q I');\n return `${formatted} ${semester}`;\n },\n R.split(' '),\n R.ifElse(v => R.equals(R.length(formatOrder), R.length(v)), R.map(Number), R.empty),\n )(validDate);\n};\n\nconst updateLimit = (value, isSamePeriod, defaultValue) => {\n if (isSamePeriod) return value;\n return defaultValue;\n};\n\nexport const getRange = R.curry((boundaries, date) => {\n if (R.isNil(R.head(boundaries)) || R.isNil(R.last(boundaries))) {\n return {\n [YEARS]: [NaN],\n [HOURS]: [NaN],\n [FULL_HOURS]: [NaN],\n [MONTHS]: [NaN],\n [WEEKS]: [NaN],\n [SEMESTERS]: [NaN],\n [QUARTERS]: [NaN],\n [DAYS]: [NaN],\n [MINUTES]: [NaN],\n };\n }\n const destructuredDate = getDestructuringDate(date);\n const destructuredBoundaries = R.map(getDestructuringDate, boundaries);\n const [years, months, days, hours, minutes, , quarters, weeks, semesters] =\n R.transpose(destructuredBoundaries);\n\n if (R.isNil(date)) {\n return {\n [YEARS]: years,\n [HOURS]: [NaN],\n [FULL_HOURS]: [NaN],\n [MONTHS]: [NaN],\n [WEEKS]: [NaN],\n [SEMESTERS]: [NaN],\n [QUARTERS]: [NaN],\n [DAYS]: [NaN],\n [MINUTES]: [NaN],\n };\n }\n const listEqualsValueFromDate = R.pipe(\n R.transpose,\n R.reduce((acc, [type, date, start, end]) => {\n return { ...acc, [type]: [R.equals(date, start), R.equals(date, end)] };\n }, {}),\n )([frequencies, destructuredDate, ...destructuredBoundaries]);\n\n const equalsYears = R.prop('years')(listEqualsValueFromDate);\n const equalsMonths = R.prop('months')(listEqualsValueFromDate);\n const equalsDays = R.prop('days')(listEqualsValueFromDate);\n\n const hoursRange = R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.all(R.identity)([\n R.nth(index, equalsDays),\n R.nth(index, equalsMonths),\n R.nth(index, equalsYears),\n ]);\n return updateLimit(R.nth(index, hours), isSamePeriod, value);\n })([0, 23]);\n\n return {\n [YEARS]: years,\n [HOURS]: hoursRange,\n [FULL_HOURS]: hoursRange,\n [MONTHS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(months), R.nth(index, equalsYears), value),\n )([1, 12]),\n [WEEKS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(weeks), R.nth(index, equalsYears), value),\n )([1, getISOWeeksInYear(date)]),\n [SEMESTERS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(semesters), R.nth(index, equalsYears), value),\n )([1, 2]),\n [QUARTERS]: R.addIndex(R.map)((value, index) =>\n updateLimit(R.nth(index)(quarters), R.nth(index, equalsYears), value),\n )([1, 4]),\n [DAYS]: R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.and(R.nth(index, equalsMonths), R.nth(index, equalsYears));\n return updateLimit(R.nth(index)(days), isSamePeriod, value);\n })([1, getDaysInMonth(date)]),\n [MINUTES]: R.addIndex(R.map)((value, index) => {\n const isSamePeriod = R.all(R.identity)([\n R.nth(index, R.prop('hours')(listEqualsValueFromDate)),\n R.nth(index, equalsDays),\n R.nth(index, equalsMonths),\n R.nth(index, equalsYears),\n ]);\n return updateLimit(R.nth(index)(minutes), isSamePeriod, value);\n })([0, 59]),\n };\n});\n\nconst getAjustedDate = frequency =>\n R.when(\n R.always(R.or(R.equals('W', frequency), R.equals('B', frequency))),\n R.ifElse(isWeekInPreviousYear, startOfISOWeek, endOfISOWeek),\n );\n\nexport const isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));\nexport const getDefaultFrequency = ({ defaultFrequency, frequencies }) => {\n const isNotIncludes = R.complement(R.and)(\n R.includes(defaultFrequency)(frequencies),\n R.includes(defaultFrequency)(supportedFrequenciesKey),\n );\n return R.or(R.either(R.isEmpty, R.isNil)(defaultFrequency), isNotIncludes)\n ? R.head(frequencies)\n : defaultFrequency;\n};\n\nexport const getFrequencyOptions = (frequencyoptions, frequencyLabels) => {\n const availableFrequencies = R.or(R.isEmpty(frequencyoptions), R.isNil(frequencyoptions))\n ? [defaultfreq]\n : R.filter(freq => R.includes(freq, supportedFrequenciesKey))(frequencyoptions);\n const options = R.map(option => ({ value: option, label: R.prop(option, frequencyLabels) }))(\n availableFrequencies,\n );\n if (R.isEmpty(options)) return [{ value: 'A', label: R.propOr('Annual', 'A', frequencyLabels) }];\n return options;\n};\n\nexport const getLayout = (type, range) => {\n const layoutPeriods = R.propOr([], type)(layoutFrequencies);\n const hasYear = R.complement(R.isEmpty)(getRanges(range.years));\n return R.map(\n R.reduce((acc, period) => {\n if (hasYear) return R.append(R.evolve({ values: setRange(range) }, period), acc);\n return R.append(\n R.evolve(\n { values: R.pipe(R.flip(R.prop)(defaultOutputValues), R.flip(R.append)([])) },\n period,\n ),\n acc,\n );\n }, []),\n )(layoutPeriods);\n};\n\nexport const getPeriodValue = R.pipe(R.zip(formatOrder), R.fromPairs);\n\nexport const getDate = (type, dateValue, value, isEnd) => {\n if (R.isNil(value)) return undefined;\n const dateValueUpdated = R.pipe(\n R.ifElse(R.pipe(getHour, R.isNil), R.identity, R.set(R.lensProp('hour'), getHour(value))),\n R.mergeRight(dateValue),\n R.over(R.lensProp('month'), R.defaultTo(isEnd ? 12 : 1)),\n R.over(R.lensProp('day'), R.defaultTo(isEnd ? 31 : 1)),\n R.over(R.lensProp('hour'), R.defaultTo(isEnd ? 23 : 0)),\n R.over(R.lensProp('minute'), R.defaultTo(isEnd ? 59 : 0)),\n )(value);\n const { year, month, day, hour, minute } = dateValueUpdated;\n const date = new Date(year, R.dec(month), day, hour, minute);\n if (R.equals(type, 'Q')) {\n if (R.isEmpty(dateValue) && isEnd) {\n return R.pipe(startOfYear, R.flip(addQuarters)(3))(date);\n }\n return R.pipe(startOfYear, date =>\n addQuarters(date, dec(R.propOr(0, QUARTER)(dateValueUpdated))),\n )(date);\n }\n if (R.equals(type, 'S')) {\n if (R.isEmpty(dateValue) && isEnd) return R.pipe(startOfYear, addSemesters(2))(date);\n return R.pipe(startOfYear, addSemesters(R.prop(SEMESTER)(dateValueUpdated)))(date);\n }\n if (R.or(R.equals(type, 'W'), R.equals(type, 'B'))) {\n const weekDate = new Date(year, 6, 1, 0, 0, 0, 0);\n if (R.isEmpty(dateValue)) {\n return R.pipe(\n R.ifElse(R.always(isEnd), endOfISOWeekYear, startOfISOWeekYear),\n getAjustedDate(type),\n )(weekDate);\n }\n const weeksInYear = R.dec(getISOWeeksInYear(weekDate));\n const nbWeeks = R.pipe(\n R.propOr(0, WEEK),\n R.dec,\n R.ifElse(R.lt(weeksInYear), R.always(weeksInYear), R.identity),\n )(dateValueUpdated);\n return R.pipe(\n startOfISOWeekYear,\n date => addWeeks(date, nbWeeks),\n R.of,\n R.map(getAjustedDate(type)),\n R.head,\n )(weekDate);\n }\n return date;\n};\n\nexport const getDateInTheRange = boundaries => date => {\n if (R.isNil(date)) return date;\n const [start, end] = boundaries;\n return isWithinInterval(date, { start, end }) ? date : closestTo(date, boundaries);\n};\n\nexport const numeralFormat = {\n [YEAR]: R.identity,\n [SEMESTER]: R.identity,\n [QUARTER]: R.identity,\n [MONTH]: getFormat,\n [WEEK]: getFormat,\n [DAY]: getFormat,\n [FULL_HOUR]: R.converge(R.concat, [getFormat, R.always(':00')]),\n [HOUR]: getFormat,\n [MINUTE]: getFormat,\n};\n","import makeStyles from '@mui/styles/makeStyles';\n\nexport default makeStyles(theme => ({\n headerContainer: {\n marginBottom: theme.spacing(0.5),\n },\n sideLabel: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n paddingRight: theme.spacing(0.5),\n paddingBottom: theme.spacing(0.5),\n },\n headerLabel: {\n display: 'flex',\n justifyContent: 'center',\n },\n selectContainer: {\n marginTop: theme.spacing(1),\n },\n}));\n","import React from 'react';\nimport * as R from 'ramda';\nimport { compareAsc, compareDesc, isSameYear } from 'date-fns';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { numeralFormat } from './lib';\nimport { Button } from '../Button/Button';\nimport { Select } from '../Select/Select';\nimport useStyles from './styles';\nimport { defaultfreq } from './constants';\nimport {\n getRange,\n getFrequencyOptions,\n getDefaultFrequency,\n getLayout,\n getPeriodValue,\n getDate,\n getDateInTheRange,\n getDestructuringDate,\n isValidNumber,\n} from './lib';\nimport { withBlank } from '../utils';\n\nconst CustomPeriodPicker = ({\n defaultFrequency = defaultfreq,\n availableFrequencies = [defaultfreq],\n boundaries: _boundaries,\n availableBoundaries: _availableBoundaries,\n changePeriod,\n changeFrequency,\n period: _period,\n labels,\n periodDisabled,\n frequencyDisabled,\n disabled,\n}) => {\n const classes = useStyles();\n const frequencies = getFrequencyOptions(availableFrequencies, labels);\n if (R.isEmpty(frequencies)) return null;\n const frequency = getDefaultFrequency({\n defaultFrequency,\n frequencies: R.pluck('value')(frequencies),\n });\n const period = R.defaultTo([], _period);\n const boundaries = R.defaultTo([], _boundaries);\n const availableBoundaries = R.defaultTo([], _availableBoundaries);\n const isPeriodDisabled = R.or(R.any(R.isEmpty)([period, boundaries]), periodDisabled);\n const startDate = R.head(period);\n const endDate = R.last(period);\n\n const startPeriodBoundaries = [R.head(boundaries), R.defaultTo(R.last(boundaries), endDate)];\n const endPeriodBoundaries = [R.defaultTo(R.head(boundaries), startDate), R.last(boundaries)];\n const ranges = [\n getRange(startPeriodBoundaries, startDate),\n getRange(endPeriodBoundaries, endDate),\n ];\n\n const showFrequency = R.and(R.gt(R.length(frequencies), 1), R.not(frequencyDisabled));\n const destructuringDates = R.map(getDestructuringDate)(period);\n\n const onClickFrequency = (e, value) => {\n if (R.is(Function, changeFrequency)) return changeFrequency(value);\n };\n const _getIsDisabled = getter => (value, id) => {\n const fn = R.prop(getter)({ start: R.head, end: R.last });\n if (!isValidNumber(Number(value)) || R.length(availableBoundaries) !== 2) {\n return false;\n }\n const dateValue = getPeriodValue(fn(destructuringDates));\n\n let date = getDate(frequency, dateValue, { [id]: Number(value) }, getter === 'end');\n const [availableStart, availableEnd] = availableBoundaries;\n if (id === 'year') {\n if (isSameYear(date, availableStart)) {\n date = availableStart;\n } else if (isSameYear(date, availableEnd)) {\n date = availableEnd;\n }\n }\n return compareAsc(date, availableStart) === -1 || compareDesc(date, availableEnd) === -1;\n };\n const onChangePeriod = (getter, id) => value => {\n const fn = R.prop(getter)({ start: R.head, end: R.last });\n const lensIndex = R.prop(getter)({ start: R.lensIndex(0), end: R.lensIndex(1) });\n const dateValue = getPeriodValue(fn(destructuringDates));\n const selectedValue = R.ifElse(\n isValidNumber,\n R.assoc(id, R.__, {}),\n R.always(undefined),\n )(Number(value));\n const newDate = getDate(frequency, dateValue, selectedValue, getter === 'end');\n if (R.is(Function, changePeriod)) {\n return changePeriod(\n R.pipe(R.set(lensIndex, newDate), ([startDate, endDate]) => [\n getDateInTheRange(startPeriodBoundaries)(startDate),\n getDateInTheRange(endPeriodBoundaries)(endDate),\n ])(period),\n );\n }\n };\n return (\n <Grid data-testid=\"period-picker-test-id\" container direction=\"row\">\n {showFrequency && (\n <Grid\n item\n xs={12}\n className={classes.headerContainer}\n data-testid=\"period-picker-frequency-test-id\"\n >\n {R.map(freq => (\n <Button\n sx={{ margin: 2 }}\n aria-label={freq.label}\n key={freq.value}\n onClick={e => onClickFrequency(e, R.prop('value', freq))}\n selected={frequency}\n >\n {freq.label}\n </Button>\n ))(frequencies)}\n </Grid>\n )}\n {R.not(isPeriodDisabled) && (\n <Grid container item xs={12} justifyContent={'space-between'}>\n {R.map(({ getter, layout, label, value, testId, getIsDisabled }) => (\n <Grid key={getter} item xs={5} data-testid={testId} justifyContent={'space-between'}>\n <Grid container direction=\"row\">\n <Grid item xs={12} className={classes.sideLabel}>\n <Typography variant=\"body2\" tabIndex={0} aria-label={label}>\n {label}\n </Typography>\n </Grid>\n </Grid>\n <Grid container direction=\"row\">\n <Grid item xs={12}>\n <Grid container className={classes.headerContainer} spacing={1}>\n {R.map(row =>\n R.map(({ id, values }) => {\n const selectedValue = R.isNil(R.prop(id)(value))\n ? R.head(values)\n : R.prop(id)(value);\n return (\n <Grid\n key={id}\n item\n xs={12 / R.length(row)}\n className={classes.selectContainer}\n >\n <Select\n onChange={onChangePeriod(getter, id)}\n label={R.prop(id)(labels)}\n id={`${id}-${label}`}\n dataTestId={`${id}-${label}-test-id`}\n value={selectedValue}\n disabled={disabled || false}\n items={R.map(option => ({\n id,\n value: option,\n disabled: getIsDisabled(option, id),\n label: R.ifElse(\n R.is(String),\n R.identity,\n R.prop(id)(numeralFormat),\n )(option),\n }))(values)}\n />\n </Grid>\n );\n })(row),\n )(layout)}\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n ))([\n {\n getter: 'start',\n testId: 'period-picker-start-period-test-id',\n layout: getLayout(frequency, R.head(ranges)),\n label: R.prop('start')(labels),\n value: getPeriodValue(R.head(destructuringDates)),\n getIsDisabled: _getIsDisabled('start'),\n },\n {\n getter: 'end',\n testId: 'period-picker-end-period-test-id',\n layout: getLayout(frequency, R.last(ranges), /*R.last(availableRanges)*/ []),\n label: R.prop('end')(labels),\n value: getPeriodValue(R.last(destructuringDates)),\n getIsDisabled: _getIsDisabled('end'),\n },\n ])}\n </Grid>\n )}\n </Grid>\n );\n};\n\nexport const PeriodPicker = withBlank(({ periodDisabled, frequencyDisabled, isBlank }) => ({\n isBlank: R.or(isBlank, R.and(periodDisabled, frequencyDisabled)),\n}))(CustomPeriodPicker);\n"],"names":["startDate","endDate"],"mappings":";;;;;;;;;;;;AAAO,MAAM,KAAK,GAAG,OAAO;AACrB,MAAM,SAAS,GAAG,WAAW;AAC7B,MAAM,QAAQ,GAAG,UAAU;AAC3B,MAAM,MAAM,GAAG,QAAQ;AACvB,MAAM,KAAK,GAAG,OAAO;AACrB,MAAM,IAAI,GAAG,MAAM;AACnB,MAAM,UAAU,GAAG,YAAY;AAC/B,MAAM,KAAK,GAAG,OAAO;AACrB,MAAM,OAAO,GAAG,SAAS;AACzB,MAAM,WAAW,GAAG;AAC3B,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,UAAU;AACZ,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,SAAS;AACX,CAAC;;AAEM,MAAM,IAAI,GAAG,MAAM;AACnB,MAAM,QAAQ,GAAG,UAAU;AAC3B,MAAM,OAAO,GAAG,SAAS;AACzB,MAAM,KAAK,GAAG,OAAO;AACrB,MAAM,IAAI,GAAG,MAAM;AACnB,MAAM,GAAG,GAAG,KAAK;AACjB,MAAM,SAAS,GAAG,WAAW;AAC7B,MAAM,IAAI,GAAG,MAAM;AACnB,MAAM,MAAM,GAAG,QAAQ;;AAEvB,MAAM,iBAAiB,GAAG;AACjC,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE;AACzC,KAAK;AACL,GAAG;AACH,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AACpC,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE;AACvC,KAAK;AACL,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AACnC,KAAK;AACL,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,KAAK;AACL,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,KAAK;AACL,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;AAC/B,KAAK;AACL,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;AAC/B,KAAK;AACL,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;AAC3C,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;AAC/B,KAAK;AACL,IAAI;AACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;AACjC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE;AACrC,KAAK;AACL,GAAG;AACH,CAAC;;AAEM,MAAM,mBAAmB,GAAG;AACnC,EAAE,CAAC,KAAK,GAAG,MAAM;AACjB,EAAE,CAAC,SAAS,GAAG,GAAG;AAClB,EAAE,CAAC,QAAQ,GAAG,GAAG;AACjB,EAAE,CAAC,MAAM,GAAG,IAAI;AAChB,EAAE,CAAC,KAAK,GAAG,IAAI;AACf,EAAE,CAAC,IAAI,GAAG,IAAI;AACd,EAAE,CAAC,UAAU,GAAG,OAAO;AACvB,EAAE,CAAC,KAAK,GAAG,IAAI;AACf,EAAE,CAAC,OAAO,GAAG,IAAI;AACjB,CAAC;;AAEM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;AACxF,MAAM,WAAW,GAAG,GAAG;;ACzD9B,MAAM,oBAAoB,GAAG,IAAI,IAAI;AACrC,EAAE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;AAC3C,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,IAAI,CAAC,CAAC,IAAI;AACV,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;AACD,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACzD,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;AACjD,MAAM,YAAY;AAClB,EAAE,CAAC,QAAQ,GAAG,CAAC;AACf,EAAE,IAAI;AACN,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5F,MAAM,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACxD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;AACnE,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI;AAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,IAAI,IAAI;AAC5C,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE;AAC/C,EAAE,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;AACpE,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,IAAI;AACT,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,qBAAqB,CAAC;AACxD,MAAM,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACvC,IAAI,CAAC;AACL,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACvF,GAAG,CAAC,SAAS,CAAC;AACd,CAAC;;AAED,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,KAAK;AAC3D,EAAE,IAAI,YAAY,EAAE,OAAO,KAAK;AAChC,EAAE,OAAO,YAAY;AACrB,CAAC;;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK;AACtD,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;AAClE,IAAI,OAAO;AACX,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;AACpB,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;AACpB,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC;AACzB,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;AACrB,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;AACpB,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC;AACxB,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC;AACvB,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;AACnB,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC;AACtB,KAAK;AACL,EAAE;AACF,EAAE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC;AACrD,EAAE,MAAM,sBAAsB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC;AACxE,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;AAC3E,IAAI,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC;;AAEvC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO;AACX,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;AACpB,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC;AACzB,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;AACrB,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;AACpB,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC;AACxB,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC;AACvB,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;AACnB,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC;AACtB,KAAK;AACL,EAAE;AACF,EAAE,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI;AACxC,IAAI,CAAC,CAAC,SAAS;AACf,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK;AAChD,MAAM,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE;AAC7E,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,GAAG,CAAC,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,CAAC;;AAE/D,EAAE,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC;AAC9D,EAAE,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC;AAChE,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC;;AAE5D,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AACzD,IAAI,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3C,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;AAC9B,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC;AAChC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC;AAC/B,KAAK,CAAC;AACN,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC;AAChE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;AAEb,EAAE,OAAO;AACT,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,IAAI,CAAC,KAAK,GAAG,UAAU;AACvB,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK;AAC7C,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC;AACzE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK;AAC5C,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC;AACxE,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK;AAChD,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC;AAC5E,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACb,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK;AAC/C,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC;AAC3E,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAChD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACvF,MAAM,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC;AACjE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AACnD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC9D,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;AAChC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC;AAClC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC;AACjC,OAAO,CAAC;AACR,MAAM,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC;AACpE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACf,GAAG;AACH,CAAC,CAAC;;AAEF,MAAM,cAAc,GAAG,SAAS;AAChC,EAAE,CAAC,CAAC,IAAI;AACR,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,IAAI,CAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,cAAc,EAAE,YAAY,CAAC;AAChE,GAAG;;AAEI,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,MAAM,mBAAmB,GAAG,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK;AAC1E,EAAE,MAAM,aAAa,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3C,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC;AAC7C,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,uBAAuB,CAAC;AACzD,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,EAAE,aAAa;AAC3E,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW;AACxB,MAAM,gBAAgB;AACtB,CAAC;;AAEM,MAAM,mBAAmB,GAAG,CAAC,gBAAgB,EAAE,eAAe,KAAK;AAC1E,EAAE,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAC1F,MAAM,CAAC,WAAW;AAClB,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACnF,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;AAC9F,IAAI,oBAAoB;AACxB,GAAG;AACH,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC;AAClG,EAAE,OAAO,OAAO;AAChB,CAAC;;AAEM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AAC1C,EAAE,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC;AAC7D,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjE,EAAE,OAAO,CAAC,CAAC,GAAG;AACd,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK;AAC9B,MAAM,IAAI,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;AACtF,MAAM,OAAO,CAAC,CAAC,MAAM;AACrB,QAAQ,CAAC,CAAC,MAAM;AAChB,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACvF,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,GAAG;AACX,OAAO;AACP,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,GAAG,CAAC,aAAa,CAAC;AAClB,CAAC;;AAEM,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;;AAE9D,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK;AAC1D,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,SAAS;AACtC,EAAE,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI;AACjC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7F,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;AAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7D,GAAG,CAAC,KAAK,CAAC;AACV,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB;AAC7D,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;AAC9D,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE;AACvC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI;AACnC,MAAM,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpE,KAAK,CAAC,IAAI,CAAC;AACX,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxF,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE;AACtD,IAAI,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC9B,MAAM,OAAO,CAAC,CAAC,IAAI;AACnB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;AACvE,QAAQ,cAAc,CAAC,IAAI,CAAC;AAC5B,OAAO,CAAC,QAAQ,CAAC;AACjB,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAC1D,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI;AAC1B,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC;AACvB,MAAM,CAAC,CAAC,GAAG;AACX,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;AACpE,KAAK,CAAC,gBAAgB,CAAC;AACvB,IAAI,OAAO,CAAC,CAAC,IAAI;AACjB,MAAM,kBAAkB;AACxB,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;AACrC,MAAM,CAAC,CAAC,EAAE;AACV,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACjC,MAAM,CAAC,CAAC,IAAI;AACZ,KAAK,CAAC,QAAQ,CAAC;AACf,EAAE;AACF,EAAE,OAAO,IAAI;AACb,CAAC;;AAEM,MAAM,iBAAiB,GAAG,UAAU,IAAI,IAAI,IAAI;AACvD,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;AAChC,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU;AACjC,EAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;AACpF,CAAC;;AAEM,MAAM,aAAa,GAAG;AAC7B,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ;AACpB,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;AACxB,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ;AACvB,EAAE,CAAC,KAAK,GAAG,SAAS;AACpB,EAAE,CAAC,IAAI,GAAG,SAAS;AACnB,EAAE,CAAC,GAAG,GAAG,SAAS;AAClB,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,EAAE,CAAC,IAAI,GAAG,SAAS;AACnB,EAAE,CAAC,MAAM,GAAG,SAAS;AACrB,CAAC;;AChSD,kBAAe,UAAU,CAAC,KAAK,KAAK;AACpC,EAAE,eAAe,EAAE;AACnB,IAAI,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACpC,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,cAAc,EAAE,YAAY;AAChC,IAAI,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACpC,IAAI,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,cAAc,EAAE,QAAQ;AAC5B,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,IAAI,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,GAAG;AACH,CAAC,CAAC,CAAC;;ACGH,MAAM,qBAAqB,CAAC;AAAA,EAC1B,gBAAA,GAAmB,WAAA;AAAA,EACnB,oBAAA,GAAuB,CAAC,WAAW,CAAA;AAAA,EACnC,UAAA,EAAY,WAAA;AAAA,EACZ,mBAAA,EAAqB,oBAAA;AAAA,EACrB,YAAA;AAAA,EACA,eAAA;AAAA,EACA,MAAA,EAAQ,OAAA;AAAA,EACR,MAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,WAAA,GAAc,mBAAA,CAAoB,oBAAA,EAAsB,MAAM,CAAA;AACpE,EAAA,IAAI,CAAA,CAAE,OAAA,CAAQ,WAAW,CAAA,EAAG,OAAO,IAAA;AACnC,EAAA,MAAM,YAAY,mBAAA,CAAoB;AAAA,IACpC,gBAAA;AAAA,IACA,WAAA,EAAa,CAAA,CAAE,KAAA,CAAM,OAAO,EAAE,WAAW;AAAA,GAC1C,CAAA;AACD,EAAA,MAAM,MAAA,GAAS,CAAA,CAAE,SAAA,CAAU,IAAI,OAAO,CAAA;AACtC,EAAA,MAAM,UAAA,GAAa,CAAA,CAAE,SAAA,CAAU,IAAI,WAAW,CAAA;AAC9C,EAAA,MAAM,mBAAA,GAAsB,CAAA,CAAE,SAAA,CAAU,IAAI,oBAAoB,CAAA;AAChE,EAAA,MAAM,gBAAA,GAAmB,CAAA,CAAE,EAAA,CAAG,CAAA,CAAE,GAAA,CAAI,CAAA,CAAE,OAAO,CAAA,CAAE,CAAC,MAAA,EAAQ,UAAU,CAAC,GAAG,cAAc,CAAA;AACpF,EAAA,MAAM,SAAA,GAAY,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA;AAC/B,EAAA,MAAM,OAAA,GAAU,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA;AAE7B,EAAA,MAAM,qBAAA,GAAwB,CAAC,CAAA,CAAE,IAAA,CAAK,UAAU,CAAA,EAAG,CAAA,CAAE,SAAA,CAAU,CAAA,CAAE,IAAA,CAAK,UAAU,CAAA,EAAG,OAAO,CAAC,CAAA;AAC3F,EAAA,MAAM,mBAAA,GAAsB,CAAC,CAAA,CAAE,SAAA,CAAU,CAAA,CAAE,IAAA,CAAK,UAAU,CAAA,EAAG,SAAS,CAAA,EAAG,CAAA,CAAE,IAAA,CAAK,UAAU,CAAC,CAAA;AAC3F,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,QAAA,CAAS,uBAAuB,SAAS,CAAA;AAAA,IACzC,QAAA,CAAS,qBAAqB,OAAO;AAAA,GACvC;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAA,CAAE,GAAA,CAAI,CAAA,CAAE,GAAG,CAAA,CAAE,MAAA,CAAO,WAAW,CAAA,EAAG,CAAC,CAAA,EAAG,CAAA,CAAE,GAAA,CAAI,iBAAiB,CAAC,CAAA;AACpF,EAAA,MAAM,kBAAA,GAAqB,CAAA,CAAE,GAAA,CAAI,oBAAoB,EAAE,MAAM,CAAA;AAE7D,EAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,EAAG,KAAA,KAAU;AACrC,IAAA,IAAI,EAAE,EAAA,CAAG,QAAA,EAAU,eAAe,CAAA,EAAG,OAAO,gBAAgB,KAAK,CAAA;AAAA,EACnE,CAAA;AACA,EAAA,MAAM,cAAA,GAAiB,CAAA,MAAA,KAAU,CAAC,KAAA,EAAO,EAAA,KAAO;AAC9C,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA,CAAE,EAAE,KAAA,EAAO,CAAA,CAAE,IAAA,EAAM,GAAA,EAAK,CAAA,CAAE,IAAA,EAAM,CAAA;AACxD,IAAA,IAAI,CAAC,aAAA,CAAc,MAAA,CAAO,KAAK,CAAC,KAAK,CAAA,CAAE,MAAA,CAAO,mBAAmB,CAAA,KAAM,CAAA,EAAG;AACxE,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,MAAM,SAAA,GAAY,cAAA,CAAe,EAAA,CAAG,kBAAkB,CAAC,CAAA;AAEvD,IAAA,IAAI,IAAA,GAAO,OAAA,CAAQ,SAAA,EAAW,SAAA,EAAW,EAAE,CAAC,EAAE,GAAG,MAAA,CAAO,KAAK,CAAA,EAAE,EAAG,WAAW,KAAK,CAAA;AAClF,IAAA,MAAM,CAAC,cAAA,EAAgB,YAAY,CAAA,GAAI,mBAAA;AACvC,IAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,MAAA,IAAI,UAAA,CAAW,IAAA,EAAM,cAAc,CAAA,EAAG;AACpC,QAAA,IAAA,GAAO,cAAA;AAAA,MACT,CAAA,MAAA,IAAW,UAAA,CAAW,IAAA,EAAM,YAAY,CAAA,EAAG;AACzC,QAAA,IAAA,GAAO,YAAA;AAAA,MACT;AAAA,IACF;AACA,IAAA,OAAO,UAAA,CAAW,MAAM,cAAc,CAAA,KAAM,MAAM,WAAA,CAAY,IAAA,EAAM,YAAY,CAAA,KAAM,EAAA;AAAA,EACxF,CAAA;AACA,EAAA,MAAM,cAAA,GAAiB,CAAC,MAAA,EAAQ,EAAA,KAAO,CAAA,KAAA,KAAS;AAC9C,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA,CAAE,EAAE,KAAA,EAAO,CAAA,CAAE,IAAA,EAAM,GAAA,EAAK,CAAA,CAAE,IAAA,EAAM,CAAA;AACxD,IAAA,MAAM,YAAY,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA,CAAE,EAAE,KAAA,EAAO,CAAA,CAAE,SAAA,CAAU,CAAC,GAAG,GAAA,EAAK,CAAA,CAAE,SAAA,CAAU,CAAC,GAAG,CAAA;AAC/E,IAAA,MAAM,SAAA,GAAY,cAAA,CAAe,EAAA,CAAG,kBAAkB,CAAC,CAAA;AACvD,IAAA,MAAM,gBAAgB,CAAA,CAAE,MAAA;AAAA,MACtB,aAAA;AAAA,MACA,EAAE,KAAA,CAAM,EAAA,EAAI,CAAA,CAAE,EAAA,EAAI,EAAE,CAAA;AAAA,MACpB,CAAA,CAAE,OAAO,MAAS;AAAA,KACpB,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AACf,IAAA,MAAM,UAAU,OAAA,CAAQ,SAAA,EAAW,SAAA,EAAW,aAAA,EAAe,WAAW,KAAK,CAAA;AAC7E,IAAA,IAAI,CAAA,CAAE,EAAA,CAAG,QAAA,EAAU,YAAY,CAAA,EAAG;AAChC,MAAA,OAAO,YAAA;AAAA,QACL,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,GAAA,CAAI,SAAA,EAAW,OAAO,CAAA,EAAG,CAAC,CAACA,UAAAA,EAAWC,QAAO,CAAA,KAAM;AAAA,UAC1D,iBAAA,CAAkB,qBAAqB,CAAA,CAAED,UAAS,CAAA;AAAA,UAClD,iBAAA,CAAkB,mBAAmB,CAAA,CAAEC,QAAO;AAAA,SAC/C,EAAE,MAAM;AAAA,OACX;AAAA,IACF;AAAA,EACF,CAAA;AACA,EAAA,4BACG,IAAA,EAAA,EAAK,aAAA,EAAY,yBAAwB,SAAA,EAAS,IAAA,EAAC,WAAU,KAAA,EAC3D,QAAA,EAAA;AAAA,IAAA,aAAA,oBACC,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAI,IAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,WAAW,OAAA,CAAQ,eAAA;AAAA,QACnB,aAAA,EAAY,iCAAA;AAAA,QAEX,QAAA,EAAA,CAAA,CAAE,IAAI,CAAA,IAAA,qBACL,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,EAAE,MAAA,EAAQ,CAAA,EAAE;AAAA,YAChB,cAAY,IAAA,CAAK,KAAA;AAAA,YAEjB,OAAA,EAAS,OAAK,gBAAA,CAAiB,CAAA,EAAG,EAAE,IAAA,CAAK,OAAA,EAAS,IAAI,CAAC,CAAA;AAAA,YACvD,QAAA,EAAU,SAAA;AAAA,YAET,QAAA,EAAA,IAAA,CAAK;AAAA,WAAA;AAAA,UAJD,IAAA,CAAK;AAAA,SAMb,EAAE,WAAW;AAAA;AAAA,KAChB;AAAA,IAED,CAAA,CAAE,GAAA,CAAI,gBAAgB,CAAA,wBACpB,IAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,IAAA,EAAI,MAAC,EAAA,EAAI,EAAA,EAAI,cAAA,EAAgB,eAAA,EAC1C,YAAE,GAAA,CAAI,CAAC,EAAE,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,eAAc,qBAC5D,IAAA,CAAC,IAAA,EAAA,EAAkB,IAAA,EAAI,MAAC,EAAA,EAAI,CAAA,EAAG,aAAA,EAAa,MAAA,EAAQ,gBAAgB,eAAA,EAClE,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,SAAA,EAAU,KAAA,EACxB,8BAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,EAAA,EAAI,SAAA,EAAW,QAAQ,SAAA,EACpC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,OAAA,EAAQ,QAAA,EAAU,GAAG,YAAA,EAAY,KAAA,EAClD,QAAA,EAAA,KAAA,EACH,CAAA,EACF,CAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,QAAK,SAAA,EAAS,IAAA,EAAC,WAAU,KAAA,EACxB,QAAA,kBAAA,GAAA,CAAC,QAAK,IAAA,EAAI,IAAA,EAAC,IAAI,EAAA,EACb,QAAA,kBAAA,GAAA,CAAC,QAAK,SAAA,EAAS,IAAA,EAAC,WAAW,OAAA,CAAQ,eAAA,EAAiB,OAAA,EAAS,CAAA,EAC1D,QAAA,EAAA,CAAA,CAAE,GAAA;AAAA,QAAI,SACL,CAAA,CAAE,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,QAAO,KAAM;AACxB,UAAA,MAAM,gBAAgB,CAAA,CAAE,KAAA,CAAM,EAAE,IAAA,CAAK,EAAE,EAAE,KAAK,CAAC,CAAA,GAC3C,CAAA,CAAE,KAAK,MAAM,CAAA,GACb,EAAE,IAAA,CAAK,EAAE,EAAE,KAAK,CAAA;AACpB,UAAA,uBACE,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAI,IAAA;AAAA,cACJ,EAAA,EAAI,EAAA,GAAK,CAAA,CAAE,MAAA,CAAO,GAAG,CAAA;AAAA,cACrB,WAAW,OAAA,CAAQ,eAAA;AAAA,cAEnB,QAAA,kBAAA,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,QAAA,EAAU,cAAA,CAAe,MAAA,EAAQ,EAAE,CAAA;AAAA,kBACnC,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,EAAE,EAAE,MAAM,CAAA;AAAA,kBACxB,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,kBAClB,UAAA,EAAY,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,KAAK,CAAA,QAAA,CAAA;AAAA,kBAC1B,KAAA,EAAO,aAAA;AAAA,kBACP,UAAU,QAAA,IAAY,KAAA;AAAA,kBACtB,KAAA,EAAO,CAAA,CAAE,GAAA,CAAI,CAAA,MAAA,MAAW;AAAA,oBACtB,EAAA;AAAA,oBACA,KAAA,EAAO,MAAA;AAAA,oBACP,QAAA,EAAU,aAAA,CAAc,MAAA,EAAQ,EAAE,CAAA;AAAA,oBAClC,OAAO,CAAA,CAAE,MAAA;AAAA,sBACP,CAAA,CAAE,GAAG,MAAM,CAAA;AAAA,sBACX,CAAA,CAAE,QAAA;AAAA,sBACF,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,CAAE,aAAa;AAAA,sBACxB,MAAM;AAAA,mBACV,CAAE,EAAE,MAAM;AAAA;AAAA;AACZ,aAAA;AAAA,YAtBK;AAAA,WAuBP;AAAA,QAEJ,CAAC,EAAE,GAAG;AAAA,OACR,CAAE,MAAM,CAAA,EACV,CAAA,EACF,CAAA,EACF;AAAA,KAAA,EAAA,EA/CS,MAgDX,CACD,CAAA,CAAE;AAAA,MACD;AAAA,QACE,MAAA,EAAQ,OAAA;AAAA,QACR,MAAA,EAAQ,oCAAA;AAAA,QACR,QAAQ,SAAA,CAAU,SAAA,EAAW,CAAA,CAAE,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,QAC3C,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,OAAO,EAAE,MAAM,CAAA;AAAA,QAC7B,KAAA,EAAO,cAAA,CAAe,CAAA,CAAE,IAAA,CAAK,kBAAkB,CAAC,CAAA;AAAA,QAChD,aAAA,EAAe,eAAe,OAAO;AAAA,OACvC;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,kCAAA;AAAA,QACR,MAAA,EAAQ,SAAA;AAAA,UAAU,SAAA;AAAA,UAAW,CAAA,CAAE,KAAK,MAAM,CAAiC,CAAA;AAAA,QAC3E,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,KAAK,EAAE,MAAM,CAAA;AAAA,QAC3B,KAAA,EAAO,cAAA,CAAe,CAAA,CAAE,IAAA,CAAK,kBAAkB,CAAC,CAAA;AAAA,QAChD,aAAA,EAAe,eAAe,KAAK;AAAA;AACrC,KACD,CAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEO,MAAM,eAAe,SAAA,CAAU,CAAC,EAAE,cAAA,EAAgB,iBAAA,EAAmB,SAAQ,MAAO;AAAA,EACzF,OAAA,EAAS,EAAE,EAAA,CAAG,OAAA,EAAS,EAAE,GAAA,CAAI,cAAA,EAAgB,iBAAiB,CAAC;AACjE,CAAA,CAAE,EAAE,kBAAkB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHtml5.js","sources":["../../src/TableHtml5/utils.js","../../src/TableHtml5/flags.jsx","../../src/TableHtml5/subHeader.jsx","../../src/TableHtml5/cell.jsx","../../src/TableHtml5/sectionHeader.jsx","../../src/TableHtml5/section.jsx","../../src/TableHtml5/header.jsx","../../src/TableHtml5/TableHtml5.jsx"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getValue = labelAccessor => item =>\n R.has('values', item)\n ? R.reduce(\n (acc, val) => ({\n label: acc.label,\n id: R.isEmpty(acc.id) ? val.id : `${acc.id}, ${val.id}`,\n flags: R.concat(acc.flags, val.flags || []),\n parents: R.concat(acc.parents, val.parents || []),\n }),\n { id: '', flags: [], parents: [], label: labelAccessor(item.values) },\n item.values,\n )\n : R.pipe(R.prop('value'), val => R.assoc('label', labelAccessor(val), val))(item);\n\nexport const defaultLabelAccessor = item => {\n if (R.is(Object, item)) {\n return R.prop('name', item);\n }\n return R.pipe(R.pluck('name'), R.join(', '))(item);\n};\n","import React, { Fragment } from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport { visuallyHidden } from '@mui/utils';\nimport Tooltip from '@mui/material/Tooltip';\nimport { Asterisk } from '../Icons/Asterisk';\nimport { getValue } from './utils';\nimport useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';\n\nconst flagStylePath = theme => R.pathOr({}, ['mixins', 'table', 'flag'], theme);\nconst useStyles = makeStyles(theme => ({\n content: {\n borderRadius: 3,\n boxSizing: 'border-box',\n listStyleType: 'none',\n maxWidth: 270,\n padding: 0,\n margin: 0,\n ...theme.typography.body1,\n },\n flags: {\n borderBottom: '1px dotted',\n borderColor: 'inherit',\n margin: theme.spacing(0, 0.5),\n whiteSpace: 'nowrap',\n display: 'inline',\n fontWeight: 'bold',\n fontStyle: 'normal',\n position: 'relative',\n verticalAlign: R.propOr('middle', 'verticalAlign', flagStylePath(theme)),\n ...R.propOr({}, 'root', flagStylePath(theme)),\n },\n svg: {\n verticalAlign: R.propOr('middle', 'verticalAlign', flagStylePath(theme)),\n },\n header: {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n },\n}));\n\nexport const Flags = ({ flags = [], isHeader, HTMLRenderer, labelAccessor }) => {\n const classes = useStyles();\n const theme = useTheme();\n const noFlags = R.isNil(flags) || R.isEmpty(flags);\n const { open, setOpen } = useKeyboardEscapeHandler();\n\n if (noFlags) return null;\n\n const hasUncoded = R.any(R.complement(R.has('code')), flags);\n const codedIcons = R.pipe(\n R.reduce((acc, flag) => R.when(R.always(R.has('code', flag)), R.append(flag.code))(acc), []),\n R.join(R.propOr(',', 'delimiters', flagStylePath(theme))),\n )(flags);\n\n const labels = R.map(flag => {\n const value = getValue(labelAccessor)(flag);\n return R.isEmpty(labelAccessor(flag)) ? value.label : `${labelAccessor(flag)}: ${value.label}`;\n }, flags);\n const content = (\n <ul data-testid=\"cell-flags-footnotes-content\" className={classes.content}>\n {R.addIndex(R.map)(\n (label, index) => (\n <li key={index}>\n {R.is(Function, HTMLRenderer) ? <HTMLRenderer html={label} /> : label}\n </li>\n ),\n labels,\n )}\n </ul>\n );\n return (\n <Tooltip\n tabIndex={0}\n aria-label={R.join(', ', labels)}\n aria-hidden={false}\n title={content}\n placement=\"top\"\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n >\n <span\n data-testid=\"cell-flags-footnotes-icon\"\n className={cx(classes.flags, { [classes.header]: isHeader })}\n >\n {R.not(R.isEmpty(codedIcons)) && codedIcons}\n {R.and(R.not(R.isEmpty(codedIcons)), hasUncoded) && (\n <React.Fragment>{R.propOr(',', 'delimiters', flagStylePath(theme))}</React.Fragment>\n )}\n {hasUncoded && (\n <Fragment>\n \n <Asterisk className={classes.svg} style={{ fontSize: 11 }} />\n <Typography style={visuallyHidden}>{`* ${labels}`}</Typography>\n </Fragment>\n )}\n </span>\n </Tooltip>\n );\n};\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { getLight, getIsRtl } from '../utils';\nimport { Flags } from './flags';\n\nconst useStyles = makeStyles(theme => ({\n columnsTitle: {\n position: 'sticky',\n zIndex: 1,\n boxSizing: 'border-box',\n backgroundColor: getLight(theme) || theme.palette.secondary.light,\n border: 'none',\n borderBottom: `1px solid ${theme.palette.grey[500]}`,\n color: theme.palette.grey['A700'],\n verticalAlign: 'middle',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n width: '1px',\n height: '100%',\n backgroundColor: theme.palette.grey[500],\n },\n // backgroundColor: getLight(theme) || theme.palette.secondary.light,\n // border: 'inherit',\n // borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n // borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n // padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n // color: theme.palette.grey['A700'],\n // verticalAlign: 'middle',\n // position: 'sticky',\n // zIndex: 1,\n // outline: `1px solid ${theme.palette.grey[500]}`,\n // borderCollapse: 'collapse',\n // borderSpacing: 0\n },\n fillerCell: {\n backgroundColor: theme.palette.grey[200],\n border: 'inherit',\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n verticalAlign: 'middle',\n textAlign: 'center',\n color: theme.palette.grey['A700'],\n zIndex: 1,\n },\n cellContent: {\n justifyContent: 'flex-start',\n display: 'flex',\n },\n label: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n },\n highlight: theme.mixins.table.cellHighlight,\n}));\n\nconst mapIndexed = R.addIndex(R.map);\n\nexport const SubHeader = React.forwardRef(\n (\n {\n headerData,\n xLayoutData,\n activeCellIds,\n subHeadCellsWidth,\n SideIcon,\n HTMLRenderer,\n labelAccessor,\n },\n refs,\n ) => {\n const classes = useStyles();\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n return (\n <TableRow>\n {mapIndexed(\n (rowItem, index) => (\n <TableCell\n component=\"th\"\n className={classes.columnsTitle}\n key={index}\n id={`subHeader_${index}`}\n style={\n isRtl ? { right: subHeadCellsWidth[index] } : { left: subHeadCellsWidth[index] }\n }\n ref={element => (refs.current[index] = element)}\n scope=\"col\"\n >\n <div\n className={classes.cellContent}\n aria-label={R.path(['dimension', 'id'], rowItem)}\n data-testid={`row-dim`}\n >\n <Typography variant=\"body1\" tabIndex={0} className={classes.label}>\n {R.pipe(R.prop('dimension'), labelAccessor)(rowItem)}\n <Flags\n labelAccessor={labelAccessor}\n HTMLRenderer={HTMLRenderer}\n flags={R.path(['dimension', 'flags'], rowItem)}\n />\n </Typography>\n </div>\n </TableCell>\n ),\n xLayoutData,\n )}\n <TableCell\n className={classes.fillerCell}\n style={\n isRtl\n ? { position: 'sticky', right: R.last(subHeadCellsWidth) }\n : { position: 'sticky', left: R.last(subHeadCellsWidth) }\n }\n />\n {mapIndexed(\n (item, index) => (\n <TableCell\n key={index}\n className={cx(classes.fillerCell, {\n [classes.highlight]: R.prop(index)(activeCellIds),\n })}\n >\n {!R.isNil(SideIcon) && <SideIcon sideProps={R.prop('sideProps', item)} />}\n <Flags\n flags={R.prop('flags', item)}\n labelAccessor={labelAccessor}\n HTMLRenderer={HTMLRenderer}\n />\n </TableCell>\n ),\n headerData,\n )}\n </TableRow>\n );\n },\n);\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport Link from '@mui/material/Link';\nimport { Flags } from './flags';\nimport { getIsRtl } from '../utils';\n\nconst useStyles = makeStyles(theme => ({\n cell: {\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n verticalAlign: 'baseline',\n color: theme.palette.grey['A700'],\n '&:hover': {\n boxShadow: `inset 0 0 0 2px ${theme.palette.primary.main}`,\n },\n whiteSpace: 'pre-wrap',\n borderCollapse: 'collapse',\n },\n active: {\n boxShadow: `inset 0 0 0 2px ${theme.palette.primary.main}`,\n },\n highlight: theme.mixins.table.cellHighlight,\n oneCell: {\n border: `thin solid ${theme.palette.grey[500]}`,\n display: 'block', // MUI TableCell is inline-block\n },\n link: {\n position: 'inherit',\n userSelect: 'inherit',\n },\n value: {\n overflow: 'inherit',\n },\n}));\n\nconst isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));\n\nexport const Cell = ({\n flags,\n value,\n intValue,\n headers,\n isOne,\n indexedDimValIds = {},\n cellHandler,\n activeCellHandler,\n isActive,\n isHighlight,\n sideProps,\n SideIcon,\n HTMLRenderer,\n labelAccessor,\n textAlign,\n}) => {\n const classes = useStyles();\n const isRtl = getIsRtl(useTheme());\n const hasFlag = R.not(R.isEmpty(flags));\n const uiValue =\n R.is(Function, cellHandler) && !R.isEmpty(indexedDimValIds) ? (\n <Link\n component=\"button\"\n variant=\"body1\"\n underline=\"always\"\n onClick={() => cellHandler({ indexedDimValIds })}\n className={classes.link}\n >\n {R.is(Function, HTMLRenderer) ? <HTMLRenderer html={value} /> : value}\n </Link>\n ) : R.is(Function, HTMLRenderer) ? <HTMLRenderer html={value} /> : value;\n\n return (\n <TableCell\n align={isValidNumber(intValue) ? 'right' : textAlign}\n component={isOne ? 'div' : 'td'}\n className={cx(classes.cell, {\n [classes.oneCell]: isOne,\n [classes.active]: isActive,\n [classes.highlight]: isHighlight,\n })}\n headers={headers}\n aria-describedby={headers}\n onClick={activeCellHandler}\n tabIndex={0}\n style={{ textAlign: textAlign ? textAlign : isRtl ? 'left' : 'right' }}\n >\n {!R.isNil(SideIcon) && <SideIcon sideProps={sideProps} className={classes.value} />}\n {hasFlag && <Flags HTMLRenderer={HTMLRenderer} flags={flags} labelAccessor={labelAccessor} />}\n {uiValue}\n </TableCell>\n );\n};\n","import React, { Fragment } from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport Grid from '@mui/material/Grid';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { Flags } from './flags';\nimport { getDark, getIsRtl } from '../utils';\nimport { getValue } from './utils';\n\nconst useStyles = makeStyles(theme => ({\n section: {\n borderCollapse: 'collapse',\n backgroundColor: getDark(theme) || theme.palette.secondary.dark,\n border: 'inherit',\n borderBottom: `1px solid ${theme.palette.grey[500]}`,\n borderRight: `1px solid ${theme.palette.grey[500]}`,\n padding: theme.spacing(0, 1),\n color: theme.palette.grey['A700'],\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n },\n label: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n marginRight: theme.spacing(0.5),\n },\n containerSection: {\n display: 'flex',\n alignItems: 'center',\n },\n stickyHeaderSection: {\n position: 'sticky',\n },\n flag: {\n height: '100%',\n backgroundColor: getDark(theme) || theme.palette.secondary.dark,\n paddingLeft: 12,\n },\n leftLabelPosition: {\n left: theme.spacing(1),\n },\n rightLabelPosition: {\n right: theme.spacing(1),\n },\n sectionLabelsContainer: {\n padding: theme.spacing(0.5, 0),\n },\n}));\nconst mapIndexed = R.addIndex(R.map);\n\nexport const SectionHeader = ({\n headerData,\n section,\n currentSection,\n xLayoutDataLength,\n headerHeight,\n SideIcon,\n HTMLRenderer,\n labelAccessor,\n}) => {\n const classes = useStyles();\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(section)) return null;\n\n return (\n <TableRow\n key={section.key}\n className={classes.stickyHeaderSection}\n style={{ left: 0, top: headerHeight, zIndex: 2 }}\n >\n <TableCell\n component=\"th\"\n className={classes.section}\n colSpan={R.pipe(R.length, R.inc, R.add(xLayoutDataLength))(headerData)}\n id={currentSection}\n scope=\"col\"\n >\n <Grid container alignItems=\"center\">\n <Grid\n item\n style={\n isRtl ? { position: 'sticky', right: '8px' } : { position: 'sticky', left: '8px' }\n }\n >\n <Typography variant=\"body1\" component=\"div\" className={classes.containerSection}>\n <span\n className={cx(\n classes.stickyHeaderSection,\n classes.leftLabelPosition,\n classes.sectionLabelsContainer,\n )}\n >\n {mapIndexed(\n (sectionHeader, index) => {\n const value = getValue(labelAccessor)(sectionHeader);\n return (\n <Fragment key={index}>\n {index !== 0 && <br />}\n\n <Typography\n noWrap\n variant=\"body1\"\n component=\"span\"\n tabIndex={0}\n className={classes.label}\n data-testid=\"section-dim\"\n aria-label={R.path(['dimension', 'id'], sectionHeader)}\n >\n {R.pipe(R.prop('dimension'), labelAccessor)(sectionHeader)}\n {':'}\n </Typography>\n <Typography noWrap variant=\"body1\" component=\"span\" tabIndex={0}>\n {R.prop('label', value)}\n </Typography>\n <Flags\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n flags={R.prop('flags', value)}\n />\n </Fragment>\n );\n },\n R.path([0, 'data'], section),\n )}\n <span>\n <Flags\n HTMLRenderer={HTMLRenderer}\n flags={R.path([0, 'flags'], section)}\n labelAccessor={labelAccessor}\n />\n </span>\n </span>\n </Typography>\n </Grid>\n {!R.isNil(SideIcon) && (\n <Grid item style={{ marginLeft: 40 }}>\n <SideIcon sideProps={R.path([0, 'sideProps'], section)} />\n </Grid>\n )}\n </Grid>\n </TableCell>\n </TableRow>\n );\n};\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { SectionHeader } from './sectionHeader';\nimport { Cell } from './cell';\nimport { getLight, getIsRtl } from '../utils';\nimport { getValue } from './utils';\nimport { Flags } from './flags';\nimport { memo } from 'react';\n\nconst useStyles = makeStyles(theme => ({\n rowTitle: {\n backgroundColor: getLight(theme) || theme.palette.secondary.light,\n border: 'inherit',\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n color: theme.palette.grey['A700'],\n verticalAlign: 'top',\n align: 'left',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n },\n timePeriodCells: {\n whiteSpace: 'nowrap',\n },\n fillerCell: {\n minWidth: '30px',\n backgroundColor: theme.palette.grey[200],\n verticalAlign: 'top',\n border: 'inherit',\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n position: 'sticky',\n zIndex: 1,\n },\n cellContent: {\n display: 'flex',\n alignItems: 'center',\n },\n flagContainer: {\n display: 'flex',\n justifyContent: 'center',\n fontWeight: 'bold',\n },\n topCell: {\n paddingTop: 0,\n },\n hierarchySpace: {\n marginBottom: 'auto',\n },\n highlight: theme.mixins.table.cellHighlight,\n stickyHeader: {\n position: 'sticky',\n zIndex: 1,\n },\n}));\nconst mapIndexed = R.addIndex(R.map);\n\nconst SectionComponent = ({\n headerData,\n cells,\n section,\n xLayoutDataLength,\n cellHandler,\n activeCellHandler,\n activeCellIds,\n headerHeight,\n sectionIndex,\n nbColumnsByRows,\n SideIcon,\n subHeadCellsWidth,\n HTMLRenderer,\n labelAccessor,\n cellValueAccessor,\n isNoWrap,\n textAlign,\n}) => {\n const classes = useStyles();\n const currentSection = R.path([0, 'key'], section);\n const headerNumberRows = R.length(nbColumnsByRows);\n const maxColumns = R.last(nbColumnsByRows);\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n\n return (\n <TableBody>\n <SectionHeader\n headerData={headerData}\n section={section}\n currentSection={currentSection}\n xLayoutDataLength={xLayoutDataLength}\n headerHeight={headerHeight}\n SideIcon={SideIcon}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n />\n {mapIndexed(\n (sectionbody, rowIndex) => {\n const rowId = `${sectionbody.key}_${sectionIndex}_${rowIndex}`;\n const rowIds = R.pipe(\n R.map(index => `${sectionbody.key}_${sectionIndex}_${index}`),\n R.join(' '),\n )(R.times(R.identity, R.length(R.prop('data', sectionbody))));\n return (\n <TableRow key={rowId}>\n {R.times(index => {\n const cell = R.path(['data', index], sectionbody);\n const value = R.isNil(cell) ? { label: '' } : getValue(labelAccessor)(cell);\n const flags = R.propOr([], 'flags', value);\n const id = `${rowIndex}_${rowId}_${index}`;\n\n // special space is used for hierarchy U+2007    \n const hierarchySpace = R.pipe(\n R.propOr([], 'parents'),\n R.when(R.isNil, R.always([])),\n R.length,\n // eslint-disable-next-line no-irregular-whitespace\n R.times(() => '· '),\n )(value);\n\n return (\n <TableCell\n key={id}\n className={cx(classes.rowTitle, classes.stickyHeader, {\n [classes.highlight]: R.prop(rowId)(activeCellIds),\n [classes.timePeriodCells]:\n R.is(Function, isNoWrap) && isNoWrap(R.propOr({}, 'dimension', cell)),\n })}\n id={id}\n headers={`subHeader_${index} ${currentSection}`}\n component=\"th\"\n style={\n isRtl\n ? { right: subHeadCellsWidth[index] }\n : { left: subHeadCellsWidth[index] }\n }\n >\n <div className={classes.cellContent}>\n {!R.isEmpty(hierarchySpace) && (\n <div className={classes.hierarchySpace}>{hierarchySpace}</div>\n )}\n <Typography\n variant=\"body1\"\n tabIndex={0}\n aria-describedby={`subHeader_${index} ${currentSection}`}\n >\n {R.prop('label', value)}\n <Flags\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n flags={flags}\n />\n </Typography>\n </div>\n </TableCell>\n );\n }, xLayoutDataLength /*R.prop('data', sectionbody)*/)}\n <TableCell\n className={cx(classes.fillerCell, {\n [classes.highlight]: R.prop(rowId)(activeCellIds),\n })}\n style={\n isRtl ? { right: R.last(subHeadCellsWidth) } : { left: R.last(subHeadCellsWidth) }\n }\n >\n <div className={classes.flagContainer}>\n {!R.isNil(SideIcon) && <SideIcon sideProps={R.prop('sideProps', sectionbody)} />}\n <Flags\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n flags={R.prop('flags', sectionbody)}\n />\n </div>\n </TableCell>\n {mapIndexed((item, columnIndex) => {\n const columnIds = R.pipe(\n R.times(R.identity),\n R.map(rowIndex => {\n const columnId = R.divide(\n columnIndex,\n R.divide(maxColumns, R.nth(rowIndex, nbColumnsByRows)),\n );\n return `${Math.floor(columnId || 0)}_${rowIndex}`;\n }),\n R.join(' '),\n )(headerNumberRows);\n\n const intersectionCellId = `${rowId}/${columnIndex}`;\n const isActive = R.pipe(\n R.propOr({}, 'intersectionCellId'),\n R.equals(intersectionCellId),\n )(activeCellIds);\n const missingValLabel = item.isEmpty || sectionbody.isEmpty ? '' : '..';\n return (\n <Cell\n {...R.pipe(\n R.pathOr({ value: null }, [item.key, currentSection, sectionbody.key, 0]),\n R.over(R.lensProp('value'), val =>\n R.isNil(val) ? missingValLabel : cellValueAccessor(val),\n ),\n )(cells)}\n key={intersectionCellId}\n headers={`${rowIds} ${columnIds} ${currentSection}`}\n cellHandler={cellHandler}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n SideIcon={SideIcon}\n isActive={isActive}\n textAlign={textAlign}\n isHighlight={R.any(R.identity)([\n R.prop(rowId)(activeCellIds),\n R.prop(columnIndex)(activeCellIds),\n ])}\n activeCellHandler={\n R.is(Function)(activeCellHandler)\n ? () =>\n activeCellHandler({\n [rowId]: R.not(isActive),\n [columnIndex]: R.not(isActive),\n intersectionCellId: isActive ? null : intersectionCellId,\n })\n : null\n }\n />\n );\n }, headerData)}\n </TableRow>\n );\n },\n R.nth(1, section),\n )}\n </TableBody>\n );\n};\n\nexport const Section = memo(SectionComponent);\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { Flags } from './flags';\nimport { getIsRtl } from '../utils';\nimport { getValue } from './utils';\n\nconst useStyles = makeStyles(theme => ({\n tableHeadCell: {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor: theme.palette.primary.main,\n border: 'inherit',\n borderBottom: `thin solid ${theme.palette.grey[500]}`,\n borderRight: `thin solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n verticalAlign: 'top',\n '&:focus ': {\n opacity: '.85',\n },\n textAlign: 'center',\n },\n cellContentCenter: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'sticky',\n },\n cellContentRight: {\n display: 'flex',\n justifyContent: 'flex-end',\n fontStyle: 'italic',\n },\n cellLabelHeader: {\n fontStyle: 'inherit',\n fontWeight: 'bold',\n },\n stickyLabel: {\n position: 'sticky',\n },\n}));\n\nconst timesIndexed = R.addIndex(R.times);\nconst mapIndexed = R.addIndex(R.map);\n\nexport const Header = ({\n headerData,\n valuesHeaderData,\n xLayoutDataLength,\n subHeadCellsWidth,\n HTMLRenderer,\n labelAccessor,\n}) => {\n const classes = useStyles();\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n\n const stickyLabelPosition = `${R.last(subHeadCellsWidth)}px + 30px + ${theme.spacing(1)}`;\n\n if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(headerData)) return null;\n return timesIndexed(\n index => {\n const flags = R.path([0, 'data', index, 'dimension', 'flags'], headerData);\n const id = `header_${index}`;\n return (\n <TableRow key={id}>\n <TableCell\n component=\"th\"\n padding=\"none\"\n align=\"center\"\n className={classes.tableHeadCell}\n colSpan={R.inc(xLayoutDataLength)}\n id={id}\n tabIndex={0}\n scope=\"row\"\n title={R.pipe(R.path([-1, 'data', index, 'dimension']), labelAccessor)(headerData)}\n style={\n isRtl\n ? { position: 'sticky', zIndex: 1, right: 0 }\n : { position: 'sticky', zIndex: 1, left: 0 }\n }\n >\n <div\n className={classes.cellContentRight}\n aria-label={R.path([0, 'data', index, 'dimension', 'id'], headerData)}\n data-testid={`header-dim`}\n role=\"row\"\n >\n <Typography variant=\"body1\" className={classes.cellLabelHeader}>\n {R.pipe(R.path([-1, 'data', index, 'dimension']), labelAccessor)(headerData)}\n <Flags\n HTMLRenderer={HTMLRenderer}\n flags={flags}\n isHeader\n labelAccessor={labelAccessor}\n />\n </Typography>\n </div>\n </TableCell>\n {mapIndexed(\n (headerItem, idx) => {\n const value = headerItem.isEmpty\n ? { label: '' }\n : getValue(labelAccessor)(headerItem);\n const flags = R.propOr([], 'flags', value);\n const hierarchySpace = R.pipe(\n R.propOr([], 'parents'),\n R.length,\n R.times(() => '·'),\n )(value);\n return (\n <TableCell\n key={`${R.prop('id', value)}-${idx}`}\n component=\"th\"\n className={cx(classes.tableHeadCell, {\n [classes.topCell]: R.not(R.isEmpty(flags)),\n })}\n id={`${idx}_${index}`}\n headers={`header_${index}`}\n colSpan={R.prop('spanCount', headerItem)}\n tabIndex={0}\n title={R.prop('label', value)}\n aria-label={R.prop('label', value)}\n aria-describedby={id}\n scope=\"col\"\n >\n <div className={classes.cellContentCenter}>\n {!R.isEmpty(hierarchySpace) &&\n mapIndexed((space, idx) => <div key={idx}>{space}</div>)(hierarchySpace)}\n <Typography\n className={classes.stickyLabel}\n style={{\n left: isRtl ? theme.spacing(1) : stickyLabelPosition,\n right: isRtl ? stickyLabelPosition : theme.spacing(1),\n }}\n variant=\"body1\"\n >\n {R.prop('label', value)}\n <Flags\n HTMLRenderer={HTMLRenderer}\n flags={flags}\n isHeader\n labelAccessor={labelAccessor}\n />\n </Typography>\n </div>\n </TableCell>\n );\n },\n R.nth(index, valuesHeaderData),\n )}\n </TableRow>\n );\n },\n R.compose(R.length, R.pathOr([], [-1, 'data']))(headerData),\n );\n};\n","import React, { useRef, useState, useEffect, useMemo } from 'react';\nimport makeStyles from '@mui/styles/makeStyles';\nimport * as R from 'ramda';\nimport Table from '@mui/material/Table';\nimport { defaultLabelAccessor } from './utils';\nimport { SubHeader } from './subHeader';\nimport { Cell } from './cell';\nimport { Section } from './section';\nimport { Header } from './header';\n\n/*\n * Accessibility.\n * Do not use \"TableHead\" from Material-ui.\n * Material-ui, add \"scope\" attribute for accessibility, \"scope\" attribute can break screen reader if use with headers.\n * Child from TableHead will inherit a \"scope\" that we don't want. (not possible to turn off)\n * We are using \"headers\" attribute because the table is too complexe to use \"scope\".\n */\n\nconst useStyles = makeStyles(theme => ({\n table: {\n outline: '1px solid transparent',\n transform: 'translateZ(0)',\n borderCollapse: 'separate',\n borderLeft: `1px solid ${theme.palette.grey[500]}`,\n borderTop: `1px solid ${theme.palette.grey[500]}`,\n padding: '0px 0px',\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 2,\n },\n}));\n\nconst mapIndexed = R.addIndex(R.map);\n\nexport const getEnhancedValuesHeaderData = data => {\n const colLength = R.pipe(R.last, R.propOr([], 'data'), R.length)(data);\n return R.pipe(\n R.pluck('data'),\n // mix merge and transpose for performance\n R.reduce(\n (acc, cells) => {\n R.addIndex(R.forEach)((_, rowIndex) => {\n const cell = R.nth(rowIndex, cells) || {};\n const cellId = R.has('values', cell)\n ? R.pipe(R.prop('values'), R.pluck('id'), R.join(','))(cell)\n : R.pathOr(`missing${rowIndex}`, ['value', 'id'], cell);\n const topCell = rowIndex > 0 ? R.pipe(R.nth(rowIndex - 1), R.last)(acc) : null;\n const cellKey = R.isNil(topCell) ? cellId : `${topCell.key}-${cellId}`;\n\n const leftCell = R.pipe(R.nth(rowIndex), R.last)(acc);\n if (R.prop('key', leftCell) === cellKey && rowIndex !== colLength - 1) {\n acc = R.over(\n R.lensIndex(rowIndex),\n R.over(R.lensIndex(-1), R.evolve({ spanCount: R.add(1) })),\n )(acc);\n } else {\n acc = R.over(\n R.lensIndex(rowIndex),\n R.append({\n ...R.pick(['value', 'values'], cell),\n key: cellKey,\n spanCount: 1,\n isEmpty: R.isEmpty(cell),\n }),\n )(acc);\n }\n })(acc);\n return acc;\n },\n R.times(R.always([]), colLength),\n ),\n )(data);\n};\n\nconst getCellsWidth = R.addIndex(R.reduce)(\n (acc, element, index) => R.append(R.add(acc[index], R.propOr(0, 'offsetWidth', element)), acc),\n [0],\n);\n\nexport const TableHtml5 = ({\n cells,\n headerData = [],\n sectionsData = [],\n cellHandler,\n activeCellIds,\n activeCellHandler,\n SideIcon,\n testId = 'vis-table',\n HTMLRenderer,\n cellValueAccessor = R.identity,\n labelAccessor = defaultLabelAccessor,\n textAlign,\n isNoWrap = R.always(false),\n}) => {\n const classes = useStyles();\n const [headerHeight, setHeaderHeight] = useState(0);\n const [subHeadCellsWidth, setSubHeadCellsWidth] = useState([0]);\n const headerRef = useRef(null);\n const subHeadCellsRef = useRef([]);\n\n useEffect(() => {\n setHeaderHeight(R.pathOr(0, ['current', 'clientHeight'], headerRef));\n setSubHeadCellsWidth(getCellsWidth(R.prop('current', subHeadCellsRef)));\n }, [cells, headerData, sectionsData]);\n\n useEffect(() => {\n let timeoutId = null;\n const resizeListener = () => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n setHeaderHeight(R.pathOr(0, ['current', 'clientHeight'], headerRef));\n setSubHeadCellsWidth(getCellsWidth(R.prop('current', subHeadCellsRef)));\n }, 150);\n };\n window.addEventListener('resize', resizeListener);\n return () => window.removeEventListener('resize', resizeListener);\n }, []);\n\n const xLayoutData = R.pathOr([], [0, 1, -1, 'data'], sectionsData);\n const xLayoutDataLength = R.length(xLayoutData);\n const { valuesHeaderData, nbColumnsByRows } = useMemo(() => {\n const valuesHeaderData = getEnhancedValuesHeaderData(headerData);\n const nbColumnsByRows = R.map(R.length)(valuesHeaderData);\n return { valuesHeaderData, nbColumnsByRows };\n }, [headerData]);\n\n const isSingleObs = R.hasPath(['', '', '', 0], cells);\n if (isSingleObs)\n return (\n <Cell\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n {...R.pathOr({}, ['', '', '', 0], cells)}\n cellHandler={cellHandler}\n isOne\n textAlign={textAlign}\n />\n );\n\n return (\n <Table className={classes.table} aria-label=\"table\" size=\"small\" data-testid={testId}>\n <thead ref={headerRef} className={classes.stickyHeader}>\n <Header\n headerData={headerData}\n valuesHeaderData={valuesHeaderData}\n xLayoutDataLength={xLayoutDataLength}\n subHeadCellsWidth={subHeadCellsWidth}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n />\n <SubHeader\n headerData={headerData}\n xLayoutData={xLayoutData}\n activeCellIds={activeCellIds}\n SideIcon={SideIcon}\n ref={subHeadCellsRef}\n subHeadCellsWidth={subHeadCellsWidth}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n />\n </thead>\n {mapIndexed(\n (section, index) => (\n <Section\n key={`section-${index}`}\n sectionIndex={index}\n headerHeight={headerHeight}\n nbColumnsByRows={nbColumnsByRows}\n headerData={headerData}\n cells={cells}\n section={section}\n xLayoutDataLength={xLayoutDataLength}\n cellHandler={cellHandler}\n activeCellIds={activeCellIds}\n activeCellHandler={activeCellHandler}\n SideIcon={SideIcon}\n subHeadCellsWidth={subHeadCellsWidth}\n HTMLRenderer={HTMLRenderer}\n cellValueAccessor={cellValueAccessor}\n labelAccessor={labelAccessor}\n isNoWrap={isNoWrap}\n textAlign={textAlign}\n />\n ),\n sectionsData,\n )}\n </Table>\n );\n};\n"],"names":["useStyles","Tooltip","mapIndexed","rowIndex","flags","idx","valuesHeaderData","nbColumnsByRows"],"mappings":";;;;;;;;;;;;;;;;;;;AAEO,MAAM,QAAQ,GAAG,aAAa,IAAI,IAAI;AAC7C,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI;AACtB,MAAM,CAAC,CAAC,MAAM;AACd,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM;AACvB,UAAU,KAAK,EAAE,GAAG,CAAC,KAAK;AAC1B,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,UAAU,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;AACrD,UAAU,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;AAC3D,SAAS,CAAC;AACV,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC7E,QAAQ,IAAI,CAAC,MAAM;AACnB;AACA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;;AAE9E,MAAM,oBAAoB,GAAG,IAAI,IAAI;AAC5C,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;AAC1B,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/B,EAAE;AACF,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;;ACTD,MAAM,aAAA,GAAgB,CAAA,KAAA,KAAS,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,CAAC,QAAA,EAAU,OAAA,EAAS,MAAM,CAAA,EAAG,KAAK,CAAA;AAC9E,MAAMA,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,OAAA,EAAS;AAAA,IACP,YAAA,EAAc,CAAA;AAAA,IACd,SAAA,EAAW,YAAA;AAAA,IACX,aAAA,EAAe,MAAA;AAAA,IACf,QAAA,EAAU,GAAA;AAAA,IACV,OAAA,EAAS,CAAA;AAAA,IACT,MAAA,EAAQ,CAAA;AAAA,IACR,GAAG,MAAM,UAAA,CAAW;AAAA,GACtB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,YAAA,EAAc,YAAA;AAAA,IACd,WAAA,EAAa,SAAA;AAAA,IACb,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,GAAG,CAAA;AAAA,IAC5B,UAAA,EAAY,QAAA;AAAA,IACZ,OAAA,EAAS,QAAA;AAAA,IACT,UAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,QAAA;AAAA,IACX,QAAA,EAAU,UAAA;AAAA,IACV,eAAe,CAAA,CAAE,MAAA,CAAO,UAAU,eAAA,EAAiB,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,IACvE,GAAG,EAAE,MAAA,CAAO,IAAI,MAAA,EAAQ,aAAA,CAAc,KAAK,CAAC;AAAA,GAC9C;AAAA,EACA,GAAA,EAAK;AAAA,IACH,eAAe,CAAA,CAAE,MAAA,CAAO,UAAU,eAAA,EAAiB,aAAA,CAAc,KAAK,CAAC;AAAA,GACzE;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAO,KAAA,CAAM,OAAA,CAAQ,gBAAgB,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI;AAAA;AAEnE,CAAA,CAAE,CAAA;AAEK,MAAM,KAAA,GAAQ,CAAC,EAAE,KAAA,GAAQ,EAAC,EAAG,QAAA,EAAU,YAAA,EAAc,aAAA,EAAc,KAAM;AAC9E,EAAA,MAAM,UAAUA,WAAA,EAAU;AAC1B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,UAAU,CAAA,CAAE,KAAA,CAAM,KAAK,CAAA,IAAK,CAAA,CAAE,QAAQ,KAAK,CAAA;AACjD,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAI,wBAAA,EAAyB;AAEnD,EAAA,IAAI,SAAS,OAAO,IAAA;AAEpB,EAAA,MAAM,UAAA,GAAa,CAAA,CAAE,GAAA,CAAI,CAAA,CAAE,UAAA,CAAW,EAAE,GAAA,CAAI,MAAM,CAAC,CAAA,EAAG,KAAK,CAAA;AAC3D,EAAA,MAAM,aAAa,CAAA,CAAE,IAAA;AAAA,IACnB,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,IAAA,KAAS,EAAE,IAAA,CAAK,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAC,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,EAAE,CAAA;AAAA,IAC3F,CAAA,CAAE,KAAK,CAAA,CAAE,MAAA,CAAO,KAAK,YAAA,EAAc,aAAA,CAAc,KAAK,CAAC,CAAC;AAAA,IACxD,KAAK,CAAA;AAEP,EAAA,MAAM,MAAA,GAAS,CAAA,CAAE,GAAA,CAAI,CAAA,IAAA,KAAQ;AAC3B,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAa,CAAA,CAAE,IAAI,CAAA;AAC1C,IAAA,OAAO,CAAA,CAAE,OAAA,CAAQ,aAAA,CAAc,IAAI,CAAC,CAAA,GAAI,KAAA,CAAM,KAAA,GAAQ,CAAA,EAAG,aAAA,CAAc,IAAI,CAAC,CAAA,EAAA,EAAK,MAAM,KAAK,CAAA,CAAA;AAAA,EAC9F,GAAG,KAAK,CAAA;AACR,EAAA,MAAM,OAAA,mBACJ,GAAA,CAAC,IAAA,EAAA,EAAG,aAAA,EAAY,8BAAA,EAA+B,SAAA,EAAW,OAAA,CAAQ,OAAA,EAC/D,QAAA,EAAA,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AAAA,IACf,CAAC,KAAA,EAAO,KAAA,qBACN,GAAA,CAAC,IAAA,EAAA,EACE,YAAE,EAAA,CAAG,QAAA,EAAU,YAAY,CAAA,uBAAK,YAAA,EAAA,EAAa,IAAA,EAAM,KAAA,EAAO,CAAA,GAAK,SADzD,KAET,CAAA;AAAA,IAEF;AAAA,GACF,EACF,CAAA;AAEF,EAAA,uBACE,GAAA;AAAA,IAACC,UAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAU,CAAA;AAAA,MACV,YAAA,EAAY,CAAA,CAAE,IAAA,CAAK,IAAA,EAAM,MAAM,CAAA;AAAA,MAC/B,aAAA,EAAa,KAAA;AAAA,MACb,KAAA,EAAO,OAAA;AAAA,MACP,SAAA,EAAU,KAAA;AAAA,MACV,IAAA;AAAA,MACA,MAAA,EAAQ,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,MAC1B,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,MAE5B,QAAA,kBAAA,IAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,2BAAA;AAAA,UACZ,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAC,OAAA,CAAQ,MAAM,GAAG,QAAA,EAAU,CAAA;AAAA,UAE1D,QAAA,EAAA;AAAA,YAAA,CAAA,CAAE,GAAA,CAAI,CAAA,CAAE,OAAA,CAAQ,UAAU,CAAC,CAAA,IAAK,UAAA;AAAA,YAChC,CAAA,CAAE,IAAI,CAAA,CAAE,GAAA,CAAI,EAAE,OAAA,CAAQ,UAAU,CAAC,CAAA,EAAG,UAAU,CAAA,wBAC5C,KAAA,CAAM,QAAA,EAAN,EAAgB,QAAA,EAAA,CAAA,CAAE,MAAA,CAAO,KAAK,YAAA,EAAc,aAAA,CAAc,KAAK,CAAC,CAAA,EAAE,CAAA;AAAA,YAEpE,UAAA,yBACE,QAAA,EAAA,EAAS,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,8BAER,GAAA,CAAC,YAAS,SAAA,EAAW,OAAA,CAAQ,KAAK,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG,CAAA;AAAA,kCAC1D,UAAA,EAAA,EAAW,KAAA,EAAO,cAAA,EAAiB,QAAA,EAAA,CAAA,EAAA,EAAK,MAAM,CAAA,CAAA,EAAG;AAAA,aAAA,EACpD;AAAA;AAAA;AAAA;AAEJ;AAAA,GACF;AAEJ,CAAA;;AC3FA,MAAMD,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,YAAA,EAAc;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,MAAA,EAAQ,CAAA;AAAA,IACR,SAAA,EAAW,YAAA;AAAA,IACX,iBAAiB,QAAA,CAAS,KAAK,CAAA,IAAK,KAAA,CAAM,QAAQ,SAAA,CAAU,KAAA;AAAA,IAC5D,MAAA,EAAQ,MAAA;AAAA,IACR,cAAc,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IAClD,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IAChC,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY;AAAA,MACV,OAAA,EAAS,IAAA;AAAA,MACT,QAAA,EAAU,UAAA;AAAA,MACV,GAAA,EAAK,CAAA;AAAA,MACL,KAAA,EAAO,CAAA;AAAA,MACP,KAAA,EAAO,KAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG;AAAA;AACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAaF;AAAA,EACA,UAAA,EAAY;AAAA,IACV,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA;AAAA,IACvC,MAAA,EAAQ,SAAA;AAAA,IACR,cAAc,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACpD,aAAa,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACnD,OAAA,EAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,IAClD,aAAA,EAAe,QAAA;AAAA,IACf,SAAA,EAAW,QAAA;AAAA,IACX,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IAChC,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,WAAA,EAAa;AAAA,IACX,cAAA,EAAgB,YAAA;AAAA,IAChB,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,QAAA;AAAA,IACX,UAAA,EAAY;AAAA,GACd;AAAA,EACA,SAAA,EAAW,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM;AAChC,CAAA,CAAE,CAAA;AAEF,MAAME,YAAA,GAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AAE5B,MAAM,YAAY,KAAA,CAAM,UAAA;AAAA,EAC7B,CACE;AAAA,IACE,UAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,iBAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,KAEF,IAAA,KACG;AACH,IAAA,MAAM,UAAUF,WAAA,EAAU;AAC1B,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,SAAS,KAAK,CAAA;AAC5B,IAAA,4BACG,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAAE,YAAA;AAAA,QACC,CAAC,SAAS,KAAA,qBACR,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,IAAA;AAAA,YACV,WAAW,OAAA,CAAQ,YAAA;AAAA,YAEnB,EAAA,EAAI,aAAa,KAAK,CAAA,CAAA;AAAA,YACtB,KAAA,EACE,KAAA,GAAQ,EAAE,KAAA,EAAO,iBAAA,CAAkB,KAAK,CAAA,EAAE,GAAI,EAAE,IAAA,EAAM,iBAAA,CAAkB,KAAK,CAAA,EAAE;AAAA,YAEjF,GAAA,EAAK,CAAA,OAAA,KAAY,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA,GAAI,OAAA;AAAA,YACvC,KAAA,EAAM,KAAA;AAAA,YAEN,QAAA,kBAAA,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,WAAW,OAAA,CAAQ,WAAA;AAAA,gBACnB,cAAY,CAAA,CAAE,IAAA,CAAK,CAAC,WAAA,EAAa,IAAI,GAAG,OAAO,CAAA;AAAA,gBAC/C,aAAA,EAAa,CAAA,OAAA,CAAA;AAAA,gBAEb,QAAA,kBAAA,IAAA,CAAC,cAAW,OAAA,EAAQ,OAAA,EAAQ,UAAU,CAAA,EAAG,SAAA,EAAW,QAAQ,KAAA,EACzD,QAAA,EAAA;AAAA,kBAAA,CAAA,CAAE,KAAK,CAAA,CAAE,IAAA,CAAK,WAAW,CAAA,EAAG,aAAa,EAAE,OAAO,CAAA;AAAA,kCACnD,GAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,aAAA;AAAA,sBACA,YAAA;AAAA,sBACA,OAAO,CAAA,CAAE,IAAA,CAAK,CAAC,WAAA,EAAa,OAAO,GAAG,OAAO;AAAA;AAAA;AAC/C,iBAAA,EACF;AAAA;AAAA;AACF,WAAA;AAAA,UArBK;AAAA,SAsBP;AAAA,QAEF;AAAA,OACF;AAAA,sBACA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,WAAW,OAAA,CAAQ,UAAA;AAAA,UACnB,OACE,KAAA,GACI,EAAE,UAAU,QAAA,EAAU,KAAA,EAAO,EAAE,IAAA,CAAK,iBAAiB,CAAA,EAAE,GACvD,EAAE,QAAA,EAAU,QAAA,EAAU,MAAM,CAAA,CAAE,IAAA,CAAK,iBAAiB,CAAA;AAAE;AAAA,OAE9D;AAAA,MACCA,YAAA;AAAA,QACC,CAAC,MAAM,KAAA,qBACL,IAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,UAAA,EAAY;AAAA,cAChC,CAAC,QAAQ,SAAS,GAAG,EAAE,IAAA,CAAK,KAAK,EAAE,aAAa;AAAA,aACjD,CAAA;AAAA,YAEA,QAAA,EAAA;AAAA,cAAA,CAAC,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAA,oBAAK,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,CAAA,CAAE,IAAA,CAAK,WAAA,EAAa,IAAI,CAAA,EAAG,CAAA;AAAA,8BACvE,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,IAAI,CAAA;AAAA,kBAC3B,aAAA;AAAA,kBACA;AAAA;AAAA;AACF;AAAA,WAAA;AAAA,UAVK;AAAA,SAWP;AAAA,QAEF;AAAA;AACF,KAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;;ACvIA,MAAMF,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,IAAA,EAAM;AAAA,IACJ,cAAc,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACpD,aAAa,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACnD,OAAA,EAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,IAClD,aAAA,EAAe,UAAA;AAAA,IACf,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IAChC,SAAA,EAAW;AAAA,MACT,SAAA,EAAW,CAAA,gBAAA,EAAmB,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAAA,KAC1D;AAAA,IACA,UAAA,EAAY,UAAA;AAAA,IACZ,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,CAAA,gBAAA,EAAmB,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAAA,GAC1D;AAAA,EACA,SAAA,EAAW,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,aAAA;AAAA,EAC9B,OAAA,EAAS;AAAA,IACP,QAAQ,CAAA,WAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IAC7C,OAAA,EAAS;AAAA;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,SAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACd;AAAA,EACA,KAAA,EAAO;AAAA,IACL,QAAA,EAAU;AAAA;AAEd,CAAA,CAAE,CAAA;AAEF,MAAM,aAAA,GAAgB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,EAAA,CAAG,MAAM,CAAA,EAAG,CAAA,CAAE,UAAA,CAAW,CAAA,CAAE,MAAA,CAAO,GAAG,CAAC,CAAC,CAAA;AAE/D,MAAM,OAAO,CAAC;AAAA,EACnB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,mBAAmB,EAAC;AAAA,EACpB,WAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUA,WAAA,EAAU;AAC1B,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,QAAA,EAAU,CAAA;AACjC,EAAA,MAAM,UAAU,CAAA,CAAE,GAAA,CAAI,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAC,CAAA;AACtC,EAAA,MAAM,OAAA,GACJ,CAAA,CAAE,EAAA,CAAG,QAAA,EAAU,WAAW,KAAK,CAAC,CAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA,mBACxD,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,QAAA;AAAA,MACV,OAAA,EAAQ,OAAA;AAAA,MACR,SAAA,EAAU,QAAA;AAAA,MACV,OAAA,EAAS,MAAM,WAAA,CAAY,EAAE,kBAAkB,CAAA;AAAA,MAC/C,WAAW,OAAA,CAAQ,IAAA;AAAA,MAElB,QAAA,EAAA,CAAA,CAAE,GAAG,QAAA,EAAU,YAAY,oBAAI,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,KAAA,EAAO,CAAA,GAAK;AAAA;AAAA,GAClE,GACE,CAAA,CAAE,EAAA,CAAG,QAAA,EAAU,YAAY,oBAAI,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,KAAA,EAAO,CAAA,GAAK,KAAA;AAErE,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,aAAA,CAAc,QAAQ,CAAA,GAAI,OAAA,GAAU,SAAA;AAAA,MAC3C,SAAA,EAAW,QAAQ,KAAA,GAAQ,IAAA;AAAA,MAC3B,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,IAAA,EAAM;AAAA,QAC1B,CAAC,OAAA,CAAQ,OAAO,GAAG,KAAA;AAAA,QACnB,CAAC,OAAA,CAAQ,MAAM,GAAG,QAAA;AAAA,QAClB,CAAC,OAAA,CAAQ,SAAS,GAAG;AAAA,OACtB,CAAA;AAAA,MACD,OAAA;AAAA,MACA,kBAAA,EAAkB,OAAA;AAAA,MAClB,OAAA,EAAS,iBAAA;AAAA,MACT,QAAA,EAAU,CAAA;AAAA,MACV,OAAO,EAAE,SAAA,EAAW,YAAY,SAAA,GAAY,KAAA,GAAQ,SAAS,OAAA,EAAQ;AAAA,MAEpE,QAAA,EAAA;AAAA,QAAA,CAAC,CAAA,CAAE,MAAM,QAAQ,CAAA,wBAAM,QAAA,EAAA,EAAS,SAAA,EAAsB,SAAA,EAAW,OAAA,CAAQ,KAAA,EAAO,CAAA;AAAA,QAChF,OAAA,oBAAW,GAAA,CAAC,KAAA,EAAA,EAAM,YAAA,EAA4B,OAAc,aAAA,EAA8B,CAAA;AAAA,QAC1F;AAAA;AAAA;AAAA,GACH;AAEJ,CAAA;;AClFA,MAAMA,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,OAAA,EAAS;AAAA,IACP,cAAA,EAAgB,UAAA;AAAA,IAChB,iBAAiB,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,QAAQ,SAAA,CAAU,IAAA;AAAA,IAC3D,MAAA,EAAQ,SAAA;AAAA,IACR,cAAc,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IAClD,aAAa,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACjD,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,IAC3B,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IAChC,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY;AAAA,GACd;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,QAAA;AAAA,IACX,UAAA,EAAY,MAAA;AAAA,IACZ,WAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,GAAG;AAAA,GAChC;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACd;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,MAAA,EAAQ,MAAA;AAAA,IACR,iBAAiB,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,QAAQ,SAAA,CAAU,IAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,GACf;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GACvB;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GACxB;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,GAAA,EAAK,CAAC;AAAA;AAEjC,CAAA,CAAE,CAAA;AACF,MAAME,YAAA,GAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AAE5B,MAAM,gBAAgB,CAAC;AAAA,EAC5B,UAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUF,WAAA,EAAU;AAC1B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,KAAA,GAAQ,SAAS,KAAK,CAAA;AAC5B,EAAA,IAAI,CAAA,CAAE,QAAQ,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,KAAA,EAAO,EAAE,OAAO,CAAC,GAAG,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,MAAM,CAAC,CAAC,CAAA,CAAE,OAAO,CAAA,EAAG,OAAO,IAAA;AAErF,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MAEC,WAAW,OAAA,CAAQ,mBAAA;AAAA,MACnB,OAAO,EAAE,IAAA,EAAM,GAAG,GAAA,EAAK,YAAA,EAAc,QAAQ,CAAA,EAAE;AAAA,MAE/C,QAAA,kBAAA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,IAAA;AAAA,UACV,WAAW,OAAA,CAAQ,OAAA;AAAA,UACnB,OAAA,EAAS,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,GAAA,CAAI,iBAAiB,CAAC,CAAA,CAAE,UAAU,CAAA;AAAA,UACrE,EAAA,EAAI,cAAA;AAAA,UACJ,KAAA,EAAM,KAAA;AAAA,UAEN,QAAA,kBAAA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,YAAW,QAAA,EACzB,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAI,IAAA;AAAA,gBACJ,KAAA,EACE,KAAA,GAAQ,EAAE,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,KAAA,EAAM,GAAI,EAAE,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,KAAA,EAAM;AAAA,gBAGnF,QAAA,kBAAA,GAAA,CAAC,cAAW,OAAA,EAAQ,OAAA,EAAQ,WAAU,KAAA,EAAM,SAAA,EAAW,QAAQ,gBAAA,EAC7D,QAAA,kBAAA,IAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,OAAA,CAAQ,mBAAA;AAAA,sBACR,OAAA,CAAQ,iBAAA;AAAA,sBACR,OAAA,CAAQ;AAAA,qBACV;AAAA,oBAEC,QAAA,EAAA;AAAA,sBAAAE,YAAA;AAAA,wBACC,CAAC,eAAe,KAAA,KAAU;AACxB,0BAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAa,CAAA,CAAE,aAAa,CAAA;AACnD,0BAAA,4BACG,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,KAAA,KAAU,CAAA,wBAAM,IAAA,EAAA,EAAG,CAAA;AAAA,4CAEpB,IAAA;AAAA,8BAAC,UAAA;AAAA,8BAAA;AAAA,gCACC,MAAA,EAAM,IAAA;AAAA,gCACN,OAAA,EAAQ,OAAA;AAAA,gCACR,SAAA,EAAU,MAAA;AAAA,gCACV,QAAA,EAAU,CAAA;AAAA,gCACV,WAAW,OAAA,CAAQ,KAAA;AAAA,gCACnB,aAAA,EAAY,aAAA;AAAA,gCACZ,cAAY,CAAA,CAAE,IAAA,CAAK,CAAC,WAAA,EAAa,IAAI,GAAG,aAAa,CAAA;AAAA,gCAEpD,QAAA,EAAA;AAAA,kCAAA,CAAA,CAAE,KAAK,CAAA,CAAE,IAAA,CAAK,WAAW,CAAA,EAAG,aAAa,EAAE,aAAa,CAAA;AAAA,kCACxD;AAAA;AAAA;AAAA,6BACH;AAAA,4CACA,GAAA,CAAC,UAAA,EAAA,EAAW,MAAA,EAAM,IAAA,EAAC,SAAQ,OAAA,EAAQ,SAAA,EAAU,MAAA,EAAO,QAAA,EAAU,CAAA,EAC3D,QAAA,EAAA,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,KAAK,CAAA,EACxB,CAAA;AAAA,4CACA,GAAA;AAAA,8BAAC,KAAA;AAAA,8BAAA;AAAA,gCACC,YAAA;AAAA,gCACA,aAAA;AAAA,gCACA,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,KAAK;AAAA;AAAA;AAC9B,2BAAA,EAAA,EAtBa,KAuBf,CAAA;AAAA,wBAEJ,CAAA;AAAA,wBACA,EAAE,IAAA,CAAK,CAAC,CAAA,EAAG,MAAM,GAAG,OAAO;AAAA,uBAC7B;AAAA,0CACC,MAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BACC,YAAA;AAAA,0BACA,OAAO,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,OAAO,CAAA;AAAA,0BACnC;AAAA;AAAA,uBACF,EACF;AAAA;AAAA;AAAA,iBACF,EACF;AAAA;AAAA,aACF;AAAA,YACC,CAAC,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAA,wBACf,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,KAAA,EAAO,EAAE,UAAA,EAAY,IAAG,EACjC,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,WAAW,CAAA,EAAG,OAAO,CAAA,EAAG,CAAA,EAC1D;AAAA,WAAA,EAEJ;AAAA;AAAA;AACF,KAAA;AAAA,IA1EK,OAAA,CAAQ;AAAA,GA2Ef;AAEJ,CAAA;;ACpIA,MAAMF,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,QAAA,EAAU;AAAA,IACR,iBAAiB,QAAA,CAAS,KAAK,CAAA,IAAK,KAAA,CAAM,QAAQ,SAAA,CAAU,KAAA;AAAA,IAC5D,MAAA,EAAQ,SAAA;AAAA,IACR,cAAc,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACpD,aAAa,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACnD,OAAA,EAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,IAClD,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IAChC,aAAA,EAAe,KAAA;AAAA,IACf,KAAA,EAAO,MAAA;AAAA,IACP,cAAA,EAAgB,UAAA;AAAA,IAChB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAA,EAAY;AAAA,GACd;AAAA,EACA,UAAA,EAAY;AAAA,IACV,QAAA,EAAU,MAAA;AAAA,IACV,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA;AAAA,IACvC,aAAA,EAAe,KAAA;AAAA,IACf,MAAA,EAAQ,SAAA;AAAA,IACR,cAAc,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACpD,aAAa,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACnD,OAAA,EAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,IAClD,QAAA,EAAU,QAAA;AAAA,IACV,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACd;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY;AAAA,GACd;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,SAAA,EAAW,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,aAAA;AAAA,EAC9B,YAAA,EAAc;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,MAAA,EAAQ;AAAA;AAEZ,CAAA,CAAE,CAAA;AACF,MAAME,YAAA,GAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AAEnC,MAAM,mBAAmB,CAAC;AAAA,EACxB,UAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,iBAAA;AAAA,EACA,WAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,QAAA;AAAA,EACA,iBAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUF,WAAA,EAAU;AAC1B,EAAA,MAAM,iBAAiB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,KAAK,GAAG,OAAO,CAAA;AACjD,EAAA,MAAM,gBAAA,GAAmB,CAAA,CAAE,MAAA,CAAO,eAAe,CAAA;AACjD,EAAA,MAAM,UAAA,GAAa,CAAA,CAAE,IAAA,CAAK,eAAe,CAAA;AACzC,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,KAAA,GAAQ,SAAS,KAAK,CAAA;AAE5B,EAAA,4BACG,SAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,UAAA;AAAA,QACA,OAAA;AAAA,QACA,cAAA;AAAA,QACA,iBAAA;AAAA,QACA,YAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,IACCE,YAAA;AAAA,MACC,CAAC,aAAa,QAAA,KAAa;AACzB,QAAA,MAAM,QAAQ,CAAA,EAAG,WAAA,CAAY,GAAG,CAAA,CAAA,EAAI,YAAY,IAAI,QAAQ,CAAA,CAAA;AAC5D,QAAA,MAAM,SAAS,CAAA,CAAE,IAAA;AAAA,UACf,CAAA,CAAE,GAAA,CAAI,CAAA,KAAA,KAAS,CAAA,EAAG,WAAA,CAAY,GAAG,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA;AAAA,UAC5D,CAAA,CAAE,KAAK,GAAG;AAAA,SACZ,CAAE,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,IAAA,CAAK,MAAA,EAAQ,WAAW,CAAC,CAAC,CAAC,CAAA;AAC5D,QAAA,4BACG,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,UAAA,CAAA,CAAE,KAAA;AAAA,YAAM,CAAA,KAAA,KAAS;AAChB,cAAA,MAAM,OAAO,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,KAAK,GAAG,WAAW,CAAA;AAChD,cAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,KAAA,CAAM,IAAI,CAAA,GAAI,EAAE,KAAA,EAAO,EAAA,EAAG,GAAI,QAAA,CAAS,aAAa,CAAA,CAAE,IAAI,CAAA;AAC1E,cAAA,MAAM,QAAQ,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,SAAS,KAAK,CAAA;AACzC,cAAA,MAAM,KAAK,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,KAAK,IAAI,KAAK,CAAA,CAAA;AAGxC,cAAA,MAAM,iBAAiB,CAAA,CAAE,IAAA;AAAA,gBACvB,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,SAAS,CAAA;AAAA,gBACtB,CAAA,CAAE,KAAK,CAAA,CAAE,KAAA,EAAO,EAAE,MAAA,CAAO,EAAE,CAAC,CAAA;AAAA,gBAC5B,CAAA,CAAE,MAAA;AAAA;AAAA,gBAEF,CAAA,CAAE,KAAA,CAAM,MAAM,KAAK;AAAA,gBACnB,KAAK,CAAA;AAEP,cAAA,uBACE,GAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,QAAA,EAAU,QAAQ,YAAA,EAAc;AAAA,oBACpD,CAAC,QAAQ,SAAS,GAAG,EAAE,IAAA,CAAK,KAAK,EAAE,aAAa,CAAA;AAAA,oBAChD,CAAC,OAAA,CAAQ,eAAe,GACtB,CAAA,CAAE,GAAG,QAAA,EAAU,QAAQ,CAAA,IAAK,QAAA,CAAS,EAAE,MAAA,CAAO,EAAC,EAAG,WAAA,EAAa,IAAI,CAAC;AAAA,mBACvE,CAAA;AAAA,kBACD,EAAA;AAAA,kBACA,OAAA,EAAS,CAAA,UAAA,EAAa,KAAK,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA;AAAA,kBAC7C,SAAA,EAAU,IAAA;AAAA,kBACV,KAAA,EACE,KAAA,GACI,EAAE,KAAA,EAAO,iBAAA,CAAkB,KAAK,CAAA,EAAE,GAClC,EAAE,IAAA,EAAM,iBAAA,CAAkB,KAAK,CAAA,EAAE;AAAA,kBAGvC,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,WAAA,EACrB,QAAA,EAAA;AAAA,oBAAA,CAAC,CAAA,CAAE,QAAQ,cAAc,CAAA,wBACvB,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,cAAA,EAAiB,QAAA,EAAA,cAAA,EAAe,CAAA;AAAA,oCAE1D,IAAA;AAAA,sBAAC,UAAA;AAAA,sBAAA;AAAA,wBACC,OAAA,EAAQ,OAAA;AAAA,wBACR,QAAA,EAAU,CAAA;AAAA,wBACV,kBAAA,EAAkB,CAAA,UAAA,EAAa,KAAK,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA;AAAA,wBAErD,QAAA,EAAA;AAAA,0BAAA,CAAA,CAAE,IAAA,CAAK,SAAS,KAAK,CAAA;AAAA,0CACtB,GAAA;AAAA,4BAAC,KAAA;AAAA,4BAAA;AAAA,8BACC,YAAA;AAAA,8BACA,aAAA;AAAA,8BACA;AAAA;AAAA;AACF;AAAA;AAAA;AACF,mBAAA,EACF;AAAA,iBAAA;AAAA,gBA/BK;AAAA,eAgCP;AAAA,YAEJ,CAAA;AAAA,YAAG;AAAA;AAAA,WAAiD;AAAA,0BACpD,GAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,UAAA,EAAY;AAAA,gBAChC,CAAC,QAAQ,SAAS,GAAG,EAAE,IAAA,CAAK,KAAK,EAAE,aAAa;AAAA,eACjD,CAAA;AAAA,cACD,KAAA,EACE,KAAA,GAAQ,EAAE,KAAA,EAAO,EAAE,IAAA,CAAK,iBAAiB,CAAA,EAAE,GAAI,EAAE,IAAA,EAAM,CAAA,CAAE,IAAA,CAAK,iBAAiB,CAAA,EAAE;AAAA,cAGnF,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,aAAA,EACrB,QAAA,EAAA;AAAA,gBAAA,CAAC,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAA,oBAAK,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,CAAA,CAAE,IAAA,CAAK,WAAA,EAAa,WAAW,CAAA,EAAG,CAAA;AAAA,gCAC9E,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,YAAA;AAAA,oBACA,aAAA;AAAA,oBACA,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,WAAW;AAAA;AAAA;AACpC,eAAA,EACF;AAAA;AAAA,WACF;AAAA,UACCA,YAAA,CAAW,CAAC,IAAA,EAAM,WAAA,KAAgB;AACjC,YAAA,MAAM,YAAY,CAAA,CAAE,IAAA;AAAA,cAClB,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,QAAQ,CAAA;AAAA,cAClB,CAAA,CAAE,GAAA,CAAI,CAAAC,SAAAA,KAAY;AAChB,gBAAA,MAAM,WAAW,CAAA,CAAE,MAAA;AAAA,kBACjB,WAAA;AAAA,kBACA,EAAE,MAAA,CAAO,UAAA,EAAY,EAAE,GAAA,CAAIA,SAAAA,EAAU,eAAe,CAAC;AAAA,iBACvD;AACA,gBAAA,OAAO,GAAG,IAAA,CAAK,KAAA,CAAM,YAAY,CAAC,CAAC,IAAIA,SAAQ,CAAA,CAAA;AAAA,cACjD,CAAC,CAAA;AAAA,cACD,CAAA,CAAE,KAAK,GAAG;AAAA,cACV,gBAAgB,CAAA;AAElB,YAAA,MAAM,kBAAA,GAAqB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA;AAClD,YAAA,MAAM,WAAW,CAAA,CAAE,IAAA;AAAA,cACjB,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,oBAAoB,CAAA;AAAA,cACjC,CAAA,CAAE,OAAO,kBAAkB;AAAA,cAC3B,aAAa,CAAA;AACf,YAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,OAAA,IAAW,WAAA,CAAY,UAAU,EAAA,GAAK,IAAA;AACnE,YAAA,uBACE,aAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACE,GAAG,CAAA,CAAE,IAAA;AAAA,kBACJ,CAAA,CAAE,MAAA,CAAO,EAAE,KAAA,EAAO,IAAA,EAAK,EAAG,CAAC,IAAA,CAAK,GAAA,EAAK,cAAA,EAAgB,WAAA,CAAY,GAAA,EAAK,CAAC,CAAC,CAAA;AAAA,kBACxE,CAAA,CAAE,IAAA;AAAA,oBAAK,CAAA,CAAE,SAAS,OAAO,CAAA;AAAA,oBAAG,SAC1B,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA,GAAI,eAAA,GAAkB,kBAAkB,GAAG;AAAA;AACxD,kBACA,KAAK,CAAA;AAAA,gBACP,GAAA,EAAK,kBAAA;AAAA,gBACL,SAAS,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,SAAS,IAAI,cAAc,CAAA,CAAA;AAAA,gBACjD,WAAA;AAAA,gBACA,YAAA;AAAA,gBACA,aAAA;AAAA,gBACA,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,SAAA;AAAA,gBACA,WAAA,EAAa,CAAA,CAAE,GAAA,CAAI,CAAA,CAAE,QAAQ,CAAA,CAAE;AAAA,kBAC7B,CAAA,CAAE,IAAA,CAAK,KAAK,CAAA,CAAE,aAAa,CAAA;AAAA,kBAC3B,CAAA,CAAE,IAAA,CAAK,WAAW,CAAA,CAAE,aAAa;AAAA,iBAClC,CAAA;AAAA,gBACD,iBAAA,EACE,EAAE,EAAA,CAAG,QAAQ,EAAE,iBAAiB,CAAA,GAC5B,MACE,iBAAA,CAAkB;AAAA,kBAChB,CAAC,KAAK,GAAG,CAAA,CAAE,IAAI,QAAQ,CAAA;AAAA,kBACvB,CAAC,WAAW,GAAG,CAAA,CAAE,IAAI,QAAQ,CAAA;AAAA,kBAC7B,kBAAA,EAAoB,WAAW,IAAA,GAAO;AAAA,iBACvC,CAAA,GACH;AAAA;AAAA,aAER;AAAA,UAEJ,GAAG,UAAU;AAAA,SAAA,EAAA,EAzHA,KA0Hf,CAAA;AAAA,MAEJ,CAAA;AAAA,MACA,CAAA,CAAE,GAAA,CAAI,CAAA,EAAG,OAAO;AAAA;AAClB,GAAA,EACF,CAAA;AAEJ,CAAA;AAEO,MAAM,OAAA,GAAU,KAAK,gBAAgB,CAAA;;ACvO5C,MAAMH,WAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,aAAA,EAAe;AAAA,IACb,OAAO,KAAA,CAAM,OAAA,CAAQ,gBAAgB,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAAA,IAC/D,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,IACvC,MAAA,EAAQ,SAAA;AAAA,IACR,cAAc,CAAA,WAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IACnD,aAAa,CAAA,WAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IAClD,OAAA,EAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,IAClD,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY;AAAA,MACV,OAAA,EAAS;AAAA,KACX;AAAA,IACA,SAAA,EAAW;AAAA,GACb;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,UAAA;AAAA,IAChB,SAAA,EAAW;AAAA,GACb;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,SAAA,EAAW,SAAA;AAAA,IACX,UAAA,EAAY;AAAA,GACd;AAAA,EACA,WAAA,EAAa;AAAA,IACX,QAAA,EAAU;AAAA;AAEd,CAAA,CAAE,CAAA;AAEF,MAAM,YAAA,GAAe,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,KAAK,CAAA;AACvC,MAAME,YAAA,GAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AAE5B,MAAM,SAAS,CAAC;AAAA,EACrB,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAUF,WAAA,EAAU;AAC1B,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,KAAA,GAAQ,SAAS,KAAK,CAAA;AAE5B,EAAA,MAAM,mBAAA,GAAsB,CAAA,EAAG,CAAA,CAAE,IAAA,CAAK,iBAAiB,CAAC,CAAA,YAAA,EAAe,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAEvF,EAAA,IAAI,CAAA,CAAE,QAAQ,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,KAAA,EAAO,EAAE,OAAO,CAAC,GAAG,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,MAAM,CAAC,CAAC,CAAA,CAAE,UAAU,CAAA,EAAG,OAAO,IAAA;AACxF,EAAA,OAAO,YAAA;AAAA,IACL,CAAA,KAAA,KAAS;AACP,MAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,QAAQ,KAAA,EAAO,WAAA,EAAa,OAAO,CAAA,EAAG,UAAU,CAAA;AACzE,MAAA,MAAM,EAAA,GAAK,UAAU,KAAK,CAAA,CAAA;AAC1B,MAAA,4BACG,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,IAAA;AAAA,YACV,OAAA,EAAQ,MAAA;AAAA,YACR,KAAA,EAAM,QAAA;AAAA,YACN,WAAW,OAAA,CAAQ,aAAA;AAAA,YACnB,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,iBAAiB,CAAA;AAAA,YAChC,EAAA;AAAA,YACA,QAAA,EAAU,CAAA;AAAA,YACV,KAAA,EAAM,KAAA;AAAA,YACN,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,KAAK,CAAC,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,WAAW,CAAC,CAAA,EAAG,aAAa,EAAE,UAAU,CAAA;AAAA,YACjF,OACE,KAAA,GACI,EAAE,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA,EAAG,KAAA,EAAO,CAAA,EAAE,GAC1C,EAAE,QAAA,EAAU,QAAA,EAAU,MAAA,EAAQ,CAAA,EAAG,MAAM,CAAA,EAAE;AAAA,YAG/C,QAAA,kBAAA,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,WAAW,OAAA,CAAQ,gBAAA;AAAA,gBACnB,YAAA,EAAY,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,QAAQ,KAAA,EAAO,WAAA,EAAa,IAAI,CAAA,EAAG,UAAU,CAAA;AAAA,gBACpE,aAAA,EAAa,CAAA,UAAA,CAAA;AAAA,gBACb,IAAA,EAAK,KAAA;AAAA,gBAEL,+BAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAW,QAAQ,eAAA,EAC5C,QAAA,EAAA;AAAA,kBAAA,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,IAAA,CAAK,CAAC,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,WAAW,CAAC,CAAA,EAAG,aAAa,CAAA,CAAE,UAAU,CAAA;AAAA,kCAC3E,GAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,YAAA;AAAA,sBACA,KAAA;AAAA,sBACA,QAAA,EAAQ,IAAA;AAAA,sBACR;AAAA;AAAA;AACF,iBAAA,EACF;AAAA;AAAA;AACF;AAAA,SACF;AAAA,QACCE,YAAA;AAAA,UACC,CAAC,YAAY,GAAA,KAAQ;AACnB,YAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,OAAA,GACrB,EAAE,KAAA,EAAO,IAAG,GACZ,QAAA,CAAS,aAAa,CAAA,CAAE,UAAU,CAAA;AACtC,YAAA,MAAME,SAAQ,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,SAAS,KAAK,CAAA;AACzC,YAAA,MAAM,iBAAiB,CAAA,CAAE,IAAA;AAAA,cACvB,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,SAAS,CAAA;AAAA,cACtB,CAAA,CAAE,MAAA;AAAA,cACF,CAAA,CAAE,KAAA,CAAM,MAAM,GAAG;AAAA,cACjB,KAAK,CAAA;AACP,YAAA,uBACE,GAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBAEC,SAAA,EAAU,IAAA;AAAA,gBACV,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,aAAA,EAAe;AAAA,kBACnC,CAAC,QAAQ,OAAO,GAAG,EAAE,GAAA,CAAI,CAAA,CAAE,OAAA,CAAQA,MAAK,CAAC;AAAA,iBAC1C,CAAA;AAAA,gBACD,EAAA,EAAI,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,gBACnB,OAAA,EAAS,UAAU,KAAK,CAAA,CAAA;AAAA,gBACxB,OAAA,EAAS,CAAA,CAAE,IAAA,CAAK,WAAA,EAAa,UAAU,CAAA;AAAA,gBACvC,QAAA,EAAU,CAAA;AAAA,gBACV,KAAA,EAAO,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,KAAK,CAAA;AAAA,gBAC5B,YAAA,EAAY,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,KAAK,CAAA;AAAA,gBACjC,kBAAA,EAAkB,EAAA;AAAA,gBAClB,KAAA,EAAM,KAAA;AAAA,gBAEN,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,iBAAA,EACrB,QAAA,EAAA;AAAA,kBAAA,CAAC,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA,IACxBF,aAAW,CAAC,KAAA,EAAOG,IAAAA,qBAAQ,GAAA,CAAC,KAAA,EAAA,EAAe,QAAA,EAAA,KAAA,EAAA,EAANA,IAAY,CAAM,EAAE,cAAc,CAAA;AAAA,kCACzE,IAAA;AAAA,oBAAC,UAAA;AAAA,oBAAA;AAAA,sBACC,WAAW,OAAA,CAAQ,WAAA;AAAA,sBACnB,KAAA,EAAO;AAAA,wBACL,IAAA,EAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,mBAAA;AAAA,wBACjC,KAAA,EAAO,KAAA,GAAQ,mBAAA,GAAsB,KAAA,CAAM,QAAQ,CAAC;AAAA,uBACtD;AAAA,sBACA,OAAA,EAAQ,OAAA;AAAA,sBAEP,QAAA,EAAA;AAAA,wBAAA,CAAA,CAAE,IAAA,CAAK,SAAS,KAAK,CAAA;AAAA,wCACtB,GAAA;AAAA,0BAAC,KAAA;AAAA,0BAAA;AAAA,4BACC,YAAA;AAAA,4BACA,KAAA,EAAOD,MAAAA;AAAA,4BACP,QAAA,EAAQ,IAAA;AAAA,4BACR;AAAA;AAAA;AACF;AAAA;AAAA;AACF,iBAAA,EACF;AAAA,eAAA;AAAA,cAjCK,GAAG,CAAA,CAAE,IAAA,CAAK,MAAM,KAAK,CAAC,IAAI,GAAG,CAAA;AAAA,aAkCpC;AAAA,UAEJ,CAAA;AAAA,UACA,CAAA,CAAE,GAAA,CAAI,KAAA,EAAO,gBAAgB;AAAA;AAC/B,OAAA,EAAA,EArFa,EAsFf,CAAA;AAAA,IAEJ,CAAA;AAAA,IACA,CAAA,CAAE,OAAA,CAAQ,CAAA,CAAE,MAAA,EAAQ,EAAE,MAAA,CAAO,EAAC,EAAG,CAAC,EAAA,EAAI,MAAM,CAAC,CAAC,EAAE,UAAU;AAAA,GAC5D;AACF,CAAA;;AC/IA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,uBAAA;AAAA,IACT,SAAA,EAAW,eAAA;AAAA,IACX,cAAA,EAAgB,UAAA;AAAA,IAChB,YAAY,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IAChD,WAAW,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,IAC/C,OAAA,EAAS;AAAA,GACX;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,GAAA,EAAK,CAAA;AAAA,IACL,MAAA,EAAQ;AAAA;AAEZ,CAAA,CAAE,CAAA;AAEF,MAAM,UAAA,GAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA;AAE5B,MAAM,8BAA8B,CAAA,IAAA,KAAQ;AACjD,EAAA,MAAM,SAAA,GAAY,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,MAAM,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,MAAM,CAAA,EAAG,CAAA,CAAE,MAAM,EAAE,IAAI,CAAA;AACrE,EAAA,OAAO,CAAA,CAAE,IAAA;AAAA,IACP,CAAA,CAAE,MAAM,MAAM,CAAA;AAAA;AAAA,IAEd,CAAA,CAAE,MAAA;AAAA,MACA,CAAC,KAAK,KAAA,KAAU;AACd,QAAA,CAAA,CAAE,SAAS,CAAA,CAAE,OAAO,CAAA,CAAE,CAAC,GAAG,QAAA,KAAa;AACrC,UAAA,MAAM,OAAO,CAAA,CAAE,GAAA,CAAI,QAAA,EAAU,KAAK,KAAK,EAAC;AACxC,UAAA,MAAM,MAAA,GAAS,CAAA,CAAE,GAAA,CAAI,QAAA,EAAU,IAAI,CAAA,GAC/B,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,IAAA,CAAK,QAAQ,CAAA,EAAG,CAAA,CAAE,MAAM,IAAI,CAAA,EAAG,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,IAAI,IACzD,CAAA,CAAE,MAAA,CAAO,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,EAAI,CAAC,OAAA,EAAS,IAAI,GAAG,IAAI,CAAA;AACxD,UAAA,MAAM,OAAA,GAAU,QAAA,GAAW,CAAA,GAAI,CAAA,CAAE,KAAK,CAAA,CAAE,GAAA,CAAI,QAAA,GAAW,CAAC,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAE,GAAG,CAAA,GAAI,IAAA;AAC1E,UAAA,MAAM,OAAA,GAAU,CAAA,CAAE,KAAA,CAAM,OAAO,CAAA,GAAI,SAAS,CAAA,EAAG,OAAA,CAAQ,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAEpE,UAAA,MAAM,QAAA,GAAW,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,GAAA,CAAI,QAAQ,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAE,GAAG,CAAA;AACpD,UAAA,IAAI,CAAA,CAAE,KAAK,KAAA,EAAO,QAAQ,MAAM,OAAA,IAAW,QAAA,KAAa,YAAY,CAAA,EAAG;AACrE,YAAA,GAAA,GAAM,CAAA,CAAE,IAAA;AAAA,cACN,CAAA,CAAE,UAAU,QAAQ,CAAA;AAAA,cACpB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,SAAA,CAAU,EAAE,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,EAAE,WAAW,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,CAAC;AAAA,cACzD,GAAG,CAAA;AAAA,UACP,CAAA,MAAO;AACL,YAAA,GAAA,GAAM,CAAA,CAAE,IAAA;AAAA,cACN,CAAA,CAAE,UAAU,QAAQ,CAAA;AAAA,cACpB,EAAE,MAAA,CAAO;AAAA,gBACP,GAAG,CAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,QAAQ,GAAG,IAAI,CAAA;AAAA,gBACnC,GAAA,EAAK,OAAA;AAAA,gBACL,SAAA,EAAW,CAAA;AAAA,gBACX,OAAA,EAAS,CAAA,CAAE,OAAA,CAAQ,IAAI;AAAA,eACxB;AAAA,cACD,GAAG,CAAA;AAAA,UACP;AAAA,QACF,CAAC,EAAE,GAAG,CAAA;AACN,QAAA,OAAO,GAAA;AAAA,MACT,CAAA;AAAA,MACA,EAAE,KAAA,CAAM,CAAA,CAAE,OAAO,EAAE,GAAG,SAAS;AAAA;AACjC,IACA,IAAI,CAAA;AACR;AAEA,MAAM,aAAA,GAAgB,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,MAAM,CAAA;AAAA,EACvC,CAAC,GAAA,EAAK,OAAA,EAAS,UAAU,CAAA,CAAE,MAAA,CAAO,EAAE,GAAA,CAAI,GAAA,CAAI,KAAK,CAAA,EAAG,EAAE,MAAA,CAAO,CAAA,EAAG,eAAe,OAAO,CAAC,GAAG,GAAG,CAAA;AAAA,EAC7F,CAAC,CAAC;AACJ,CAAA;AAEO,MAAM,aAAa,CAAC;AAAA,EACzB,KAAA;AAAA,EACA,aAAa,EAAC;AAAA,EACd,eAAe,EAAC;AAAA,EAChB,WAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA,GAAS,WAAA;AAAA,EACT,YAAA;AAAA,EACA,oBAAoB,CAAA,CAAE,QAAA;AAAA,EACtB,aAAA,GAAgB,oBAAA;AAAA,EAChB,SAAA;AAAA,EACA,QAAA,GAAW,CAAA,CAAE,MAAA,CAAO,KAAK;AAC3B,CAAA,KAAM;AACJ,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,CAAC,CAAA;AAClD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,IAAI,QAAA,CAAS,CAAC,CAAC,CAAC,CAAA;AAC9D,EAAA,MAAM,SAAA,GAAY,OAAO,IAAI,CAAA;AAC7B,EAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,EAAE,CAAA;AAEjC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,CAAA,EAAG,CAAC,WAAW,cAAc,CAAA,EAAG,SAAS,CAAC,CAAA;AACnE,IAAA,oBAAA,CAAqB,cAAc,CAAA,CAAE,IAAA,CAAK,SAAA,EAAW,eAAe,CAAC,CAAC,CAAA;AAAA,EACxE,CAAA,EAAG,CAAC,KAAA,EAAO,UAAA,EAAY,YAAY,CAAC,CAAA;AAEpC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,SAAA,GAAY,IAAA;AAChB,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,YAAA,CAAa,SAAS,CAAA;AACtB,MAAA,SAAA,GAAY,WAAW,MAAM;AAC3B,QAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,CAAA,EAAG,CAAC,WAAW,cAAc,CAAA,EAAG,SAAS,CAAC,CAAA;AACnE,QAAA,oBAAA,CAAqB,cAAc,CAAA,CAAE,IAAA,CAAK,SAAA,EAAW,eAAe,CAAC,CAAC,CAAA;AAAA,MACxE,GAAG,GAAG,CAAA;AAAA,IACR,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,cAAc,CAAA;AAChD,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,QAAA,EAAU,cAAc,CAAA;AAAA,EAClE,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,WAAA,GAAc,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,CAAC,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,MAAM,CAAA,EAAG,YAAY,CAAA;AACjE,EAAA,MAAM,iBAAA,GAAoB,CAAA,CAAE,MAAA,CAAO,WAAW,CAAA;AAC9C,EAAA,MAAM,EAAE,gBAAA,EAAkB,eAAA,EAAgB,GAAI,QAAQ,MAAM;AAC1D,IAAA,MAAME,iBAAAA,GAAmB,4BAA4B,UAAU,CAAA;AAC/D,IAAA,MAAMC,mBAAkB,CAAA,CAAE,GAAA,CAAI,CAAA,CAAE,MAAM,EAAED,iBAAgB,CAAA;AACxD,IAAA,OAAO,EAAE,gBAAA,EAAAA,iBAAAA,EAAkB,eAAA,EAAAC,gBAAAA,EAAgB;AAAA,EAC7C,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,MAAM,WAAA,GAAc,EAAE,OAAA,CAAQ,CAAC,IAAI,EAAA,EAAI,EAAA,EAAI,CAAC,CAAA,EAAG,KAAK,CAAA;AACpD,EAAA,IAAI,WAAA;AACF,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,YAAA;AAAA,QACA,aAAA;AAAA,QACC,GAAG,CAAA,CAAE,MAAA,CAAO,EAAC,EAAG,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAC,CAAA,EAAG,KAAK,CAAA;AAAA,QACvC,WAAA;AAAA,QACA,KAAA,EAAK,IAAA;AAAA,QACL;AAAA;AAAA,KACF;AAGJ,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAW,OAAA,CAAQ,KAAA,EAAO,cAAW,OAAA,EAAQ,IAAA,EAAK,OAAA,EAAQ,aAAA,EAAa,MAAA,EAC5E,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,OAAA,EAAA,EAAM,GAAA,EAAK,SAAA,EAAW,SAAA,EAAW,QAAQ,YAAA,EACxC,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,UAAA;AAAA,UACA,gBAAA;AAAA,UACA,iBAAA;AAAA,UACA,iBAAA;AAAA,UACA,YAAA;AAAA,UACA;AAAA;AAAA,OACF;AAAA,sBACA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,UAAA;AAAA,UACA,WAAA;AAAA,UACA,aAAA;AAAA,UACA,QAAA;AAAA,UACA,GAAA,EAAK,eAAA;AAAA,UACL,iBAAA;AAAA,UACA,YAAA;AAAA,UACA;AAAA;AAAA;AACF,KAAA,EACF,CAAA;AAAA,IACC,UAAA;AAAA,MACC,CAAC,SAAS,KAAA,qBACR,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UAEC,YAAA,EAAc,KAAA;AAAA,UACd,YAAA;AAAA,UACA,eAAA;AAAA,UACA,UAAA;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,UACA,iBAAA;AAAA,UACA,WAAA;AAAA,UACA,aAAA;AAAA,UACA,iBAAA;AAAA,UACA,QAAA;AAAA,UACA,iBAAA;AAAA,UACA,YAAA;AAAA,UACA,iBAAA;AAAA,UACA,aAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA,SAAA;AAAA,QAjBK,WAAW,KAAK,CAAA;AAAA,OAkBvB;AAAA,MAEF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"TableHtml5.js","sources":["../../src/TableHtml5/utils.js","../../src/TableHtml5/flags.jsx","../../src/TableHtml5/subHeader.jsx","../../src/TableHtml5/cell.jsx","../../src/TableHtml5/sectionHeader.jsx","../../src/TableHtml5/section.jsx","../../src/TableHtml5/header.jsx","../../src/TableHtml5/TableHtml5.jsx"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getValue = labelAccessor => item =>\n R.has('values', item)\n ? R.reduce(\n (acc, val) => ({\n label: acc.label,\n id: R.isEmpty(acc.id) ? val.id : `${acc.id}, ${val.id}`,\n flags: R.concat(acc.flags, val.flags || []),\n parents: R.concat(acc.parents, val.parents || []),\n }),\n { id: '', flags: [], parents: [], label: labelAccessor(item.values) },\n item.values,\n )\n : R.pipe(R.prop('value'), val => R.assoc('label', labelAccessor(val), val))(item);\n\nexport const defaultLabelAccessor = item => {\n if (R.is(Object, item)) {\n return R.prop('name', item);\n }\n return R.pipe(R.pluck('name'), R.join(', '))(item);\n};\n","import React, { Fragment } from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport { visuallyHidden } from '@mui/utils';\nimport Tooltip from '@mui/material/Tooltip';\nimport { Asterisk } from '../Icons/Asterisk';\nimport { getValue } from './utils';\nimport useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';\n\nconst flagStylePath = theme => R.pathOr({}, ['mixins', 'table', 'flag'], theme);\nconst useStyles = makeStyles(theme => ({\n content: {\n borderRadius: 3,\n boxSizing: 'border-box',\n listStyleType: 'none',\n maxWidth: 270,\n padding: 0,\n margin: 0,\n ...theme.typography.body1,\n },\n flags: {\n borderBottom: '1px dotted',\n borderColor: 'inherit',\n margin: theme.spacing(0, 0.5),\n whiteSpace: 'nowrap',\n display: 'inline',\n fontWeight: 'bold',\n fontStyle: 'normal',\n position: 'relative',\n verticalAlign: R.propOr('middle', 'verticalAlign', flagStylePath(theme)),\n ...R.propOr({}, 'root', flagStylePath(theme)),\n },\n svg: {\n verticalAlign: R.propOr('middle', 'verticalAlign', flagStylePath(theme)),\n },\n header: {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n },\n}));\n\nexport const Flags = ({ flags = [], isHeader, HTMLRenderer, labelAccessor }) => {\n const classes = useStyles();\n const theme = useTheme();\n const noFlags = R.isNil(flags) || R.isEmpty(flags);\n const { open, setOpen } = useKeyboardEscapeHandler();\n\n if (noFlags) return null;\n\n const hasUncoded = R.any(R.complement(R.has('code')), flags);\n const codedIcons = R.pipe(\n R.reduce((acc, flag) => R.when(R.always(R.has('code', flag)), R.append(flag.code))(acc), []),\n R.join(R.propOr(',', 'delimiters', flagStylePath(theme))),\n )(flags);\n\n const labels = R.map(flag => {\n const value = getValue(labelAccessor)(flag);\n return R.isEmpty(labelAccessor(flag)) ? value.label : `${labelAccessor(flag)}: ${value.label}`;\n }, flags);\n const content = (\n <ul data-testid=\"cell-flags-footnotes-content\" className={classes.content}>\n {R.addIndex(R.map)(\n (label, index) => (\n <li key={index}>\n {R.is(Function, HTMLRenderer) ? <HTMLRenderer html={label} /> : label}\n </li>\n ),\n labels,\n )}\n </ul>\n );\n return (\n <Tooltip\n tabIndex={0}\n aria-label={R.join(', ', labels)}\n aria-hidden={false}\n title={content}\n placement=\"top\"\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n >\n <span\n data-testid=\"cell-flags-footnotes-icon\"\n className={cx(classes.flags, { [classes.header]: isHeader })}\n >\n {R.not(R.isEmpty(codedIcons)) && codedIcons}\n {R.and(R.not(R.isEmpty(codedIcons)), hasUncoded) && (\n <React.Fragment>{R.propOr(',', 'delimiters', flagStylePath(theme))}</React.Fragment>\n )}\n {hasUncoded && (\n <Fragment>\n \n <Asterisk className={classes.svg} style={{ fontSize: 11 }} />\n <Typography style={visuallyHidden}>{`* ${labels}`}</Typography>\n </Fragment>\n )}\n </span>\n </Tooltip>\n );\n};\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { getLight, getIsRtl } from '../utils';\nimport { Flags } from './flags';\n\nconst useStyles = makeStyles(theme => ({\n columnsTitle: {\n position: 'sticky',\n zIndex: 1,\n boxSizing: 'border-box',\n backgroundColor: getLight(theme) || theme.palette.secondary.light,\n border: 'none',\n borderBottom: `1px solid ${theme.palette.grey[500]}`,\n color: theme.palette.grey['A700'],\n verticalAlign: 'middle',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n width: '1px',\n height: '100%',\n backgroundColor: theme.palette.grey[500],\n },\n // backgroundColor: getLight(theme) || theme.palette.secondary.light,\n // border: 'inherit',\n // borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n // borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n // padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n // color: theme.palette.grey['A700'],\n // verticalAlign: 'middle',\n // position: 'sticky',\n // zIndex: 1,\n // outline: `1px solid ${theme.palette.grey[500]}`,\n // borderCollapse: 'collapse',\n // borderSpacing: 0\n },\n fillerCell: {\n backgroundColor: theme.palette.grey[200],\n border: 'inherit',\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n verticalAlign: 'middle',\n textAlign: 'center',\n color: theme.palette.grey['A700'],\n zIndex: 1,\n },\n cellContent: {\n justifyContent: 'flex-start',\n display: 'flex',\n },\n label: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n },\n highlight: theme.mixins.table.cellHighlight,\n}));\n\nconst mapIndexed = R.addIndex(R.map);\n\nexport const SubHeader = React.forwardRef(\n (\n {\n headerData,\n xLayoutData,\n activeCellIds,\n subHeadCellsWidth,\n SideIcon,\n HTMLRenderer,\n labelAccessor,\n },\n refs,\n ) => {\n const classes = useStyles();\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n return (\n <TableRow>\n {mapIndexed(\n (rowItem, index) => (\n <TableCell\n component=\"th\"\n className={classes.columnsTitle}\n key={index}\n id={`subHeader_${index}`}\n style={\n isRtl ? { right: subHeadCellsWidth[index] } : { left: subHeadCellsWidth[index] }\n }\n ref={element => (refs.current[index] = element)}\n scope=\"col\"\n >\n <div\n className={classes.cellContent}\n aria-label={R.path(['dimension', 'id'], rowItem)}\n data-testid={`row-dim`}\n >\n <Typography variant=\"body1\" tabIndex={0} className={classes.label}>\n {R.pipe(R.prop('dimension'), labelAccessor)(rowItem)}\n <Flags\n labelAccessor={labelAccessor}\n HTMLRenderer={HTMLRenderer}\n flags={R.path(['dimension', 'flags'], rowItem)}\n />\n </Typography>\n </div>\n </TableCell>\n ),\n xLayoutData,\n )}\n <TableCell\n className={classes.fillerCell}\n style={\n isRtl\n ? { position: 'sticky', right: R.last(subHeadCellsWidth) }\n : { position: 'sticky', left: R.last(subHeadCellsWidth) }\n }\n />\n {mapIndexed(\n (item, index) => (\n <TableCell\n key={index}\n className={cx(classes.fillerCell, {\n [classes.highlight]: R.prop(index)(activeCellIds),\n })}\n >\n {!R.isNil(SideIcon) && <SideIcon sideProps={R.prop('sideProps', item)} />}\n <Flags\n flags={R.prop('flags', item)}\n labelAccessor={labelAccessor}\n HTMLRenderer={HTMLRenderer}\n />\n </TableCell>\n ),\n headerData,\n )}\n </TableRow>\n );\n },\n);\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport Link from '@mui/material/Link';\nimport { Flags } from './flags';\nimport { getIsRtl } from '../utils';\n\nconst useStyles = makeStyles(theme => ({\n cell: {\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n verticalAlign: 'baseline',\n color: theme.palette.grey['A700'],\n '&:hover': {\n boxShadow: `inset 0 0 0 2px ${theme.palette.primary.main}`,\n },\n whiteSpace: 'pre-wrap',\n borderCollapse: 'collapse',\n },\n active: {\n boxShadow: `inset 0 0 0 2px ${theme.palette.primary.main}`,\n },\n highlight: theme.mixins.table.cellHighlight,\n oneCell: {\n border: `thin solid ${theme.palette.grey[500]}`,\n display: 'block', // MUI TableCell is inline-block\n },\n link: {\n position: 'inherit',\n userSelect: 'inherit',\n },\n value: {\n overflow: 'inherit',\n },\n}));\n\nconst isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));\n\nexport const Cell = ({\n flags,\n value,\n intValue,\n headers,\n isOne,\n indexedDimValIds = {},\n cellHandler,\n activeCellHandler,\n isActive,\n isHighlight,\n sideProps,\n SideIcon,\n HTMLRenderer,\n labelAccessor,\n textAlign,\n}) => {\n const classes = useStyles();\n const isRtl = getIsRtl(useTheme());\n const hasFlag = R.not(R.isEmpty(flags));\n const uiValue =\n R.is(Function, cellHandler) && !R.isEmpty(indexedDimValIds) ? (\n <Link\n component=\"button\"\n variant=\"body1\"\n underline=\"always\"\n onClick={() => cellHandler({ indexedDimValIds })}\n className={classes.link}\n >\n {R.is(Function, HTMLRenderer) ? <HTMLRenderer html={value} /> : value}\n </Link>\n ) : R.is(Function, HTMLRenderer) ? (\n <HTMLRenderer html={value} />\n ) : (\n value\n );\n\n return (\n <TableCell\n align={isValidNumber(intValue) ? 'right' : textAlign}\n component={isOne ? 'div' : 'td'}\n className={cx(classes.cell, {\n [classes.oneCell]: isOne,\n [classes.active]: isActive,\n [classes.highlight]: isHighlight,\n })}\n headers={headers}\n aria-describedby={headers}\n onClick={activeCellHandler}\n tabIndex={0}\n style={{ textAlign: textAlign ? textAlign : isRtl ? 'left' : 'right' }}\n >\n {!R.isNil(SideIcon) && <SideIcon sideProps={sideProps} className={classes.value} />}\n {hasFlag && <Flags HTMLRenderer={HTMLRenderer} flags={flags} labelAccessor={labelAccessor} />}\n {uiValue}\n </TableCell>\n );\n};\n","import React, { Fragment } from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport Grid from '@mui/material/Grid';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { Flags } from './flags';\nimport { getDark, getIsRtl } from '../utils';\nimport { getValue } from './utils';\n\nconst useStyles = makeStyles(theme => ({\n section: {\n borderCollapse: 'collapse',\n backgroundColor: getDark(theme) || theme.palette.secondary.dark,\n border: 'inherit',\n borderBottom: `1px solid ${theme.palette.grey[500]}`,\n borderRight: `1px solid ${theme.palette.grey[500]}`,\n padding: theme.spacing(0, 1),\n color: theme.palette.grey['A700'],\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n },\n label: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n marginRight: theme.spacing(0.5),\n },\n containerSection: {\n display: 'flex',\n alignItems: 'center',\n },\n stickyHeaderSection: {\n position: 'sticky',\n },\n flag: {\n height: '100%',\n backgroundColor: getDark(theme) || theme.palette.secondary.dark,\n paddingLeft: 12,\n },\n leftLabelPosition: {\n left: theme.spacing(1),\n },\n rightLabelPosition: {\n right: theme.spacing(1),\n },\n sectionLabelsContainer: {\n padding: theme.spacing(0.5, 0),\n },\n}));\nconst mapIndexed = R.addIndex(R.map);\n\nexport const SectionHeader = ({\n headerData,\n section,\n currentSection,\n xLayoutDataLength,\n headerHeight,\n SideIcon,\n HTMLRenderer,\n labelAccessor,\n}) => {\n const classes = useStyles();\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(section)) return null;\n\n return (\n <TableRow\n key={section.key}\n className={classes.stickyHeaderSection}\n style={{ left: 0, top: headerHeight, zIndex: 2 }}\n >\n <TableCell\n component=\"th\"\n className={classes.section}\n colSpan={R.pipe(R.length, R.inc, R.add(xLayoutDataLength))(headerData)}\n id={currentSection}\n scope=\"col\"\n >\n <Grid container alignItems=\"center\">\n <Grid\n item\n style={\n isRtl ? { position: 'sticky', right: '8px' } : { position: 'sticky', left: '8px' }\n }\n >\n <Typography variant=\"body1\" component=\"div\" className={classes.containerSection}>\n <span\n className={cx(\n classes.stickyHeaderSection,\n classes.leftLabelPosition,\n classes.sectionLabelsContainer,\n )}\n >\n {mapIndexed(\n (sectionHeader, index) => {\n const value = getValue(labelAccessor)(sectionHeader);\n return (\n <Fragment key={index}>\n {index !== 0 && <br />}\n\n <Typography\n noWrap\n variant=\"body1\"\n component=\"span\"\n tabIndex={0}\n className={classes.label}\n data-testid=\"section-dim\"\n aria-label={R.path(['dimension', 'id'], sectionHeader)}\n >\n {R.pipe(R.prop('dimension'), labelAccessor)(sectionHeader)}\n {':'}\n </Typography>\n <Typography noWrap variant=\"body1\" component=\"span\" tabIndex={0}>\n {R.prop('label', value)}\n </Typography>\n <Flags\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n flags={R.prop('flags', value)}\n />\n </Fragment>\n );\n },\n R.path([0, 'data'], section),\n )}\n <span>\n <Flags\n HTMLRenderer={HTMLRenderer}\n flags={R.path([0, 'flags'], section)}\n labelAccessor={labelAccessor}\n />\n </span>\n </span>\n </Typography>\n </Grid>\n {!R.isNil(SideIcon) && (\n <Grid item style={{ marginLeft: 40 }}>\n <SideIcon sideProps={R.path([0, 'sideProps'], section)} />\n </Grid>\n )}\n </Grid>\n </TableCell>\n </TableRow>\n );\n};\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { SectionHeader } from './sectionHeader';\nimport { Cell } from './cell';\nimport { getLight, getIsRtl } from '../utils';\nimport { getValue } from './utils';\nimport { Flags } from './flags';\nimport { memo } from 'react';\n\nconst useStyles = makeStyles(theme => ({\n rowTitle: {\n backgroundColor: getLight(theme) || theme.palette.secondary.light,\n border: 'inherit',\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n color: theme.palette.grey['A700'],\n verticalAlign: 'top',\n align: 'left',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n },\n timePeriodCells: {\n whiteSpace: 'nowrap',\n },\n fillerCell: {\n minWidth: '30px',\n backgroundColor: theme.palette.grey[200],\n verticalAlign: 'top',\n border: 'inherit',\n borderBottom: `1.5px solid ${theme.palette.grey[500]}`,\n borderRight: `1.5px solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n position: 'sticky',\n zIndex: 1,\n },\n cellContent: {\n display: 'flex',\n alignItems: 'center',\n },\n flagContainer: {\n display: 'flex',\n justifyContent: 'center',\n fontWeight: 'bold',\n },\n topCell: {\n paddingTop: 0,\n },\n hierarchySpace: {\n marginBottom: 'auto',\n },\n highlight: theme.mixins.table.cellHighlight,\n stickyHeader: {\n position: 'sticky',\n zIndex: 1,\n },\n}));\nconst mapIndexed = R.addIndex(R.map);\n\nconst SectionComponent = ({\n headerData,\n cells,\n section,\n xLayoutDataLength,\n cellHandler,\n activeCellHandler,\n activeCellIds,\n headerHeight,\n sectionIndex,\n nbColumnsByRows,\n SideIcon,\n subHeadCellsWidth,\n HTMLRenderer,\n labelAccessor,\n cellValueAccessor,\n isNoWrap,\n textAlign,\n}) => {\n const classes = useStyles();\n const currentSection = R.path([0, 'key'], section);\n const headerNumberRows = R.length(nbColumnsByRows);\n const maxColumns = R.last(nbColumnsByRows);\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n\n return (\n <TableBody>\n <SectionHeader\n headerData={headerData}\n section={section}\n currentSection={currentSection}\n xLayoutDataLength={xLayoutDataLength}\n headerHeight={headerHeight}\n SideIcon={SideIcon}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n />\n {mapIndexed(\n (sectionbody, rowIndex) => {\n const rowId = `${sectionbody.key}_${sectionIndex}_${rowIndex}`;\n const rowIds = R.pipe(\n R.map(index => `${sectionbody.key}_${sectionIndex}_${index}`),\n R.join(' '),\n )(R.times(R.identity, R.length(R.prop('data', sectionbody))));\n return (\n <TableRow key={rowId}>\n {R.times(index => {\n const cell = R.path(['data', index], sectionbody);\n const value = R.isNil(cell) ? { label: '' } : getValue(labelAccessor)(cell);\n const flags = R.propOr([], 'flags', value);\n const id = `${rowIndex}_${rowId}_${index}`;\n\n // special space is used for hierarchy U+2007    \n const hierarchySpace = R.pipe(\n R.propOr([], 'parents'),\n R.when(R.isNil, R.always([])),\n R.length,\n\n R.times(() => '· '),\n )(value);\n\n return (\n <TableCell\n key={id}\n className={cx(classes.rowTitle, classes.stickyHeader, {\n [classes.highlight]: R.prop(rowId)(activeCellIds),\n [classes.timePeriodCells]:\n R.is(Function, isNoWrap) && isNoWrap(R.propOr({}, 'dimension', cell)),\n })}\n id={id}\n headers={`subHeader_${index} ${currentSection}`}\n component=\"th\"\n style={\n isRtl\n ? { right: subHeadCellsWidth[index] }\n : { left: subHeadCellsWidth[index] }\n }\n >\n <div className={classes.cellContent}>\n {!R.isEmpty(hierarchySpace) && (\n <div className={classes.hierarchySpace}>{hierarchySpace}</div>\n )}\n <Typography\n variant=\"body1\"\n tabIndex={0}\n aria-describedby={`subHeader_${index} ${currentSection}`}\n >\n {R.prop('label', value)}\n <Flags\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n flags={flags}\n />\n </Typography>\n </div>\n </TableCell>\n );\n }, xLayoutDataLength /*R.prop('data', sectionbody)*/)}\n <TableCell\n className={cx(classes.fillerCell, {\n [classes.highlight]: R.prop(rowId)(activeCellIds),\n })}\n style={\n isRtl ? { right: R.last(subHeadCellsWidth) } : { left: R.last(subHeadCellsWidth) }\n }\n >\n <div className={classes.flagContainer}>\n {!R.isNil(SideIcon) && <SideIcon sideProps={R.prop('sideProps', sectionbody)} />}\n <Flags\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n flags={R.prop('flags', sectionbody)}\n />\n </div>\n </TableCell>\n {mapIndexed((item, columnIndex) => {\n const columnIds = R.pipe(\n R.times(R.identity),\n R.map(rowIndex => {\n const columnId = R.divide(\n columnIndex,\n R.divide(maxColumns, R.nth(rowIndex, nbColumnsByRows)),\n );\n return `${Math.floor(columnId || 0)}_${rowIndex}`;\n }),\n R.join(' '),\n )(headerNumberRows);\n\n const intersectionCellId = `${rowId}/${columnIndex}`;\n const isActive = R.pipe(\n R.propOr({}, 'intersectionCellId'),\n R.equals(intersectionCellId),\n )(activeCellIds);\n const missingValLabel = item.isEmpty || sectionbody.isEmpty ? '' : '..';\n return (\n <Cell\n {...R.pipe(\n R.pathOr({ value: null }, [item.key, currentSection, sectionbody.key, 0]),\n R.over(R.lensProp('value'), val =>\n R.isNil(val) ? missingValLabel : cellValueAccessor(val),\n ),\n )(cells)}\n key={intersectionCellId}\n headers={`${rowIds} ${columnIds} ${currentSection}`}\n cellHandler={cellHandler}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n SideIcon={SideIcon}\n isActive={isActive}\n textAlign={textAlign}\n isHighlight={R.any(R.identity)([\n R.prop(rowId)(activeCellIds),\n R.prop(columnIndex)(activeCellIds),\n ])}\n activeCellHandler={\n R.is(Function)(activeCellHandler)\n ? () =>\n activeCellHandler({\n [rowId]: R.not(isActive),\n [columnIndex]: R.not(isActive),\n intersectionCellId: isActive ? null : intersectionCellId,\n })\n : null\n }\n />\n );\n }, headerData)}\n </TableRow>\n );\n },\n R.nth(1, section),\n )}\n </TableBody>\n );\n};\n\nexport const Section = memo(SectionComponent);\n","import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport makeStyles from '@mui/styles/makeStyles';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { Flags } from './flags';\nimport { getIsRtl } from '../utils';\nimport { getValue } from './utils';\n\nconst useStyles = makeStyles(theme => ({\n tableHeadCell: {\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor: theme.palette.primary.main,\n border: 'inherit',\n borderBottom: `thin solid ${theme.palette.grey[500]}`,\n borderRight: `thin solid ${theme.palette.grey[500]}`,\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n verticalAlign: 'top',\n '&:focus ': {\n opacity: '.85',\n },\n textAlign: 'center',\n },\n cellContentCenter: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'sticky',\n },\n cellContentRight: {\n display: 'flex',\n justifyContent: 'flex-end',\n fontStyle: 'italic',\n },\n cellLabelHeader: {\n fontStyle: 'inherit',\n fontWeight: 'bold',\n },\n stickyLabel: {\n position: 'sticky',\n },\n}));\n\nconst timesIndexed = R.addIndex(R.times);\nconst mapIndexed = R.addIndex(R.map);\n\nexport const Header = ({\n headerData,\n valuesHeaderData,\n xLayoutDataLength,\n subHeadCellsWidth,\n HTMLRenderer,\n labelAccessor,\n}) => {\n const classes = useStyles();\n const theme = useTheme();\n const isRtl = getIsRtl(theme);\n\n const stickyLabelPosition = `${R.last(subHeadCellsWidth)}px + 30px + ${theme.spacing(1)}`;\n\n if (R.compose(R.anyPass([R.isNil, R.isEmpty]), R.path([0, 'data']))(headerData)) return null;\n return timesIndexed(\n index => {\n const flags = R.path([0, 'data', index, 'dimension', 'flags'], headerData);\n const id = `header_${index}`;\n return (\n <TableRow key={id}>\n <TableCell\n component=\"th\"\n padding=\"none\"\n align=\"center\"\n className={classes.tableHeadCell}\n colSpan={R.inc(xLayoutDataLength)}\n id={id}\n tabIndex={0}\n scope=\"row\"\n title={R.pipe(R.path([-1, 'data', index, 'dimension']), labelAccessor)(headerData)}\n style={\n isRtl\n ? { position: 'sticky', zIndex: 1, right: 0 }\n : { position: 'sticky', zIndex: 1, left: 0 }\n }\n >\n <div\n className={classes.cellContentRight}\n aria-label={R.path([0, 'data', index, 'dimension', 'id'], headerData)}\n data-testid={`header-dim`}\n role=\"row\"\n >\n <Typography variant=\"body1\" className={classes.cellLabelHeader}>\n {R.pipe(R.path([-1, 'data', index, 'dimension']), labelAccessor)(headerData)}\n <Flags\n HTMLRenderer={HTMLRenderer}\n flags={flags}\n isHeader\n labelAccessor={labelAccessor}\n />\n </Typography>\n </div>\n </TableCell>\n {mapIndexed(\n (headerItem, idx) => {\n const value = headerItem.isEmpty\n ? { label: '' }\n : getValue(labelAccessor)(headerItem);\n const flags = R.propOr([], 'flags', value);\n const hierarchySpace = R.pipe(\n R.propOr([], 'parents'),\n R.length,\n R.times(() => '·'),\n )(value);\n return (\n <TableCell\n key={`${R.prop('id', value)}-${idx}`}\n component=\"th\"\n className={cx(classes.tableHeadCell, {\n [classes.topCell]: R.not(R.isEmpty(flags)),\n })}\n id={`${idx}_${index}`}\n headers={`header_${index}`}\n colSpan={R.prop('spanCount', headerItem)}\n tabIndex={0}\n title={R.prop('label', value)}\n aria-label={R.prop('label', value)}\n aria-describedby={id}\n scope=\"col\"\n >\n <div className={classes.cellContentCenter}>\n {!R.isEmpty(hierarchySpace) &&\n mapIndexed((space, idx) => <div key={idx}>{space}</div>)(hierarchySpace)}\n <Typography\n className={classes.stickyLabel}\n style={{\n left: isRtl ? theme.spacing(1) : stickyLabelPosition,\n right: isRtl ? stickyLabelPosition : theme.spacing(1),\n }}\n variant=\"body1\"\n >\n {R.prop('label', value)}\n <Flags\n HTMLRenderer={HTMLRenderer}\n flags={flags}\n isHeader\n labelAccessor={labelAccessor}\n />\n </Typography>\n </div>\n </TableCell>\n );\n },\n R.nth(index, valuesHeaderData),\n )}\n </TableRow>\n );\n },\n R.compose(R.length, R.pathOr([], [-1, 'data']))(headerData),\n );\n};\n","import React, { useRef, useState, useEffect, useMemo } from 'react';\nimport makeStyles from '@mui/styles/makeStyles';\nimport * as R from 'ramda';\nimport Table from '@mui/material/Table';\nimport { defaultLabelAccessor } from './utils';\nimport { SubHeader } from './subHeader';\nimport { Cell } from './cell';\nimport { Section } from './section';\nimport { Header } from './header';\n\n/*\n * Accessibility.\n * Do not use \"TableHead\" from Material-ui.\n * Material-ui, add \"scope\" attribute for accessibility, \"scope\" attribute can break screen reader if use with headers.\n * Child from TableHead will inherit a \"scope\" that we don't want. (not possible to turn off)\n * We are using \"headers\" attribute because the table is too complexe to use \"scope\".\n */\n\nconst useStyles = makeStyles(theme => ({\n table: {\n outline: '1px solid transparent',\n transform: 'translateZ(0)',\n borderCollapse: 'separate',\n borderLeft: `1px solid ${theme.palette.grey[500]}`,\n borderTop: `1px solid ${theme.palette.grey[500]}`,\n padding: '0px 0px',\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 2,\n },\n}));\n\nconst mapIndexed = R.addIndex(R.map);\n\nexport const getEnhancedValuesHeaderData = data => {\n const colLength = R.pipe(R.last, R.propOr([], 'data'), R.length)(data);\n return R.pipe(\n R.pluck('data'),\n // mix merge and transpose for performance\n R.reduce(\n (acc, cells) => {\n R.addIndex(R.forEach)((_, rowIndex) => {\n const cell = R.nth(rowIndex, cells) || {};\n const cellId = R.has('values', cell)\n ? R.pipe(R.prop('values'), R.pluck('id'), R.join(','))(cell)\n : R.pathOr(`missing${rowIndex}`, ['value', 'id'], cell);\n const topCell = rowIndex > 0 ? R.pipe(R.nth(rowIndex - 1), R.last)(acc) : null;\n const cellKey = R.isNil(topCell) ? cellId : `${topCell.key}-${cellId}`;\n\n const leftCell = R.pipe(R.nth(rowIndex), R.last)(acc);\n if (R.prop('key', leftCell) === cellKey && rowIndex !== colLength - 1) {\n acc = R.over(\n R.lensIndex(rowIndex),\n R.over(R.lensIndex(-1), R.evolve({ spanCount: R.add(1) })),\n )(acc);\n } else {\n acc = R.over(\n R.lensIndex(rowIndex),\n R.append({\n ...R.pick(['value', 'values'], cell),\n key: cellKey,\n spanCount: 1,\n isEmpty: R.isEmpty(cell),\n }),\n )(acc);\n }\n })(acc);\n return acc;\n },\n R.times(R.always([]), colLength),\n ),\n )(data);\n};\n\nconst getCellsWidth = R.addIndex(R.reduce)(\n (acc, element, index) => R.append(R.add(acc[index], R.propOr(0, 'offsetWidth', element)), acc),\n [0],\n);\n\nexport const TableHtml5 = ({\n cells,\n headerData = [],\n sectionsData = [],\n cellHandler,\n activeCellIds,\n activeCellHandler,\n SideIcon,\n testId = 'vis-table',\n HTMLRenderer,\n cellValueAccessor = R.identity,\n labelAccessor = defaultLabelAccessor,\n textAlign,\n isNoWrap = R.always(false),\n}) => {\n const classes = useStyles();\n const [headerHeight, setHeaderHeight] = useState(0);\n const [subHeadCellsWidth, setSubHeadCellsWidth] = useState([0]);\n const headerRef = useRef(null);\n const subHeadCellsRef = useRef([]);\n\n useEffect(() => {\n setHeaderHeight(R.pathOr(0, ['current', 'clientHeight'], headerRef));\n setSubHeadCellsWidth(getCellsWidth(R.prop('current', subHeadCellsRef)));\n }, [cells, headerData, sectionsData]);\n\n useEffect(() => {\n let timeoutId = null;\n const resizeListener = () => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n setHeaderHeight(R.pathOr(0, ['current', 'clientHeight'], headerRef));\n setSubHeadCellsWidth(getCellsWidth(R.prop('current', subHeadCellsRef)));\n }, 150);\n };\n window.addEventListener('resize', resizeListener);\n return () => window.removeEventListener('resize', resizeListener);\n }, []);\n\n const xLayoutData = R.pathOr([], [0, 1, -1, 'data'], sectionsData);\n const xLayoutDataLength = R.length(xLayoutData);\n const { valuesHeaderData, nbColumnsByRows } = useMemo(() => {\n const valuesHeaderData = getEnhancedValuesHeaderData(headerData);\n const nbColumnsByRows = R.map(R.length)(valuesHeaderData);\n return { valuesHeaderData, nbColumnsByRows };\n }, [headerData]);\n\n const isSingleObs = R.hasPath(['', '', '', 0], cells);\n if (isSingleObs)\n return (\n <Cell\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n {...R.pathOr({}, ['', '', '', 0], cells)}\n cellHandler={cellHandler}\n isOne\n textAlign={textAlign}\n />\n );\n\n return (\n <Table className={classes.table} aria-label=\"table\" size=\"small\" data-testid={testId}>\n <thead ref={headerRef} className={classes.stickyHeader}>\n <Header\n headerData={headerData}\n valuesHeaderData={valuesHeaderData}\n xLayoutDataLength={xLayoutDataLength}\n subHeadCellsWidth={subHeadCellsWidth}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n />\n <SubHeader\n headerData={headerData}\n xLayoutData={xLayoutData}\n activeCellIds={activeCellIds}\n SideIcon={SideIcon}\n ref={subHeadCellsRef}\n subHeadCellsWidth={subHeadCellsWidth}\n HTMLRenderer={HTMLRenderer}\n labelAccessor={labelAccessor}\n />\n </thead>\n {mapIndexed(\n (section, index) => (\n <Section\n key={`section-${index}`}\n sectionIndex={index}\n headerHeight={headerHeight}\n nbColumnsByRows={nbColumnsByRows}\n headerData={headerData}\n cells={cells}\n section={section}\n xLayoutDataLength={xLayoutDataLength}\n cellHandler={cellHandler}\n activeCellIds={activeCellIds}\n activeCellHandler={activeCellHandler}\n SideIcon={SideIcon}\n subHeadCellsWidth={subHeadCellsWidth}\n HTMLRenderer={HTMLRenderer}\n cellValueAccessor={cellValueAccessor}\n labelAccessor={labelAccessor}\n isNoWrap={isNoWrap}\n textAlign={textAlign}\n />\n ),\n sectionsData,\n )}\n </Table>\n );\n};\n"],"names":["useStyles","Tooltip","mapIndexed","rowIndex","flags","idx","valuesHeaderData","nbColumnsByRows"],"mappings":"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"}
|