@mw-kit/mw-ui 1.7.111 → 1.7.113
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/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/theme/constants.ts","../src/functions/common.ts","../src/functions/validators.ts","../src/functions/formatters.ts","../src/components/Transition/components/Transition/index.ts","../src/components/Transition/hooks/useTransition/index.ts","../src/components/AbsoluteContainer/styles.ts","../src/components/AbsoluteContainer/index.tsx","../src/assets/icons/feather/index.ts","../src/components/Icon/styled.ts","../src/components/Icon/index.tsx","../src/components/Loader/index.ts","../src/components/Input/functions.ts","../src/components/EllipsisContainer/functions.ts","../src/components/EllipsisContainer/styled.tsx","../src/components/EllipsisContainer/index.tsx","../src/components/Input/components/Input/styles.ts","../src/components/Form/context.tsx","../src/components/Form/index.tsx","../src/components/Input/components/Input/index.tsx","../src/components/Input/components/Checkbox/styles.ts","../src/components/Input/components/Checkbox/index.tsx","../src/hooks/onClickOut.ts","../src/components/Calendar/constants.ts","../src/components/ScrollContainer/styles/BeforeAfterContainer/index.ts","../src/components/ScrollContainer/styles/Container/index.ts","../src/components/ScrollContainer/styles/OverflowContainer/index.ts","../src/components/ScrollContainer/styles/RelativeContainer/index.ts","../src/components/ScrollContainer/index.tsx","../src/components/Menu/styles.ts","../src/components/Menu/index.tsx","../src/components/Calendar/components/Basic/styles.ts","../src/components/Calendar/components/Basic/components/MonthPicker/index.tsx","../src/components/Indicator/constants.ts","../src/components/Indicator/styles.ts","../src/components/Indicator/index.tsx","../src/components/Calendar/components/Basic/components/Main/styles.ts","../src/components/Calendar/functions.ts","../src/components/Button/constants.ts","../src/components/Button/theme.ts","../src/components/theme.ts","../src/theme/globals.tsx","../src/theme/index.tsx","../src/components/Calendar/components/Basic/components/Main/index.tsx","../src/components/Calendar/components/Basic/index.tsx","../src/components/Input/components/Time/index.tsx","../src/components/Calendar/components/Interval/components/Main/functions.ts","../src/components/Button/styles.ts","../src/components/Button/index.tsx","../src/components/Calendar/styles.ts","../src/components/Calendar/components/Interval/components/Main/styles.ts","../src/components/Calendar/components/Interval/components/Main/index.tsx","../src/components/Calendar/components/Interval/index.tsx","../src/components/Calendar/components/Single/components/Main/index.tsx","../src/components/Calendar/components/Single/index.tsx","../src/components/Calendar/index.tsx","../src/components/Input/components/Date/functions.ts","../src/components/Input/components/Date/styles.ts","../src/components/Input/components/Date/index.tsx","../src/components/Input/components/Select/styles.ts","../src/components/Input/components/Select/hooks/Navigation/index.ts","../src/components/Input/components/Select/hooks/Select/context.ts","../src/components/Input/components/Select/hooks/Select/components/Header/styles.ts","../src/components/Input/components/Select/hooks/Select/components/Header/index.tsx","../src/components/Input/components/Select/hooks/Select/index.tsx","../src/components/Input/components/Select/hooks/SelectMultiple/context.ts","../src/components/Input/components/Select/hooks/SelectMultiple/components/Footer/index.tsx","../src/components/Link/index.ts","../src/components/Input/components/Select/hooks/SelectMultiple/components/Header/styles.ts","../src/components/Input/components/Select/hooks/SelectMultiple/components/Header/index.tsx","../src/components/Input/components/Select/hooks/SelectMultiple/components/Label/index.tsx","../src/components/Input/components/Select/hooks/SelectMultiple/index.tsx","../src/components/Input/components/Select/index.tsx","../src/components/Input/components/Password/index.tsx","../src/assets/icons/flags/flags.ts","../src/assets/icons/flags/index.ts","../src/components/Input/components/Phone/countries.ts","../src/components/Input/components/Phone/styles.ts","../src/components/Input/components/Phone/index.tsx","../src/components/Input/components/DatePicker/styles.ts","../src/components/Input/components/DatePicker/index.tsx","../src/components/Input/components/Switch/styles.ts","../src/components/Input/components/Switch/index.tsx","../src/components/Input/components/Range/styles/Input/index.ts","../src/components/Input/components/Range/styles/SelectedArea/index.ts","../src/components/Input/components/Range/styles/InputContainer/index.ts","../src/components/Input/components/Range/styles/LabelContainer/index.ts","../src/components/Input/components/Range/styles/NavBar/index.ts","../src/components/Input/components/Range/styles/Label/index.ts","../src/components/Input/components/Range/styles/Marker/index.ts","../src/components/Input/components/Range/styles/MinMaxLabelContainer/index.ts","../src/components/Input/components/Range/styles/LabelsContainer/index.ts","../src/components/Input/components/Range/styles/MarkersContainer/index.ts","../src/components/Input/components/Range/styles/ViewModeContainer/index.ts","../src/components/Input/components/Range/index.tsx","../src/components/Input/components/RadioButton/styles.ts","../src/components/Input/components/RadioButton/index.tsx","../src/components/Input/components/DateIntervalPicker/functions.ts","../src/components/Input/components/DateIntervalPicker/styles.ts","../src/components/Input/components/DateIntervalPicker/index.tsx","../src/components/Input/components/Tags/components/Input/styles.ts","../src/components/Input/components/Tags/components/Input/index.tsx","../src/components/Input/components/Tags/components/Label/styles.ts","../src/components/Input/components/Tags/components/Label/index.tsx","../src/components/Input/components/Tags/components/Tag/styles.ts","../src/components/Input/components/Tags/components/Tag/index.tsx","../src/components/Input/components/Tags/styles.ts","../src/components/Input/components/Tags/index.tsx","../src/components/Input/components/DateTime/styles.ts","../src/components/Input/components/DateTime/index.tsx","../src/components/Input/index.tsx","../src/components/Filters/AppliedFilters/components/Menu/styles.ts","../src/components/Filters/AppliedFilters/components/Menu/index.tsx","../src/components/Filters/Button/styles.ts","../src/components/Filters/Button/index.tsx","../src/components/Filters/AppliedFilters/index.tsx","../src/components/Card/styled.ts","../src/components/Card/index.tsx","../src/components/Filters/Filters/components/Submenu/components/Header/styles.ts","../src/components/Filters/Filters/components/Submenu/components/Header/index.tsx","../src/components/Filters/Filters/components/Submenu/styles.ts","../src/components/Filters/Filters/components/Submenu/index.tsx","../src/components/Filters/Filters/components/Menu/index.tsx","../src/components/Filters/Filters/index.tsx","../src/components/Grid/components/Row/context.ts","../src/components/Grid/components/Col/styles.ts","../src/components/Grid/components/Col/index.tsx","../src/components/Grid/components/Grid/context.ts","../src/components/Grid/components/Grid/styles.ts","../src/components/Grid/components/Grid/index.tsx","../src/components/Grid/components/Row/styles.ts","../src/components/Grid/components/Row/index.tsx","../src/components/Grid/index.ts","../src/addons/Portal/index.ts","../src/components/Modal/contants.ts","../src/components/Modal/styles.ts","../src/components/Modal/component.tsx","../src/components/Modal/templates/ConfirmDelete/styles.ts","../src/components/Modal/templates/ConfirmDelete/index.tsx","../src/components/Modal/templates/ConfirmEdit/styles.ts","../src/components/Modal/templates/ConfirmEdit/index.tsx","../src/components/Modal/templates/Audit/styles.ts","../src/components/Modal/templates/Audit/index.tsx","../src/components/Modal/index.ts","../src/components/Placeholder/components/Template1/styles.ts","../src/components/Placeholder/components/Template1/index.tsx","../src/components/Placeholder/styles.ts","../src/components/Placeholder/components/Template2/styles.ts","../src/components/Placeholder/components/Template2/index.tsx","../src/components/Placeholder/components/Template3/styles.ts","../src/components/Placeholder/components/Template3/index.tsx","../src/components/Placeholder/components/Template4/styles.ts","../src/components/Placeholder/components/Template4/index.tsx","../src/components/Placeholder/components/Template5/styles.ts","../src/components/Placeholder/components/Template5/index.tsx","../src/components/Placeholder/components/Template6/styles.ts","../src/components/Placeholder/components/Template6/index.tsx","../src/components/Placeholder/components/Template7/styles.ts","../src/components/Placeholder/components/Template7/index.tsx","../src/components/Placeholder/components/Template8/styles.ts","../src/components/Placeholder/components/Template8/index.tsx","../src/components/Placeholder/components/Template9/styles.ts","../src/components/Placeholder/components/Template9/index.tsx","../src/components/Placeholder/components/Template10/styles.ts","../src/components/Placeholder/components/Template10/index.tsx","../src/components/Placeholder/index.tsx","../src/components/ProgressBar/styles.ts","../src/components/ProgressBar/index.tsx","../src/components/Tabs/components/ScrollButton/styled.ts","../src/components/Tabs/components/ScrollButton/index.tsx","../src/components/Tabs/components/ScrollButtons/styled.ts","../src/components/Tabs/components/ScrollButtons/index.tsx","../src/components/Tabs/functions.ts","../src/components/Tabs/components/TabItem/components/Close/styles.ts","../src/components/Tabs/components/TabItem/components/Close/index.tsx","../src/components/Tabs/components/TabItem/components/LabelItem/styled.ts","../src/components/Tabs/components/TabItem/components/LabelItem/index.tsx","../src/components/Tabs/components/TabItem/styled.ts","../src/components/Tabs/components/TabItem/index.tsx","../src/components/Tabs/styled.ts","../src/components/Tabs/index.tsx","../src/components/TextArea/styles.ts","../src/components/TextArea/index.tsx","../src/components/Toast/styles.ts","../src/components/Toast/index.tsx","../src/components/Zoom/styles.ts","../src/components/Zoom/index.tsx"],"sourcesContent":["import { Typographies } from './interfaces'\r\n\r\nexport const colors = {\r\n black: '#000000',\r\n blue: '#3455AB',\r\n bronze: '#7A4D05',\r\n brown: '#9F3A38',\r\n darkBlue: '#192338',\r\n darkestBlue: '#121B2E',\r\n darkestGreen: '#1E561F',\r\n darkestGrey: '#989898',\r\n darkGreen: '#129105',\r\n darkGrey: '#949494',\r\n darkSilver: '#525A6A',\r\n floralWhite: '#FFFAF3',\r\n ghostWhite: '#F9FAFB',\r\n green: '#76B100',\r\n grey: '#ADADAD',\r\n greyishBlue: '#263046',\r\n iceWhite: '#F9F8F8',\r\n lightBlue: '#2D9AFF',\r\n lightestGrey: '#E2E2E3',\r\n lightGreen: '#66BB6A',\r\n lightGrey: '#C8C8C8',\r\n milkWhite: '#FCFFF5',\r\n orange: '#FB8702',\r\n pink: '#E23851',\r\n purple: '#8E66BB',\r\n red: '#C31717',\r\n silver: '#B2B2B2',\r\n snowWhite: '#FFF6F6',\r\n vanilla: '#CCBEA0',\r\n warningGray: '#E6E6E6',\r\n warningRed: '#EF5350',\r\n warningYellow: '#FBCF30',\r\n white: '#FFFFFF',\r\n yellow: '#FBCB01',\r\n} as const\r\n\r\nexport const opacities = {\r\n 100: 'FF',\r\n 95: 'F2',\r\n 90: 'E6',\r\n 85: 'D9',\r\n 80: 'CC',\r\n 75: 'BF',\r\n 70: 'B3',\r\n 65: 'A6',\r\n 60: '99',\r\n 55: '8C',\r\n 50: '80',\r\n 45: '73',\r\n 40: '66',\r\n 35: '59',\r\n 30: '4D',\r\n 25: '40',\r\n 20: '33',\r\n 15: '26',\r\n 10: '1A',\r\n 5: '0D',\r\n 0: '00',\r\n} as const\r\n\r\nexport const spacings = {\r\n s1: '7px',\r\n s2: '8px',\r\n s3: '14px',\r\n s4: '21px',\r\n s5: '28px',\r\n s6: '35px',\r\n} as const\r\n\r\nexport const fonts = {\r\n lato: '\"Lato\", sans-serif',\r\n} as const\r\n\r\nexport const typographies: Typographies = {\r\n h1: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '18px',\r\n },\r\n h2: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '16px',\r\n },\r\n h3: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '16px',\r\n },\r\n h4: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '14px',\r\n },\r\n h5: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n h6: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '13px',\r\n },\r\n p: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n} as const\r\n","import { GenericObject } from '../interfaces'\n\nexport const stripAccents = (value: string): string => {\n return value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n}\n\nexport const isKeyOf = <T>(\n object: T,\n key: string | number | symbol,\n): key is keyof T => {\n return Object.prototype.hasOwnProperty.call(object, key)\n}\n\nexport const isObject = <T = unknown>(value: unknown): value is T => {\n return Object.prototype.toString.call(value) === '[object Object]'\n}\n\nexport const dateToIsoString = (\n date: Date,\n time = false,\n fullYear = true,\n pattern: 'us' | 'br' = 'br',\n): string => {\n const dateData = [\n date.getDate().toString().padStart(2, '0'),\n (date.getMonth() + 1).toString().padStart(2, '0'),\n date.getFullYear().toString().padStart(4, '0'),\n ]\n\n if (fullYear === false) dateData[2] = dateData[2].substring(2, 4)\n\n let dateStr = dateData.join('/')\n\n if (pattern === 'us') {\n const tmp = dateData[0]\n dateData[0] = dateData[2]\n dateData[2] = tmp\n dateStr = dateData.join('-')\n }\n\n if (!time) return dateStr\n\n const timeStr = [\n date.getHours().toString().padStart(2, '0'),\n date.getMinutes().toString().padStart(2, '0'),\n date.getSeconds().toString().padStart(2, '0'),\n ].join(':')\n\n return [dateStr, timeStr].join(' ')\n}\n\nexport const keys = <T extends GenericObject>(value: T): (keyof T)[] => {\n return Object.keys(value)\n}\n","import { stripAccents, keys } from './common'\n\nexport const notEmptyString = (value: unknown): value is string => {\n return typeof value === 'string' && value.trim() !== ''\n}\n\nexport const isNumber = (value: unknown): value is number => {\n return typeof value === 'number' && isFinite(value)\n}\n\nexport const isNumeric = (value: unknown): value is number | string => {\n if (isNumber(value)) return true\n\n if (!isString(value)) return false\n\n return !isNaN(parseFloat(value))\n}\n\nexport const isBoolean = (value: unknown): value is boolean => {\n return typeof value === 'boolean'\n}\n\nexport const isNumericString = (value: unknown): value is string => {\n return notEmptyString(value) && isNumeric(value)\n}\n\nexport const isString = (value: unknown): value is string => {\n return typeof value === 'string'\n}\n\nexport const isDateInstance = (value: unknown): value is Date => {\n return value instanceof Date && !isNaN(value.valueOf())\n}\n\nexport const isDate = (value: unknown): boolean => {\n return (\n (isNumeric(value) || isDateInstance(value)) &&\n isDateInstance(new Date(value))\n )\n}\n\ntype Operations = 'eq' | 'gt' | 'gte' | 'lt' | 'lte'\n\nexport const dateCompare = (\n a: Date,\n b: Date,\n operation: Operations,\n time: boolean | Partial<{ [key in 'h' | 'm' | 's' | 'ms']: true }> = {\n h: true,\n m: true,\n s: true,\n },\n): boolean => {\n const operations: { [key in Operations]: (a: Date, b: Date) => boolean } = {\n eq: (a, b) => a.getTime() === b.getTime(),\n gt: (a, b) => a > b,\n gte(a, b) {\n return this.gt(a, b) || this.eq(a, b)\n },\n lt: (a, b) => a < b,\n lte(a, b) {\n return this.lt(a, b) || this.eq(a, b)\n },\n }\n\n a = new Date(a)\n b = new Date(b)\n\n if (time === false) {\n a.setHours(0, 0, 0, 0)\n b.setHours(0, 0, 0, 0)\n } else if (time !== true) {\n const methods = {\n h: 'setHours',\n m: 'setMinutes',\n s: 'setSeconds',\n ms: 'setMilliseconds',\n } as const\n\n keys(methods).forEach((k) => {\n if (time[k]) return\n const method = methods[k]\n a[method](0)\n b[method](0)\n })\n }\n\n return operations[operation](a, b)\n}\n\ntype Formats = 'h' | 'm' | 's'\ntype Mode = 'required' | 'optional'\n\nexport const isValidTime = (\n time: string,\n format: Partial<{ [key in Formats]: Mode }> = {\n h: 'required',\n m: 'required',\n },\n): boolean => {\n const c = {\n h: '(([0-1][0-9])|(2[0-3]))',\n m: '([0-5][0-9])',\n s: '([0-5][0-9])',\n }\n\n let sep = ''\n\n const conditions = (Object.keys(format) as Formats[])\n .map((f) => {\n const content = `(${sep}${c[f]})`\n sep = ':'\n return format[f] === 'required' ? content : `${content}?`\n })\n .join('')\n\n // /(([0-1][0-9])|(2[0-3])):([0-5][0-9])(:([0-5][0-9]))?$/\n const re = new RegExp(`${conditions}$`)\n\n return time.match(re) !== null\n}\n\nexport const strCmp = (\n x: string,\n y: string,\n options: {\n ignoreAccents?: boolean\n ignoreCase?: boolean\n trim?: boolean\n contain?: boolean\n } = {},\n): boolean => {\n options = {\n ignoreAccents: true,\n ignoreCase: true,\n trim: true,\n contain: false,\n ...options,\n }\n\n if (options.trim) {\n x = x.trim()\n y = y.trim()\n }\n\n if (options.ignoreCase) {\n x = x.toUpperCase()\n y = y.toUpperCase()\n }\n\n if (options.ignoreAccents) {\n x = stripAccents(x)\n y = stripAccents(y)\n }\n\n return options.contain ? x.includes(y) : x === y\n}\n\nexport const isValidEmail = (value: string): boolean => {\n const emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i\n\n return emailRegex.test(value)\n}\n\nexport { isObject, isKeyOf } from './common'\n","import {\n Border,\n Borders,\n GenericObject,\n SpacingOrZero,\n Spacings,\n} from '../interfaces'\nimport { spacings } from '../theme/constants'\nimport {\n isBoolean,\n isNumber,\n isNumericString,\n notEmptyString,\n} from './validators'\nimport { isKeyOf, isObject, keys } from './common'\n\nexport const filterObject = <T extends GenericObject, R extends GenericObject>(\n object: T,\n remove: (keyof T)[],\n inital = {} as Partial<R>,\n): R => {\n const r = keys(object)\n .filter((key) => !remove.includes(key))\n .reduce(\n (prev, key) => ({\n ...prev,\n [key]: object[key],\n }),\n inital as R,\n )\n\n return r\n}\n\nexport const phone = (value: string) => {\n let masked = value\n\n if (value.startsWith('+55')) {\n masked = value\n .replace(/\\D/g, '')\n .replace(/(\\d{2})(\\d{2})(\\d)/, '+$1 ($2) $3')\n .replace(/(\\d{5})(\\d{4})$/, '$1-$2')\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\n }\n\n return masked\n}\n\nexport const cnpj = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 14)\n .replace(/^(\\d{2})(\\d{3})?(\\d{3})?(\\d{4})?(\\d{2})?/, '$1.$2.$3/$4-$5')\n}\n\nexport const cpf = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .replace(/^(\\d{3})(\\d{3})?(\\d{3})?(\\d{2})?/, '$1.$2.$3-$4')\n}\n\nexport const cep = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 8)\n .replace(/^(\\d{5})(\\d{3})/, '$1-$2')\n}\n\ninterface TimeLabels {\n hour?: string\n minute?: string\n join?: string\n}\n\nexport const time = (value: number, labels?: TimeLabels): string => {\n const l: TimeLabels = {\n hour: 'h',\n minute: 'm',\n join: 'e',\n }\n\n if (labels) {\n const k = keys(labels)\n k.forEach((key) => (l[key] = labels[key]))\n }\n\n const hours = Math.floor(value / 60)\n const minutes = value % 60\n\n const result = []\n if (hours > 0) result.push(`${hours}${l.hour}`)\n result.push(`${minutes}${l.minute}`)\n\n return result.join(l.join)\n}\n\nexport const simpleTime = (value: number) => {\n return [Math.floor(value / 60), value % 60]\n .map((num) => num.toString().padStart(2, '0'))\n .join(':')\n}\n\nexport const reverseSimpleTime = (value: string) => {\n const t = value.replace(/\\D/g, '')\n\n if (t.length === 0) return 0\n\n const h = parseInt(t.substring(0, 2).padEnd(2, '0'))\n\n if (t.length < 3) return h * 60\n\n const m = parseInt(t.substring(2, 4).padEnd(2, '0'))\n\n return h * 60 + m\n}\n\nexport const intToBool = (value: 1 | 0): boolean => {\n const values = {\n 1: true,\n 0: false,\n }\n\n return values[value]\n}\n\nexport const boolToInt = (value: boolean): 1 | 0 => {\n return value ? 1 : 0\n}\n\nexport const numberOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): number | T => {\n if (isNumber(value)) return value\n if (isNumericString(value)) return parseFloat(value)\n return defaultValue\n}\n\nexport const booleanOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): boolean | T => {\n if (isBoolean(value)) return value\n\n if (isNumber(value)) return value > 0\n if (isNumericString(value)) return parseInt(value) > 0\n\n return defaultValue\n}\n\nexport const notEmptyStringOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): string | T => {\n if (notEmptyString(value)) return value.trim()\n return defaultValue\n}\n\nexport const capitalize = (value: string): string => {\n return value\n .split(' ')\n .map((word) => `${word[0].toUpperCase()}${word.slice(1).toLowerCase()}`)\n .join(' ')\n}\n\nexport const isoStringToDate = (value: string): Date | null => {\n const [d, t = '00:00:00'] = value.split(' ')\n\n const date = new Date(\n d.split('/').reverse().join('-') +\n ' ' +\n [...t.split(':'), '0', '0', '0']\n .slice(0, 3)\n .map((s) => s.padEnd(2, '0'))\n .join(':'),\n )\n return isNaN(date.getTime()) ? null : date\n}\n\nexport const getWeekNumber = (value: Date): [number, number] => {\n // cloning date\n const weekSunday = new Date(value)\n // reset time\n weekSunday.setHours(0, 0, 0, 0)\n // set date to week sunday\n weekSunday.setDate(weekSunday.getDate() - weekSunday.getUTCDay())\n // get first day of year\n const yearStart = new Date(Date.UTC(weekSunday.getUTCFullYear(), 0, 1))\n // calculate full weeks to the target week\n const weekNumber = Math.ceil(\n ((weekSunday.getTime() - yearStart.getTime()) / 86400000 + 1) / 7,\n )\n // return array of year and week number\n return [weekNumber, weekSunday.getUTCFullYear()]\n}\n\nexport const getMonthName = (value: Date): string => {\n const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n ]\n\n const monthName = months[value.getMonth()]\n return monthName\n}\n\nexport const getFirstWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-01-01 00:00:00`)\n // jumping to week sunday\n week.setDate(week.getDate() - week.getUTCDay() - 7)\n week.setHours(0, 0, 0, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to next sunday\n week.setDate(week.getDate() + 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport const getLastWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-12-31 00:00:00`)\n // jumping to week saturday\n week.setDate(week.getDate() - week.getUTCDay() + 6)\n week.setHours(23, 59, 59, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to previous saturday\n week.setDate(week.getDate() - 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport { stripAccents, dateToIsoString, keys } from './common'\n\nexport const getSpacings = (\n value: SpacingOrZero | Spacings,\n defaults?: SpacingOrZero | Spacings,\n) => {\n let d = {\n top: 's1',\n left: 's1',\n bottom: 's1',\n right: 's1',\n }\n\n if (defaults) {\n if (typeof defaults === 'string') {\n d.top = defaults\n d.left = defaults\n d.bottom = defaults\n d.right = defaults\n } else {\n d = {\n ...d,\n ...defaults,\n }\n }\n }\n\n const spacing =\n typeof value === 'string'\n ? {\n top: value,\n left: value,\n bottom: value,\n right: value,\n }\n : {\n ...d,\n ...value,\n }\n\n const values = {\n top: isKeyOf(spacings, spacing.top) ? spacings[spacing.top] : spacing.top,\n left: isKeyOf(spacings, spacing.left)\n ? spacings[spacing.left]\n : spacing.left,\n bottom: isKeyOf(spacings, spacing.bottom)\n ? spacings[spacing.bottom]\n : spacing.bottom,\n right: isKeyOf(spacings, spacing.right)\n ? spacings[spacing.right]\n : spacing.right,\n }\n\n return `${values.top} ${values.right} ${values.bottom} ${values.left}`\n}\n\nexport const getBorder = (config: Borders): Exclude<Borders, Border> => {\n return 'color' in config\n ? {\n top: config,\n left: config,\n bottom: config,\n right: config,\n }\n : config\n}\n\nexport const clone = <T>(value: T): T => {\n if (Array.isArray(value)) {\n const r = value.map(clone) as unknown as T\n return r\n }\n\n if (isObject<GenericObject>(value)) {\n const r = keys(value).reduce((prev, key) => {\n const v = clone(value[key])\n return { ...prev, [key]: v }\n }, {} as T)\n return r\n }\n\n return value\n}\n\nexport const unique = <T>(\n value: T[],\n callback: (item: T, arr: T[]) => boolean = (item, arr) => arr.includes(item),\n): T[] => {\n return value.filter((v, _i, self) => callback(v, self))\n}\n","import { useEffect, useState } from 'react'\nimport { isBoolean } from '../../../../functions/validators'\nimport { TransitionProps } from './interfaces'\n\nconst Transition = (props: TransitionProps) => {\n const { active, mountDuration, element } = props\n\n const [render, setRender] = useState<boolean | 'unmounted' | 'first'>('first')\n\n useEffect(() => {\n // se o estado inicial é fechado, nao precisa passar pelo estado fechado pra desmontar, simplismente nao monta\n setRender((prev) =>\n prev === 'first' && active === false ? 'unmounted' : false,\n )\n\n const timeoutId = active\n ? setTimeout(() => setRender(true))\n : setTimeout(() => setRender('unmounted'), mountDuration)\n\n return () => clearTimeout(timeoutId)\n }, [active])\n\n return isBoolean(render) ? element({ active: render, mountDuration }) : null\n}\n\nexport default Transition\n","import { css } from 'styled-components'\nimport { keys } from '../../../../functions/formatters'\nimport { MappedTransitions, Transition } from './interfaces'\n\nconst useTransition = <P extends string>(\n props: Transition<P>,\n values: MappedTransitions<P>,\n) => {\n const { active, mountDuration } = props\n\n const animation = {\n enabled: css``,\n disabled: css``,\n }\n\n const properties: string[] = []\n const durations: number[] = []\n const functions: string[] = []\n\n keys(props.properties).forEach((k) => {\n const config = props.properties[k]\n if (config === undefined) return\n properties.push(k)\n durations.push(\n config.duration && config.duration <= mountDuration\n ? config.duration\n : mountDuration,\n )\n functions.push(config.function || 'ease-in-out')\n\n if (values[k].disabled) {\n animation.disabled = animation.disabled.concat(\n `${k}: ${values[k].disabled};`,\n )\n }\n\n if (values[k].enabled) {\n animation.enabled = animation.enabled.concat(\n `${k}: ${values[k].enabled};`,\n )\n }\n })\n\n if (properties.length === 0) return\n\n return css`\n transition-property: ${properties.join(', ')};\n transition-duration: ${durations.map((d) => `${d}ms`).join(', ')};\n transition-timing-function: ${functions.join(', ')};\n ${animation[active ? 'enabled' : 'disabled']}\n `\n}\n\nexport default useTransition\n","import styled, { css, FlattenSimpleInterpolation } from 'styled-components'\nimport { isKeyOf } from '../../functions/common'\nimport { useTransition } from '../Transition'\n\nimport { ContainerProps, Position, References } from './interfaces'\n\nconst positions: {\n [key in Position]: (\n reference: References,\n pointerSize: string,\n ) => FlattenSimpleInterpolation\n} = {\n 'top right': ({ bottom, left }, pointerSize) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n left: ${left || `calc(100% + ${pointerSize})`};\n `,\n 'top left': ({ bottom, right }, pointerSize) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n right: ${right || `calc(100% + ${pointerSize})`};\n `,\n 'bottom right': ({ top, left }, pointerSize) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n left: ${left || `calc(100% + ${pointerSize})`};\n `,\n 'bottom left': ({ top, right }, pointerSize) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n right: ${right || `calc(100% + ${pointerSize})`};\n `,\n 'right top': ({ bottom }, pointerSize) => css`\n bottom: ${bottom || `calc(100% + ${pointerSize})`};\n right: 0;\n `,\n 'right bottom': ({ top }, pointerSize) => css`\n top: ${top || `calc(100% + ${pointerSize})`};\n right: 0;\n `,\n 'left top': ({ bottom }, pointerSize) => css`\n bottom: ${bottom || `calc(100% + ${pointerSize})`};\n left: 0;\n `,\n 'left bottom': ({ top }, pointerSize) => css`\n top: ${top || `calc(100% + ${pointerSize})`};\n left: 0;\n `,\n}\n\nconst pointerPositions: {\n [key in Position]: (\n distance: string,\n size: string,\n ) => FlattenSimpleInterpolation\n} = {\n 'top right': (distance, size) => css`\n top: ${distance};\n left: calc(${size} / 2 * -1);\n `,\n 'top left': (distance, size) => css`\n top: ${distance};\n right: calc(${size} / 2 * -1);\n `,\n 'bottom right': (distance, size) => css`\n bottom: ${distance};\n left: calc(${size} / 2 * -1);\n `,\n 'bottom left': (distance, size) => css`\n bottom: ${distance};\n right: calc(${size} / 2 * -1);\n `,\n 'right top': (distance, size) => css`\n bottom: calc(${size} / 2 * -1);\n right: ${distance};\n `,\n 'right bottom': (distance, size) => css`\n top: calc(${size} / 2 * -1);\n right: ${distance};\n `,\n 'left top': (distance, size) => css`\n bottom: calc(${size} / 2 * -1);\n left: ${distance};\n `,\n 'left bottom': (distance, size) => css`\n top: calc(${size} / 2 * -1);\n left: ${distance};\n `,\n}\n\nexport const Container = styled.div<ContainerProps>`\n ${({ theme }) => theme.useTypography('p')};\n display: flex;\n\n > div {\n box-shadow: 0px 3px 6px ${({ theme }) => theme.getColor('black', 15)};\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n overflow: hidden;\n z-index: 1;\n background-color: ${({ theme, bgColor }) =>\n !bgColor\n ? theme.colors.white\n : typeof bgColor === 'function'\n ? bgColor(theme)\n : isKeyOf(theme.colors, bgColor)\n ? theme.colors[bgColor]\n : bgColor};\n }\n\n z-index: ${({ zIndex }) => zIndex || 1};\n\n ${({ width }) => {\n if (!width) return\n\n return css`\n width: ${width};\n `\n }}\n\n ${({ height }) => {\n if (!height) return\n\n return css`\n height: ${height};\n `\n }}\n\n ${({ maxWidth }) => {\n if (!maxWidth) return\n\n return css`\n max-width: ${maxWidth};\n `\n }}\n\n ${({ maxHeight }) => {\n if (!maxHeight) return\n\n return css`\n max-height: ${maxHeight};\n `\n }}\n\n position: absolute;\n\n ${({ theme, position, references, pointer }) => {\n if (!position) {\n return css`\n visibility: collapse;\n `\n }\n\n const pointerSize = pointer\n ? pointer === true\n ? theme.spacings.s1\n : typeof pointer.size === 'function'\n ? pointer.size(theme)\n : pointer.size || theme.spacings.s1\n : '0px'\n\n return positions[position](references || {}, pointerSize)\n }}\n\n ${(props) => {\n const { transition } = props\n\n if (transition === undefined) return\n\n return useTransition(transition, {\n 'max-width': {\n disabled: '0px',\n },\n 'max-height': {\n disabled: '0px',\n },\n width: {\n disabled: '0px',\n },\n height: {\n disabled: '0px',\n },\n })\n }};\n\n ${({ theme, pointer, position }) => {\n if (!pointer || !position) return\n\n const config: Required<typeof pointer> = {\n size: 's1',\n color: 'white',\n distance: 's1',\n ...(pointer === true ? {} : pointer),\n }\n\n const size =\n typeof config.size === 'function'\n ? config.size(theme)\n : isKeyOf(theme.spacings, config.size)\n ? theme.spacings[config.size]\n : config.size\n\n const distance =\n typeof config.distance === 'function'\n ? config.distance(theme)\n : isKeyOf(theme.spacings, config.distance)\n ? theme.spacings[config.distance]\n : config.distance\n\n const color =\n typeof config.color === 'function'\n ? config.color(theme)\n : isKeyOf(theme.colors, config.color)\n ? theme.colors[config.color]\n : config.color\n\n return css`\n :after {\n content: '';\n\n position: absolute;\n\n ${pointerPositions[position](distance, size)}\n\n width: ${size};\n height: ${size};\n\n transform: rotate(45deg);\n\n background-color: ${color};\n box-shadow: 0px 3px 6px ${({ theme }) => theme.getColor('black', 15)};\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n }\n `\n }}\n`\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { filterObject, keys } from '../../functions/formatters'\nimport { isKeyOf } from '../../functions/validators'\nimport Transition from '../Transition'\n\nimport { AbsoluteContainerProps, Position } from './interfaces'\nimport * as S from './styles'\n\nexport const AbsoluteContainer = React.forwardRef(\n (\n props: AbsoluteContainerProps,\n fowardedRef?: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { open, boundRef } = props\n\n const center = props.center || {\n x: 50,\n y: 75,\n }\n\n const axis = props.axis || 'y'\n\n const [ref, setRef] = useState<HTMLDivElement | null>(null)\n\n const getPosition = useCallback((): Position | null => {\n if (props.position) return props.position\n\n if (!ref) return null\n\n const { width, height, offsetTop, offsetLeft } = boundRef\n ? (() => {\n const rect = boundRef.getBoundingClientRect()\n return {\n offsetTop: rect.top,\n offsetLeft: rect.left,\n width: boundRef.offsetWidth,\n height: boundRef.offsetHeight,\n }\n })()\n : {\n offsetTop: 0,\n offsetLeft: 0,\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const rect = ref.getBoundingClientRect()\n const top = rect.top - offsetTop\n const left = rect.left - offsetLeft\n\n const x = (left * 100) / width\n const y = (top * 100) / height\n\n if (axis === 'y') {\n const xDirection = x > center.x ? 'right' : 'left'\n const yDirection = y > center.y ? 'top' : 'bottom'\n\n const newPosition: Position = `${xDirection} ${yDirection}` as Position\n return newPosition\n } else {\n const xDirection = x > center.x ? 'left' : 'right'\n const yDirection = y > center.y ? 'bottom' : 'top'\n\n const newPosition: Position = `${yDirection} ${xDirection}` as Position\n return newPosition\n }\n }, [ref, boundRef, props.position])\n\n const [position, setPosition] = useState<Position | null>(getPosition)\n\n useImperativeHandle(fowardedRef, () => ref as HTMLDivElement)\n\n useEffect(() => {\n setPosition(getPosition)\n }, [getPosition])\n\n const htmlProps = filterObject<\n AbsoluteContainerProps,\n React.HTMLAttributes<HTMLDivElement>\n >(props, [\n 'center',\n 'position',\n 'children' as keyof AbsoluteContainerProps,\n 'content' as keyof AbsoluteContainerProps,\n ])\n\n const cssKeys = {\n width: 'width',\n 'max-width': 'maxWidth',\n height: 'height',\n 'max-height': 'maxHeight',\n }\n\n const propsTransition = {\n mountDuration: 500,\n properties: keys(cssKeys)\n .filter((k) => {\n const key = cssKeys[k]\n return isKeyOf(props, key) && props[key] !== undefined\n })\n .reduce((prev, k) => ({ ...prev, [k]: {} }), {}),\n ...(props.transition || {}),\n }\n\n return (\n <Transition\n active={open}\n mountDuration={propsTransition.mountDuration}\n element={(transition) => (\n <S.Container\n {...htmlProps}\n position={position}\n ref={setRef}\n transition={{\n ...propsTransition,\n ...transition,\n }}\n >\n <div\n children={'content' in props ? <props.content /> : props.children}\n />\n </S.Container>\n )}\n />\n )\n },\n)\n\nAbsoluteContainer.displayName = 'AbsoluteContainer'\n\nexport default AbsoluteContainer\n","/* eslint-disable camelcase */\n\nimport { ReactComponent as activity_icon } from './activity.svg'\nimport { ReactComponent as airplay_icon } from './airplay.svg'\nimport { ReactComponent as alert_circle_icon } from './alert-circle.svg'\nimport { ReactComponent as alert_octagon_icon } from './alert-octagon.svg'\nimport { ReactComponent as alert_triangle_icon } from './alert-triangle.svg'\nimport { ReactComponent as align_center_icon } from './align-center.svg'\nimport { ReactComponent as align_justify_icon } from './align-justify.svg'\nimport { ReactComponent as align_left_icon } from './align-left.svg'\nimport { ReactComponent as align_right_icon } from './align-right.svg'\nimport { ReactComponent as anchor_icon } from './anchor.svg'\nimport { ReactComponent as aperture_icon } from './aperture.svg'\nimport { ReactComponent as archive_icon } from './archive.svg'\nimport { ReactComponent as arrow_down_icon } from './arrow-down.svg'\nimport { ReactComponent as arrow_down_circle_icon } from './arrow-down-circle.svg'\nimport { ReactComponent as arrow_down_left_icon } from './arrow-down-left.svg'\nimport { ReactComponent as arrow_down_right_icon } from './arrow-down-right.svg'\nimport { ReactComponent as arrow_left_icon } from './arrow-left.svg'\nimport { ReactComponent as arrow_left_circle_icon } from './arrow-left-circle.svg'\nimport { ReactComponent as arrow_right_icon } from './arrow-right.svg'\nimport { ReactComponent as arrow_right_circle_icon } from './arrow-right-circle.svg'\nimport { ReactComponent as arrow_up_icon } from './arrow-up.svg'\nimport { ReactComponent as arrow_up_circle_icon } from './arrow-up-circle.svg'\nimport { ReactComponent as arrow_up_left_icon } from './arrow-up-left.svg'\nimport { ReactComponent as arrow_up_right_icon } from './arrow-up-right.svg'\nimport { ReactComponent as at_sign_icon } from './at-sign.svg'\nimport { ReactComponent as award_icon } from './award.svg'\nimport { ReactComponent as bar_chart_icon } from './bar-chart.svg'\nimport { ReactComponent as bar_chart_2_icon } from './bar-chart-2.svg'\nimport { ReactComponent as battery_icon } from './battery.svg'\nimport { ReactComponent as battery_charging_icon } from './battery-charging.svg'\nimport { ReactComponent as bell_icon } from './bell.svg'\nimport { ReactComponent as bell_off_icon } from './bell-off.svg'\nimport { ReactComponent as bluetooth_icon } from './bluetooth.svg'\nimport { ReactComponent as bold_icon } from './bold.svg'\nimport { ReactComponent as book_icon } from './book.svg'\nimport { ReactComponent as book_open_icon } from './book-open.svg'\nimport { ReactComponent as bookmark_icon } from './bookmark.svg'\nimport { ReactComponent as box_icon } from './box.svg'\nimport { ReactComponent as briefcase_icon } from './briefcase.svg'\nimport { ReactComponent as calendar_icon } from './calendar.svg'\nimport { ReactComponent as camera_icon } from './camera.svg'\nimport { ReactComponent as camera_off_icon } from './camera-off.svg'\nimport { ReactComponent as cast_icon } from './cast.svg'\nimport { ReactComponent as check_icon } from './check.svg'\nimport { ReactComponent as check_circle_icon } from './check-circle.svg'\nimport { ReactComponent as check_square_icon } from './check-square.svg'\nimport { ReactComponent as chevron_down_icon } from './chevron-down.svg'\nimport { ReactComponent as chevron_left_icon } from './chevron-left.svg'\nimport { ReactComponent as chevron_right_icon } from './chevron-right.svg'\nimport { ReactComponent as chevron_up_icon } from './chevron-up.svg'\nimport { ReactComponent as chevrons_down_icon } from './chevrons-down.svg'\nimport { ReactComponent as chevrons_left_icon } from './chevrons-left.svg'\nimport { ReactComponent as chevrons_right_icon } from './chevrons-right.svg'\nimport { ReactComponent as chevrons_up_icon } from './chevrons-up.svg'\nimport { ReactComponent as chrome_icon } from './chrome.svg'\nimport { ReactComponent as circle_icon } from './circle.svg'\nimport { ReactComponent as clipboard_icon } from './clipboard.svg'\nimport { ReactComponent as clock_icon } from './clock.svg'\nimport { ReactComponent as cloud_icon } from './cloud.svg'\nimport { ReactComponent as cloud_drizzle_icon } from './cloud-drizzle.svg'\nimport { ReactComponent as cloud_lightning_icon } from './cloud-lightning.svg'\nimport { ReactComponent as cloud_off_icon } from './cloud-off.svg'\nimport { ReactComponent as cloud_rain_icon } from './cloud-rain.svg'\nimport { ReactComponent as cloud_snow_icon } from './cloud-snow.svg'\nimport { ReactComponent as code_icon } from './code.svg'\nimport { ReactComponent as codepen_icon } from './codepen.svg'\nimport { ReactComponent as codesandbox_icon } from './codesandbox.svg'\nimport { ReactComponent as coffee_icon } from './coffee.svg'\nimport { ReactComponent as columns_icon } from './columns.svg'\nimport { ReactComponent as command_icon } from './command.svg'\nimport { ReactComponent as compass_icon } from './compass.svg'\nimport { ReactComponent as copy_icon } from './copy.svg'\nimport { ReactComponent as corner_down_left_icon } from './corner-down-left.svg'\nimport { ReactComponent as corner_down_right_icon } from './corner-down-right.svg'\nimport { ReactComponent as corner_left_down_icon } from './corner-left-down.svg'\nimport { ReactComponent as corner_left_up_icon } from './corner-left-up.svg'\nimport { ReactComponent as corner_right_down_icon } from './corner-right-down.svg'\nimport { ReactComponent as corner_right_up_icon } from './corner-right-up.svg'\nimport { ReactComponent as corner_up_left_icon } from './corner-up-left.svg'\nimport { ReactComponent as corner_up_right_icon } from './corner-up-right.svg'\nimport { ReactComponent as cpu_icon } from './cpu.svg'\nimport { ReactComponent as credit_card_icon } from './credit-card.svg'\nimport { ReactComponent as crop_icon } from './crop.svg'\nimport { ReactComponent as crosshair_icon } from './crosshair.svg'\nimport { ReactComponent as database_icon } from './database.svg'\nimport { ReactComponent as delete_icon } from './delete.svg'\nimport { ReactComponent as disc_icon } from './disc.svg'\nimport { ReactComponent as divide_icon } from './divide.svg'\nimport { ReactComponent as divide_circle_icon } from './divide-circle.svg'\nimport { ReactComponent as divide_square_icon } from './divide-square.svg'\nimport { ReactComponent as dollar_sign_icon } from './dollar-sign.svg'\nimport { ReactComponent as download_icon } from './download.svg'\nimport { ReactComponent as download_cloud_icon } from './download-cloud.svg'\nimport { ReactComponent as dribbble_icon } from './dribbble.svg'\nimport { ReactComponent as droplet_icon } from './droplet.svg'\nimport { ReactComponent as edit_icon } from './edit.svg'\nimport { ReactComponent as edit_2_icon } from './edit-2.svg'\nimport { ReactComponent as edit_3_icon } from './edit-3.svg'\nimport { ReactComponent as external_link_icon } from './external-link.svg'\nimport { ReactComponent as eye_icon } from './eye.svg'\nimport { ReactComponent as eye_off_icon } from './eye-off.svg'\nimport { ReactComponent as facebook_icon } from './facebook.svg'\nimport { ReactComponent as fast_forward_icon } from './fast-forward.svg'\nimport { ReactComponent as feather_icon } from './feather.svg'\nimport { ReactComponent as figma_icon } from './figma.svg'\nimport { ReactComponent as file_icon } from './file.svg'\nimport { ReactComponent as file_minus_icon } from './file-minus.svg'\nimport { ReactComponent as file_plus_icon } from './file-plus.svg'\nimport { ReactComponent as file_text_icon } from './file-text.svg'\nimport { ReactComponent as film_icon } from './film.svg'\nimport { ReactComponent as filter_icon } from './filter.svg'\nimport { ReactComponent as flag_icon } from './flag.svg'\nimport { ReactComponent as folder_icon } from './folder.svg'\nimport { ReactComponent as folder_minus_icon } from './folder-minus.svg'\nimport { ReactComponent as folder_plus_icon } from './folder-plus.svg'\nimport { ReactComponent as framer_icon } from './framer.svg'\nimport { ReactComponent as frown_icon } from './frown.svg'\nimport { ReactComponent as gift_icon } from './gift.svg'\nimport { ReactComponent as git_branch_icon } from './git-branch.svg'\nimport { ReactComponent as git_commit_icon } from './git-commit.svg'\nimport { ReactComponent as git_merge_icon } from './git-merge.svg'\nimport { ReactComponent as git_pull_request_icon } from './git-pull-request.svg'\nimport { ReactComponent as github_icon } from './github.svg'\nimport { ReactComponent as gitlab_icon } from './gitlab.svg'\nimport { ReactComponent as globe_icon } from './globe.svg'\nimport { ReactComponent as grid_icon } from './grid.svg'\nimport { ReactComponent as hard_drive_icon } from './hard-drive.svg'\nimport { ReactComponent as hash_icon } from './hash.svg'\nimport { ReactComponent as headphones_icon } from './headphones.svg'\nimport { ReactComponent as heart_icon } from './heart.svg'\nimport { ReactComponent as help_circle_icon } from './help-circle.svg'\nimport { ReactComponent as hexagon_icon } from './hexagon.svg'\nimport { ReactComponent as home_icon } from './home.svg'\nimport { ReactComponent as image_icon } from './image.svg'\nimport { ReactComponent as inbox_icon } from './inbox.svg'\nimport { ReactComponent as info_icon } from './info.svg'\nimport { ReactComponent as instagram_icon } from './instagram.svg'\nimport { ReactComponent as italic_icon } from './italic.svg'\nimport { ReactComponent as key_icon } from './key.svg'\nimport { ReactComponent as layers_icon } from './layers.svg'\nimport { ReactComponent as layout_icon } from './layout.svg'\nimport { ReactComponent as life_buoy_icon } from './life-buoy.svg'\nimport { ReactComponent as link_icon } from './link.svg'\nimport { ReactComponent as link_2_icon } from './link-2.svg'\nimport { ReactComponent as linkedin_icon } from './linkedin.svg'\nimport { ReactComponent as list_icon } from './list.svg'\nimport { ReactComponent as loader_icon } from './loader.svg'\nimport { ReactComponent as lock_icon } from './lock.svg'\nimport { ReactComponent as log_in_icon } from './log-in.svg'\nimport { ReactComponent as log_out_icon } from './log-out.svg'\nimport { ReactComponent as mail_icon } from './mail.svg'\nimport { ReactComponent as map_icon } from './map.svg'\nimport { ReactComponent as map_pin_icon } from './map-pin.svg'\nimport { ReactComponent as maximize_icon } from './maximize.svg'\nimport { ReactComponent as maximize_2_icon } from './maximize-2.svg'\nimport { ReactComponent as meh_icon } from './meh.svg'\nimport { ReactComponent as menu_icon } from './menu.svg'\nimport { ReactComponent as message_circle_icon } from './message-circle.svg'\nimport { ReactComponent as message_square_icon } from './message-square.svg'\nimport { ReactComponent as mic_icon } from './mic.svg'\nimport { ReactComponent as mic_off_icon } from './mic-off.svg'\nimport { ReactComponent as minimize_icon } from './minimize.svg'\nimport { ReactComponent as minimize_2_icon } from './minimize-2.svg'\nimport { ReactComponent as minus_icon } from './minus.svg'\nimport { ReactComponent as minus_circle_icon } from './minus-circle.svg'\nimport { ReactComponent as minus_square_icon } from './minus-square.svg'\nimport { ReactComponent as monitor_icon } from './monitor.svg'\nimport { ReactComponent as moon_icon } from './moon.svg'\nimport { ReactComponent as more_horizontal_icon } from './more-horizontal.svg'\nimport { ReactComponent as more_vertical_icon } from './more-vertical.svg'\nimport { ReactComponent as mouse_pointer_icon } from './mouse-pointer.svg'\nimport { ReactComponent as move_icon } from './move.svg'\nimport { ReactComponent as music_icon } from './music.svg'\nimport { ReactComponent as navigation_icon } from './navigation.svg'\nimport { ReactComponent as navigation_2_icon } from './navigation-2.svg'\nimport { ReactComponent as octagon_icon } from './octagon.svg'\nimport { ReactComponent as package_icon } from './package.svg'\nimport { ReactComponent as paperclip_icon } from './paperclip.svg'\nimport { ReactComponent as pause_icon } from './pause.svg'\nimport { ReactComponent as pause_circle_icon } from './pause-circle.svg'\nimport { ReactComponent as pen_tool_icon } from './pen-tool.svg'\nimport { ReactComponent as percent_icon } from './percent.svg'\nimport { ReactComponent as phone_icon } from './phone.svg'\nimport { ReactComponent as phone_call_icon } from './phone-call.svg'\nimport { ReactComponent as phone_forwarded_icon } from './phone-forwarded.svg'\nimport { ReactComponent as phone_incoming_icon } from './phone-incoming.svg'\nimport { ReactComponent as phone_missed_icon } from './phone-missed.svg'\nimport { ReactComponent as phone_off_icon } from './phone-off.svg'\nimport { ReactComponent as phone_outgoing_icon } from './phone-outgoing.svg'\nimport { ReactComponent as pie_chart_icon } from './pie-chart.svg'\nimport { ReactComponent as play_icon } from './play.svg'\nimport { ReactComponent as play_circle_icon } from './play-circle.svg'\nimport { ReactComponent as plus_icon } from './plus.svg'\nimport { ReactComponent as plus_circle_icon } from './plus-circle.svg'\nimport { ReactComponent as plus_square_icon } from './plus-square.svg'\nimport { ReactComponent as pocket_icon } from './pocket.svg'\nimport { ReactComponent as power_icon } from './power.svg'\nimport { ReactComponent as printer_icon } from './printer.svg'\nimport { ReactComponent as radio_icon } from './radio.svg'\nimport { ReactComponent as refresh_ccw_icon } from './refresh-ccw.svg'\nimport { ReactComponent as refresh_cw_icon } from './refresh-cw.svg'\nimport { ReactComponent as repeat_icon } from './repeat.svg'\nimport { ReactComponent as rewind_icon } from './rewind.svg'\nimport { ReactComponent as rotate_ccw_icon } from './rotate-ccw.svg'\nimport { ReactComponent as rotate_cw_icon } from './rotate-cw.svg'\nimport { ReactComponent as rss_icon } from './rss.svg'\nimport { ReactComponent as save_icon } from './save.svg'\nimport { ReactComponent as scissors_icon } from './scissors.svg'\nimport { ReactComponent as search_icon } from './search.svg'\nimport { ReactComponent as send_icon } from './send.svg'\nimport { ReactComponent as server_icon } from './server.svg'\nimport { ReactComponent as settings_icon } from './settings.svg'\nimport { ReactComponent as share_icon } from './share.svg'\nimport { ReactComponent as share_2_icon } from './share-2.svg'\nimport { ReactComponent as shield_icon } from './shield.svg'\nimport { ReactComponent as shield_off_icon } from './shield-off.svg'\nimport { ReactComponent as shopping_bag_icon } from './shopping-bag.svg'\nimport { ReactComponent as shopping_cart_icon } from './shopping-cart.svg'\nimport { ReactComponent as shuffle_icon } from './shuffle.svg'\nimport { ReactComponent as sidebar_icon } from './sidebar.svg'\nimport { ReactComponent as skip_back_icon } from './skip-back.svg'\nimport { ReactComponent as skip_forward_icon } from './skip-forward.svg'\nimport { ReactComponent as slack_icon } from './slack.svg'\nimport { ReactComponent as slash_icon } from './slash.svg'\nimport { ReactComponent as sliders_icon } from './sliders.svg'\nimport { ReactComponent as smartphone_icon } from './smartphone.svg'\nimport { ReactComponent as smile_icon } from './smile.svg'\nimport { ReactComponent as speaker_icon } from './speaker.svg'\nimport { ReactComponent as square_icon } from './square.svg'\nimport { ReactComponent as star_icon } from './star.svg'\nimport { ReactComponent as stop_circle_icon } from './stop-circle.svg'\nimport { ReactComponent as sun_icon } from './sun.svg'\nimport { ReactComponent as sunrise_icon } from './sunrise.svg'\nimport { ReactComponent as sunset_icon } from './sunset.svg'\nimport { ReactComponent as table_icon } from './table.svg'\nimport { ReactComponent as tablet_icon } from './tablet.svg'\nimport { ReactComponent as tag_icon } from './tag.svg'\nimport { ReactComponent as target_icon } from './target.svg'\nimport { ReactComponent as terminal_icon } from './terminal.svg'\nimport { ReactComponent as thermometer_icon } from './thermometer.svg'\nimport { ReactComponent as thumbs_down_icon } from './thumbs-down.svg'\nimport { ReactComponent as thumbs_up_icon } from './thumbs-up.svg'\nimport { ReactComponent as toggle_left_icon } from './toggle-left.svg'\nimport { ReactComponent as toggle_right_icon } from './toggle-right.svg'\nimport { ReactComponent as tool_icon } from './tool.svg'\nimport { ReactComponent as trash_icon } from './trash.svg'\nimport { ReactComponent as trash_2_icon } from './trash-2.svg'\nimport { ReactComponent as trello_icon } from './trello.svg'\nimport { ReactComponent as trending_down_icon } from './trending-down.svg'\nimport { ReactComponent as trending_up_icon } from './trending-up.svg'\nimport { ReactComponent as triangle_icon } from './triangle.svg'\nimport { ReactComponent as truck_icon } from './truck.svg'\nimport { ReactComponent as tv_icon } from './tv.svg'\nimport { ReactComponent as twitch_icon } from './twitch.svg'\nimport { ReactComponent as twitter_icon } from './twitter.svg'\nimport { ReactComponent as type_icon } from './type.svg'\nimport { ReactComponent as umbrella_icon } from './umbrella.svg'\nimport { ReactComponent as underline_icon } from './underline.svg'\nimport { ReactComponent as unlock_icon } from './unlock.svg'\nimport { ReactComponent as upload_icon } from './upload.svg'\nimport { ReactComponent as upload_cloud_icon } from './upload-cloud.svg'\nimport { ReactComponent as user_icon } from './user.svg'\nimport { ReactComponent as user_check_icon } from './user-check.svg'\nimport { ReactComponent as user_minus_icon } from './user-minus.svg'\nimport { ReactComponent as user_plus_icon } from './user-plus.svg'\nimport { ReactComponent as user_x_icon } from './user-x.svg'\nimport { ReactComponent as users_icon } from './users.svg'\nimport { ReactComponent as video_icon } from './video.svg'\nimport { ReactComponent as video_off_icon } from './video-off.svg'\nimport { ReactComponent as voicemail_icon } from './voicemail.svg'\nimport { ReactComponent as volume_icon } from './volume.svg'\nimport { ReactComponent as volume_1_icon } from './volume-1.svg'\nimport { ReactComponent as volume_2_icon } from './volume-2.svg'\nimport { ReactComponent as volume_x_icon } from './volume-x.svg'\nimport { ReactComponent as watch_icon } from './watch.svg'\nimport { ReactComponent as wifi_icon } from './wifi.svg'\nimport { ReactComponent as wifi_off_icon } from './wifi-off.svg'\nimport { ReactComponent as wind_icon } from './wind.svg'\nimport { ReactComponent as x_icon } from './x.svg'\nimport { ReactComponent as x_circle_icon } from './x-circle.svg'\nimport { ReactComponent as x_octagon_icon } from './x-octagon.svg'\nimport { ReactComponent as x_square_icon } from './x-square.svg'\nimport { ReactComponent as youtube_icon } from './youtube.svg'\nimport { ReactComponent as zap_icon } from './zap.svg'\nimport { ReactComponent as zap_off_icon } from './zap-off.svg'\nimport { ReactComponent as zoom_in_icon } from './zoom-in.svg'\nimport { ReactComponent as zoom_out_icon } from './zoom-out.svg'\n\nconst icons = {\n activity: activity_icon,\n airplay: airplay_icon,\n alert_circle: alert_circle_icon,\n alert_octagon: alert_octagon_icon,\n alert_triangle: alert_triangle_icon,\n align_center: align_center_icon,\n align_justify: align_justify_icon,\n align_left: align_left_icon,\n align_right: align_right_icon,\n anchor: anchor_icon,\n aperture: aperture_icon,\n archive: archive_icon,\n arrow_down: arrow_down_icon,\n arrow_down_circle: arrow_down_circle_icon,\n arrow_down_left: arrow_down_left_icon,\n arrow_down_right: arrow_down_right_icon,\n arrow_left: arrow_left_icon,\n arrow_left_circle: arrow_left_circle_icon,\n arrow_right: arrow_right_icon,\n arrow_right_circle: arrow_right_circle_icon,\n arrow_up: arrow_up_icon,\n arrow_up_circle: arrow_up_circle_icon,\n arrow_up_left: arrow_up_left_icon,\n arrow_up_right: arrow_up_right_icon,\n at_sign: at_sign_icon,\n award: award_icon,\n bar_chart: bar_chart_icon,\n bar_chart_2: bar_chart_2_icon,\n battery: battery_icon,\n battery_charging: battery_charging_icon,\n bell: bell_icon,\n bell_off: bell_off_icon,\n bluetooth: bluetooth_icon,\n bold: bold_icon,\n book: book_icon,\n book_open: book_open_icon,\n bookmark: bookmark_icon,\n box: box_icon,\n briefcase: briefcase_icon,\n calendar: calendar_icon,\n camera: camera_icon,\n camera_off: camera_off_icon,\n cast: cast_icon,\n check: check_icon,\n check_circle: check_circle_icon,\n check_square: check_square_icon,\n chevron_down: chevron_down_icon,\n chevron_left: chevron_left_icon,\n chevron_right: chevron_right_icon,\n chevron_up: chevron_up_icon,\n chevrons_down: chevrons_down_icon,\n chevrons_left: chevrons_left_icon,\n chevrons_right: chevrons_right_icon,\n chevrons_up: chevrons_up_icon,\n chrome: chrome_icon,\n circle: circle_icon,\n clipboard: clipboard_icon,\n clock: clock_icon,\n cloud: cloud_icon,\n cloud_drizzle: cloud_drizzle_icon,\n cloud_lightning: cloud_lightning_icon,\n cloud_off: cloud_off_icon,\n cloud_rain: cloud_rain_icon,\n cloud_snow: cloud_snow_icon,\n code: code_icon,\n codepen: codepen_icon,\n codesandbox: codesandbox_icon,\n coffee: coffee_icon,\n columns: columns_icon,\n command: command_icon,\n compass: compass_icon,\n copy: copy_icon,\n corner_down_left: corner_down_left_icon,\n corner_down_right: corner_down_right_icon,\n corner_left_down: corner_left_down_icon,\n corner_left_up: corner_left_up_icon,\n corner_right_down: corner_right_down_icon,\n corner_right_up: corner_right_up_icon,\n corner_up_left: corner_up_left_icon,\n corner_up_right: corner_up_right_icon,\n cpu: cpu_icon,\n credit_card: credit_card_icon,\n crop: crop_icon,\n crosshair: crosshair_icon,\n database: database_icon,\n delete: delete_icon,\n disc: disc_icon,\n divide: divide_icon,\n divide_circle: divide_circle_icon,\n divide_square: divide_square_icon,\n dollar_sign: dollar_sign_icon,\n download: download_icon,\n download_cloud: download_cloud_icon,\n dribbble: dribbble_icon,\n droplet: droplet_icon,\n edit: edit_icon,\n edit_2: edit_2_icon,\n edit_3: edit_3_icon,\n external_link: external_link_icon,\n eye: eye_icon,\n eye_off: eye_off_icon,\n facebook: facebook_icon,\n fast_forward: fast_forward_icon,\n feather: feather_icon,\n figma: figma_icon,\n file: file_icon,\n file_minus: file_minus_icon,\n file_plus: file_plus_icon,\n file_text: file_text_icon,\n film: film_icon,\n filter: filter_icon,\n flag: flag_icon,\n folder: folder_icon,\n folder_minus: folder_minus_icon,\n folder_plus: folder_plus_icon,\n framer: framer_icon,\n frown: frown_icon,\n gift: gift_icon,\n git_branch: git_branch_icon,\n git_commit: git_commit_icon,\n git_merge: git_merge_icon,\n git_pull_request: git_pull_request_icon,\n github: github_icon,\n gitlab: gitlab_icon,\n globe: globe_icon,\n grid: grid_icon,\n hard_drive: hard_drive_icon,\n hash: hash_icon,\n headphones: headphones_icon,\n heart: heart_icon,\n help_circle: help_circle_icon,\n hexagon: hexagon_icon,\n home: home_icon,\n image: image_icon,\n inbox: inbox_icon,\n info: info_icon,\n instagram: instagram_icon,\n italic: italic_icon,\n key: key_icon,\n layers: layers_icon,\n layout: layout_icon,\n life_buoy: life_buoy_icon,\n link: link_icon,\n link_2: link_2_icon,\n linkedin: linkedin_icon,\n list: list_icon,\n loader: loader_icon,\n lock: lock_icon,\n log_in: log_in_icon,\n log_out: log_out_icon,\n mail: mail_icon,\n map: map_icon,\n map_pin: map_pin_icon,\n maximize: maximize_icon,\n maximize_2: maximize_2_icon,\n meh: meh_icon,\n menu: menu_icon,\n message_circle: message_circle_icon,\n message_square: message_square_icon,\n mic: mic_icon,\n mic_off: mic_off_icon,\n minimize: minimize_icon,\n minimize_2: minimize_2_icon,\n minus: minus_icon,\n minus_circle: minus_circle_icon,\n minus_square: minus_square_icon,\n monitor: monitor_icon,\n moon: moon_icon,\n more_horizontal: more_horizontal_icon,\n more_vertical: more_vertical_icon,\n mouse_pointer: mouse_pointer_icon,\n move: move_icon,\n music: music_icon,\n navigation: navigation_icon,\n navigation_2: navigation_2_icon,\n octagon: octagon_icon,\n package: package_icon,\n paperclip: paperclip_icon,\n pause: pause_icon,\n pause_circle: pause_circle_icon,\n pen_tool: pen_tool_icon,\n percent: percent_icon,\n phone: phone_icon,\n phone_call: phone_call_icon,\n phone_forwarded: phone_forwarded_icon,\n phone_incoming: phone_incoming_icon,\n phone_missed: phone_missed_icon,\n phone_off: phone_off_icon,\n phone_outgoing: phone_outgoing_icon,\n pie_chart: pie_chart_icon,\n play: play_icon,\n play_circle: play_circle_icon,\n plus: plus_icon,\n plus_circle: plus_circle_icon,\n plus_square: plus_square_icon,\n pocket: pocket_icon,\n power: power_icon,\n printer: printer_icon,\n radio: radio_icon,\n refresh_ccw: refresh_ccw_icon,\n refresh_cw: refresh_cw_icon,\n repeat: repeat_icon,\n rewind: rewind_icon,\n rotate_ccw: rotate_ccw_icon,\n rotate_cw: rotate_cw_icon,\n rss: rss_icon,\n save: save_icon,\n scissors: scissors_icon,\n search: search_icon,\n send: send_icon,\n server: server_icon,\n settings: settings_icon,\n share: share_icon,\n share_2: share_2_icon,\n shield: shield_icon,\n shield_off: shield_off_icon,\n shopping_bag: shopping_bag_icon,\n shopping_cart: shopping_cart_icon,\n shuffle: shuffle_icon,\n sidebar: sidebar_icon,\n skip_back: skip_back_icon,\n skip_forward: skip_forward_icon,\n slack: slack_icon,\n slash: slash_icon,\n sliders: sliders_icon,\n smartphone: smartphone_icon,\n smile: smile_icon,\n speaker: speaker_icon,\n square: square_icon,\n star: star_icon,\n stop_circle: stop_circle_icon,\n sun: sun_icon,\n sunrise: sunrise_icon,\n sunset: sunset_icon,\n table: table_icon,\n tablet: tablet_icon,\n tag: tag_icon,\n target: target_icon,\n terminal: terminal_icon,\n thermometer: thermometer_icon,\n thumbs_down: thumbs_down_icon,\n thumbs_up: thumbs_up_icon,\n toggle_left: toggle_left_icon,\n toggle_right: toggle_right_icon,\n tool: tool_icon,\n trash: trash_icon,\n trash_2: trash_2_icon,\n trello: trello_icon,\n trending_down: trending_down_icon,\n trending_up: trending_up_icon,\n triangle: triangle_icon,\n truck: truck_icon,\n tv: tv_icon,\n twitch: twitch_icon,\n twitter: twitter_icon,\n type: type_icon,\n umbrella: umbrella_icon,\n underline: underline_icon,\n unlock: unlock_icon,\n upload: upload_icon,\n upload_cloud: upload_cloud_icon,\n user: user_icon,\n user_check: user_check_icon,\n user_minus: user_minus_icon,\n user_plus: user_plus_icon,\n user_x: user_x_icon,\n users: users_icon,\n video: video_icon,\n video_off: video_off_icon,\n voicemail: voicemail_icon,\n volume: volume_icon,\n volume_1: volume_1_icon,\n volume_2: volume_2_icon,\n volume_x: volume_x_icon,\n watch: watch_icon,\n wifi: wifi_icon,\n wifi_off: wifi_off_icon,\n wind: wind_icon,\n x: x_icon,\n x_circle: x_circle_icon,\n x_octagon: x_octagon_icon,\n x_square: x_square_icon,\n youtube: youtube_icon,\n zap: zap_icon,\n zap_off: zap_off_icon,\n zoom_in: zoom_in_icon,\n zoom_out: zoom_out_icon,\n} as const\n\nexport default icons\n","import { Icon, IconProps } from 'semantic-ui-react'\nimport styled, { css } from 'styled-components'\n\ninterface SemanticIconProps extends IconProps {\n fontcolor: string\n width?: string | number\n height?: string | number\n}\n\nexport const SemanticIcon = styled(Icon)<SemanticIconProps>`\n &.icon,\n &.icon:before {\n margin: 0;\n color: ${({ fontcolor }) => fontcolor};\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${({ width }) => {\n if (!width) return\n\n return css`\n font-size: ${width};\n width: ${width};\n `\n }}\n\n ${({ height }) => {\n if (!height) return\n\n return css`\n font-size: ${height};\n height: ${height};\n `\n }}\n }\n\n &.icon:before {\n height: 100%;\n }\n\n ${({ onClick }) => {\n if (!onClick) return\n return css`\n cursor: pointer;\n `\n }}\n`\n\ninterface SVGContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n color: string\n strokeWidth?: string\n pointer: boolean\n}\n\nexport const SVGContainer = styled.div<SVGContainerProps>`\n display: flex;\n > svg {\n &,\n * {\n stroke: ${({ color }) => color};\n\n ${({ strokeWidth }) => {\n if (!strokeWidth) return\n\n return css`\n stroke-width: ${strokeWidth};\n `\n }}\n }\n }\n\n ${({ pointer }) => {\n if (!pointer) return\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../functions/formatters'\n\nimport { isKeyOf } from '../../functions/validators'\nimport { colors } from '../../theme/constants'\nimport feather from '.././../assets/icons/feather'\nimport { CommonProps, ExtendsCommon, IconProps } from './interfaces'\nimport * as S from './styled'\n\nconst getColor = (c?: string): string => {\n if (!c) return colors.grey\n\n return isKeyOf(colors, c) ? colors[c] : c\n}\n\nconst getCommonProps = (props: ExtendsCommon) => {\n const color = getColor(props.color as string)\n const commonProps = filterObject<typeof props, Omit<CommonProps, 'color'>>(\n props,\n ['type', 'icon', 'color'],\n {\n width: '24px',\n },\n )\n\n return { color, commonProps }\n}\n\nconst Icon = (props: IconProps) => {\n switch (props.type) {\n case 'feather': {\n const { color, commonProps } = getCommonProps(props)\n\n const Component = feather[props.icon]\n return (\n <S.SVGContainer\n color={color}\n strokeWidth={props.strokeWidth}\n pointer={!!props.onClick}\n >\n <Component {...commonProps} />\n </S.SVGContainer>\n )\n }\n case 'semantic': {\n const { color, commonProps } = getCommonProps(props)\n\n return (\n <S.SemanticIcon fontcolor={color} name={props.icon} {...commonProps} />\n )\n }\n case 'svg': {\n const { color, commonProps } = getCommonProps(props)\n\n const Component = props.icon\n return (\n <S.SVGContainer\n color={color}\n strokeWidth={props.strokeWidth}\n pointer={!!props.onClick}\n >\n <Component {...commonProps} />\n </S.SVGContainer>\n )\n }\n case 'jsx': {\n return props.icon\n }\n default:\n throw new Error('Invalid icon type')\n }\n}\n\nexport default Icon\n","import { LoaderProps } from './interfaces'\nimport styled, { css, keyframes } from 'styled-components'\nimport { isKeyOf, isString } from '../../functions/validators'\n\nconst loader = keyframes`\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n`\n\nconst Loader = styled.div<LoaderProps>`\n ${({ size, borderSize, bgColor, color, theme, filled, zIndex }) => {\n borderSize = borderSize || size ? `calc(${size} * 0.0757)` : '5px'\n size = size || '48px'\n color = color || 'blue'\n bgColor = bgColor || color\n\n const beforeColor = isKeyOf<typeof theme.colors>(theme.colors, bgColor)\n ? theme.getColor(bgColor, 25)\n : color\n\n const afterColor = isKeyOf<typeof theme.colors>(theme.colors, color)\n ? theme.getColor(color)\n : color\n\n const fill = !filled\n ? css``\n : css`\n position: absolute;\n left: 0;\n top: 0;\n background-color: ${() => {\n const fillColor = !isString(filled)\n ? theme.colors.white\n : isKeyOf<typeof theme.colors>(theme.colors, filled)\n ? theme.getColor(filled)\n : filled\n return fillColor\n }};\n width: 100%;\n height: 100%;\n `\n\n return css`\n ${fill}\n\n pointer-events: none;\n\n z-index: ${zIndex || 1};\n\n ::before,\n ::after {\n position: absolute;\n content: '';\n\n top: calc(50% - ${size} / 2);\n left: calc(50% - ${size} / 2);\n width: ${size};\n height: ${size};\n border-radius: 50%;\n border-width: ${borderSize};\n border-style: solid;\n }\n\n ::before {\n border-color: ${beforeColor};\n }\n\n ::after {\n animation: ${loader} 0.6s linear;\n animation-iteration-count: infinite;\n border-color: ${afterColor} transparent transparent;\n }\n `\n }}\n`\n\nexport default Loader\n","import { Mask, MaskFunction, MaskReplace, MaskReplaceArray } from './interfaces'\n\nconst isMaskFunction = (value?: Mask): value is MaskFunction => {\n return typeof value === 'function'\n}\n\nconst isMaskReplace = (value?: Mask): value is MaskReplace => {\n return Array.isArray(value) && value[0] instanceof RegExp\n}\n\nconst isMaskReplaceArray = (value?: Mask): value is MaskReplaceArray => {\n return Array.isArray(value) && Array.isArray(value[0])\n}\n\nexport const getMask = (mask?: Mask): MaskFunction => {\n if (isMaskFunction(mask)) {\n return mask\n } else if (isMaskReplace(mask)) {\n const [find, replace] = mask\n return (value: string) => value.replace(find, replace)\n } else if (isMaskReplaceArray(mask)) {\n return (value: string) => {\n let newValue = value\n\n mask.forEach((e) => {\n const [find, replace] = e\n newValue = newValue.replace(find, replace)\n })\n\n return newValue\n }\n }\n\n return (value: string) => value\n}\n","export const updateTitle: React.MouseEventHandler = (event) => {\n let target = event.target as HTMLElement | null\n\n while (target && !('ellipsis' in target.dataset)) {\n target = target.parentElement as HTMLElement | null\n }\n\n if (!target) return\n\n if (\n target.scrollWidth > target.offsetWidth ||\n target.scrollHeight > target.offsetHeight\n ) {\n target.title = target.innerText\n } else target.removeAttribute('title')\n}\n\nconst voidF = () => {}\n\nexport const useEllipsis = (onMouseOver?: React.MouseEventHandler) => {\n const originalHandler = onMouseOver || voidF\n const handler: React.MouseEventHandler = (event) => {\n originalHandler(event)\n updateTitle(event)\n }\n\n return {\n onMouseOver: handler,\n 'data-ellipsis': '',\n }\n}\n","import styled, { css } from 'styled-components'\nimport { EllipsisContainerProps } from './types'\n\nexport const EllipsisContainer = styled.div<EllipsisContainerProps>`\n overflow: hidden;\n text-overflow: ellipsis;\n\n ${({ lines }) => {\n return lines\n ? css`\n display: -webkit-box;\n\n -webkit-box-orient: vertical;\n -moz-box-orient: vertical;\n -ms-box-orient: vertical;\n box-orient: vertical;\n\n -webkit-line-clamp: ${lines};\n -moz-line-clamp: ${lines};\n -ms-line-clamp: ${lines};\n line-clamp: ${lines};\n `\n : css`\n white-space: nowrap;\n `\n }}\n`\n","import React from 'react'\nimport { useEllipsis } from './functions'\n\nimport * as S from './styled'\nimport { EllipsisContainerProps } from './types'\n\nconst EllipsisContainer = (props: EllipsisContainerProps) => {\n return <S.EllipsisContainer {...props} {...useEllipsis(props.onMouseOver)} />\n}\n\nexport default EllipsisContainer\n","import styled, { css } from 'styled-components'\nimport EllipsisContainer from '../../../EllipsisContainer'\nimport {\n StyledInputProps,\n StyledLabelProps,\n StyledLabelTextProps,\n} from './interfaces'\n\nexport const IconContainer = styled.div`\n position: absolute;\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 17px;\n\n background-color: transparent;\n border: none;\n box-shadow: none;\n padding: 0;\n`\n\nexport const ChildrenContainer = styled(EllipsisContainer)`\n position: absolute;\n width: 100%;\n height: 100%;\n bottom: 0;\n left: 0;\n line-height: 19px;\n display: flex;\n gap: calc(${({ theme }) => theme.spacings.s1} / 2);\n`\n\nexport const Input = styled.input<StyledInputProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme, $invalid: invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkBlue\n }};\n\n line-height: 17px;\n\n ::placeholder {\n color: ${({ theme, $invalid: invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkGrey\n }};\n\n line-height: 17px;\n\n ${({ placeholder }) => {\n if (placeholder !== '••••••••') {\n return css`\n ${({ theme }) => theme.useTypography('p')};\n opacity: 1;\n `\n }\n\n return css`\n opacity: 0.5;\n font-size: 14px;\n letter-spacing: 0px;\n `\n }}\n }\n\n display: block;\n width: 100%;\n box-sizing: border-box;\n\n ${({ theme, $paddingless: paddingless }) => {\n if (paddingless) {\n return css`\n padding: 0;\n `\n }\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n ~ ${ChildrenContainer} {\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n }\n `\n }};\n\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, $invalid: invalid, $borderless: borderless }) => {\n if (borderless) return 'transparent'\n return invalid ? theme.colors.warningRed : theme.colors.lightGrey\n }};\n border-radius: 4px;\n\n ${({ theme, $invalid: invalid }) => {\n const color = invalid ? theme.getColor('warningRed', 5) : theme.colors.white\n return css`\n background-color: ${color};\n /** google chrome blue background */\n -webkit-box-shadow: 0 0 0px 1000px ${color} inset !important;\n `\n }};\n\n box-shadow: none;\n outline: none;\n\n ${({ $arrows: arrows }) => {\n if (arrows) return\n\n return css`\n /* Chrome, Safari, Edge, Opera */\n :-webkit-outer-spin-button,\n :-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n -moz-appearance: textfield;\n `\n }}\n\n ${({ readOnly, onClick, disabled }) => {\n if (!readOnly || !onClick || disabled) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n\nexport const InputContainer = styled.div<{ width?: string }>`\n position: relative;\n width: ${({ width }) => width || '100%'};\n`\n\nexport const Label = styled.label<StyledLabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n line-height: 17px;\n\n color: ${({ theme }) => {\n return theme.colors.greyishBlue\n }};\n\n width: ${({ $width: width }) => width || '100%'};\n box-sizing: border-box;\n display: block;\n\n ${({ $disabled: disabled, $viewMode: viewMode }) => {\n if (!disabled || viewMode) return\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > ${InputContainer} > ${IconContainer} {\n bottom: ${({ theme, $paddingless: paddingless }) => {\n return paddingless ? '2px' : `calc(${theme.spacings.s2} + 1px)`\n }};\n }\n\n ${({ $disabled: disabled }) => {\n if (!disabled) return\n\n return css`\n > ${InputContainer}:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n `\n }}\n\n ${({ $readOnly: readOnly, $disabled: disabled, $loading: loading }) => {\n if (loading || readOnly || disabled) return\n\n return css`\n cursor: pointer;\n `\n }}\n\n ${({\n theme,\n $iconWidths: iconWidths,\n $iconPosition: position,\n $paddingless: paddingless,\n }) => {\n if (iconWidths.length < 1) return\n\n const width = `calc(${iconWidths.join(' + ')} + ${\n theme.spacings.s1\n } / 2 * ${iconWidths.length - 1})`\n\n const padding = paddingless ? '0px' : theme.spacings.s3\n\n if (position === 'right') {\n return css`\n > ${InputContainer} > ${IconContainer} {\n width: ${width};\n right: calc(${padding} / 2);\n }\n\n > ${InputContainer} > ${Input} {\n padding-right: calc(${padding} + ${width});\n ~ ${ChildrenContainer} {\n padding-right: calc(${padding} + ${width});\n }\n }\n `\n }\n\n return css`\n > ${InputContainer} > ${IconContainer} {\n width: ${width};\n left: calc(${padding} / 2);\n }\n\n > ${InputContainer} > ${Input} {\n padding-left: calc(${padding} + ${width});\n ~ ${ChildrenContainer} {\n padding-left: calc(${padding} + ${width});\n }\n }\n `\n }}\n`\n\nexport const LabelText = styled.div<StyledLabelTextProps>`\n display: inline-block;\n\n ${({ $viewMode: viewMode }) => {\n if (!viewMode) return\n\n return css`\n font-weight: bold;\n `\n }}\n\n margin-bottom: ${({ theme, $viewMode: viewMode }) =>\n theme.spacings[viewMode ? 's3' : 's1']};\n\n ${({ $required: required, $viewMode: viewMode }) => {\n if (!required || viewMode) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n\nexport const ViewModeContainer = styled.div`\n ${({ children }) => {\n if (children) return\n\n return css`\n :before {\n content: ' ';\n white-space: pre;\n }\n `\n }}\n`\n","import React, { ProviderProps } from 'react'\nimport { ContextProps } from './types'\n\nconst defaultValue: ContextProps = {\n isRequired: () => false,\n isInvalid: () => false,\n isViewMode: () => false,\n isDisabled: () => false,\n}\n\nconst Context = React.createContext<ContextProps>({ ...defaultValue })\n\nconst useContext = <Name extends string = string>(\n name: Name | undefined,\n): { [K in keyof ContextProps]: () => boolean } => {\n const context = React.useContext(Context)\n\n return {\n isRequired: () => false,\n isInvalid: () => false,\n isViewMode: () => false,\n isDisabled: () => false,\n\n ...(name\n ? {\n isRequired: () => context.isRequired(name),\n isInvalid: () => context.isInvalid(name),\n isViewMode: () => context.isViewMode(name),\n isDisabled: () => context.isDisabled(name),\n }\n : {}),\n }\n}\n\nexport const Provider = <Name extends string = string>(\n props: ProviderProps<Partial<ContextProps<Name>>>,\n) => {\n return (\n <Context.Provider\n {...props}\n value={{ ...defaultValue, ...props.value } as ContextProps}\n />\n )\n}\n\nexport default useContext\n","import React from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport useContext, { Provider } from './context'\nimport { FormProps } from './types'\n\nconst Form = Object.assign(\n React.forwardRef(\n Object.assign(\n <Name extends string = string>(\n props: FormProps<Name>,\n ref: React.ForwardedRef<HTMLFormElement>,\n ) => {\n const formProps = filterObject<\n FormProps<Name>,\n React.HTMLAttributes<HTMLFormElement>\n >(props, ['isRequired', 'isInvalid', 'isViewMode', 'isDisabled'])\n\n return (\n <Provider\n value={{\n ...(props.isRequired ? { isRequired: props.isRequired } : {}),\n ...(props.isInvalid ? { isInvalid: props.isInvalid } : {}),\n ...(props.isViewMode ? { isViewMode: props.isViewMode } : {}),\n ...(props.isDisabled ? { isDisabled: props.isDisabled } : {}),\n }}\n >\n <form ref={ref} {...formProps} />\n </Provider>\n )\n },\n { displayName: 'Form' },\n ),\n ),\n { useContext },\n)\n\nexport default Form\n","import React, { useEffect } from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport Loader from '../../../Loader'\nimport { getMask } from '../../functions'\n\nimport { InputProps, StyledInputProps } from './interfaces'\nimport * as S from './styles'\nimport { isString } from '../../../../functions/validators'\nimport Form from '../../../Form'\nimport Icon from '../../../Icon'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref: React.ForwardedRef<HTMLInputElement>) => {\n const {\n label,\n loading,\n readOnly,\n arrows,\n borderless,\n paddingless,\n clearable,\n onPressEnter,\n width,\n } = {\n ...props,\n }\n\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const mask = getMask(props.mask)\n\n useEffect(() => {\n if (!isString(props.value)) return\n const masked = mask(props.value)\n if (masked !== props.value) setValue(masked)\n }, [props.value])\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const inputProps = filterObject<InputProps, StyledInputProps>(\n props,\n [\n 'label',\n 'invalid',\n 'required',\n 'icon',\n 'mask',\n 'loading',\n 'clearable',\n 'setValue',\n 'onPressEnter',\n 'htmlDisabled',\n 'htmlReadOnly',\n 'viewMode',\n 'width',\n 'inputWidth',\n 'arrows',\n 'borderless',\n 'paddingless',\n 'children',\n ],\n {\n $invalid: invalid,\n type: 'text',\n $arrows: arrows,\n $borderless: borderless,\n $paddingless: paddingless,\n },\n )\n\n const onChange = inputProps.onChange || (() => {})\n const setValue = props.setValue || (() => {})\n\n inputProps.onChange = (event) => {\n const masked = mask(event.target.value)\n\n const [start, end] =\n event.target.selectionStart === event.target.selectionEnd &&\n event.target.selectionEnd === event.target.value.length\n ? [masked.length, masked.length]\n : [event.target.selectionStart, event.target.selectionEnd]\n\n event.target.value = masked\n\n onChange(event)\n setValue(event.target.value)\n\n // restore cursor position\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: microbundle ts is outdated\n event.target.setSelectionRange(start, end)\n }\n\n if (inputProps.onKeyDown || onPressEnter) {\n const onKeyDown = inputProps.onKeyDown || (() => {})\n\n const _onPressEnter = onPressEnter\n ? (event: React.KeyboardEvent<HTMLInputElement>) => {\n event.preventDefault()\n onPressEnter(event)\n }\n : () => {}\n\n inputProps.onKeyDown = (event) => {\n onKeyDown(event)\n\n if (event.key === 'Enter') {\n _onPressEnter(event)\n }\n }\n }\n\n if (inputProps.onKeyUp) {\n const onKeyUp = inputProps.onKeyUp\n\n inputProps.onKeyUp = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUp(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyDownCapture) {\n const onKeyDownCapture = inputProps.onKeyDownCapture\n\n inputProps.onKeyDownCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyDownCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyUpCapture) {\n const onKeyUpCapture = inputProps.onKeyUpCapture\n\n inputProps.onKeyUpCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUpCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n const icon: Required<InputProps>['icon']['icon'] | undefined = (() => {\n const icon = {\n ...(invalid ? { color: 'warningRed' } : {}),\n }\n\n if (clearable) {\n const callback =\n typeof clearable === 'function' ? clearable : () => setValue('')\n\n return {\n ...icon,\n type: 'feather',\n icon: 'x',\n width: '14px',\n onClick: (e) => {\n e.preventDefault()\n callback()\n },\n } as Required<InputProps>['icon']['icon']\n }\n\n if (!props.icon) return props.icon\n\n return { ...icon, ...props.icon.icon }\n })()\n\n const { dirty } = props\n const onDirty = (() => {\n if (dirty === undefined || typeof dirty === 'function') return dirty\n\n if (props.value === dirty) return undefined\n\n return () => setValue(dirty)\n })()\n\n if (props.htmlDisabled) inputProps.disabled = true\n if (props.htmlReadOnly) inputProps.readOnly = true\n\n return (\n <S.Label\n $readOnly={readOnly || viewMode}\n $disabled={disabled}\n $loading={loading}\n $invalid={invalid}\n $paddingless={paddingless}\n $iconPosition={props.icon?.position || 'right'}\n $iconWidths={\n loading\n ? ['14px']\n : [\n ...(icon ? [icon.width || '24px'] : []),\n ...(onDirty ? ['10px'] : []),\n ]\n }\n $width={width}\n $viewMode={viewMode}\n >\n {label && (\n <S.LabelText $required={required} $viewMode={viewMode}>\n {label}\n </S.LabelText>\n )}\n\n {viewMode ? (\n <S.ViewModeContainer children={inputProps.value || props.children} />\n ) : (\n <S.InputContainer width={props.inputWidth}>\n <S.Input {...inputProps} ref={ref} />\n\n {props.children && (\n <S.ChildrenContainer children={props.children} />\n )}\n\n <S.IconContainer>\n {loading ? (\n <Icon type='jsx' icon={<Loader size='14px' />} width='14px' />\n ) : (\n <React.Fragment>\n {onDirty && (\n <Icon\n {...{\n type: 'semantic',\n icon: 'undo alternate',\n width: '10px',\n onClick: props.disabled\n ? undefined\n : (e) => {\n e.preventDefault()\n onDirty()\n },\n ...(invalid ? { color: 'warningRed' } : {}),\n }}\n />\n )}\n\n {icon && (\n <Icon\n {...icon}\n {...('onClick' in icon && props.disabled\n ? { onClick: undefined }\n : {})}\n />\n )}\n </React.Fragment>\n )}\n </S.IconContainer>\n </S.InputContainer>\n )}\n </S.Label>\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport default Input\n","import styled, { css } from 'styled-components'\nimport { isKeyOf } from '../../../../functions/validators'\nimport { LabelContentProps, LabelProps } from './interfaces'\n\nconst size = '17px'\n\nexport const Checkmark = styled.div`\n position: relative;\n height: ${size};\n width: ${size};\n background-color: ${({ theme }) => theme.colors.white};\n\n border-style: solid;\n border-color: transparent;\n border-width: 1px;\n border-radius: 4px;\n\n transition-property: border-color;\n transition-duration: 0.25s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);\n\n :after {\n content: '';\n position: absolute;\n\n left: 50%;\n top: 50%;\n height: 0;\n width: 0;\n\n border-style: solid;\n border-color: ${({ theme }) => theme.colors.blue};\n border-width: 0;\n transform: rotate(45deg);\n\n transition-property: width height border-width top left;\n transition-duration: 0.25s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);\n }\n\n /** if there is a label, it will be placed after this element */\n + * {\n flex: 1;\n }\n`\n\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n\n ${({ $padding: padding, theme }) => {\n if (!padding) return\n\n const _padding = {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n }\n\n if (padding.top) {\n _padding.top = padding.top\n if (isKeyOf(theme.spacings, padding.top)) {\n _padding.top = theme.spacings[padding.top]\n }\n }\n\n if (padding.left) {\n _padding.left = padding.left\n if (isKeyOf(theme.spacings, padding.left)) {\n _padding.left = theme.spacings[padding.left]\n }\n }\n\n if (padding.bottom) {\n _padding.bottom = padding.bottom\n if (isKeyOf(theme.spacings, padding.bottom)) {\n _padding.bottom = theme.spacings[padding.bottom]\n }\n }\n\n if (padding.right) {\n _padding.right = padding.right\n if (isKeyOf(theme.spacings, padding.right)) {\n _padding.right = theme.spacings[padding.right]\n }\n }\n\n return css`\n padding-top: ${_padding.top};\n padding-left: ${_padding.left};\n padding-right: ${_padding.right};\n padding-bottom: ${_padding.bottom};\n `\n }}\n\n ${({ $disabled: disabled, $readOnly: readOnly }) => {\n if (disabled) {\n return css`\n opacity: 0.5;\n `\n }\n\n if (readOnly) return\n\n return css`\n cursor: pointer;\n `\n }}\n\n ${({ theme, $bordered: bordered, $invalid: invalid }) => {\n if (!bordered) return\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n\n border-width: 1px;\n border-style: solid;\n border-color: ${theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n border-radius: 4px;\n `\n }}\n\n display: flex;\n align-items: center;\n\n user-select: none;\n min-height: ${size};\n min-width: ${size};\n gap: ${({ theme }) => theme.spacings.s1};\n\n > input {\n position: absolute;\n opacity: 0;\n height: 1px;\n width: 1px;\n }\n\n :hover ${Checkmark} {\n background-color: ${({ theme }) => theme.colors.iceWhite};\n }\n ${({ theme, $viewMode: viewMode }) =>\n viewMode\n ? css`\n > input ~ ${Checkmark} {\n border-color: transparent;\n }\n `\n : css`\n > input ~ ${Checkmark} {\n border-color: ${theme.colors.lightestGrey};\n }\n > input:checked ~ ${Checkmark} {\n border-color: ${({ theme }) => theme.colors.blue};\n }\n `}\n\n > input:checked ~ ${Checkmark} {\n :after {\n width: 5px;\n height: 9.5px;\n border-width: 0 2px 2px 0;\n left: 5px;\n top: 1px;\n }\n }\n\n ${({ theme, $invalid: invalid }) => {\n if (!invalid) return\n\n return css`\n ${Checkmark},\n > input:checked ~ ${Checkmark}, \n > input:checked ~ ${Checkmark}:after {\n border-color: ${theme.colors.warningRed};\n }\n `\n }};\n\n ${({ $width: width }) => {\n return (\n width &&\n css`\n width: ${width};\n `\n )\n }}\n`\n\nexport const LabelContent = styled.div<LabelContentProps>`\n display: inline-block;\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n flex: 1;\n overflow: hidden;\n\n ${({ required, viewMode }) => {\n if (!required || viewMode) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport Form from '../../../Form'\n\nimport { CheckboxProps } from './interfaces'\nimport * as S from './styles'\n\nconst Checkbox = React.forwardRef(\n (props: CheckboxProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { padding, bordered } = props\n\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const htmlProps = filterObject<\n CheckboxProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, ['label', 'invalid', 'required', 'padding', 'bordered'])\n\n const [LabelComponent, children] = (() => {\n if (!props.label) {\n return [\n (() => null) as Exclude<\n CheckboxProps['label'],\n React.ReactNode | undefined\n >,\n ] as const\n }\n return typeof props.label === 'function'\n ? ([props.label] as const)\n : ([S.LabelContent, props.label] as const)\n })()\n\n return (\n <S.Label\n $disabled={disabled}\n $required={required}\n $invalid={invalid}\n $bordered={!viewMode && bordered}\n $padding={padding}\n $readOnly={props.readOnly || viewMode}\n $width={props.width}\n $viewMode={viewMode}\n >\n <input\n {...htmlProps}\n type='checkbox'\n ref={ref}\n disabled={htmlProps.disabled || viewMode}\n />\n <S.Checkmark />\n <LabelComponent\n {...{\n disabled,\n required,\n viewMode,\n invalid,\n bordered,\n padding,\n children,\n }}\n />\n </S.Label>\n )\n },\n)\n\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n","import { useEffect, useState } from 'react'\n\nconst useOnClickOut = <T extends HTMLElement>(callback: () => void) => {\n const [ref, setRef] = useState<T | null>(null)\n\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref || ref.contains(event.target as Node)) {\n return\n }\n\n callback()\n }\n\n document.addEventListener('mousedown', listener)\n document.addEventListener('touchstart', listener)\n\n return () => {\n document.removeEventListener('mousedown', listener)\n document.removeEventListener('touchstart', listener)\n }\n }, [ref, callback])\n\n return setRef\n}\n\nexport default useOnClickOut\n","export const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n] as const\n\nexport const maxHeight = '378px'\n\nexport const inputTimeWidth = {\n withSeconds: '86px',\n withoutSeconds: '66px',\n}\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { StyledAfterBefore } from '../../interfaces'\n\nconst BeforeAfterContainer = styled.div<StyledAfterBefore>`\n ${({ theme, $fluid: fluid, $spacing: spacing }) => {\n const padding = getSpacings(spacing || '0', {\n top: '0',\n right: '0',\n bottom: '0',\n left: '0',\n }).split(' ')\n\n padding[1] = fluid ? '0' : `calc(${theme.spacings.s1} * 1.5)`\n\n return css`\n padding: ${padding.join(' ')};\n `\n }}\n\n ${({ theme, $background: background }) => {\n if (!background) return\n const args: Parameters<typeof theme.getColor> = Array.isArray(background)\n ? background\n : [background]\n\n const value = theme.getColor(...args)\n\n return css`\n background-color: ${value};\n :after {\n background-color: ${value};\n }\n `\n }}\n\n display: flex;\n flex-direction: column;\n\n position: relative;\n\n :after {\n content: '';\n width: ${({ theme }) => `calc(${theme.spacings.s1} * .5)`};\n height: 100%;\n\n position: absolute;\n top: 0;\n left: 100%;\n }\n`\n\nexport default BeforeAfterContainer\n","import styled from 'styled-components'\n\nconst Container = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n\n padding-right: calc(${({ theme }) => theme.spacings.s1} / 2);\n display: flex;\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n`\n\nexport default Container\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { OverflowContainerProps } from '../../interfaces'\n\nconst OverflowContainer = styled.div<OverflowContainerProps>`\n overflow-y: scroll;\n overflow-y: overlay;\n width: 100%;\n position: relative;\n\n flex: 1;\n display: flex;\n flex-direction: column;\n\n ${({ $height: height, $maxHeight: maxHeight }) => {\n if (height) {\n return css`\n min-height: ${height};\n max-height: ${maxHeight || height};\n `\n }\n\n return css`\n max-height: ${maxHeight || '100%'};\n `\n }};\n\n scrollbar-color: ${({ theme }) =>\n `${theme.colors.grey} ${theme.colors.white}`};\n scrollbar-width: thin;\n\n ::-webkit-scrollbar {\n width: 7px;\n }\n ::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.colors.grey};\n }\n ::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.colors.white};\n }\n\n ${({ $spacing: spacing, theme }) => {\n const value = getSpacings(spacing || '0', '0').split(' ')\n\n return css`\n padding: ${value[0]} calc(${theme.spacings.s1} * 1.5) ${value[2]}\n ${value[3]};\n `\n }};\n`\n\nexport default OverflowContainer\n","import styled from 'styled-components'\n\nconst RelativeContainer = styled.div`\n position: relative;\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n`\n\nexport default RelativeContainer\n","import React, { useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport Loader from '../Loader'\n\nimport {\n AfterBefore,\n OverflowContainerProps,\n ScrollContainerProps,\n StyledAfterBefore,\n} from './interfaces'\nimport * as S from './styles'\n\nconst isAfterBefore = (\n props: Exclude<ScrollContainerProps['before'], undefined>,\n): props is AfterBefore => {\n return !React.isValidElement(props)\n}\n\nconst getBeforeAfter = (props: ScrollContainerProps['before']) => {\n if (!props) return null\n\n if (!isAfterBefore(props)) return <S.BeforeAfterContainer children={props} />\n\n const args = filterObject<AfterBefore, StyledAfterBefore>(\n props,\n ['fluid', 'background', 'spacing'],\n {\n $fluid: props.fluid,\n $background: props.background,\n $spacing: props.spacing,\n },\n )\n\n return <S.BeforeAfterContainer {...args} />\n}\n\nconst ScrollContainer = React.forwardRef<HTMLDivElement, ScrollContainerProps>(\n (props, ref) => {\n const { loading } = props\n\n const onScrollEnd = props.onScrollEnd || (() => {})\n\n const [, setLastPagination] = useState<Date>(new Date())\n\n const onScroll = (event: React.UIEvent<HTMLDivElement, UIEvent>) => {\n // preventing event bublling, can be removed if react is grather than 17\n if (event.target !== event.currentTarget) return\n\n const target = event.nativeEvent.target as HTMLDivElement | null\n\n if (!target) return\n\n const scrollTopMax =\n target.scrollHeight - target.getBoundingClientRect().height - 10 // -10 is a workaround to work with Chrome zoom\n const scrollTop = target.scrollTop\n\n if (scrollTopMax > 0 && scrollTop >= scrollTopMax) {\n setLastPagination((prev) => {\n const now = new Date()\n\n const diff = Math.abs((now.getTime() - prev.getTime()) / 1000)\n\n if (diff < 0.5) return prev\n\n onScrollEnd(event)\n return now\n })\n }\n }\n\n const _onScroll = props.onScroll || (() => {})\n\n const htmlProps = filterObject<\n ScrollContainerProps,\n OverflowContainerProps\n >(\n props,\n [\n 'onScrollEnd',\n 'before',\n 'after',\n 'loading',\n 'height',\n 'maxHeight',\n 'spacing',\n 'empty',\n ],\n {\n $height: props.height,\n $maxHeight: props.maxHeight,\n $spacing: props.spacing,\n },\n )\n\n return (\n <S.Container>\n {getBeforeAfter(props.before)}\n\n <S.RelativeContainer>\n {\n <S.OverflowContainer\n ref={ref}\n {...htmlProps}\n onScroll={(event: React.UIEvent<HTMLDivElement, UIEvent>) => {\n _onScroll(event)\n onScroll(event)\n }}\n {...(props.empty && props.empty.empty\n ? { children: props.empty.content }\n : {})}\n />\n }\n\n {loading && <Loader filled />}\n </S.RelativeContainer>\n\n {getBeforeAfter(props.after)}\n </S.Container>\n )\n },\n)\n\nScrollContainer.displayName = 'ScrollContainer'\n\nexport default ScrollContainer\n","import styled, { css } from 'styled-components'\nimport { isKeyOf } from '../../functions/common'\nimport { getBorder, getSpacings, keys } from '../../functions/formatters'\nimport AbsoluteContainer from '../AbsoluteContainer'\nimport { ContainerProps, StyledOptionProps } from './interfaces'\n\nexport const Option = styled.div<StyledOptionProps>`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n color: ${({ theme }) => theme.colors.darkBlue};\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > :nth-child(1) {\n display: flex;\n align-items: center;\n flex: 1;\n max-width: 100%;\n }\n\n ${({ $disabled: disabled }) => {\n if (!disabled) {\n return css`\n cursor: pointer;\n `\n }\n\n return css`\n pointer-events: none;\n opacity: 0.3;\n `\n }};\n\n ${({ $border: border, theme }) => {\n if (!border) return\n\n const config = getBorder(border)\n\n return keys(config)\n .filter((k) => config[k] !== undefined)\n .map((pos) => {\n const cfg = config[pos] as Exclude<typeof config[typeof pos], undefined>\n\n const width = cfg.width || '1px'\n const style = cfg.style || 'solid'\n const color = isKeyOf(theme.colors, cfg.color)\n ? theme.colors[cfg.color]\n : cfg.color\n\n return css`\n border-${pos}-width: ${width};\n border-${pos}-style: ${style};\n border-${pos}-color: ${color};\n `\n })\n }};\n\n :hover {\n background-color: ${({ theme }) => theme.getColor('blue', 15)};\n }\n\n ${({ $highlighted: highlighted }) => {\n if (!highlighted) return\n return css`\n background-color: ${({ theme }) => theme.getColor('blue', 15)};\n `\n }}\n`\n\nexport const Container = styled(AbsoluteContainer)<ContainerProps>`\n display: flex;\n\n > div {\n display: flex;\n width: 100%;\n\n > div:nth-child(1) {\n background-color: ${({ theme }) => theme.colors.white};\n border-radius: 4px;\n\n ${(props) => {\n if (!props.containerSpacing) return\n\n let spacing = getSpacings(props.containerSpacing)\n const tmp = spacing.split(' ')\n tmp[1] = `calc(${props.theme.spacings.s1} / 2)`\n spacing = tmp.join(' ')\n\n return css`\n padding: ${spacing};\n `\n }}\n }\n\n ${({ bordered }) => {\n if (!bordered) return\n\n return css`\n ${Option} {\n :not(:last-child) {\n border-bottom: 1px solid\n ${({ theme }) => theme.getColor('greyishBlue', 10)};\n }\n }\n `\n }}\n\n ${(props) => {\n const { theme } = props\n\n if (!props.itemSpacing) {\n return css`\n ${Delimiter} {\n margin: ${theme.spacings.s1} 0px ${theme.spacings.s1}\n ${theme.spacings.s1};\n }\n `\n }\n\n const spacing = getSpacings(props.itemSpacing, { right: '0' })\n\n return css`\n ${Option} {\n padding: ${spacing};\n }\n ${Delimiter} {\n margin: ${spacing};\n }\n `\n }}\n }\n`\n\nexport const Delimiter = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n\n border-bottom: 1px solid ${({ theme }) => theme.colors.greyishBlue};\n margin: 14px;\n width: calc(100% - 28px);\n`\n","import React, { useEffect, useState } from 'react'\nimport { Popup } from 'semantic-ui-react'\n\nimport { filterObject } from '../../functions/formatters'\nimport Icon from '../Icon'\nimport ScrollContainer from '../ScrollContainer'\n\nimport {\n MenuOptionLabelProps,\n ContainerProps,\n MenuInterface,\n} from './interfaces'\nimport * as S from './styles'\n\nconst isVisible = (elem: HTMLElement, bound: HTMLElement) => {\n const docViewTop = bound.scrollTop\n const docViewBottom = docViewTop + bound.offsetHeight\n\n const elemTop = elem.offsetTop\n const elemBottom = elemTop + elem.offsetHeight\n\n return elemBottom <= docViewBottom && elemTop >= docViewTop\n}\n\nconst MenuComponent: MenuInterface = (props, ref) => {\n const { close, options, children, highlight } = { ...props }\n\n const [scrollRef, setScrollRef] = useState<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!scrollRef || highlight === undefined) return\n\n const element = scrollRef.children[highlight] as HTMLElement | undefined\n if (!element) return\n\n if (isVisible(element, scrollRef)) return\n\n scrollRef.scrollTo(0, element.offsetTop)\n }, [highlight, scrollRef])\n\n const absoluteContainerProps = filterObject<\n typeof props,\n Omit<ContainerProps, 'transition'>\n >(\n props,\n [\n 'scrollSpacing',\n 'scrollTabIndex',\n 'onScrollEnd',\n 'before',\n 'after',\n 'close',\n 'options',\n 'loading',\n 'children',\n 'emptyContent',\n 'highlight',\n ],\n {\n itemSpacing: 's1',\n },\n )\n\n return (\n <S.Container {...absoluteContainerProps} ref={ref}>\n <React.Fragment>\n <ScrollContainer\n ref={setScrollRef}\n onScrollEnd={props.onScrollEnd}\n before={props.before}\n after={props.after}\n empty={\n props.emptyContent\n ? {\n empty: options.length === 0,\n content: props.emptyContent,\n }\n : undefined\n }\n spacing={props.scrollSpacing}\n loading={props.loading}\n tabIndex={props.scrollTabIndex}\n >\n {options.map((option, index) => {\n const { delimiter, keepOpen, caret, data } = { ...option }\n\n const closeMenu = keepOpen ? () => {} : close\n\n let onClick: React.MouseEventHandler<HTMLDivElement> | undefined\n let disabled = option.disabled\n\n let OptionContent: React.FunctionComponent<{\n children: JSX.Element\n }> = ({ children }) => children\n\n if (!disabled) {\n const rule = (option.rules || [])\n .map((rule) => {\n return rule(index, data)\n })\n .find((result) => result !== true)\n\n if (rule === true || rule === undefined) {\n const _onClick = option.onClick || (() => {})\n\n onClick = (e) => {\n _onClick(index, option, e)\n closeMenu()\n }\n } else {\n disabled = true\n if (rule !== false) {\n // eslint-disable-next-line react/display-name\n OptionContent = ({ children }) => (\n <Popup\n on='click'\n position='left center'\n inverted\n wide\n popperModifiers={[\n {\n name: 'preventOverflow',\n options: { boundariesElement: 'window' },\n },\n ]}\n {...rule}\n trigger={<div>{children}</div>}\n />\n )\n }\n }\n }\n\n OptionContent.displayName = 'OptionContent'\n\n const label = option.label\n\n const labelOptions = filterObject<\n typeof option,\n MenuOptionLabelProps\n >(option, ['onClick', 'label', 'rules'])\n labelOptions.disabled = disabled\n\n const LabelComponent =\n typeof label === 'function'\n ? label\n : () => <React.Fragment children={label} />\n\n return (\n <React.Fragment key={index}>\n <OptionContent>\n <S.Option\n onClick={onClick}\n $disabled={disabled}\n $border={option.border}\n $highlighted={index === highlight}\n >\n <div>\n <LabelComponent {...option} disabled={disabled} />\n </div>\n\n {caret ? (\n <Icon type='semantic' icon='caret right' width='14px' />\n ) : null}\n </S.Option>\n </OptionContent>\n\n {delimiter && <S.Delimiter />}\n </React.Fragment>\n )\n })}\n </ScrollContainer>\n\n {children}\n </React.Fragment>\n </S.Container>\n )\n}\n\nconst Menu = React.forwardRef(MenuComponent) as MenuInterface\n\nexport default Menu\n","import styled, { css } from 'styled-components'\n\nimport MwAbsoluteContainer from '../../../AbsoluteContainer'\n\nexport const Container = styled.div<{ $paddingless?: true }>`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n position: relative;\n\n ${({ theme, $paddingless: paddingless }) => {\n if (paddingless) return\n const { s3 } = theme.spacings\n return css`\n padding-top: ${s3};\n padding-bottom: ${s3};\n :first-child {\n padding-left: ${s3};\n }\n :last-child {\n padding-right: ${s3};\n }\n `\n }};\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const CalendarContainer = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n`\n\nexport const AbsoluteContainer = styled(MwAbsoluteContainer)`\n > ${Container} {\n padding: ${({ theme }) =>\n `${theme.spacings.s3} ${theme.spacings.s3} ${theme.spacings.s1} ${theme.spacings.s3}`};\n }\n`\n\nexport const MonthContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n > div {\n margin: ${({ theme }) => theme.spacings.s1} 0;\n flex: 1;\n position: relative;\n }\n`\n\nexport const MonthName = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n color: ${({ theme }) => theme.colors.darkBlue};\n text-align: center;\n`\n\nexport const MonthBtn = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n\nexport const NavBtn = styled.button`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n width: 32px;\n height: 32px;\n box-shadow: none;\n border: none;\n background-color: transparent;\n\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n :disabled {\n visibility: hidden;\n }\n :not(:disabled) {\n cursor: pointer;\n :hover {\n background-color: ${({ theme }) => theme.getColor('blue', 35)};\n }\n }\n\n transition-property: background-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n`\n","import React, { useEffect, useState } from 'react'\n\nimport Icon from '../../../../../Icon'\nimport Menu from '../../../../../Menu'\nimport { MenuProps } from '../../../../../Menu/interfaces'\nimport { months } from '../../../../constants'\nimport * as S from '../../styles'\n\nconst MonthPicker = (\n props: Omit<MenuProps, 'before' | 'options' | 'spacing'> & {\n year: number\n setValue: (year: number, month: number) => void\n min?: Date\n max?: Date\n },\n) => {\n const { setValue, close, min, max } = props\n\n const [year, setYear] = useState(props.year)\n\n useEffect(() => {\n setYear(props.year)\n }, [props.open, props.year])\n\n return (\n <Menu\n {...props}\n before={{\n fluid: true,\n children: (\n <S.MonthContainer>\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev - 1)}\n disabled={min !== undefined && min.getFullYear() >= year}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n\n <div>\n <S.MonthBtn>{year}</S.MonthBtn>\n </div>\n\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev + 1)}\n disabled={max !== undefined && max.getFullYear() <= year}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n </S.MonthContainer>\n ),\n }}\n options={months.map((label, index) => {\n return {\n label,\n onClick: () => {\n setValue(year, index)\n close()\n },\n rules: [\n () => {\n const disabled =\n (min !== undefined &&\n (min.getFullYear() > year ||\n (min.getFullYear() === year && min.getMonth() > index))) ||\n (max !== undefined &&\n (max.getFullYear() < year ||\n (max.getFullYear() === year && max.getMonth() < index)))\n\n return !disabled\n },\n ],\n data: {},\n }\n })}\n />\n )\n}\n\nexport default MonthPicker\n","import { colors } from '../../theme/constants'\nimport { Sizes, Types } from './interfaces'\n\nexport const sizes: { [key in Sizes]: string } = {\n medium: '15px',\n small: '6px',\n mini: '4px',\n} as const\n\nexport const types: { [key in Types]: keyof typeof colors } = {\n default: 'warningGray',\n info: 'blue',\n danger: 'warningRed',\n success: 'green',\n warning: 'warningYellow',\n} as const\n","import styled, { css } from 'styled-components'\nimport { sizes, types } from './constants'\nimport { IndicatorProps } from './interfaces'\n\nexport const Container = styled.div<IndicatorProps>`\n color: ${({ theme, labelColor }) => theme.getColor(labelColor)};\n display: flex;\n align-items: center;\n gap: ${({ theme: { spacings } }) => spacings.s1};\n\n :before {\n content: '';\n display: block;\n border-radius: 100%;\n\n ${({ size }) => css`\n width: ${sizes[size]};\n height: ${sizes[size]};\n `};\n\n background-color: ${({ theme: { colors }, type }) => colors[types[type]]};\n }\n`\n","import React from 'react'\nimport { IndicatorProps } from './interfaces'\nimport * as S from './styles'\n\nconst Indicator = (props: Partial<IndicatorProps>) => {\n return (\n <S.Container\n {...{\n size: 'small',\n type: 'default',\n labelColor: 'darkBlue',\n ...props,\n }}\n />\n )\n}\n\nexport default Indicator\n","import styled, { css } from 'styled-components'\nimport { ColorOptions } from '../../../../../../theme/interfaces'\nimport Indicator from '../../../../../Indicator'\nimport { sizes } from '../../../../../Indicator/constants'\nimport { DayAppearance } from '../../interfaces'\n\nexport * from '../../styles'\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n > button:last-child {\n margin-left: auto;\n }\n`\n\nexport const WeekContainer = styled.div`\n width: 100%;\n display: flex;\n\n :not(:first-child) {\n border-top: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n }\n\n > * {\n font-family: ${({ theme }) => theme.fonts.lato};\n font-size: ${({ theme }) => theme.spacings.s3};\n line-height: ${({ theme }) => theme.spacings.s3};\n width: 32px;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.darkBlue};\n box-shadow: none;\n\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n border: 1px solid transparent;\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.lightestGrey};\n }\n }\n`\n\nexport const Header = styled.div`\n width: 100%;\n\n background-color: ${({ theme }) => theme.getColor('lightestGrey', 40)};\n font-weight: bolder;\n\n > ${WeekContainer} {\n border-top: none;\n > * {\n border-right-color: transparent;\n }\n }\n`\n\ninterface DayContainerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n today: 1 | 0\n appearance?: DayAppearance\n activeColor: ColorOptions\n}\n\nexport const DayContainer = styled.button<DayContainerProps>`\n position: relative;\n overflow: hidden;\n\n ${({ theme, appearance, activeColor, onClick }) => {\n const hover = onClick\n ? (color: keyof typeof theme.colors) => css`\n :not(:disabled):hover {\n border-color: ${theme.colors[color]};\n color: ${theme.colors[color]};\n cursor: pointer;\n }\n `\n : () => null\n\n if (appearance === 'disabled') {\n return css`\n background-color: ${theme.getColor('greyishBlue', 10)};\n `\n } else if (appearance === 'highlight') {\n return css`\n background-color: ${theme.getColor('blue', 30)};\n ${hover('blue')}\n `\n } else if (appearance === 'active') {\n return css`\n background-color: ${theme.colors[activeColor]};\n color: ${theme.colors.white};\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors[activeColor]};\n }\n ${hover('white')}\n `\n }\n\n return css`\n background-color: ${theme.colors.white};\n ${hover('blue')}\n `\n }};\n\n :disabled {\n color: ${({ theme }) => theme.colors.silver};\n }\n\n &,\n :after {\n transition-property: background-color, color, border-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n }\n\n ${({ appearance, today, theme }) => {\n if (today !== 1) {\n return\n }\n\n return css`\n :after {\n content: '';\n position: absolute;\n top: -60%;\n right: -60%;\n width: 100%;\n height: 100%;\n background-color: ${theme.colors[\n appearance === 'active' ? 'white' : 'blue'\n ]};\n transform: rotate(45deg);\n }\n `\n }}\n`\n\n// 1px here is the border-width: 0 0 1 1\nexport const DayIndicator = styled(Indicator).attrs({\n size: 'mini',\n})`\n position: absolute;\n bottom: calc(${sizes.mini} - 1px);\n left: calc(50% - (${sizes.mini} / 2) + 1px);\n`\n","import { dateCompare, isValidTime } from '../../functions/validators'\nimport { CalendarInterface } from './components/Basic/interfaces'\n\nexport const getCalendar = (d: Date): CalendarInterface => {\n const date = new Date(d.getTime())\n date.setHours(0, 0, 0, 0)\n const month = date.getMonth()\n const year = date.getFullYear()\n\n const days: Date[] = []\n\n date.setDate(1)\n date.setDate(date.getDate() - 1)\n\n while (date.getDay() !== 6 || days.length === 0) {\n const copy = new Date(date.getTime())\n days.unshift(copy)\n date.setDate(date.getDate() - 1)\n }\n\n date.setDate(date.getDate() + days.length + 1)\n\n while (month === date.getMonth()) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n while (days.length < 42) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n const weeks: Date[][] = []\n let week: Date[] = [days[0]]\n\n for (let i = 1; i < days.length; i++) {\n if (week.length === 7) {\n weeks.push(week)\n week = []\n }\n week.push(days[i])\n }\n weeks.push(week)\n\n return { month, year, weeks }\n}\n\nexport const getMiddle = (min?: Date, max?: Date): Date => {\n const today = new Date()\n\n if (!max) {\n if (!min) return today\n\n // se nao tem maximo e tem minimo, se dia de hoje for maior que minimo, usa o dia de hoje, se nao usa o dia minimo\n return dateCompare(today, min, 'gte', false) ? today : min\n }\n\n if (!min) {\n if (!max) return today\n\n // se nao tem minimo e tem maximo, se dia de hoje for menor que maximo, usa o dia de hoje, se nao usa o dia maximo\n return dateCompare(today, max, 'lte', false) ? today : max\n }\n\n // se o dia atual esta entre o intervalo, usa o dia atual\n if (\n dateCompare(today, min, 'gte', false) &&\n dateCompare(today, max, 'lte', false)\n ) {\n return today\n }\n\n // se nao, usa o dia medio do intervalo\n const days = Math.ceil(\n Math.abs(max.getTime() - min.getTime()) / (1000 * 60 * 60 * 24) / 2,\n )\n const result = new Date(min)\n result.setDate(result.getDate() + days)\n\n return result\n}\n\nexport const getFullDate = (date: Date, time: string, end?: true): Date => {\n const v = new Date(date)\n\n const hours: [number, number, number, number] = end\n ? [23, 59, 59, 999]\n : [0, 0, 0, 0]\n\n time.split(':').forEach((v, i) => {\n const parsed = parseInt(v)\n if (isNaN(parsed)) return\n hours[i] = parsed\n })\n\n v.setHours(...hours)\n\n return v\n}\n\nexport const isDateBetween = (date: Date, min?: Date, max?: Date): boolean => {\n if (!max) {\n if (!min) return true\n return dateCompare(date, min, 'gte')\n }\n\n if (!min) {\n if (!max) return true\n return dateCompare(date, max, 'lte')\n }\n\n return dateCompare(date, min, 'gte') && dateCompare(date, max, 'lte')\n}\n\nexport const getTimeFromDate = (date: Date | null): string => {\n if (!date) return ''\n const h = date.getHours()\n const m = date.getMinutes()\n const s = date.getSeconds()\n\n return [h, m, s].map((v) => v.toString().padStart(2, '0')).join(':')\n}\n\nexport const isInvalid = (\n value: Date | null,\n time: string,\n timeOptions?: { required?: boolean; seconds?: boolean },\n min?: Date,\n max?: Date,\n): boolean => {\n if (!value) {\n return false\n }\n\n if (timeOptions) {\n if (time.length === 0) {\n if (timeOptions.required) {\n return true\n }\n } else if (\n !isValidTime(time, {\n h: 'required',\n m: 'required',\n s: timeOptions.seconds ? 'required' : 'optional',\n })\n ) {\n return true\n }\n }\n\n const date = getFullDate(value, time)\n\n return (\n (min !== undefined && dateCompare(date, min, 'lt')) ||\n (max !== undefined && dateCompare(date, max, 'gt'))\n )\n}\n\nexport const getInitialCalendar = (date?: Date, min?: Date, max?: Date) => {\n return getCalendar(\n date && !isNaN(date.getTime()) && isDateBetween(date, min, max)\n ? date\n : getMiddle(min, max),\n )\n}\n","import { Size } from './interfaces'\r\n\r\nexport const sizes: {\r\n [key in Size]: {\r\n fontSize: string\r\n lineHeight: string\r\n minWidth: string\r\n minHeight: string\r\n }\r\n} = {\r\n mini: {\r\n fontSize: '11px',\r\n lineHeight: '13px',\r\n minWidth: '51px',\r\n minHeight: '28px',\r\n },\r\n tiny: {\r\n fontSize: '13px',\r\n lineHeight: '16px',\r\n minWidth: '62px',\r\n minHeight: '34px',\r\n },\r\n small: {\r\n fontSize: '14px',\r\n lineHeight: '17px',\r\n minWidth: '74px',\r\n minHeight: '35px',\r\n },\r\n large: {\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n minWidth: '89px',\r\n minHeight: '43px',\r\n },\r\n big: {\r\n fontSize: '18px',\r\n lineHeight: '22px',\r\n minWidth: '79px',\r\n minHeight: '52px',\r\n },\r\n} as const\r\n","import { sizes } from './constants'\r\n\r\nconst theme = {\r\n sizes,\r\n} as const\r\n\r\nexport default theme\r\n","import button from './Button/theme'\n\nconst theme = {\n button,\n} as const\n\nexport default theme\n","import React from 'react'\nimport { createGlobalStyle } from 'styled-components'\n\nconst FontStyles = createGlobalStyle`\n`\n\nconst Globals = () => {\n return (\n <React.Fragment>\n <FontStyles />\n </React.Fragment>\n )\n}\n\nexport default Globals\n","import React from 'react'\r\nimport { ThemeProvider as Provider, css } from 'styled-components'\r\n\r\nimport { colors, opacities, typographies, spacings, fonts } from './constants'\r\nimport components from '../components/theme'\r\nimport Globals from './globals'\r\n\r\nimport {\r\n ColorOptions,\r\n OpacitiyOptions,\r\n ThemeInterface,\r\n useTypographyFunc,\r\n} from './interfaces'\r\n\r\nconst getColor = (\r\n color: ColorOptions,\r\n opacity: OpacitiyOptions = 100,\r\n): string => `${colors[color]}${opacities[opacity]}`\r\n\r\nconst useTypography: useTypographyFunc = (typography, options = {}) => {\r\n const { fontFamily, fontWeight, fontSize } = typographies[typography]\r\n\r\n return css`\r\n font-family: ${fontFamily};\r\n font-weight: ${options.fontWeight || fontWeight};\r\n font-size: ${fontSize};\r\n `\r\n}\r\n\r\nconst isDarkColor = (\r\n color: ColorOptions,\r\n ifDark: ColorOptions = 'white',\r\n ifLight: ColorOptions = 'black',\r\n): ColorOptions => {\r\n const hex = theme.colors[color].replace('#', '')\r\n\r\n const red = parseInt(hex.substring(0, 2), 16)\r\n const green = parseInt(hex.substring(2, 4), 16)\r\n const blue = parseInt(hex.substring(4, 6), 16)\r\n\r\n const luminosity = (red * 299 + green * 587 + blue * 114) / 1000\r\n\r\n return luminosity <= 128 ? ifDark : ifLight\r\n}\r\n\r\nexport const theme: ThemeInterface = {\r\n colors,\r\n fonts,\r\n spacings,\r\n typographies,\r\n getColor,\r\n useTypography,\r\n isDarkColor,\r\n components,\r\n}\r\n\r\nconst ThemeProvider = (props: {\r\n children: JSX.Element | string | (JSX.Element | string)[]\r\n}) => {\r\n return (\r\n <Provider theme={theme}>\r\n <Globals />\r\n {props.children}\r\n </Provider>\r\n )\r\n}\r\n\r\nexport default ThemeProvider\r\n","import React, { useEffect, useState } from 'react'\n\nimport useOnClickOut from '../../../../../../hooks/onClickOut'\n\nimport Icon from '../../../../../Icon'\n\nimport MonthPicker from '../../components/MonthPicker'\nimport { months } from '../../../../constants'\nimport * as S from './styles'\nimport { MainProps } from './interfaces'\nimport { getCalendar, getInitialCalendar } from '../../../../functions'\nimport { CalendarInterface } from '../../interfaces'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport Loader from '../../../../../Loader'\nimport { theme } from '../../../../../../theme'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { getDay, initialMonth } = props\n\n const [selectOpen, setSelectOpen] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n\n const onChangeMonth = (() => {\n const { onChangeMonth } = props\n\n if (!onChangeMonth) return async () => {}\n return (async (...args) => {\n setLoading(true)\n await onChangeMonth(...args)\n setLoading(false)\n }) as typeof onChangeMonth\n })()\n\n const min = props.min\n ? (() => {\n const date = new Date(props.min)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const max = props.max\n ? (() => {\n const date = new Date(props.max)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const [calendar, _setCalendar] =\n props.calendar ||\n useState<CalendarInterface>(getInitialCalendar(initialMonth, min, max))\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar: typeof _setCalendar = (value) => {\n _setCalendar((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const isControlled = props.calendar !== undefined\n\n useEffect(() => {\n if (isControlled) return\n // if client is controlling calendar state, it should not auto update\n setCalendar(getInitialCalendar(initialMonth, min, max))\n }, [\n isControlled,\n initialMonth?.toISOString(),\n min?.toISOString(),\n max?.toISOString(),\n ])\n\n useEffect(() => {\n const [first, last] = [\n calendar.weeks[0],\n calendar.weeks[calendar.weeks.length - 1],\n ]\n onChangeMonth({\n ...calendar,\n firstDay: first[0],\n lastDay: last[last.length - 1],\n })\n }, [calendar])\n\n const changeMonth = (add: 1 | -1) => {\n setCalendar((prev) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(prev.year)\n date.setMonth(prev.month + add)\n\n return getCalendar(date)\n })\n }\n\n const getPrev = () => {\n const [disabled, onClick] =\n min !== undefined &&\n (calendar.year < min.getFullYear() ||\n (calendar.year === min.getFullYear() &&\n calendar.month <= min.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(-1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n const getNext = () => {\n const [disabled, onClick] =\n max !== undefined &&\n (calendar.year > max.getFullYear() ||\n (calendar.year === max.getFullYear() &&\n calendar.month >= max.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n return (\n <S.Container ref={ref} $paddingless={props.paddingless}>\n {props.label && <S.LabelContainer>{props.label}</S.LabelContainer>}\n\n <S.CalendarContainer>\n <S.Header>\n <S.MonthContainer>\n {getPrev()}\n <div ref={useOnClickOut(() => setSelectOpen(false))}>\n {(() => {\n if (\n min !== undefined &&\n max !== undefined &&\n min.getFullYear() === max.getFullYear() &&\n min.getMonth() === max.getMonth()\n ) {\n return (\n <S.MonthName>\n {months[calendar.month]} {calendar.year}\n </S.MonthName>\n )\n }\n\n return (\n <S.MonthBtn onClick={() => setSelectOpen((prev) => !prev)}>\n <S.MonthName>\n {months[calendar.month]} {calendar.year}\n </S.MonthName>\n <Icon\n type='semantic'\n icon={selectOpen ? 'caret up' : 'caret down'}\n width='14px'\n />\n </S.MonthBtn>\n )\n })()}\n\n <MonthPicker\n open={selectOpen}\n close={() => setSelectOpen(false)}\n year={calendar.year}\n setValue={(year, month) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(year)\n date.setMonth(month)\n setCalendar(getCalendar(date))\n }}\n min={min}\n max={max}\n width='100%'\n maxHeight='180px'\n transition={{ properties: { 'max-height': {} } }}\n itemSpacing='s3'\n bordered\n />\n </div>\n {getNext()}\n </S.MonthContainer>\n\n <S.WeekContainer>\n <div>D</div>\n <div>S</div>\n <div>T</div>\n <div>Q</div>\n <div>Q</div>\n <div>S</div>\n <div>S</div>\n </S.WeekContainer>\n </S.Header>\n\n {calendar.weeks.map((week, index) => {\n return (\n <S.WeekContainer key={index}>\n {week.map((date, index) => {\n const details = getDay(date)\n\n const day = date.getDate()\n const month = date.getMonth()\n\n const appearance =\n month !== calendar.month ||\n (max && date > max) ||\n (min && date < min)\n ? 'disabled'\n : details.appearance\n\n const [disabled, onClick, onMouseOver, onMouseOut] =\n appearance === 'disabled'\n ? [true, undefined]\n : [\n undefined,\n details.onClick,\n details.onMouseOver,\n details.onMouseOut,\n ]\n\n return (\n <S.DayContainer\n key={index}\n type='button'\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n disabled={disabled}\n appearance={appearance}\n activeColor={details.activeColor || 'blue'}\n today={dateCompare(new Date(), date, 'eq', false) ? 1 : 0}\n >\n {day}\n {details.indicator && (\n <S.DayIndicator type={details.indicator} />\n )}\n </S.DayContainer>\n )\n })}\n </S.WeekContainer>\n )\n })}\n </S.CalendarContainer>\n\n {(() => {\n if (!props.children) {\n return null\n }\n if (Array.isArray(props.children) && !props.children.some((e) => e)) {\n return null\n }\n return <S.Footer>{props.children}</S.Footer>\n })()}\n\n {loading && <Loader filled={theme.getColor('white', 95)} />}\n </S.Container>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\n\nimport Main from './components/Main'\nimport { BasicCalendarProps } from './interfaces'\nimport * as S from './styles'\n\nconst BasicCalendar = React.forwardRef(\n (props: BasicCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n BasicCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'getDay',\n 'calendar',\n 'absolute',\n 'onChangeMonth',\n 'paddingless',\n ])\n\n return 'absolute' in props ? (\n <S.AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...props} />\n </S.AbsoluteContainer>\n ) : (\n <Main {...props} />\n )\n },\n)\n\nBasicCalendar.displayName = 'BasicCalendar'\n\nexport default BasicCalendar\n","import React from 'react'\nimport Input from '../Input'\nimport { TimeProps } from './interfaces'\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/[^0-9\\s]/g, '')\n\n while (v.length > 0 && parseInt(v[0]) > 2) {\n v = v.substring(1)\n }\n\n if (v.length > 1) {\n if (v[0] === '2') {\n while (v.length > 1 && parseInt(v[1]) > 3) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 5) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n if (v.length > 4) {\n while (v.length > 4 && parseInt(v[4]) > 5) {\n v = v.substring(0, 4) + v.substring(5)\n }\n }\n\n v = v.substring(0, seconds ? 6 : 4)\n\n if (v.length < 3) return v\n else if (v.length < 5) return v.substring(0, 2) + ':' + v.substring(2)\n else return v.substring(0, 2) + ':' + v.substring(2, 4) + ':' + v.substring(4)\n}\n\nconst Time = React.forwardRef(\n (props: TimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, seconds } = props\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const setValue = props.setValue || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const curH = todayDate.getHours()\n const curM = todayDate.getMinutes()\n const curS = todayDate.getSeconds()\n\n const value = target.value.replace(/[^0-9\\s]/g, '')\n\n let tmp = value.substring(0, 2)\n let h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(2, 4)\n let m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(4, 6)\n let s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, '0'))\n\n if (event.key === 'ArrowUp') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n } else if (event.key === 'ArrowDown') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? seconds\n ? '––:––:––'\n : '––:––'\n : props.placeholder\n\n return (\n <Input\n {...props}\n type='text'\n value={mask(value, seconds)}\n placeholder={placeholder}\n mask={(v: string) => mask(v, seconds)}\n onKeyDown={onKeyDown}\n ref={ref}\n />\n )\n },\n)\n\nTime.displayName = 'Time'\n\nexport default Time\n","import { dateCompare } from '../../../../../../functions/validators'\nimport { getCalendar, isDateBetween } from '../../../../functions'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { InputTimeProps, Value } from '../../interfaces'\nimport { MainProps } from './interfaces'\n\nexport const getValue = (dates: (Date | null)[], min?: Date, max?: Date) => {\n const n = [\n ...dates\n .filter((d) => d && !isNaN(d.getTime()) && isDateBetween(d, min, max))\n .sort((a, b) => {\n if (dateCompare(a as Date, b as Date, 'eq')) return 0\n return dateCompare(a as Date, b as Date, 'lt') ? -1 : 1\n }),\n null,\n null,\n ]\n return n.slice(0, 2) as Value\n}\n\nexport const getCalendar2 = (\n calendar1: CalendarInterface,\n): CalendarInterface => {\n const date = new Date()\n date.setFullYear(calendar1.year)\n date.setMonth(calendar1.month + 1)\n date.setDate(1)\n date.setHours(0, 0, 0, 0)\n return getCalendar(date)\n}\n\nexport const getTimeProps = (\n time: MainProps['time'],\n value: Value,\n): [InputTimeProps | undefined, InputTimeProps | undefined] => {\n if (time === true) return [{}, {}]\n if (!time) return [undefined, undefined]\n return time.map((e, i) => {\n return typeof e === 'function' ? e(value[i]) : e\n }) as [InputTimeProps | undefined, InputTimeProps | undefined]\n}\n","import styled, { css } from 'styled-components'\r\n\r\nimport { StyledButtonProps } from './interfaces'\r\n\r\nexport const Button = styled.button<StyledButtonProps>`\r\n padding: 0\r\n ${({ theme, appearance }) =>\r\n appearance === 'link' ? 0 : theme.spacings.s3};\r\n font-family: 'Lato', sans-serif;\r\n font-weight: ${({ appearance }) =>\r\n appearance === 'link' ? 'normal' : 'bold'};\r\n border-radius: 4px;\r\n position: relative;\r\n user-select: none;\r\n\r\n ${({ size, theme }) => {\r\n const { sizes } = theme.components.button\r\n return css`\r\n font-size: ${sizes[size].fontSize};\r\n line-height: ${sizes[size].lineHeight};\r\n min-width: ${sizes[size].minWidth};\r\n min-height: ${sizes[size].minHeight};\r\n `\r\n }};\r\n\r\n ${({ appearance, color, theme }) => {\r\n const bgColor = ['bordered', 'link', 'borderless'].includes(appearance)\r\n ? 'transparent'\r\n : theme.getColor(color || 'blue')\r\n\r\n const borderColor =\r\n appearance !== 'bordered' ? bgColor : theme.getColor(color || 'blue')\r\n\r\n return css`\r\n background-color: ${bgColor};\r\n border: 1px solid ${borderColor};\r\n `\r\n }};\r\n\r\n color: ${({ appearance, color, loading, theme }) => {\r\n if (loading) return 'transparent'\r\n\r\n if (['link', 'borderless'].includes(appearance)) {\r\n return color ? theme.colors[color] : theme.getColor('greyishBlue', 50)\r\n }\r\n\r\n if (appearance === 'bordered') {\r\n return theme.getColor(color || 'blue')\r\n }\r\n\r\n return theme.getColor('white')\r\n }};\r\n\r\n :disabled {\r\n opacity: 0.5;\r\n pointer-events: none;\r\n }\r\n\r\n :hover {\r\n cursor: ${({ loading, disabled }) =>\r\n loading || disabled ? 'default' : 'pointer'};\r\n\r\n ${({ appearance, color, theme }) => {\r\n if (appearance === 'bordered') {\r\n return css`\r\n color: ${theme.getColor(color || 'blue', 70)};\r\n border: 1px solid ${theme.getColor(color || 'blue', 70)};\r\n `\r\n } else if (['link', 'borderless'].includes(appearance)) {\r\n return css`\r\n color: ${theme.colors.blue};\r\n `\r\n }\r\n\r\n return css`\r\n background-color: ${theme.getColor(color || 'blue', 70)};\r\n border-color: ${theme.getColor(color || 'blue', 70)};\r\n `\r\n }}\r\n }\r\n\r\n :active {\r\n ${({ appearance, color, theme }) => {\r\n if (appearance === 'bordered') {\r\n return css`\r\n background-color: ${theme.getColor('iceWhite')};\r\n `\r\n }\r\n\r\n if (['link', 'borderless'].includes(appearance)) {\r\n return css`\r\n color: ${theme.getColor('blue', 50)};\r\n `\r\n }\r\n\r\n return css`\r\n color: ${theme.getColor(color || 'blue')};\r\n `\r\n }};\r\n }\r\n\r\n ${({ loading }) => {\r\n if (!loading) return\r\n\r\n return css`\r\n pointer-events: none;\r\n `\r\n }}\r\n`\r\n","import React from 'react'\r\n\r\nimport { filterObject } from '../../functions/formatters'\r\nimport Loader from '../Loader'\r\nimport { sizes } from './constants'\r\n\r\nimport { ButtonProps, StyledButtonProps } from './interfaces'\r\nimport * as S from './styles'\r\n\r\nconst Button = (props: ButtonProps) => {\r\n const { children, content, ...styled } = props\r\n\r\n const defaultValues: StyledButtonProps = {\r\n appearance: styled.appearance || 'solid',\r\n color: styled.color,\r\n loading: styled.loading ? +styled.loading : +false,\r\n size: styled.size || 'small',\r\n type: styled.type || 'button',\r\n }\r\n\r\n const htmlProps = filterObject<\r\n ButtonProps,\r\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'color'>\r\n >(props, ['size', 'appearance', 'color', 'loading', 'content'])\r\n\r\n const loaderSize = sizes[defaultValues.size].lineHeight\r\n\r\n return (\r\n <S.Button {...defaultValues} {...htmlProps}>\r\n {children || content}\r\n\r\n {props.loading && (\r\n <Loader\r\n color={\r\n defaultValues.appearance !== 'bordered' &&\r\n defaultValues.appearance !== 'link'\r\n ? 'white'\r\n : 'blue'\r\n }\r\n size={loaderSize}\r\n borderSize={`calc(${loaderSize} * 0.0757)`}\r\n />\r\n )}\r\n </S.Button>\r\n )\r\n}\r\n\r\nexport default Button\r\n","import styled from 'styled-components'\nimport Button from '../Button'\n\nexport const SubmitButton = styled(Button)`\n width: 105px;\n`\n","import styled from 'styled-components'\n\nexport * from '../../../../styles'\n\nexport const CalendarsContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n`\n\nexport const LabelContainer = styled.div`\n color: ${({ theme }) => theme.colors.darkestGrey};\n > b {\n color: ${({ theme }) => theme.colors.darkBlue};\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport {\n dateToIsoString,\n filterObject,\n} from '../../../../../../functions/formatters'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport Input from '../../../../../Input/components/Time'\nimport { inputTimeWidth } from '../../../../constants'\nimport {\n getCalendar,\n getFullDate,\n getInitialCalendar,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport BasicCalendar from '../../../Basic'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { BasicCalendarProps } from '../../../interfaces'\nimport { Value } from '../../interfaces'\nimport { getCalendar2, getTimeProps, getValue } from './functions'\nimport { MainProps } from './interfaces'\nimport * as S from './styles'\nimport { ButtonProps } from '../../../../../Button/interfaces'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialMonth, initialValue, min, max } = props\n\n const [value, setValue] =\n props.value || useState<Value>(getValue(initialValue || [], min, max))\n\n const [invalid, setInvalid] =\n props.invalid || useState<[boolean, boolean]>([false, false])\n\n const [time, setTime] = useState<[string, string]>(() => {\n return value.map(getTimeFromDate) as [string, string]\n })\n\n const [calendar1, _setCalendar1] = useState<CalendarInterface>(() => {\n const calendar1 = getInitialCalendar(value[0] || initialMonth, min, max)\n return calendar1\n })\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar1: typeof _setCalendar1 = (value) => {\n _setCalendar1((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const [calendar2, _setCalendar2] = useState<CalendarInterface>(() => {\n const calendar2 = getCalendar2(calendar1)\n return calendar2\n })\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar2: typeof _setCalendar2 = (value) => {\n _setCalendar2((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const [hoverDay, setHoverDay] = useState<Date | null>(null)\n\n useEffect(() => {\n // if client is controlling calendar state, it should not auto update\n const calendar1 = getInitialCalendar(value[0] || initialMonth, min, max)\n const calendar2 = getCalendar2(calendar1)\n setCalendar1(calendar1)\n setCalendar2(calendar2)\n }, [initialMonth?.toISOString(), min?.toISOString(), max?.toISOString()])\n\n useEffect(() => {\n const timeProps = getTimeProps(props.time, value)\n\n setHoverDay(null)\n\n if (value[0]) {\n const c1 = getCalendar(value[0])\n const c2 = (() => {\n const c2 = getCalendar2(c1)\n if (value[1]) {\n const c2 = getCalendar(value[1])\n if (\n c2.year > c1.year ||\n (c2.year === c1.year && c2.month > c1.month)\n ) {\n return c2\n }\n }\n\n return c2\n })()\n\n setCalendar1(c1)\n setCalendar2(c2)\n }\n\n setInvalid(\n value.map((v, i): boolean => {\n return isInvalid(v, time[i], timeProps[i], min, max)\n }) as [boolean, boolean],\n )\n }, [value, time, props.time])\n\n const _getDay: Exclude<typeof props.getDay, undefined> =\n props.getDay || (() => ({}))\n\n const getDay = (day: Date, side: 'left' | 'right') => {\n const dayProps = _getDay(day, side)\n\n const onClick = () => {\n const newValue: Value = [...value]\n if (!newValue[0]) {\n newValue[0] = new Date(day)\n } else if (newValue[1]) {\n newValue[0] = new Date(day)\n newValue[1] = null\n } else if (dateCompare(day, newValue[0], 'lt')) {\n newValue[1] = newValue[0]\n newValue[0] = new Date(day)\n } else {\n newValue[1] = new Date(day)\n }\n\n setValue(newValue)\n }\n\n const [onMouseOver, onMouseOut] =\n value[0] && !value[1]\n ? [() => setHoverDay(day), () => setHoverDay(null)]\n : [() => {}, () => {}]\n\n const appearance = (() => {\n if (value.some((v) => v && dateCompare(v, day, 'eq', false))) {\n return 'active'\n }\n\n if (\n (value[0] && value[1] && isDateBetween(day, value[0], value[1])) ||\n (value[0] &&\n hoverDay &&\n (isDateBetween(day, value[0], hoverDay) ||\n isDateBetween(day, hoverDay, value[0])))\n ) {\n return 'highlight'\n }\n\n return undefined\n })()\n\n const [_onClick, _onMouseOver, _onMouseOut] = (\n ['onClick', 'onMouseOver', 'onMouseOut'] as const\n ).map((c) => dayProps[c] || (() => {}))\n\n return {\n ...dayProps,\n appearance: appearance || dayProps.appearance,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n _onClick(e)\n onClick()\n },\n onMouseOver: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n _onMouseOver(e)\n onMouseOver()\n },\n onMouseOut: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n _onMouseOut(e)\n onMouseOut()\n },\n }\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'initialMonth',\n 'max',\n 'min',\n 'getDay',\n ])\n\n const timeInvalid = !time.some((t) => t.length > 0)\n ? [false, false]\n : time.map((t) => t.length === 0)\n\n const submitProps: ButtonProps | undefined = !props.onSubmit\n ? undefined\n : (() => {\n const disabled =\n props.onSubmit.disabled ||\n value.some((v) => v === null) ||\n invalid.some((v) => v) ||\n timeInvalid.some((v) => v)\n\n const { onClick } = props.onSubmit\n\n return {\n ...props.onSubmit,\n disabled,\n onClick: disabled\n ? undefined\n : () => {\n onClick([\n value[0] ? getFullDate(value[0], time[0]) : null,\n value[1] ? getFullDate(value[1], time[1], true) : null,\n ])\n },\n }\n })()\n\n const middle = [new Date(), new Date()] as const\n middle[0].setDate(1)\n middle[0].setFullYear(calendar2.year)\n middle[0].setMonth(calendar2.month)\n middle[0].setDate(0)\n middle[0].setHours(23, 59, 59, 999)\n\n middle[1].setDate(1)\n middle[1].setFullYear(calendar1.year)\n middle[1].setMonth(calendar1.month + 1)\n middle[1].setHours(0, 0, 0, 0)\n\n const inputs = getTimeProps(props.time, value).map((timeProps, index) => {\n if (!timeProps) return undefined\n\n const width = timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n\n return (\n <Input\n key={index}\n {...timeProps}\n type='time'\n value={time[index]}\n setValue={(v) =>\n setTime((prev) => {\n const n = [...prev]\n n[index] = v\n return n as [string, string]\n })\n }\n invalid={\n (value[index] !== null && invalid[index]) || timeInvalid[index]\n }\n width={inputTimeWidth[width]}\n />\n )\n })\n\n const onChangeMonth = props.onChangeMonth || (async () => {})\n\n return (\n <S.CalendarsContainer>\n <BasicCalendar\n {...calendarProps}\n getDay={(c) => getDay(c, 'left')}\n onChangeMonth={async (c) => await onChangeMonth(c, 'left')}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Inicio:</b>{' '}\n {value[0] ? dateToIsoString(value[0]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[\n calendar1,\n (v) => {\n setCalendar1((prev) => {\n const c1 = typeof v === 'function' ? v(prev) : v\n setCalendar2((prev) => {\n if (prev.year > c1.year) return prev\n if (prev.year === c1.year && prev.month > c1.month) {\n return prev\n }\n return getCalendar2(c1)\n })\n return c1\n })\n },\n ]}\n min={min}\n max={max && dateCompare(max, middle[0], 'lt') ? max : middle[0]}\n >\n {inputs[0]}\n </BasicCalendar>\n\n <BasicCalendar\n {...calendarProps}\n getDay={(c) => getDay(c, 'right')}\n onChangeMonth={async (c) => await onChangeMonth(c, 'right')}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Fim:</b> {value[1] ? dateToIsoString(value[1]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[calendar2, setCalendar2]}\n min={min && dateCompare(min, middle[1], 'gt') ? min : middle[1]}\n max={max}\n >\n {inputs[1]}\n\n {submitProps && (\n <S.SubmitButton content='Aplicar' {...submitProps} type='button' />\n )}\n </BasicCalendar>\n </S.CalendarsContainer>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { IntervalCalendarProps } from './interfaces'\n\nconst CalendarInterval = React.forwardRef(\n (props: IntervalCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n IntervalCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n 'getDay',\n 'onChangeMonth',\n ])\n\n const mainProps = filterObject<IntervalCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarInterval.displayName = 'CalendarInterval'\n\nexport default CalendarInterval\n","import React, { useEffect, useState } from 'react'\n\nimport { filterObject } from '../../../../../../functions/formatters'\n\nimport Input from '../../../../../Input/components/Time'\nimport BasicCalendar from '../../../Basic'\nimport { BasicCalendarProps } from '../../../Basic/interfaces'\n\nimport {\n getFullDate,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport { inputTimeWidth } from '../../../../constants'\nimport * as S from '../../../../styles'\nimport { MainProps } from './interfaces'\n\nconst SingleCalendar = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialValue, min, max } = props\n\n const [value, setValue] =\n props.value ||\n useState<Date | null>(\n initialValue &&\n !isNaN(initialValue.getTime()) &&\n isDateBetween(initialValue, min, max)\n ? initialValue\n : null,\n )\n\n const timeProps = (() => {\n if (props.time === true) return {}\n if (typeof props.time === 'function') return props.time(value)\n return props.time\n })()\n\n const [invalid, setInvalid] = props.invalid || useState<boolean>(false)\n\n const [time, setTime] = useState<string>(getTimeFromDate(value))\n\n useEffect(() => {\n setInvalid(isInvalid(value, time, timeProps, min, max))\n }, [value, time, timeProps])\n\n const _getDay: Exclude<typeof props.getDay, undefined> =\n props.getDay || (() => ({}))\n\n const getDay: BasicCalendarProps['getDay'] = (day: Date) => {\n const dayProps = _getDay(day)\n\n const active = value && dateCompare(value, day, 'eq', false)\n\n const _onClick = dayProps.onClick || (() => {})\n\n const onClick = active\n ? () => setValue(null)\n : () => setValue(new Date(day))\n\n return {\n ...dayProps,\n appearance: active ? 'active' : dayProps.appearance,\n onClick: (e) => {\n _onClick(e)\n onClick()\n },\n }\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'getDay',\n ])\n\n const onSubmit = {\n disabled: value === null || invalid,\n onClick: () => {},\n }\n\n if (props.onSubmit) {\n const { disabled, onClick } = props.onSubmit\n\n if (disabled) {\n onSubmit.disabled = true\n }\n\n onSubmit.onClick = () => {\n onClick(value ? getFullDate(value, time) : null)\n }\n }\n\n return (\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n initialMonth={props.initialValue || props.initialMonth}\n >\n {timeProps && (\n <Input\n {...timeProps}\n type='time'\n value={time}\n setValue={setTime}\n invalid={value !== null && invalid}\n width={\n inputTimeWidth[\n timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n ]\n }\n />\n )}\n\n {props.onSubmit && (\n <S.SubmitButton {...onSubmit} type='button' content='Aplicar' />\n )}\n </BasicCalendar>\n )\n },\n)\n\nSingleCalendar.displayName = 'SingleCalendar'\n\nexport default SingleCalendar\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { SingleCalendarProps } from './interfaces'\n\nconst CalendarSingle = React.forwardRef(\n (props: SingleCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n SingleCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n 'getDay',\n 'onChangeMonth',\n ])\n\n const mainProps = filterObject<SingleCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarSingle.displayName = 'CalendarSingle'\n\nexport default CalendarSingle\n","import React from 'react'\n\nimport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\nimport { CalendarProps } from './interfaces'\n\nconst Calendar = React.forwardRef(\n (props: CalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n switch (props.type) {\n case 'basic': {\n return <BasicCalendar {...props} ref={ref} />\n }\n case 'interval': {\n return <IntervalCalendar {...props} ref={ref} />\n }\n case 'single': {\n return <SingleCalendar {...props} ref={ref} />\n }\n }\n },\n)\n\nCalendar.displayName = 'Input'\n\nexport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\n\nexport default Calendar\n","export const JSDate = Date\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport { JSDate } from './functions'\nimport { DateProps } from './interfaces'\nimport * as S from './styles'\n\nconst isLeapYear = (year: number): boolean => {\n if (year % 4 !== 0) return false\n else if (year % 100 !== 0) return true\n else if (year % 400 !== 0) return false\n else return true\n}\n\nconst mask = (v: string) => {\n v = v.replace(/[^0-9\\s]/g, '')\n\n while (v.length > 0 && parseInt(v[0]) > 3) {\n v = v.substring(1)\n }\n\n if (v.length > 1) {\n if (v[0] === '3') {\n while (v.length > 1 && parseInt(v[1]) > 1) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 1) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n if (v.length > 3) {\n if (v[2] === '1') {\n while (v.length > 3 && parseInt(v[3]) > 2) {\n v = v.substring(0, 3) + v.substring(4)\n }\n }\n }\n\n v = v.substring(0, 8)\n\n const date = [v.substring(0, 2), v.substring(2, 4), v.substring(4)]\n\n if (date[1] === '02') {\n const d = parseInt(date[0])\n\n if (date[2].length < 4 || isLeapYear(parseInt(date[2]))) {\n // se for ano nao estiver setado, ou se for bissexto, o dia maximo de fevereiro deve ser 29\n if (d > 29) {\n date[0] = '29'\n }\n } else if (d > 28) {\n // se for ano estiver setado e nao for bissexto, o dia maximo de fevereiro deve ser 28\n date[0] = '28'\n }\n } else if (['04', '06', '09', '11'].includes(date[1]) && date[0] === '31') {\n // meses com 30 dias\n date[0] = '30'\n }\n\n v = date.join('')\n\n if (v.length < 3) return v\n else if (v.length < 5) return v.substring(0, 2) + '/' + v.substring(2)\n else return v.substring(0, 2) + '/' + v.substring(2, 4) + '/' + v.substring(4)\n}\n\nconst Date = React.forwardRef(\n (props: DateProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, min, max } = props\n\n const setValue = props.setValue || (() => {})\n\n const [open, setOpen] = useState<boolean>(false)\n\n const _onKeyDown = props.onKeyDown || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new JSDate()\n\n const curD = todayDate.getDate()\n const curM = todayDate.getMonth() + 1\n const curY = todayDate.getFullYear()\n\n const value = target.value.replace(/[^0-9\\s]/g, '')\n\n let tmp = value.substring(0, 2)\n const d = tmp.length === 0 ? curD : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(2, 4)\n const m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(4, 8)\n const y = tmp.length === 0 ? curY : parseInt(tmp.padEnd(2, '0'))\n\n if (event.key === 'ArrowUp') {\n const date = new JSDate(`${y}-${m}-${d} 00:00:00`)\n date.setDate(date.getDate() + 1)\n\n if (!max || date <= max) {\n setValue(dateToIsoString(date))\n }\n } else if (event.key === 'ArrowDown') {\n const date = new JSDate(`${y}-${m}-${d} 00:00:00`)\n date.setDate(date.getDate() - 1)\n\n if (!min || date >= min) {\n setValue(dateToIsoString(date))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined ? 'dd/mm/aaaa' : props.placeholder\n\n const icon: InputProps['icon'] = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n onClick: () => setOpen((prev) => !prev),\n },\n position: 'right',\n }\n : undefined\n\n const inputProps = filterObject<DateProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='text'\n placeholder={placeholder}\n mask={mask}\n onKeyDown={onKeyDown}\n icon={icon}\n ref={ref}\n />\n\n <Calendar\n {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n const newValue = dateToIsoString(date)\n setValue(newValue)\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDate.displayName = 'Date'\n\nexport default Date\n","import styled, { css } from 'styled-components'\nimport { SelectProps } from './'\n\nexport const RelativeContainer = styled.div<Pick<SelectProps, 'width'>>`\n position: relative;\n ${({ width }) => {\n return !width\n ? null\n : css`\n width: ${width};\n `\n }};\n`\n\nexport const EmptyContentContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const HiddenInput = styled.input`\n width: 0;\n height: 0;\n border-width: 0;\n padding: 0;\n position: absolute;\n outline: none;\n`\n","import { HTMLAttributes, useCallback } from 'react'\nimport { Option } from '../interfaces'\n\nexport const isAvailable = (index: number, option: Option) => {\n return (\n !option.disabled &&\n !(option.rules || []).some((rule) => rule(index, option.data) !== true)\n )\n}\n\nconst useNavigation = (props: {\n highlight: [number, React.Dispatch<React.SetStateAction<number>>]\n options: Option[]\n onSelectHighlight: (index: number, option: Option) => void\n}) => {\n const {\n highlight: [highlight, setHighlight],\n options,\n onSelectHighlight,\n } = props\n\n const onKeyDown = useCallback<\n Required<HTMLAttributes<HTMLInputElement>>['onKeyDown']\n >(\n (e) => {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n\n const getNext = (index: number, current: number): number => {\n const option = options[index]\n if (!option) return current\n if (isAvailable(index, option)) {\n return index\n }\n return getNext(index + 1, current)\n }\n\n setHighlight((prev) => {\n return getNext(prev + 1, prev)\n })\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n\n const getPrev = (index: number, current: number): number => {\n const option = options[index]\n if (!option) return current\n if (isAvailable(index, option)) {\n return index\n }\n return getPrev(index - 1, current)\n }\n\n setHighlight((prev) => {\n return getPrev(prev - 1, prev)\n })\n } else if (e.key === 'Enter') {\n e.preventDefault()\n\n const option = options[highlight]\n if (option) {\n onSelectHighlight(highlight, option)\n }\n }\n },\n [highlight, options],\n )\n\n const onFocus: HTMLAttributes<HTMLInputElement>['onFocus'] = () => {\n setHighlight(options.findIndex((e, i) => isAvailable(i, e)))\n }\n\n const onBlur: HTMLAttributes<HTMLInputElement>['onFocus'] = () => {\n setHighlight(-1)\n }\n\n return { onKeyDown, onFocus, onBlur }\n}\n\nexport default useNavigation\n","import React from 'react'\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({} as ContextInterface)\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import styled, { css } from 'styled-components'\n\nexport const HeaderContainer = styled.div`\n ${({ theme }) => css`\n padding: ${theme.spacings.s3} 0 ${theme.spacings.s1} ${theme.spacings.s3};\n `}\n`\n","import React from 'react'\n\nimport Input from '../../../../../Input'\n\nimport { useContext } from '../../context'\nimport * as S from './styles'\n\nconst Header = () => {\n const context = useContext()\n\n if (!context.props.search) {\n return <React.Fragment />\n }\n\n const {\n searchInput: [searchInput, setSearchInput],\n } = context\n\n return (\n <S.HeaderContainer>\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n }}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React from 'react'\n\nimport { Option as MenuOption } from '../../../../../Menu/interfaces'\nimport { HiddenInput } from '../../styles'\n\nimport * as Types from '../interfaces'\nimport useNavigation, { isAvailable } from '../Navigation'\n\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\n\nconst getOptions = (\n onSelect: (index: number, option: Option) => void,\n options: Option[],\n selected: Pick<Option, 'data' | 'value' | 'label'> | null,\n): MenuOption[] => {\n return options.map((option, index) => {\n const { value, onClick, rules, disabled } = option\n\n const isSelected = option.value === selected?.value\n\n const data = {\n ...option.data,\n selected: isSelected,\n value,\n }\n\n const LabelComponent = option.label\n\n const parsed: MenuOption = {\n label:\n typeof LabelComponent !== 'function'\n ? LabelComponent\n : ({ disabled }) => <LabelComponent {...{ value, data, disabled }} />,\n onClick:\n onClick ||\n (() => {\n onSelect(index, option)\n }),\n disabled,\n rules,\n border: {\n left: {\n color: isSelected ? 'blue' : 'transparent',\n },\n },\n data,\n keepOpen: true,\n }\n\n return parsed\n })\n}\n\nconst getSelected = (value: string, options: Option[]): Option | null => {\n const selectedIndex = options.findIndex((option) => option.value === value)\n if (selectedIndex === -1) return null\n const selected = options[selectedIndex]\n return selected\n}\n\nconst getInputContent = (\n props: SelectProps,\n selectedOption: Pick<Option, 'data' | 'value' | 'label'>,\n) => {\n if (typeof selectedOption.label !== 'function') return selectedOption.label\n const LabelComponent = selectedOption.label\n return (\n <LabelComponent\n data={{ ...selectedOption.data }}\n value={selectedOption.value}\n disabled={props.disabled || props.loading}\n mode='placeholder'\n />\n )\n}\n\nconst useSelect: Types.useSelect<SelectProps> = (\n props,\n [highlight, setHighlight],\n [options, setOptions],\n setOpen,\n) => {\n const [selectedOption, value] =\n typeof props.value === 'string'\n ? [getSelected(props.value, options), props.value]\n : [props.value, props.value.value]\n\n const onSelect = (index: number, option: Option) => {\n if (!isAvailable(index, option)) {\n return\n }\n\n const isSelected = option.value === selectedOption?.value\n props.setValue(isSelected ? '' : option.value, option.data)\n setOpen(false)\n }\n\n const parsedOptions = getOptions(onSelect, options, selectedOption)\n\n const onReset = () => {}\n\n const inputContent = selectedOption\n ? getInputContent(props, selectedOption)\n : (props.value as string)\n\n const parsed: Types.useSelectReturn = {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n inputContent,\n onReset,\n menu: {\n itemSpacing: 's3',\n before: (\n <React.Fragment>\n <Header />\n <HiddenInput\n {...useNavigation({\n highlight: [highlight, setHighlight],\n options,\n onSelectHighlight: onSelect,\n })}\n />\n </React.Fragment>\n ),\n maxHeight: props.maxHeight || props.search ? '238px' : '180px',\n },\n getContext: (base, children) => {\n return (\n <Provider.Provider value={{ ...base, props, options }}>\n {children}\n </Provider.Provider>\n )\n },\n }\n\n const { onClear, dirty } = props\n\n parsed.dirty = (() => {\n if (dirty === undefined || typeof dirty === 'function') return dirty\n\n if (value === dirty.value) return undefined\n\n return () => props.setValue(dirty.value, dirty.data)\n })()\n\n if (onClear) parsed.onClear = () => onClear('')\n\n return parsed\n}\n\nexport default useSelect\n","import React from 'react'\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({} as ContextInterface)\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import React from 'react'\n\nimport Button from '../../../../../../../Button'\n\nimport { useContext } from '../../context'\n\nconst Footer = () => {\n const context = useContext()\n\n const {\n props: { value, setValue },\n checked: [checked],\n setOpen,\n } = context\n\n const onClick = () => {\n const [value, data] = checked.reduce(\n (r, e) => [\n [...r[0], e.value],\n [...r[1], e.data],\n ],\n [[], []] as Parameters<typeof setValue>,\n )\n\n setValue(value, data)\n setOpen(false)\n }\n\n const isDirty =\n checked.length !== value.length ||\n checked.some((e) => !value.includes(e.value))\n\n return (\n <Button\n type='button'\n content='Aplicar'\n onClick={onClick}\n style={{ marginRight: '-3.5px' }}\n disabled={!isDirty}\n />\n )\n}\n\nexport default Footer\n","import styled, { css } from 'styled-components'\n\nimport { ColorOptions } from '../../theme/interfaces'\nimport { sizes } from '../Button/constants'\n\ntype Props = {\n size?: keyof typeof sizes\n colorSetting?:\n | ColorOptions\n | {\n normal?: ColorOptions\n hover?: ColorOptions\n }\n disabled?: boolean\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>\n\nconst Link = styled.div<Props>`\n ${({ size }) => {\n const { fontSize, lineHeight } = sizes[size || 'small']\n\n return css`\n font-size: ${fontSize};\n line-height: ${lineHeight};\n `\n }}\n\n color: ${({ colorSetting, theme }) => {\n const def = 'greyishBlue' as const\n\n if (!colorSetting) return theme.colors[def]\n if (typeof colorSetting === 'string') return theme.colors[colorSetting]\n\n return theme.colors[colorSetting.normal || def]\n }};\n\n ${({ onClick, disabled, theme, colorSetting }) => {\n return disabled\n ? css`\n opacity: 0.5;\n `\n : onClick\n ? css`\n cursor: pointer;\n :hover {\n color: ${theme.colors[\n {\n hover: 'blue' as const,\n ...(colorSetting && typeof colorSetting !== 'string'\n ? colorSetting\n : {}),\n }.hover\n ]};\n }\n `\n : null\n }}\n`\n\nexport default Link\n","import styled, { css } from 'styled-components'\n\nexport const HeaderContainer = styled.div`\n ${({ theme }) => css`\n padding: ${theme.spacings.s3} 0 ${theme.spacings.s1} ${theme.spacings.s3};\n `}\n`\n\nexport const SelectAllContainer = styled.div`\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n display: flex;\n justify-content: space-between;\n`\n","import React from 'react'\n\nimport Link from '../../../../../../../Link'\nimport Input from '../../../../../Input'\n\nimport { useContext } from '../../context'\nimport * as S from './styles'\n\nconst Header = () => {\n const context = useContext()\n\n if (!context.props.search) {\n return <React.Fragment />\n }\n\n const {\n checked: [checked, setChecked],\n searchInput: [searchInput, setSearchInput],\n options,\n } = context\n\n const onClick = () => {\n setChecked((prev) =>\n prev.length === options.length\n ? []\n : options.map((o) => ({ value: o.value, data: o.data })),\n )\n }\n\n return (\n <S.HeaderContainer>\n {context.props.selectAll && (\n <S.SelectAllContainer>\n <b>Selecionados ({checked.length})</b>\n\n <Link children='Selecionar todos' onClick={onClick} />\n </S.SelectAllContainer>\n )}\n\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n }}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React from 'react'\nimport Checkbox from '../../../../../Checkbox'\nimport { useContext } from '../../context'\nimport { SelectOptionLabelProps, Option } from '../../interfaces'\n\nconst Label = (props: {\n option: SelectOptionLabelProps\n label: Option['label']\n value: Pick<Option, 'data' | 'value'>[]\n}) => {\n const context = useContext()\n\n const {\n checked: [checked, setChecked],\n } = context\n\n const { disabled, value } = props.option\n\n const LabelComponent = props.label\n\n return (\n <Checkbox\n type='checkbox'\n checked={checked.findIndex((e) => e.value === value) !== -1}\n label={\n typeof LabelComponent !== 'function' ? (\n LabelComponent\n ) : (\n <LabelComponent {...props.option} />\n )\n }\n disabled={disabled}\n onChange={(event) => {\n const isChecked = event.target.checked\n\n setChecked((prev) => {\n const newState = prev.filter((v) => v.value !== value)\n if (isChecked) {\n const e = props.value.find((e) => e.value === value)\n newState.push(\n e || {\n data: props.option.data,\n value,\n },\n )\n }\n\n return newState\n })\n }}\n padding={{\n top: 's3',\n left: 's3',\n right: 's3',\n bottom: 's3',\n }}\n width='100%'\n tabIndex={-1}\n />\n )\n}\n\nexport default Label\n","import React, { useState } from 'react'\nimport { Option as MenuOption } from '../../../../../Menu/interfaces'\nimport * as Types from '../interfaces'\nimport Footer from './components/Footer'\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\nimport Label from './components/Label'\nimport { HiddenInput } from '../../styles'\nimport useNavigation, { isAvailable } from '../Navigation'\n\nconst getOptions = (\n options: Option[],\n value: Pick<Option, 'data' | 'value'>[],\n): MenuOption[] => {\n return options.map((option) => {\n const { label, onClick } = option\n\n const data = { data: option.data, value: option.value }\n\n const parsed: MenuOption = {\n label: (option) => (\n <Label\n option={{ ...data, disabled: option.disabled }}\n label={label}\n value={value}\n />\n ),\n onClick,\n data,\n disabled: option.disabled,\n rules: option.rules,\n keepOpen: true,\n }\n\n return parsed\n })\n}\n\nconst getInputContent = (value: unknown[]): string => {\n if (value.length < 1) return ''\n return value.length > 1\n ? `Há ${value.length} seleções`\n : `Há ${value.length} seleção`\n}\n\nconst parseValue = (\n value: SelectProps['value'],\n): Pick<Option, 'value' | 'data'>[] => {\n const parsed = value.map((value) =>\n typeof value === 'string' ? { value, data: {} } : value,\n )\n return parsed\n}\n\nconst useSelectMultiple: Types.useSelect<SelectProps> = (\n props,\n [highlight, setHighlight],\n [options, setOptions],\n) => {\n const initial = parseValue(props.value)\n const [checked, setChecked] = useState<Pick<Option, 'value' | 'data'>[]>([\n ...initial,\n ])\n\n const parsedOptions = getOptions(options, initial)\n\n const inputContent = getInputContent(props.value)\n\n const onReset = () => {\n setChecked([...initial])\n }\n const onSelectHighlight = (index: number, option: Option) => {\n if (!isAvailable(index, option)) {\n return\n }\n\n setChecked((prev) => {\n const index = prev.findIndex((e) => e.value === option.value)\n if (index < 0) {\n return [\n ...prev,\n {\n data: option.data,\n value: option.value,\n },\n ]\n }\n\n const news = [...prev]\n news.splice(index, 1)\n return news\n })\n }\n\n const returnData: Types.useSelectReturn = {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n inputContent,\n onReset,\n menu: {\n itemSpacing: undefined,\n before: (\n <React.Fragment>\n <Header />\n <HiddenInput\n {...useNavigation({\n highlight: [highlight, setHighlight],\n options,\n onSelectHighlight,\n })}\n />\n </React.Fragment>\n ),\n after: { fluid: true, children: <Footer /> },\n maxHeight: props.maxHeight || (props.selectAll ? '269px' : '224px'),\n },\n getContext: (base, children) => {\n return (\n <Provider.Provider\n value={{ ...base, props, options, checked: [checked, setChecked] }}\n >\n {children}\n </Provider.Provider>\n )\n },\n onClear: () => props.setValue([], []),\n }\n\n const { dirty } = props\n\n returnData.dirty = (() => {\n if (dirty === undefined || typeof dirty === 'function') return dirty\n\n const values = [initial, dirty].map((e) => e.map((e) => e.value).sort())\n\n if (values[0].join(',') === values[1].join(',')) {\n return undefined\n }\n\n const [value, data] = dirty.reduce(\n (r, e) => [\n [...r[0], e.value],\n [...r[1], e.data],\n ],\n [[], []] as Parameters<typeof props.setValue>,\n )\n\n return () => props.setValue(value, data)\n })()\n\n return returnData\n}\n\nexport default useSelectMultiple\n","import React, { useCallback, useEffect, useState } from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Menu from '../../../Menu'\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport useSelect from './hooks/Select'\nimport { Option } from './hooks/interfaces'\nimport { SelectProps as SingleSelectProps } from './hooks/Select/interfaces'\n\nimport useSelectMultiple from './hooks/SelectMultiple'\nimport { SelectProps as MultipleSelectProps } from './hooks/SelectMultiple/interfaces'\n\nimport * as S from './styles'\nimport { GenericObject } from '../../../../interfaces'\n\nexport type SelectProps<T extends GenericObject = GenericObject> =\n | SingleSelectProps<T>\n | MultipleSelectProps<T>\n\nconst Select = React.forwardRef(\n <T extends GenericObject = GenericObject>(\n props: SelectProps<T>,\n ref?: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const { position, loader, initialLoader } = props\n\n const [options, setOptions] = useState<Option[]>(initialLoader || [])\n const [highlight, setHighlight] = useState<number>(-1)\n const [open, setOpen] = useState<boolean>(false)\n\n const hook =\n props.type === 'select-multiple' ? useSelectMultiple : useSelect\n\n const {\n parsedOptions,\n inputContent,\n onReset,\n menu: menuProps,\n getContext,\n onClear,\n dirty,\n } = hook(\n props as never,\n [highlight, setHighlight],\n [options, setOptions],\n setOpen,\n )\n\n const [_loading, setLoading] = useState<boolean>(true)\n const [search, _setSearch] = useState<string>('')\n const [searchInput, setSearchInput] = useState<string>('')\n const [page, setPage] = useState<number>(1)\n const [lastPage, setLastPage] = useState<boolean>(false)\n\n const loading = props.loading || _loading\n\n const setSearch: React.Dispatch<React.SetStateAction<string>> = (value) => {\n _setSearch(value)\n setPage(1)\n }\n\n const inputProps = filterObject<SelectProps, InputProps>(props, [\n 'type',\n 'onScrollEnd',\n 'position',\n 'value',\n 'onClear' as keyof SelectProps,\n 'placeholder',\n 'initialLoader',\n 'onScrollEnd',\n 'position',\n 'center',\n 'maxHeight',\n 'emptyContent',\n ])\n\n const _onScrollEnd = props.onScrollEnd || (() => {})\n\n const onScrollEnd = (e: React.UIEvent<HTMLDivElement, UIEvent>) => {\n if (!lastPage && !loading) {\n setPage((prev) => prev + 1)\n }\n\n _onScrollEnd(e)\n }\n\n const onSubmit = useCallback(async () => {\n setLoading(true)\n\n const optionsResult = await loader(search, page)\n if (optionsResult === null) return\n\n const [options, lastPage] = Array.isArray(optionsResult)\n ? [optionsResult, true]\n : [optionsResult.options, optionsResult.lastPage]\n\n const initial = initialLoader ? initialLoader() : []\n\n const filtered = initialLoader\n ? options.filter((x) => !initial.some((y) => x.value === y.value))\n : options\n\n const getWithOptions = () => {\n return !search && initialLoader ? [...initial, ...filtered] : options\n }\n\n setOptions(\n page === 1 ? getWithOptions() : (prev) => prev.concat(filtered),\n )\n setLastPage(lastPage)\n\n setLoading(false)\n }, [loader, search, page, initialLoader])\n\n useEffect(() => {\n const timeoutId = setTimeout(() => onSubmit(), 250)\n return () => clearTimeout(timeoutId)\n }, [onSubmit])\n\n useEffect(() => {\n if (open) return\n setSearch('')\n onReset()\n }, [props.value, open])\n\n useEffect(() => {\n setSearchInput(search)\n }, [search])\n\n useEffect(() => {\n if (page === 1) setHighlight(-1)\n }, [page])\n\n useEffect(() => {\n const timeoutId = setTimeout(() => setSearch(searchInput), 1000)\n return () => clearTimeout(timeoutId)\n }, [searchInput])\n\n const onClick = () => {\n setOpen((prev) => !prev)\n }\n\n const isEmpty =\n (typeof props.value === 'string' || Array.isArray(props.value)) &&\n props.value.length === 0\n\n return getContext(\n {\n setOpen,\n searchInput: [searchInput, setSearchInput],\n },\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(false))}\n width={props.width}\n >\n <Input\n {...inputProps}\n type='search'\n htmlReadOnly\n onClick={onClick}\n loading={loading}\n onKeyDown={(e) => {\n if (e.key === ' ') {\n setOpen((prev) => !prev)\n } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n setOpen(true)\n }\n\n if (props.onKeyDown) props.onKeyDown(e)\n }}\n dirty={dirty}\n icon={{\n icon: {\n type: 'semantic',\n icon: open ? 'caret up' : 'caret down',\n width: '14px',\n onClick: () => {},\n },\n position: 'right',\n }}\n ref={ref}\n {...(isEmpty\n ? {\n placeholder: props.placeholder,\n }\n : {\n clearable: onClear,\n })}\n children={inputContent}\n />\n\n <Menu\n {...menuProps}\n highlight={highlight}\n open={open}\n close={() => setOpen(false)}\n options={parsedOptions}\n onScrollEnd={onScrollEnd}\n scrollTabIndex={-1}\n width={props.inputWidth || '100%'}\n bordered\n position={position}\n references={{ bottom: props.paddingless ? '21px' : '35px' }}\n loading={loading}\n center={props.center || { x: 50, y: 50 }}\n transition={{\n properties: { 'max-height': {} },\n }}\n emptyContent={\n <S.EmptyContentContainer\n children={props.emptyContent || 'Nenhuma opção encontrada'}\n />\n }\n />\n </S.RelativeContainer>,\n )\n },\n)\n\nSelect.displayName = 'Select'\n\nexport default Select\n","import React, { useState } from 'react'\nimport feather from '../../../../assets/icons/feather'\nimport { IconProps } from '../../../Icon/interfaces'\n\nimport Input from '../Input'\n\nimport { PasswordProps } from './interfaces'\n\nconst Password = React.forwardRef(\n (props: PasswordProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const [visibility, setVisibility] = useState<'visible' | 'hidden'>('hidden')\n\n const icons = {\n visible: {\n icon: 'eye_off' as keyof typeof feather,\n onClick: () => setVisibility('hidden'),\n },\n hidden: {\n icon: 'eye' as keyof typeof feather,\n onClick: () => setVisibility('visible'),\n },\n }\n\n const icon: IconProps = {\n type: 'feather',\n width: '19px',\n ...icons[visibility],\n }\n\n return (\n <Input\n {...props}\n type={visibility === 'visible' ? 'text' : 'PASSWORD'}\n icon={{\n icon,\n position: 'right',\n }}\n placeholder='••••••••'\n ref={ref}\n />\n )\n },\n)\n\nPassword.displayName = 'Password'\n\nexport default Password\n","export default 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAFf4AAAAPCAMAAAAsJ+pWAAADAFBMVEUAAAB/U1dILHgLN5L////OECYAAAAAJH3tKDj90hXSDjT/AAABNpb/zQAAK34AI5XQFCvvKixCit7eKQ/+3wPCJy0BlUMBn0rQJToCd2DuGiPkHR52rtwgRYzUKx3pDS4AYTPGDDDjBxnCAQPpAA4DAowBbML6+voBKGXbAgcDUqYZigICeDUAaU3/1QDbEh7cIx8AHaXlZG7NCR8BMKQGMIQDakCvFCvaJRr98/GOosMAbTLosrgPrioANqvx9vZXc7MAccsCaKgDn18gtTkkSqUAI4ICot4BrspNYaBLrNf3eH775ORzq98ormartMzWER7zogbFDhufMzwBhlHfMzkRDAr83kgBeUEAgTwAmzoLRq/IND0GiTDCBSXdTSECgABYWVnsi5QHP4QBZQBjtOXz0tXkaBjl7PX+wwHDZnXIzuBIl9DcEjn/zyKtxeL5r7ABPxo5fc4ypjIgXDg6gzsAf/8BHJAFlWeMGjn3PjXQAgBzhrb6fAHk7ORZUoHvzBmq0bj96QNmzf/JsBkClsAVtDg2dR89csb5uBHwP0nM08nrjBgGUpbS4unVhpABHnr43xOqq6duel4ei0j5xcbKPljCwLjLqLSrlBFbl7FCCAg6Xrm+gpYmHkrngYFpweXroKfhwhICW7zUcX7vV2LhTwb9nJyHK1EhoEJldqA4WJqOgZUEAWXWJyn/UBGHm3UIKH1pJ15UroXcUVUFLpGwwA6LiEVPrFj8mTNihC5KecDEUl5ZqjTGVB9IWWqJryC0tDNwXxVrw4kLPnZJhnPy3o5JUEB7DBGJr95CbU1wiM3cdgWmW0E/mQD8FxhaRgYsJgsAmgCSeBGrCw7B1+93opo+RIIjd7ihNl9om2oBGl3Qokn98kJmLUAYGJaWy+vf0hS3vlb0JSqKw6GbPhkWos76sGYdbZ8AsWUBULwCT/G0k2E7KmzFeBwdMnz46rzQvX0xS2Zck82mxnAXH27gykAgUrYnlSmDuVWIQDMQTCUzr6oIKnROksEhguycBXzUAAAABHRSTlMA/rFGbqhDHAAAReZJREFUeNrUnQ9cE9cdwM8tiNDqaNUOW7FzXRdnO3RQ6kjZwtrJmpqKyEC7Ohm4BYQp2Oq6tiyCS+sgKWICBkREGPgHmEKholQRUEBFWh0K1rFVLU63ISA6V5m2+713f97d5V0S0P37Jrm8i37C5e7de++++eX3mMI8XXZiYlh3YV6YJw/DfAtTt24SsM7ijWGY+4CvPfPkM3Dnb88wzFhMwWOY9b/HMEzBWAcKGIW/9ggFhvkGBYbxoMAwr1BgmBcpMMzv5Gzdmcgw4ygwTGKe7vHa2sevluY9LsAwD1JgmJmYkpjdae/M5GGYtygwzJe+9KXQ0LVp4zkOfQlgGE9EWOxKTGwYt3e+SYHb69E3FyHe4Lb2AQoMo6LAvWoo9ZXuR5W6KDCQvBAYWKSG//tDlpw0LwJ8BsRroSrMvHEY8RH2EWCYRRsdYZhpFBhmDgWG+REFhln11vMOMMxKwGslAVZ+xe2dHeUzkjLFe2fq1BclN3RnmLjiTUvkMMx0jqUAX2bPig+DVRzBH6J1hvnJT5744ImfSGGYX8j5rCeGYYKCgoaCgJ3e3juDOBjmIRGvLsJY4K9JYZhfYS6rMIefw8hOtGwAV6XvIp56X1YVpmDaPDAW/vBOpMAwXgSXVWECBYZ5feA9BxjmfgpK73D/lBwJB+GhVM3LE2ivjqWA95lnYmIQ7LPkpApdUnJFeVI4w2Rt+5kDXFVYGqcKgYpAqsLTHGs6K1v4MsPM4ChXqYoChVPtKzxPa0VbtpACw0yigJqhnzvclBrIo9RP7B1Z/+l3ZChtw48pKB03FUIzIchPRcCN6YzExBmwf7cJKHUJUylw7/viR+MqREdVqfY9R4FhAnITQquzPbPDfX3D4SlIlxhg4PZZTAx5AKRGpdx3Xwr5a3s/pe0H/t8DHn00gC8rHQsVT3CwpEEmuHoH9jnGC3PwlxiGCQt7LXbgNVgeGoJl2IANlgyT84EjDPPss2fVU2c+O1OM7FhU3+GOxc8xx1SYY+waw+x814GdZMuk7UPb4ZrnviyD3sIodbnfowCNIQU0ePmSw51hfCnwez35WUzTeIzSXseb/VCNCnP5Vxil4+ZDgWH2U6C3O0rbsIsCdxa2F0Ul3U/gOhB+e0v5T7wiKleFUAcHq3EhN2oFw4z33/vqj0S8utcf9sNpyigOfWL329RHKTDMUxSET+wzzWdaDPnEB0tWOoCPBWHX3s5o/NdmUlDa3lXPvLRYjlJr9Pzt5x1QOkIPU2CYX1NQ6t8yTKaIiIiMCBEZbC9y1VcKquvyqo7qegYFpSFuJAWG+RoFhplMgWGou+FlTIs/MH5SzPTp3riD7G9woF+pAWdXc98QQ+tw/MZAUxKxLuJNxPjx+AlWoSl5G3PQCxPDb9l4CvxH2/kOZif/0aZQYJivc5wtLw/lywzj5+dXkaqDZUKCUIRunoJSNVMFG7iOwdeHR+mweVMgJ2F0QUE0X+auIJ6u4XqoQG4/oCufrb9D1ApAs079xEFiJviFB+C/9l0KDLPdAYZ5EmNUYYzsGn9dwW1XDbsGe5cC/apAaUz/hS8yYiZQwIdgRmkpGo2QyxqlAzNrdtTs2WrKJRR/uESHYBZiQQC3sxfgVaW2ooD6atI/nqLsVhWg/ecqCUptW85w7oH1v3xLgtJnm+tx39fkKI0Xf8rxNUl/+wIFpYs7FSZv5+sinF4/hMXKTt8lFJT2ww8oMMwzFBjmr7/561/hQdCZTAyzDNO3CLF/NwuMZ6gnHz+IaHqWgE/fzEyH07cwJNQTjsXaDXmeAvRPQa/kSv/3+xSU/u9LmIN/xMQ/glGSG2soQLMQTaslzd9xBDoECgyTMnuWDOWzZQsFea3O9kQo1fUZmLbxmJjpGKXa583SJtUu9N79TQpY5wR5CoTdYbehIGa2Awwzf35dR2LffAlKvTASNyGwqH2MwDBfpcAwRVY4JLEhxOkA4r2zWYBhHhcg57e0Rr39/UbTKXyMf0tBaQy4luOACKVXVRSQRPszRaJNYmkV/tv3gLNCa572HILe39MriNKf/zYFOJBzVlAaAVyR5gmnPGnKPCsqPCdMqBYfhrkU6JVfacsWL/6lOTczSgLDPEGBYazrP3B8VVeZklRaWpir0Xm6rX8JyvrXg2sZTgHckMSDkf217Ox7rX+vH3vRTf1L1G+xIcSoNMjSVe5ICghA2/s4oNPx+rf9+l3r39fat4D/levfMIn+Dfu36l/AECDdj/uMKkNtIBK/eFFrUBn3jUz/kiMMY9dAeA94Qlp5sHXRonuif3ftEopoL3zzLYr+9Vq5cSXcvVZ6ASCCM/bscaZ/4Y4eQpFhiqn6dxmHLlWj48si/ZuSIta/H1zYu1fwvx98IOjfzb8gfH4jfkEgGlzbTEPO9O8u9jjvn+2m/pWeaNmhQDarf58aof6Nvwv9G0QBiZGd793vrv71002QgxoniQB+qekgRf/msp/tSEWym6qC7LNwXWp5UnJ5uRUeqOqe+dnPXhTf/lP6d6kL/Uuxv4r6d+HpaAU54yNTwArbQPTvlCmj1L+kTm4TkHUJQYBU/54/f0/1L+je3KzQalb/BrFrsM8mx8TExMeTR8xktsfV7yD6d4ce/7VJFw46078PPOCu/s1NjIxMzL2n+neoyTYAy7o6WAbZmg4h/fu9T6n6dybSvzM/mypCdiyy2/6e7UT/vjvBgXeV9O/So3Wt6Yfnf/khl/qX1uW61r+zlkT6kBaRYn9Z/btEers3+redwoj0L73duff6dwkrDPVlXy3To6q9fz96wqsMcyrfHwlgIn/980+hT3G64D+sf4FpFstuvowuPBvTVmaIb3L9e9B0kvtroRTY7TWb0ZKU0Pb+c7Ec+QB1wI8doN6+dc/07/nzMv075Cnv30zf/Gbznj0R/Zde5+mPgF7kiO5Ot0EKruu4hpPK/r+nf/1B/3og/8swDY850DBi/TtXKn9PnEDX3xMz/Lcj74ss8Hb/jIlvvjli/RszMv17tvKytepy31mx/tVoeP2rg6KS/pVWM/LtvNpg16vvhf4tOFoAd6J/n4YbRf92Nv9uaxtcBJUW8TDMikgF/XvkCG9/Q/OivIn+vb/bbwT615j1H9C/7+78gkv9iw9BYSEcgrUi/Ss7/7u7Of1bW1w7i6p/1WoH/bsAbmL9u0BZaI2NnrNAWPXx4V4dDD4G4/S70b8H9pkP15XDleaVK1dsV660XIGi9LOFec74O3t5+be/vUs5033mRP9v69+Oe61/f3vmt39FDw5dk6l+NXfJ17IIUbubA6rzalA/buvfeSllZY5iISWrtDQP+nyZ/lUnJan/b/Tvyy/PoNSSFc3u61/48nkWMJvcR6Z/5WesRoeaUsmro9e/vnerf7Mrgnj5W10Xy27D2FP9MTT9a+urA/1bI9W/X5XfWP2rD5isd0//BgbY4URuy/XxIIj3zmaOJlb/frxly8fK+vftg+h79lHr37wQgtKrKrXRbFarko+JAIn2AtK/t13r36+7qX/lFQSiZZzp39myG9a/+c0ggN3XvxVBQbq71L/6lNyQ3JCQFEDNfc+3ePEPew0BzvTv+uYP6tc3r4d3SKrfK4fJjPKN8vGBRVQ17IUjR8Jc6l/ADf3rc5q1vyebm0+y/ve0DyP5a9XdOl13tVj/esD9rvTvddACWcd+7lr/EvWryus4ejRYaZD1IQByD3gc8TGnf68nFl53U//+mQMq7J95oJJg/9t+aLlM/05QjP5dHRkVFbn6HuvfYiRoCWjAfFirKvYN9A0IgEWxSnv47bdHpH/JEc708ZlcmNhROBnrX0wwOOC0u9S/BzduPEj0L9oHUxz1L4n6XdS6aOWi/XuU9S8nfSU3htkQp6x/K9LT7eb08Aq5/k358MMUkf7d2/jEB43gfJ94Ai346N/PP7/58895+9tl+XZgIOhfGOPkH4EWAulfMj6l2F9B/37yxidU/VvzHEZ6ommg5anQsPr3H+0vu61/t0dsh8X2UetfLQWkFBb4FqulKGlEz9Bkqv791nexAH4pB9F0sOkluf4d7BlkP9uyI8tStW6qinFRvnDZ5Qv7LDVV13JuzXHQMfh9E86PNPq3IXGU+ncphbuP/sVKt4AqZ+Ca+pNHfUUKmL4Ngv5dDF3UzMVy/XvI7xDcnetfsn8zt2372Zi6ujE/A/0r7YCmTv35K9US/ZucfE/1b3YYq3yR/mVL2dmwz4ZzmjZu9IK7F35qyhnGPW5w2Yc7eP2748OyYKx/J21sdKJ/LRZ39a8hsqMj0iBtkPVxAaUh6lHrX1tT/tBrr8U2NcW+FjZQ11SH9e8VxejfZ59NVomQdc/lW7fq3NC/ngMDnq70rwdoxPxFxADL9e80oUTpcl3r391n3z2km/1fiv79LgVB/3oEutS/Su3OvY/+5YU3XHHFqVX6mBi9Sh03KyqXbRFZAUzkL7QPsA1IACvp32CDIdihTW0bGx0NCwf9+8ADbupfYNo0D7H+/bTe5Cz6txG2FQG6+hNM2RufiMDbq42Ntaow1libmt/eVc88KUXWGgVV9QWx+vfw8yy3a2rIMGMBBZf6Nzxcon+HOps7h+T69ytfQfr30uuXLl3q729AGtgCvUi5tvvqJim4L5T533ujf49SGI3+nVRiKilho389xPq3oWHU+neuJvUdsfy1XGavv7dnWN58Mz7+zTctGSCCnetfPO728kIlQf8usYxI/54ttEL071mrVdC/QLimAulfXEytkOjfZ54RitJqFnTlnStXglA1M9itdv1d619sf4/CvcBV9K8J7v7gf0PgkhLfQtD7Th+i6d9DdXWHsPxdpinyBlbEsU1f7Lr8Sfnu69/ew/8J/fuoLwQAu9C/mZkxvnV1vjGZmeKeKlNoi6uR/vXLZvVvQFEUNfpXm5ysletfZH8d9G8gBXy4js7yYAnMEP3qSNsO/pcN1hiN/s01a7Nyp771Vkv9lCtDq69MOQ7+V1LpquuzDx0aWM3q37/946M3pKAe26NghPq360bvf0z/Jh44kLhpxPr3ds1tTv8+TYn+/etvj0nl72pO//qhy6/LMbt58DsMu61/M/VlmWVEB5HLZF9fWGRCPaseGqrm7VPSO+8k3b3+fVtB/xqNo9S/5yiwjfwfoqVAE7Ki+fuvylDUv/D98yypAFbUv1UUZE3pMlssih+R9eN+wGj0b/Emb++OehEQrUyBYXZTYBgIRc7O9qvGetGWVhLG6hwwFp37YyjRvwcONCD9e9h19C8Wv3qa/gU9LNW/EMKH/O8pcxQxPWJJsxlTVcVF/4YmJYUq699G7nv2k0r6N58CEb0bRCi9qjJeM/XYVe3SkSGo33sb/Su71BkCqtkTsLV1UK2Cp5vBsISgxVakf7HzRXdSggN5Mv8kCGB39a8OqiFd/24JBba4o3+L4uJSUopTDClxnP411UPQQktWStTuqBil6N/mzhOdzU8gs27oy1guhdFpcgtLS5NSKnUQ7KAbWjt0RKJ/N26U6F8gXYpI/y6URP/6HMX215SWZsL+96iPByP5a3e0lwe1d4j+PXoaDVpOH+XboasUxDsnJkaif6/Dg71E1R5zrn+J+gUMly4dzdPSB1ns9gYEJO2o1KELUXikYv3bfiCx3Yn+Ff/y8CMe60cCUEkwW44NLacmf0hLk0f/rh6HWT0K/aulIAhZWfQv6jjSVcFxwUYjLFTpqB8Zmf4lR9jHZ4mqdIlqExrCnoqtNGtRBQ6oNYAD9hqt/t2190JdXcneXUT/AqvO3RCD9e9GHPy7stWYkGBIecOZ/iXWl70DoH9LFfWvX3p6761zvelmP4n+zd2x4777duzIJfp3Xf4F0L+Nez/A8veJRqx/u9K80m7weR+2wxjw2xaG0XBAb7OJLzOMo/0l+lev0juP/iWHIVtXkY2+h9Rlo/H6MdX7buvfiHW/uqvkD8EUQIx4gBTZlKt1R/9OCAqq1lVT9G87igBe09TE+t+bB0X693LrYKulR43L+JAd0SW5Gf0bzu+z8HBNy5o1muTwcO59IQOEO9G/azjmTJ48hy+70r+r/xRnIFsWT0Ho6PzzS0wmf6J/KShdaCwEIq1ApVUAyZk3gPg3HgV4Bay0DXtZXp7b0jL3ZW6FP25PHfKDS/FDTznXv6ROgv7t6+/vB/0r7RKqz2ZlEf27bSrPtnumf8MBQ7Ferff11eeGBGvROnQqEPKU0+TF0ZQzZUok2+OmZOp5/avPhAXSv8CFV++B/k08OmfO0USJ/s3F15EBavIOgRSU9O9rr71mG3oNiD2ElgN1sEBjol9S9G9CQoJKm5Aw9awI6bHwnNvdPVDtVP96otvA5s0DuMjr3zk+jvoXzvmjJ01eixa19tY856B/i4uFolKXm4w5f15YAmQwXltWVsuXOSXGGTES/QuOI1fyAO6F/v0NBV7/Tj6wwe67JNGF/qW3O/Qjf5jCyKJ/oYylb3BMTDASwbwM5QUwL39Z/Qv+2mNOolWEUH9DNk2fvinEQf/GRkbGOujfBywRERZeACt18R4clrQ0i1j/9latuWWEZBUEkf591dQcba2Ev9UcwarXB/TF6rKHCXh7K2Nj7SpDHLS0dputUtje6HQpsjNg4PjxAWn0763lJTWC/v0TBYaJ4ykqEooi/RsbKxTx976mJpMT/XsCYoAvcfp3gBr9S0FJ/2ZSUNK/Y3lOkSjAUenf5oaGZtC/3pLo3wbM6PTvOxqVNvR+zLIx/Sf2twar+PCr7Rb0bbUFy183on8XLZJE/8ZkKOvfnDVrcmT6d3Pf139r1Xz961XXif7VhSeFIv0rFEXdfH7+ar4srWbLnp9y/PkgLvo32DH5w04K2E4MiyveMNG/0UcLFvr4LCw4Gi2P/tWb1TL9m1/SJo3+9QZiKfrXlpZmQ/a3Iq8W/odHrX0+vrYZs25d84V1+R8JONe/WftqjO7r3++NVv+uWLHiIyKAwyiwh6CwEB0CLwHpgYFzP7u7G+vfqG9EzSqTwgYGXLmSQNG/8uhfpVYBXzhzX3nFZLD+F+UAGRwMztrylEL07z/PudS/w2vM59avBf3bWT+lufl4Zz3oEslnu7N6dWx9XR3Wv4gHE9Ri2HM60iqF178/+WD7h4769yIaF/US/RtA4Z7p347+/o4RR//++VZJjRD921KT09JS05JT0yLo378ek8hfQf/2kcQPQG0c+w7HQ6Qo6t8yfWaZLP8D7vPzSkuzcD0La7pwoQlf6n/22Wehycmhn4lxpn9z5+3YMS9F/InfpkD2jsFqNYxO/6opoEZ+7ssvbymcVwRImpB4fwff9g8K7GikCGtfgtLY5wQFSa3OnnvW1nJ9bran9DwO61kZ0RM2Yv3rG6I2BHhbxJ/EaSwdEAyQV7PRT26R/g0bMvn7m3j9C4r8ZBoIYHn0b0dHB9K/6Y7Rv18bN2/eOHH0b3CpQvTvuHlFmVL96xHoG7IV+gR7reB/xXtnM9B1sauL1b8ft6tU7R9T9S+YoL350bh7yb+opH/XUSCit3QDQelVld1kMl3TahNEMIydglj/BptHGP0rrSBB69dUrQ/i9G9JSdqiVlWr/6AKYhVLSlj9y4nf7ds5BYz171gigN3Qv8j+UvTvltDU9tD3Q0Pb21kDrFT5ufqlhoVKrWZrGXi1/sbFXADwbvZGS/7QDA94h9b4XOtjshwLeYXdYYmJ2bq8Qrj6Xlu+urxapH/Tevr6etIE/UuynBKI/p0M7TDRv/D5CtAVhReQf4rt5RjJX8sGtd7qKdK/BRhB/z5FQaJ/I+LF+vf8+VdeyVJhznD6N4sCDHv+BOpXr+Iw2i9dshoZZh4F2N7Sq48fOPC4Li/x8cfDcTASl/yh3bGFtGHSYnaPtwmQ8JfiR8fF8WVe/743t/1QmkT/hiH9a0rr7EwzSaN/I6EWQY2KHIX+/SUFrjqFRHnI9C/wnX1G6KDzYNfs+w6sjlD/whH2xEc4EfSv3VYefgANYfHGbh1TmFdcDFctbBywkmdKpMDp34Pr6rKBunUHif5FnLy5iECif728WhMGQ4rj9gj692Hciz4s1r9yXCV/0KSbq87VN0P8r1j/qufd9+F9cJ+n5vXvExdKLoD33Qjqd+9PgCfY5A9Vk26SvA+BC+JvfC5yR97eIndEsb/u619yomXrgjyBIKx/n3q//R9u699fWe4u+pceb+fjGxLnA2PLAcfkD3732+Ahyf3rGarVOepfYMt3v9XXdLAxB2hsWiPo39ZWywkgWCXo3yPLjvhpJJEbSj/WyduwNqi0NCg0pLCiQtN1qKU31a+Cf1/1GXeifztZGiZ/tHNyA7dC9G8q6F8PHxbhurDNezgkl2+NuL5qecny8SKEji7N1NxsShP071YKSsPuhYglelAgZLSIGqf4Ry1vPBD/KIdPZPOnzrehaa4NmNvErnHHrdv2FJbAtm7uuIUiKiYELQsl4Dp5B3L/Qp0E79tbWNiLkj9IO6CpNttUUfTvMfJ0j/SvLw+E+PCw+hcLYIsFy19O/wLBJPkDFHn9CwHAbunfGArC/w34xmOPfSOADCHJZWQceYcACkr69w9/+MNWeMCSe4IH/kp83y0ZWKeqsiCy+roI2bE4FBsb+wex/jVqjVpp9O8duJffvl1+RxT9ezT6tEdMmhh2e32WFjRDB7KSDwIm+rdWnzKRh97lCmdhlgq0dZZaPuxOmUcugrjoX6AdBlV8WWHgTvSv7srd5v7NynLI/euxJHBDaeImD/6cv0yB3u4oHXmtmkOvl3159p7b0b9syoeAuLgAyPtABnGsAB4/HstfXv9uqkWHrjbXcZ/lsinwuX+BT8GRWFubyJeF4Y/F8qtfWSzcivBDxUe/umnTV2eJIlUCPeAxDYZEadPYMtK/xt6D+8ABqyXHTRz6G6u1R5/Kt+xm9e+8eQ+Upcj1L8T8qkKmw+aGgAm2Ev2rVUmQngGeYzoaxkj07+2Ly5fX3GbLpF3XJSfr+DKpD+qa+UKFIPr3fHT0eXH0b3Xb1rYJyvq3P+JE/4l+rH8HBgaOdDtE/yZxnNFozvBlhnmaAv3rWKVXBfsbG22Lvgv9mzbm0qUO/5jpKPsD0b8gb0Dg3KX+XRbbb7k8CAounGH8l2dEWE5s3x6/bl389u0nLBEZy/2V9O9ensFBoQgfLSb+RPw0Bf37Q1BFcv2baj2bpNUmf71KI+jfiuSkcA3Sv1xR0L8o8NdkwgWEpJqB/j3bAvpXMffv3ylgx9L2EiJnPn5qw1do3CUUB7tGon+D+04WivVvW+fW3/1BmvsX3nf3Cu+PuiSw6clMtqAJQalxK3AP1fvlhxgGDohl3bqTJesuRImOULwDRP/27ss57Er/qjm00N3wZfpVgXxMT/RvbdmKFUIGCBsF1OoeQrl/oZ8hlzXSA1MJ/jeoGutflgXCDWDVVXi42kH/ypI/wCppFVoDLrfKLp1xAohpGRnw93ez+ndw0cpBVXD4P54iiPRv+vFVq1ZbVzvTv+cOGEqrIOK3qaSlZHl9SUlLo+0t6WcbqrPZVsfy+hc4pnZMOhWlV4nh9O8Hnc0TT2yX698bkxAXBP1L2kEzyWZwL/TvTiDyQE9Pf6T425BkCg7RvzW3bvP69+ne9Jqu3t7ervQuafIHIn+x/uVSP8QL7hfOUE4g52SpxDiL/i3LDBgnBvf5cCw8Q7EIqbKmd+HkfDOB1NSZEpQqeTIQ8Mm8uAfKxJ/4MAVyLOz5+Xa39e+LL4rkxiaeAweEIjTyc5vqoJXvXir5gbY353+XNzcvxws8pkrgMRqFIs4KeW0wZTcO/8U3KCmNfU6zHC2I1Ycs4VYktXqguyK14p3uAU/Jq6B/958Yhf71DgjO9Zbr33AKZP/qg4P1ZP8KWX/r/OFN0qo5/dtmjB17yrRyf4ws+hfr3/m9lOjfstx5cYYybgX32LnFYAId9W9mcAp81SDRv4BPLvo63so1/ETDecLe2czR5Sr69+2DfOiv6fAPlPRvBIclI8PCl0eY/MGM9e8Z6XmsoiDWv9f6gsXRv+hO9G8+BUkFAf17jte/2P/6p9lvmq6Fp/kj+8vq39notiAiYsFsVAJQ9G9n89hmJICnC0j1b2ZAQCZbmaqrqz11Ok94kuvf0HZYVFTAoj0UrTv73sxsNialAklGIYNZdKdpDQjgmqwd8+YV4ds8pdy/uTFeJ4qMfyoQw6Bft8C2ZaMs1R2VGk3lcBjRvzdreyyWm+7p35gltbVLloj175wZR4ZaqoCWoSMz5qAPLPlr2fbWQXu2WP+OBdzWvxaLT8Rukf79OQpoYsl6BSE6K69dI2elVP8OXlPlXdIqpl58nOc1vPz4YydTv0WwRO2OIDjVv0Ao5P91iP7txEijf6NA/gJR7unfPXvc07/64lq5/gXePsy5RAj9HbH+9Zg+3QeYPt0X9G9iXWwHjv41dbIR4AUFfxqzies26V8WKR0J9KPUC5PSQsvL/e5kl0D8nTP968XdVi4yGgKK9XsATvDnQi+6Qyz4wylw+tdXfOP1r1+6vaenqmp42J7uJ47+3XEfZocQ/YuFL6t/uRQQWP/e2HzxcyHvw/aez37xCxf6l9hfuv6lJ38gJ1q2Bvc71RrQv/j3ZMr6d/duee7fu9K/dIni4xESF0jXv4f8IIRUNvVbRaqf/PL4u+2C/m3KOXjwYA6Z+u3yCUxPq6B/j6DbkXLxUE0pr0y5nyZJVxEO0y+FJ+tCzfaK1CSuazdwGSBeRHeAS5CA9S+BYSpZEicvaZucyK2Qb6ESwu16g55F0L/ew09r9Wphy5Yj+i/1ZywnCB1dSdO5W/lE/46lQP8mmte/BtC/xRL9u3+cBcJ/H+VY8VH5+863oellnc2me5noX4wfeRJN2YeChQigdH/2s20ALGFRWlsWAAVpl+DZ3td3XZT790wyWiaf4fXvecSDoH+nnhdQqn1pFBT17+uNjVOA2Ph4iHzi9e8OjrL77ivjy7AfNsJt0qS9n65fL9K/ZRzjLJZxfJmcLRvz8zfyZRL9WwBIon+LPbwxvsHCq6kUFPQvUTYnobHlwGOiB7WoPpjNovowk839K0n+ID0WA222c1v/EEb0r9o+aLZrRfoX53y4k6pJLb9Don99jsLl7PCXxXDbizNAeCHAAPfO51uYouIifbHeEMCuKXW5Koz2DNK/Z7Ry/VsGB0mkfzFf+lKW1Zr1JbC/7ujfK1VVV+5K/yacef/9Mwnyqd88NpmL83iXQ7YhKzycqEHFdgdjTED/3yj/xLnFxbnkHbYgjoH+3UJQjv7lJ3zDk8C51r8ATf8eWIo5IM9afnTTpqN8mR/+PBARAT4z4gGZ/i2cVQh34VIlqbg4CT8GB5OSQtgyqAztmn2gf9fsMztG/76Kc9FF27Y2m2L4vLtxuQ/P00v1L2A3amF07jPdN9hoVinqX9kAtdxqLc8W6d/bt2ou3oKyVP9WqMFxVMj1r7oXLuUc9W9lc3MlX8ZXBSgiRIJY//ZnoDb4BNa/SYBBhqhWV1YKRSX9q6IwSv07POxu7t82W2ynY/RvT11dz7RRJ39oR8kfQP626iHVW6jfeyPTv99H7AO0WrTEq/DRTlhORMTQ9W9OzpSsrCk5P5To3/Lwr59Vqc9+XaPj9G9FRYUuNTW0QqfV6rhiBdfNr19PHoC0mi27ffzJ2/zF54j1b056jkj/elAQon/Vhr4xfVpB/24VKBaA9329s2HOijnRYpD+PWKzHZlQAXO+AVF5NdCwCPr3wroSsf4NZjFcvmzgiiL9m5NTo3ahf4WdkJQU7GpmVPqY/t0AvSouc4Xvzi8K+reuTq5/l8N4wMsLFiu9BCQHRjz1GwWySe7k/hWSktXW7m+VtLq2SpQAIt6S4ZURESPWvym+HgSif48bV8HCfNyZ/jUC+hfeOptfX+efds7fdOVcy1vSz1Z/5dzZ4/XVrP598HNYfB6+Q4DXvwaa/r0QU1QUc0Kufy9MwvQ66F+jNd14L/XvEWBt3IaQ0sojAnRZ4KB///xnkvu3Jh3Ub29vTW/v0+Kp33j5S/Sv301I/EDcr4roX6Ns75gwaePTTAQu9y++eidIj0VYm61LBy+wAnnmzGclKFXymcCBzB07MmtdT3PKi/hrnZ3X7GoH/XvxoqP+vf7gmTOwYBEF3zc0CEVB/16l61//5mZ/vJDEzRrtdnF9CKmrLNQbIAHwI3CHGzmztFqV+JnTv5OPnlo7ZE4wJp6+dABWJXvyal/LCy+s7bvqKdu/fY2NfaPRv5sCfL2H14hQCrnh2wH94KA+WKZ/wwZMsANgR8SGsfo31mhT1L/yqd9wwO8jhod3wHXjI3z070KOxxz0rz4FLR95RKx/gcAUGzQ0lXGB/Dm0meBe7l8I/cWjQtCNF2//QFH/8nVgXqE5QHRdzZEogv4qTv7Qc9EsTf7gSv9q7deu2c2i6N99Fy7sI/o3DJMd5KfT+QVls2uSCgL6t8q6fgLugbdlbTPfLLk5AwHP5qzzQvQvTAozaRJMDANFVv92nuyEfQICmICsdmVKyjzI9gL2t8xggGdehSxdipbU3L99fRV80ckpbLbbs8LRBVF4lt3OxjtjHY8CgH/Zm84j1b/rp00sGHvScgJF/0aUDGbJ9K8n4e8dQ/v2DXX8nejfnp4eS89FafIHqxRB/xYtKQ1YUiTWvwt2fk9g5wL8gT3F+J0/7+eprH8PUSCJKT0aGpbGx/De5RVgqopHfUyqf3Mtlly+LEv+EHztWk9rsFP9C7PPEBT1r1I2rkiOjsqPInmI/sXzv8mjf9OaOzub06TRv1E4+teF/o3iiM/IiOfLo9K/6kQ13B30b0kGQanV9BEx51xloS0SDWE3rlu38UJ+JyTaOAqHObqt0mpE5y8FZf3bCGmo64IG/Mq7/FBS6kanyR8Ar0VGY6vBGBK3g9W/Gkz3jFQNgWGiKaDkDx0OsPpXl2405IVcu2Y2puskuX93YPtLcv9i2OQPGE7/fg53Ie9D1y8AGK1xIP3LlxmGs78Xif1l9e8nej34QjUsP1GO/vXkwWkfYAkpIHhZF6oXQ/QvTLkzzdXUbyUURqh/AXnyB5yhRN2qRbSqSYYSnFvUMffvd8H+QvMEreZcnAOY6N/WE4hWKJHoX78jaBGuF1DSv+FJmvLkJJh+KQm+YEtqaEgKL0/FP7UpjsKxhWe2kejfYowBziACw7RwzJl8aQ5fJhVaW2XTki3jgn9XrH56wyaDRP+a+jv6TBL1eoGlxBausZVwK670b+u1a61S/RuZDljTBZCcgcwP8fvH4eQPH1W+/yCgtA0RGMvLupYW3csWdo3X9vAgBUX9u01MUkgfG/3rKSa1srAyWxT9e0wa/bsWs2ncmLUEeu1T+qIiHNAGh+Si5A9qfbEBrSP9e7DOUf/eRwE3Wtj/npg8uZno30eBhy1ARgZaPozWhW1I6zx1qjNN2IYUlgOT51yafEBIWQAVs9SXI1eoqa9RcKJ/V62KjmbzLRH9C7ygAnp71Q769+z7IqTHYqgttqtyhij6V2sfbE0X6198bnpWbG5ZC89QYqN/l3osHZn+Dc4NKMo1FLFrtC5XOflDOEfIvHkhfJl0xNbhYSvpiM0UiP5tKS9vIfrXl4IL/XtsS3v7lmMO+jexMNDDh4OowXCNJpw/GIrtDkYN56nK2NsrtyCGoiIDOZohmIDdxSEEWvQvVf+6SP4A39RVpYvgf4c2fSlmOv87tMdYThcsWVJwmlsh+hf9tFmuf30h1SncfflLFU1oqEb+EPTvp/WXxF/YSOZ8O9Vp2S1MuzYuJThFlvwBEz5nuse7V18PEX/i6OIQCdIzoLuyq6uyWxL9i3hepn81KkAj17/Gmr/Mn58l17/nm728mvnwX3oPKdG//RGXGiLY6N9NFESDJZttVPp3dMkfhtvahon+DXSE6N/8zs58h9y/Cxsgp/Fk9/RvlBh+6rf3Yvv3D2qzNDqYRBY6nBElf3gVsc+sRtZebd6HV5H+jYig61+gpiYhoaZGGv17xf7KZ1brZ6/YP+P0bwKPSiUUef3bCAugkde/niKCLl1afylMWf9epSDo3ydrep9ET070rxD9a0y32uxGQf/GCYh/ub27ubnOstt7eoFkUMHO+ZZazCYnSv/yQ1j/wqC4E0f/5ncICGnl4kHGcypE0L/ampycliw39a/2xg2tK/1LH9O/W5ZriFsBREIGCHz975eU5BcmRml84EmQ699LUsTxjL4CSrl/+cxkARs2BFyWtrpb8U9jA6dFRPjEkOQPaAZuqv6tMq4CoADAQaQAAQdGs9a87a1nj7c1+ZfULa87DtkfJJ8t7HjLrXNDx8Ow/j2WkPXg34Dub5D8oh5AR7oUVv+u39uQnBxzYrtM/26chLnhGP1rNKrvtf7V6TfkhWiOCChl4P8zBS76t6a3q6u3pqarpovXv4gKXv4S/du3aL/Y/aqNZvQOTz6z2ipFMcloZiZE/0qR1bM7LVfY3L9rKShV8plAbQCoJrf1r72qT6Opstnl+vdWTs4tB/37ImrGXpTr38n9ERH9k7kVIflDkTvJH1Qc5qoqs1j/doVrDJAU0rGuHz6sJc+c/r3UcDQ6NnZrm9Wq7evrwPpXvB/rys+fX1t3x1O2fwdu3RoYRe5fQD71m7L+xQxC5lhJ9G9QNegc//GwN7jsD3iWhbHU5A9jOsY46F9MWVymPnOHKpM/Nx8jSPVvpqrsq0CAvozoX0xgHEqPZUsJpOjfqoubP2uCZ1Hgxd/l+hdCf5vZ0QCE/gIMc4WC8KvawOBKQ3AgtwKjUwpKr8LxNhpRMIUIV8kftFaz+do1Ev3b9Fxj43NNgv7l6kCFX3W1Hz8Vn2ygV9/SVd+Ne+Dz286fO3ezJBEFcZVcfOHMGaJ/J2asAzImCvq3+aTJUf+OI5QZyuCuqEKI/tX19PRVuKF/gfDHdaGPh6MSGcR2mnIWi5Dp34lI/+ILldzW1kJZ8gfJ2VN5qKKicu0dUfSvBa7zb0qnfhsrRdC/cUs21C6JI/oXWLD2e1wSp7ULPBz1b7afX7ZY/4IYBPsr6N8ICkTXneyMjm4+yZZZ/XteJXBGOfpXNvWbfhD0r96Z/v04K+vjx1ngecTRv3+hQPQvnv8tzV+W+7cZkOX+jRwHuEr+kMOx68KFXXx5dMkf8tTqPFnyB2D3AwTX+hc4un79UQ+sfzHrNsYAJ6PZlmRU+tfzzp072TqUZ6rR2dRvOPTXkJsC9ncPC/w2GjNjBiwEFPVv3Ll9cgT9qzYmXRtUG+1S/aveAajl+hfH/RL9K8v7gFfhgoQj0ts7ki/zV++s/b05m+jfN1Q8b7jWv0B1qA4mnQyt9uQv33ZHiRFF/0ZEOEb/yvSvH4WRJX+gT/1G/79hFOT5DkEAE/2rHrzcMxgMfYiQ+9fvCBbAA6/vFlDSvxU6XapOF5qqqyiHR2WlroKb+q1oQTE2Md8XZdOioDT1m57FoA/JS8jicKZ/ey6NKezLEKvXd1haOlrOdbRwKyPWv20vPSkFy5lx8W88zKtfjNI2LMB8dc5cGPPN+Sq7RtO/yskftknQaNCSYSQdQqHV2jGA9S8FfmqnceM+ETEy/ZudHZqVG5CoQ1O/saWwbHryB2X9uxEL4PETp61xS/8C+WPH5vNlUe1buFAo4jOgWM9R68syYv0bveqn602TANMpuf6FYZXoavr996+rj70PKOrf7Oa243V/Fyd/sJrtVknyhzvI//69qunqBChz0b8Yiv5VTv4Qh/RvDLei1OV+jwIZsH5cWfkxXyb6dxgg+vc4BUH/XqkKDa26IuhfPQUX+le7Ra3eoiX6l8PjQKIL/avc7gBZvYcP96ogRolvz4Ih75caFmqDAT3hNYaZjdm9e7YIevQvSf5QpscLWHEy9RsQuXrx4idFjFz/ApZ4C9wfletfBNG/RPqSh5D8YdghEnsXDv3F8Q/x3KufYDLlU79hkq++jqqsWP8WLA2UIj0D1t7o6rqxlkz9xs795qb+TZ//l+fmp8v1b3qJl1dJurv693UQwHBn9a+BguiiOjra7Er/aiko6d9/UiD6d05b2xy+TFVQRP/6Q7Z60L8eJPoXsbC/382p39JlXdb9AMjfy4YzmgrsfoGRTf32Kku6GnXp3AqO/rUo6d8WLaaF6F+Exr65svIzs+brrvQvsLceLev3smtyOzFmzICnsv4toSDVv0+6F/2rMlutZrWgf2spwPsO26xLvFc46t8Jfmzo74riww9h2AbmoOlU/t6HCPynMGwHDDL9a4aR2mGzu8kfAL5MH3DRx/Q496/vu19g+SLWiCghxwQx7unf7m6ifxf8RIpYgYh7CaR7FaN/ryUWFiZeE+lf3IKdQgkgQABPi+flV3ApJL5R0L+q1aLcvysoMIwxS2tWf3blis1U19lZV388X65/Ia15ff3QHTb5w+fqM3+j6F/KeBHr3/oYrH9dRf++T+GeRf8a80IMbujfCxS42N3FACyffgaWvP4lkb9E/7Ysil8A7hf1k0Zz7+GWnMVP4ndYNVaGUvSvnoK8ngVNYOvZhxSUKvlMIPHhTZsePuBa/57BdNmqNF1W2zl2TRT9m5NDSf5wDL7SflCsf5fi4N+0tIY53ArbyE/58UMSlKZ+S+AwWq1G0jwO5mnsmmvBCaHVAwLcpzh8WEWeWf0bG7sQ6d+2WKs14cDpMWtZ/Us4VHkmyXZIbvdwmOeI9W8US7M70b/rKaBtyNb51U3y56kLo079Ro/+Jbl/if6FtdHoXyAwwIrmZcj1oUX/dt1AS3gHHtHMjux0UI3c5URzE4T+AkqdUjSH1jom5BSRKRtK8U2M0qtnKNAzWkuTP5Dcv0j/3rrloH8rkGvM9qug6d9D+XV1+bG4B054PqFqvXlwA4xhega3PX+e6F9I+pAB9nc2KnO5f5tx8odVLxFGo391VX0QZltV4Ub0r9lsfx3Ig+dR6F+V1nHqN08CnqkQCVkS/Qsb1ndRqn+jFfRvbWlAQGkt0b+I6e1TMe3TPYj+lSKZ+g047UL/juXp7Iwmv1J8BXhRTfSv09y/AiQK2HX0LynR9S89969L/Yvnf5NF/65EwWJI/wLiqd8yXU399mWOXQcP7uLL9AnWXE79Bv8km/oN8HmU4Ez/EpYuhYWgf3kJXJLfDEduNMkfSjyr71TfCRIlf/jmW8876l8AYsyMl+P3hMTtL9ujHP2rnPxBSf/6mc3m9K6udEi/Ikn+gK6p9bAg+lfMBx8Q/UvyPrAwzKccSP/yZYah2F+X0b81RP8SgvxSU/3gay96VVBM/kCBPkXbCKd+89n53v3vSVGK/j1EATdOGqkAFvSvscrIPgn6l7W/V+fMWiAAgpMCVAVNUjh6aDTJyZpwa7iGz+uUm2sAE7PvOwIK0b9E/3ZWivQvb4KKVKrUGRzOkj/09F9q6JGo15ksFX1jxtRVCEO9WAqi77xaB/Ui/Ttn9UuLZTAMn/DhQRFK2zCLY0Fk5AK+TEv+oDz12zYKsi6heqA6yJNM/cbnf7h30b+s8g3KRvo3u5pdo079ppz8YRKb/mF5RITpoJvJH1DOZor+nbZA8pM5qCAsel9vlhEnfwD/W78RxyefFOnfz5GWTDCbE1wFU3mKCBseunPJU5L712g2SvQvm/336lU2RF9R/7qa+i1Xn6Iv4sq0LldZ/35Mgehfgkv9+yxk/hUlf1BRGFX0LzBZKJH3TUhOJsdCsd0B0s1GCIYwZhn59qw2AFOGF/gWUDuS6F8y9ZsKIFO/EflLBDDDYPkrY8TJH8jUbzL9a4D56cFTGPhLlfDk5HD5g5v6rX6Oz3QRDINDf2NjT6HRr2UaP3wJpcAnf0hYNuHIhDsDWqOdT5sGkxGLoMUndHdnk9y/BDeSP2h7a2Ael16tTP8uwsHvrvTvN7+J9G8/+F+O/ggX0b/qtujoNi23opSj9wcUlPTvLgrkfSOHhyP5MvVsIfoXwp7Gs9G/RP9i3Na/L4lgGJC/h/pak9rB/d4PCPp3YoY/kr4REUgE+2dMVNa/3+cwwjiBL6PcvzENirl/0WjPmE6if1lSrZWV1s2oRJI/hFYIyR+gWMF386tLTPn5ppLVFP0LhIV5OtG//hRGkvyB5P5VQ1tCcv8WUWCYpZd6ei55OyZ/mBCaF4VDf+3zBc+Dn1565pmHRDiN/lVpzekq96d+I4ww+hcc6JwvMDwTgIqKCfdc/74jQHLIkOhfau7f5PLyyvJkkf61t4GVMaO8eLPQ9G/4wAwGx/ngg0RP/qBKX4WAorL+BbQvvNWSPz4ferl6k+ktTv8ShtqGDoVx+vfzBx2SPyygjhd/imjsDAjoL3GV+5eejoHKKPSvPi/PUHnHpf6lnzrPUGAYIn8JEO7SEwNxv0ZzOha/AN4PT34leqwcpdy/KgpKIuRhCs6if8u7/fy6y13r359hNh+v6+rqO76ZXSP69+bFizcd9e95iHyU6F/MZItlMkn+gOSvHKiTzd9xQGnqN/21DYUbWpPmhgUR+FAetYo8s/r39dch9S80SPYE4wFY28npXwJkLy0ndk/EyPXveApK+venFPA2DJlKRNQNIP17qh/kr5v6F0GSP9Cjf10nfwACa+1QZbeG+AZK9W8VRP/CAlAKd4HQX+579lP5NyB7CoJ+ZhE5Z7PbbeS82ECB/qpSq/F9CkT/Gq9dy7ObRbl/DwJeRP9yUx8htwYTIVH0b1jY0FAY+/sb9TaVef251hLYmJLWF85rheQPwOzl69YtF+vfsSeR/P3yQwSR/iXJH1zp3x5Mn0v9a4TsD3kNQB7kfjC6m/yB6F9z/V45tPOE6N+NN/v6bm50T/8uhPljSxdK9W9grQpTG+iG/kVJvQuOnj7tnv6FxBv5zWOJ/gXOqHimsvr3RQpE/4oVsNLUb49TYJiLFHhHUxKzO22mgFP9S+Z/k0X/ruzsXCmJ/gVWR0ZFRYL9dap/KUDlpcBVsmLpMAMNmOGXFsW+gb4BAbAohl9evP326PQvgehfAuSCMDHMQQpKxoNM/eYZRKZ+WwXyl6p/IcpsEKJ/9+yBU3CPcu5fpTDDOLr+RYRb06tu3YLfw2qWyfRvcLCS/iXRv5K8D3L9OyzVv8T+4v5iRFO/eUpAX+q41r/APdW/9Gij10nSX5e5f9dRwI3Td+URwOQHTlaj0VpllOb+3QkjcoJS156qqfBL1fghWe6nSe3u1sDU3cLl/OHviKDn/lXSv3wPDHavfAaHs6nfTCU9FtNy8ZbN5Gipq2txNdSL5WlrE0nh4cWOwEBNiPolKG3DLAq0qd9Gr38JotPy/HlY3LvcvwYsfz1Z/esJAjghF02lNpzTtHGjF9y98FNTzrCTqd82+mPBih6Nzqd+q+dYg+4cIv3b8KY0Y5ovVw/iiLSsouA892/zJEyzSP8mOs4kcJ2C47EIk+hfhFT/EpzrX5z3gQv7Ja9OFLI/1Ir1r4z/jP5FjE7/0nP/0rvBfRSU2p1YCvTfLYws9y+RvkQEwznPy18igGE/EPlLUJr6zc6Bpn7jy6B/eR54QCjyF5MfcfAXk0HLlgXJH0j/frrmym/kUWS7YM63aLt6K1yTxPMWF9pJCsLUb+FH7tw5Ei5M/VawVG5/lQeoz0PIL8Gtqd8SjPNrVFq5/t2GcaF/M0wmGOpmRIjIUIr+zWIxd9lsXWZu5d+ufwmu9S+A9C+GYfobHOh3rX+fZG9Y/763ts/aPheF/RKgKYlYB94XGD8eP8HqRCX928HSpzIYVH3cCv/RlJI/dNXAnehfjrPlOpGg9IMJ3zQaWCYkwEKHi9DNczSaTI18mVLNRqx/6VO/1Tc73OpJ9C+C6N9iCvC+Ud4+u2uvSQATt0yDO6UVcb2iS92HKAjDPkNPj4ErEv2r0hpHqX9TKSjm/s1MyQ1YIvjfCRTcTf7gtv4NDglBAwSnuX+BY9evHxNPm7MV5S6HB04AwcXm5YKjkSOe+k1lP776+Dln0b+1wJLyt966Al855EMMav4VXv8SwuCmNPUbfbzIT/3WKJ/6DXMR2d9eon/pQvbu9W84YN+wIa80L1kUr7OTgnP9uzgHs5jXv00lRP4S/VvXV3V4Pid+yX6A0N//oP6lV3LoOCM/qpw5sxKe8A1egGNBAfQvSwukwI5t4VZcTf32Itwdp347gO4ccAa89GOK/iX2lwAdAgXYO2j+f+t7YH8JCmMfMvVbtI1M/Sb7wra6Ovvfqn/DKTjRvwNDLIcA+AxDsA0FRP5K9C8cmzpq7l8y9Rs1+tf11G+YwCgz+q7cXhso1b9daOlU/zYKc77V/ABwpn/zeaDJ4RlZ8odkCq71b0iI2SjK/Xth/vwLRP++TsFZD6w+V29qhcDX1ps3YI2f+g0eMRkTJ2bEEP2L5O+TIH/p+pdM/eYq+UNVD6KKXXEW1ZWVYM6b1tAwLc+ckCWf+k0TyqOkf63rP3hCDkND0L/rJm3cOGkdr3+pCPr3sccmQzYvTv+SpCMqgOScpvMIx8KCgoV82elfA041N8MUNxL9ez0560wCDnR6xZn+pTOOAqNAFwWx/n2HXHuMABL9u9JkWimO/iXcU/0LGGTRv5D3gU06FYgXtQbIADEi/TsinqSglF/gR5hdey/U1ZXs3cWuMQqsBFoNcUVxe4Cyy3sQ9AlUsWd6UXabyiiwjA3/TTcnJcHCj9W/I0Kc94Ho30aOBm/vBr7MMBT7677+pXP3+vddCkpVIYgCowAXPWqDhwAMvigwVEgcFP6Fozj377IhNvQXj8uV9a/T903/vmwwMx2B9a8oJo2Osv7FrP5TnCiLZzwF0V7fuVMo0geWCikhRkQ8BeXjxot7Yu4V9O+ImEqBe98XQf8mqASUat/7FBSPEMR+QWZ/8oiZzF5wpWTqef2rz0QOmI/+hRu6w68QnOnfpykwCngDtdj/hoik5XoKzvXvyTQsp9dHC/p3zCOPTJTcoHM9S4GhoqR/oSbK2ckosPRoHXG/cv0bUztxYhlJ/nDX0PUvlZHpXzoqnqwsl/8XUgHxN77wE8WBDgW6/uV+Ed8O+vd+glL0L0n5gMGrzIhQsYRsmj59UwiZFohjfUfHer4M+pfCiCLDQP+2/EYOw6BcdNE2a1szTJfE42R7K22xdlWWRpOlslfiSdKYe8CfKJBUCKVxpUV8WbHdocAo4EuBGDg4s4TiyPSv+4xI/7qP29G/IIDRjDFzIe5XCkNFSf+OY9mRMm5cyg4XI/0pHDUwSRRfZhTwA8JTK5D+5YpY/1JgqCjp30YKuJEbFle8YdzIvUqBRP9K9a9y42lZJ0/IVpFX64H6Jwj9FWAUoF2pu4+S/vWjoDSmf7cYddfTv8D8O5HpX/2mKD2rfwHH3L9xPKWlQpFr40+14SecAEL5wBD9+0+rVqW1QklZ/74JE2BMHANdesu5uqpzwBXl3h3L3wcT1GIYKkIb/8F2HONC9C+m6wbI33+3/uUMzYFiQ4NBJaB0kdtIgde/OS2ImhZO/941I9O/7qNUyR9GfJKY+MnDPB8+TD95BP17PbyyMnyqK/1LgWHUFJgRQde/qFL/q717DZEpDAM4/iorxv0+kZVL9oNCu8i67X5wHVPuqyQTZWw2LSLFWtRu4WjkFhu1yFrbCK1SRG65K02SS764tL7ggy8oHzznnXPmGTPPmXde5z3jDOc3Z2eGhHbX7pm/Z56pGafXX2R17vOEwCTI5d+rBBUfTRpM/y67do2c/gUd58zpaN5nFobqOs5p3DOUyr+gx+H7ev8tLmEkq/x7uaGCf3VqeNc2U5R/6XGtawSrn60kMAu4/CGon4bi9G+nlpZOmH97EDJ/Bw5+0OpO1e2cpek/wOUPhfpNodGCoXXfNuMvkuuI0+OiF9/g8t8MOx3LIkVaraaFw7VaUaQs/qS9L/ro76IPVcc3J1jkXwmYf0G2+ZfD/Gs4DHMicCPMvxwf/RXmX4TLHxKe64HA4fz7jmA//+L0L8DpXyfzb/i0P+W/mIsacemUHoEbi9q7Kf/CAPD+/TD6K8q/nT7CyocrtRcQYz11/Lto8gbj1PoryL8gWq3thAIcjf+IScG9DyhRI0eFfL6QuTNff2T3YwmH9VeYfy85nX/nESxP3wiWGZFgtfuX1p7A829rwWgefwG/lc+/sAQbqc2/YHzyUweXE5J2gsE5nsm5/LucIMy/N24ozL80ufy7i5DxIxQK4RvgL/rX9LTZzL/NT5tK9T/NCL+j4I3fvaks/wL/yskni3228m9FQx/QsB7E8290YBr6c0cq/0q5fwdWPiDMvyhv86/M59lIgpr8C8T5FzCGL/iGLwLHpCQiVThcmvyq8Ehl/r37knr/xuLnfw17exRkk3/LVvCZ3/gcMF93ocA8Aj3BpSL/0vqhfzf/Jk3/Ckjk3yZ+Jcq/BGaBj/xWlZvTv3PhrpL8S5/V+ziIfT64AJ+y/Ht+d7z+IqiX/Pdv/PD7E11pU9I4l3/pc/pWGDoKL17rd7T/pi5/OAnN2Xr6t4RgrGvCp9M+GC3Ov7qNjzZm3v077ExhYe/tbW0BOAJwDeoz5N9vr7b8LmP+BcM7I4uJU5Ka/AuC+j42ZPXIZiPBeOm3SUnGuz//pn+SDyBYPUtqlSkQ4Dfy+fc1QU3+rZw9g9dfcf69SHAu/9LZZR1BTf49uG/fJ3L6Fy7AvGudfzn4ZXT+BSWTV8D78UCjXP41R3/vzASC/DufwKSMJYjzb2kwefcvrO+7ZSP/grLaezvuRWZVJvLvGLjAAeCa/4Cxiknw3dB+/gXRTwe3R6cL8i+IaBocR/QrY/q37irU37uRiV02d09wVf71l5b6hfmXIPeoCPNvdeXzhxsczr+9CI7kX8BIEvnXNnfl36UtLUvF+XfbBd3HbPIvD754CPMvKJ9YU27eZ1Jw74M4/2L9Tc+/77e8/zvTvwUEFZ8KtG4Eyfz7daERfieYxzwmBdY4TkFO598FBPpUz7n8u4AgyL9jjSuOkdycfy3/tGAzLn9oDiamf0fx8AsX3eXvyfm3Z08b+RcN+cP8C2LP6uqeQR5bb0z/9h0IeuMB6OlqtflXTJx/1VOff6cSHMu/pCzzL9/+oOZ9hgT5V8FJPs14TIKjv4Jwomn6Nd5jChQQBPlXNTr/SsiL/IsU5V+kNP9Gq2GBdzz/RqvgrvP5F2XIv1J8oa5G/UXxP23x0Uv9kMr8KyaZfzuuPNkEHdTR/mu9+xck519g9bWiAzh3rkPCMXH+RYLpX8i/9fEArCfg+gz5t3V4KtfnX85O/kX5Mf0rkX9H/H7B/IsC0vl3E4Ep0L5qEMZfQf49Tsh1/h1AUDT9u4aa/kXC6V8Ck9KZYL662LufM8X5lx5OkPKQIMy/HE7/gh328i8o4gcuf+CH+QZUdMTppovwJs6/oNZg/s0O6aO/kXKIvy7NvyXFxSW5zL+IkRzLvyQv/yrLvwRmYfcFJMi/Uh1kiGE5wOYnA/c+iPMv1t/0/Au8/JuN1gWjiQktGdq0KdL5V0xB/qXlPv+ify//AiP/cjz/pnl7PSn/Dh5sO//amv4FFbFYBX7kXw1MZ7ElVYKXf02PCe7Mv37X5F/7+GOSvecLssq/Kbz86+VfpHL6N1pTM5vnX343mo/5d3UfQOXf4p39++VL/h28Ns6X1n/dl39jsQ4IFkDI5V/aVjiv33qjTa++bQEAt/WWDaKgs738S/of8y/FPdO/kHyRa/LvXFj76878S3Ey/7ZbvGyZS/NvDEd/nc6/7QnS+RfYzr+CzTJq8i8S518CY/Cab1r1WKi/4vzrXmT+9XAS+dcj/100x0KJvQ/I1tdo5vkb6PzrITmdf2m7wEs8OObxAHc9vLONzr8eT0644B+Axz1E+df5c/rPZ02tL5ibdUj3gHk8ih+4pkz+nuDTvx5PXjPzb96ec5D5N6d+AU9U34jqcCCnAAAAAElFTkSuQmCC'\n","import styled, { css } from 'styled-components'\nimport flags from './flags'\n\ninterface Coordinate {\n s1: string\n s2: string\n s3: string\n s4: string\n s5: string\n s6: string\n}\n\ninterface Coordinates {\n ar: Coordinate\n br: Coordinate\n cl: Coordinate\n es: Coordinate\n us: Coordinate\n mx: Coordinate\n py: Coordinate\n pt: Coordinate\n uy: Coordinate\n}\n\nexport const coordinates: Coordinates = {\n ar: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3607px 1px',\n s4: '5410px 1px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n br: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3300.3px 0px',\n s4: '4950px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n cl: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3084px 0px',\n s4: '4625px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n es: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '2717px 0px',\n s4: '4075px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n us: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '274.3px 1px',\n s4: '389px 2px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n mx: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '1383px 1px',\n s4: '2074px 1px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n py: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '963.5px 1.4px',\n s4: '1445px 2px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n pt: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '993px 0px',\n s4: '1489px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n uy: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3998px 0.3px',\n s4: '367px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n}\n\ninterface FlagProps {\n iso: keyof typeof coordinates\n width?: keyof Coordinate\n}\n\nconst Flag = styled.div<FlagProps>`\n background-image: url(${flags});\n background-size: auto 100%;\n\n ${({ iso, width, theme }) => {\n width = width || 's4'\n\n return css`\n background-position: ${coordinates[iso][width]};\n width: ${theme.spacings[width]};\n height: calc(${theme.spacings[width]} / 1.4);\n `\n }}\n`\n\nexport default Flag\n","import { Countries } from './interfaces'\n\nconst countries: Countries = {\n ar: {\n name: 'Argentina',\n iso: 'ar',\n ddi: 54,\n placeholder: '011 15-2345-678',\n validation: /^[0-9]{12}$/i,\n charLimit: 12,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{2})(\\d{4})(\\d{3})$/, '$1 $2-$3-$4')\n },\n },\n br: {\n name: 'Brasil',\n iso: 'br',\n ddi: 55,\n placeholder: '(11) 96123-4567',\n validation: /^[0-9]{2}(?:[2-8]|9[0-9])[0-9]{7}$/i,\n charLimit: 11,\n mask: (value: string) => {\n return value\n .replace(/(\\d{2})(\\d)/, '($1) $2')\n .replace(/(\\d{5})(\\d{4})$/, '$1-$2')\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\n },\n },\n cl: {\n name: 'Chile',\n iso: 'cl',\n ddi: 56,\n placeholder: '(2) 2123 4567',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{1})(\\d{4})(\\d{4})$/, '($1) $2 $3')\n },\n },\n es: {\n name: 'Espanha',\n iso: 'es',\n ddi: 34,\n placeholder: '612 34 56 78',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{2})(\\d{2})(\\d{2})$/, '$1 $2 $3 $4')\n },\n },\n us: {\n name: 'Estados Unidos',\n iso: 'us',\n ddi: 1,\n placeholder: '(201) 555-01',\n validation: /^[0-9]{8}$/i,\n charLimit: 8,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{2})$/, '($1) $2-$3')\n },\n },\n mx: {\n name: 'México',\n iso: 'mx',\n ddi: 52,\n placeholder: '044 222 123 45',\n validation: /^[0-9]{11}$/i,\n charLimit: 11,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/, '$1 $2 $3 $4')\n },\n },\n py: {\n name: 'Paraguai',\n iso: 'py',\n ddi: 595,\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{6})$/, '$1 $2')\n },\n },\n pt: {\n name: 'Portugal',\n iso: 'pt',\n ddi: 351,\n placeholder: '912 345 678',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})$/, '$1 $2 $3')\n },\n },\n uy: {\n name: 'Uruguai',\n iso: 'uy',\n ddi: 598,\n placeholder: '094 231 234',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})$/, '$1 $2 $3')\n },\n },\n}\n\nexport default countries\n","import styled from 'styled-components'\n\nexport const IconContainer = styled.div`\n display: flex;\n align-items: center;\n\n > i.icon {\n margin-top: -1px;\n }\n`\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n\nexport const Label = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n\n color: ${({ theme }) => theme.colors.greyishBlue};\n\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > span {\n color: ${({ theme }) => theme.colors.darkestGrey};\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport Flag from '../../../../assets/icons/flags'\n\nimport { notEmptyString } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\nimport Input from '../Input'\nimport Icon from '../../../Icon'\nimport { Option } from '../../../Menu/interfaces'\n\nimport countries from './countries'\nimport { Country, Details, IconProps, PhoneProps } from './interfaces'\nimport * as S from './styles'\nimport Menu from '../../../Menu'\n\nexport const getPhoneDetails = (phone: string): Details | null => {\n if (!notEmptyString(phone)) return null\n\n // mantendo apenas numeros e espacoes e separando por espacos\n const splitted = phone.replace(/[^0-9\\s]/g, '').split(' ')\n // se tem pelo menos 2 posicoes a primeira deve ser o ddi e a segunda o restante do numero\n if (splitted.length < 2) return null\n\n // pegando o ddi na primeira posicao\n const ddi = parseInt(splitted[0])\n splitted.shift()\n\n // verificando se existe algum pais com o ddi correspondente\n const iso = (Object.keys(countries) as (keyof typeof countries)[]).find(\n (k) => {\n return countries[k].ddi === ddi\n },\n )\n\n const country = !iso ? countries.br : countries[iso]\n\n // juntando o restante do numero do telefone e mantendo apenas digitos\n let masked = splitted.join(' ').replace(/\\D+/g, '')\n const value = masked\n // mantendo o limite de caracteres especificado pelo pais selecionado\n masked = masked.substring(0, country.charLimit)\n // se o pais selecionado possui mascara, aplica a mascara\n if (country.mask) masked = country.mask(masked)\n\n // se o pais selecionado nao tem validacao, considera valido\n let valid = true\n const validation = country.validation\n if (validation instanceof RegExp) {\n // se a validacao for do tipo regex, faz o teste\n valid = validation.test(value)\n } else if (typeof validation === 'function') {\n // se for do tipo funcao chama a funcao pra fazer o teste\n valid = validation(value)\n }\n\n return {\n country,\n masked,\n value,\n withDDI: `${country.ddi} ${value}`,\n valid,\n }\n}\n\nconst Button = (props: IconProps) => {\n const {\n country: [country],\n open: [open, setOpen],\n disabled,\n } = props\n\n return (\n <S.IconContainer\n {...(disabled ? {} : { onClick: () => setOpen((prev) => !prev) })}\n >\n <Flag iso={country.iso} />\n <Icon\n type='semantic'\n icon={open ? 'caret up' : 'caret down'}\n width='14px'\n color='lightGrey'\n />\n </S.IconContainer>\n )\n}\n\nconst Component = React.forwardRef(\n (props: PhoneProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, setValue } = props\n\n const [inputValue, setInputValue] = useState<string>(\n !value\n ? ''\n : () => {\n const details = getPhoneDetails(value)\n return details ? details.masked : value\n },\n )\n const [country, setCountry] = useState<Country>(countries.br)\n const [open, setOpen] = useState<boolean>(false)\n\n const options: Option[] = (\n Object.keys(countries) as (keyof typeof countries)[]\n ).map((iso) => ({\n label: (option) => {\n const country = option.data as Country\n return (\n <S.Label>\n <Flag iso={iso} />\n {country.name}\n <span>+{country.ddi}</span>\n </S.Label>\n )\n },\n onClick: () => {\n setCountry(countries[iso])\n },\n data: countries[iso],\n }))\n\n const mask = (value: string): string => {\n value = value.replace(/\\D+/g, '')\n value = value.substring(0, country.charLimit)\n if (country.mask) value = country.mask(value)\n return value\n }\n\n useEffect(() => {\n if (!value) {\n setInputValue('')\n return\n }\n\n const details = getPhoneDetails(value)\n if (details) {\n setCountry(details.country)\n setInputValue(details.masked)\n } else {\n setCountry(countries.br)\n setInputValue(value)\n }\n }, [value])\n\n useEffect(() => {\n setInputValue((prev) => mask(prev))\n }, [country])\n\n useEffect(() => {\n const v = inputValue.replace(/\\D+/g, '').substring(0, country.charLimit)\n setValue(v ? `${country.ddi} ${v}` : v)\n }, [inputValue])\n\n const placeholder =\n props.placeholder && props.placeholder[country.iso]\n ? props.placeholder[country.iso]\n : country.placeholder\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut<HTMLDivElement>(() => setOpen(false))}\n >\n <Input\n {...props}\n type='text'\n placeholder={placeholder}\n mask={mask}\n value={inputValue}\n setValue={setInputValue}\n icon={{\n icon: {\n icon: (\n <Button\n country={[country, setCountry]}\n open={[open, setOpen]}\n />\n ),\n type: 'jsx',\n width: '35px',\n },\n position: 'left',\n }}\n ref={ref}\n />\n\n <Menu\n open={open}\n close={() => setOpen(false)}\n options={options}\n width='100%'\n maxHeight='165px'\n bordered\n itemSpacing='s3'\n transition={{ properties: { 'max-height': {} } }}\n references={{ bottom: props.paddingless ? '21px' : '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'Phone'\n\nconst Phone = Object.assign(Component, {\n getPhoneDetails,\n})\n\nexport default Phone\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n\n input {\n color: transparent;\n }\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: ${({ theme }) => theme.spacings.s3};\n`\n\ninterface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n iconWidth: string\n invalid: 1 | 0\n disabled: 1 | 0\n paddingless: 1 | 0\n}\n\nexport const Container = styled.div<ContainerProps>`\n position: absolute;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 4px;\n\n ${({ theme, iconWidth, paddingless }) => {\n const borderwidth = 1\n\n if (paddingless) {\n return css`\n bottom: ${borderwidth}px;\n left: ${borderwidth}px;\n width: calc(100% - ${borderwidth * 2}px - ${iconWidth});\n height: calc(17px + ${borderwidth * 2}px);\n `\n }\n\n return css`\n bottom: ${borderwidth}px;\n left: ${borderwidth}px;\n width: calc(\n 100% - ${borderwidth * 2}px - ${iconWidth} - ${theme.spacings.s3}\n );\n height: calc(31px + ${borderwidth * 2}px);\n padding: ${theme.spacings.s2} 0 ${theme.spacings.s2} ${theme.spacings.s3};\n `\n }}\n\n ${({ invalid, theme }) => {\n if (!invalid) return\n\n return css`\n color: ${theme.colors.warningRed};\n `\n }}\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const Button = styled.button`\n display: flex;\n background-color: transparent;\n border: none;\n padding: 0;\n box-shadow: none;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\n","import React, { useEffect, useState } from 'react'\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\nimport Calendar from '../../../Calendar'\nimport { getMiddle } from '../../../Calendar/functions'\nimport Icon from '../../../Icon'\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\nimport { DatePickerProps } from './interfaces'\nimport * as S from './styles'\n\nconst DatePicker = React.forwardRef(\n (props: DatePickerProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, setValue, min, max } = props\n\n const disabled = props.disabled || props.loading\n\n const today = dateToIsoString(new Date())\n\n const [open, setOpen] = useState<boolean>(false)\n\n useEffect(() => {\n const date = isoStringToDate(value)\n if (!date) {\n setValue(dateToIsoString(getMiddle(min, max)))\n }\n }, [value])\n\n const onAdd = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() + 1)\n if (max && date > max) return\n setValue(dateToIsoString(date))\n }\n\n const onSub = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() - 1)\n if (min && date < min) return\n setValue(dateToIsoString(date))\n }\n\n const icon: InputProps['icon'] = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n width: '24px',\n onClick: () => setOpen((prev) => !prev),\n },\n position: 'right',\n }\n : undefined\n\n const inputProps = filterObject<DatePickerProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input {...inputProps} type='text' icon={icon} ref={ref} htmlDisabled />\n\n <S.Container\n iconWidth={picker ? '24px' : '0px'}\n invalid={props.invalid ? 1 : 0}\n disabled={props.disabled ? 1 : 0}\n paddingless={props.paddingless ? 1 : 0}\n >\n <S.Button\n type='button'\n onClick={disabled ? undefined : onSub}\n tabIndex={-1}\n disabled={\n disabled ||\n (() => {\n if (!min) return undefined\n const v = isoStringToDate(value)\n if (!v) return undefined\n\n return v <= min\n })()\n }\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n <S.LabelContainer>\n {today === value ? 'Hoje' : value}\n </S.LabelContainer>\n\n <S.Button\n type='button'\n onClick={disabled ? undefined : onAdd}\n tabIndex={-1}\n disabled={\n disabled ||\n (() => {\n if (!max) return undefined\n const v = isoStringToDate(value)\n if (!v) return undefined\n\n return v >= max\n })()\n }\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n </S.Container>\n\n <Calendar\n {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(dateToIsoString(date))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDatePicker.displayName = 'DatePicker'\n\nexport default DatePicker\n","import styled, { css } from 'styled-components'\nimport { LabelContainerProps, LabelProps } from './interfaces'\n\nexport const LabelContainer = styled.div<LabelContainerProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n display: flex;\n align-items: center;\n\n ${({ $required: required, $viewMode: viewMode }) => {\n if (!required || viewMode) return\n return css`\n :after {\n content: '*';\n }\n `\n }}\n\n ${({ $keepSpace: keepSpace, children }) => {\n if (!keepSpace || children) return\n return css`\n :before {\n content: '';\n white-space: pre;\n }\n `\n }}\n`\n\nexport const Label = styled.label<LabelProps>`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n position: relative;\n align-items: center;\n\n ${({ $disabled: disabled }) => {\n if (!disabled) {\n return css`\n > span {\n cursor: pointer;\n }\n `\n }\n return css`\n opacity: 0.5;\n `\n }}\n\n ${({ $invalid: invalid }) => {\n if (!invalid) {\n return css`\n > span:before {\n border-color: ${({ theme }) => theme.colors.lightGrey};\n }\n > input:checked + span {\n background-color: ${({ theme }) => theme.colors.blue};\n }\n `\n }\n return css`\n > span:before {\n border-color: ${({ theme }) => theme.colors.warningRed};\n }\n > input:checked + span {\n background-color: ${({ theme }) => theme.colors.warningRed};\n }\n `\n }}\n\n > input {\n position: absolute;\n height: 0%;\n width: 0%;\n opacity: 0;\n }\n\n > span {\n position: relative;\n width: 50px;\n height: calc(${({ theme }) => theme.spacings.s4} + 1px);\n background-color: ${({ theme }) => theme.colors.warningGray};\n border-radius: 20px;\n transition-property: background-color;\n transition-duration: 0.4s;\n transition-timing-function: ease-in-out;\n box-sizing: content-box;\n :before {\n content: '';\n transition-property: left;\n transition-duration: 0.4s;\n transition-timing-function: ease-in-out;\n position: absolute;\n border-width: 1px;\n border-style: solid;\n border-radius: 100%;\n left: 0;\n box-shadow: 0px 1px 3px ${({ theme }) => theme.getColor('black', 10)};\n width: calc(${({ theme }) => theme.spacings.s4} - 1px);\n height: calc(${({ theme }) => theme.spacings.s4} - 1px);\n background-color: ${({ theme }) => theme.colors.white};\n }\n }\n\n > input:checked + span {\n :before {\n left: calc(100% - ${({ theme }) => theme.spacings.s4} - 1px);\n }\n }\n`\n","import React from 'react'\nimport { isObject } from '../../../../functions/validators'\nimport { filterObject } from '../../../../functions/formatters'\nimport { SwitchProps } from './interfaces'\nimport * as S from './styles'\nimport { ReactNode } from '../../../../interfaces'\nimport Form from '../../../Form'\n\nconst Switch = (props: SwitchProps) => {\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const label = isObject<Exclude<typeof props.label, ReactNode | undefined>>(\n props.label,\n )\n ? props.label\n : { label: props.label }\n\n const htmlProps = filterObject<\n SwitchProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, [\n 'label',\n 'invalid',\n 'required',\n 'htmlDisabled',\n 'labelProps',\n 'viewMode',\n ])\n\n htmlProps.disabled = props.disabled || props.htmlDisabled\n\n return (\n <S.Label\n {...(props.labelProps || {})}\n $disabled={disabled}\n $invalid={invalid}\n >\n {label.label && (\n <S.LabelContainer $required={required} $viewMode={viewMode}>\n {label.label}\n </S.LabelContainer>\n )}\n\n {viewMode ? (\n <S.LabelContainer\n $keepSpace\n children={label[props.checked ? 'after' : 'before']}\n />\n ) : (\n <React.Fragment>\n {label.before && <S.LabelContainer children={label.before} />}\n\n <input {...htmlProps} type='checkbox' />\n <span></span>\n\n {label.after && <S.LabelContainer children={label.after} />}\n </React.Fragment>\n )}\n </S.Label>\n )\n}\n\nexport default Switch\n","import styled, { css } from 'styled-components'\n\ntype InputProps = { $activeBullet: boolean; $bulletSize: number }\ntype BulletProps = React.InputHTMLAttributes<HTMLInputElement> & InputProps\n\nconst bullet = css<BulletProps>`\n appearance: none;\n width: ${({ $bulletSize: bulletSize }) => bulletSize}px;\n height: ${({ $bulletSize: bulletSize }) => bulletSize}px;\n border-radius: 100%;\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme }) => theme.colors.lightestGrey};\n\n box-shadow: 0px 1px 3px ${({ theme }) => theme.getColor('black', 10)};\n box-sizing: border-box;\n\n background-color: ${({ theme, $activeBullet: activeBullet }) => {\n return theme.colors[activeBullet ? 'blue' : 'white']\n }};\n\n transition: background-color 0.2s ease-in-out;\n`\n\nconst Input = styled.input<InputProps>`\n appearance: none;\n width: 100%;\n height: 10px;\n background-color: transparent;\n outline: none;\n position: relative;\n z-index: 3;\n margin: 0;\n\n :not(:disabled) {\n cursor: pointer;\n }\n\n /** firefox */\n ::-moz-range-thumb {\n ${bullet}\n }\n /** ie */\n ::-ms-thumb {\n ${bullet}\n }\n /** chrome */\n ::-webkit-slider-thumb {\n ${bullet}\n }\n`\n\nexport default Input\n","import styled from 'styled-components'\n\ninterface SelectedAreaProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n percent: number\n}\n\nconst SelectedArea = styled.div<SelectedAreaProps>`\n background-color: ${({ theme }) => theme.getColor('greyishBlue', 10)};\n\n height: 3px;\n width: 100%;\n position: absolute;\n bottom: calc(50% - 2px);\n left: 0;\n display: flex;\n z-index: 1;\n\n > span {\n width: ${({ percent }) => percent}%;\n display: block;\n box-sizing: border-box;\n height: 100%;\n }\n`\n\nexport default SelectedArea\n","import styled, { css } from 'styled-components'\nimport Input from '../Input'\nimport SelectedArea from '../SelectedArea'\n\ninterface InputContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n}\n\nconst InputContainer = styled.div<InputContainerProps>`\n flex: 1;\n display: flex;\n gap: 6px;\n\n > div {\n position: relative;\n }\n\n ${({ theme, invalid }) => {\n if (!invalid) {\n return css`\n ${SelectedArea} > span {\n background-color: ${theme.colors.blue};\n }\n\n ${Input} {\n /** firefox */\n ::-moz-range-thumb {\n border-color: ${theme.colors.lightestGrey};\n }\n /** ie */\n ::-ms-thumb {\n border-color: ${theme.colors.lightestGrey};\n }\n /** chrome */\n ::-webkit-slider-thumb {\n border-color: ${theme.colors.lightestGrey};\n }\n }\n `\n }\n\n return css`\n ${SelectedArea} > span {\n background-color: ${theme.colors.warningRed};\n }\n\n ${Input} {\n /** firefox */\n ::-moz-range-thumb {\n border-color: ${theme.colors.warningRed};\n }\n /** ie */\n ::-ms-thumb {\n border-color: ${theme.colors.warningRed};\n }\n /** chrome */\n ::-webkit-slider-thumb {\n border-color: ${theme.colors.warningRed};\n }\n }\n `\n }}\n`\n\nexport default InputContainer\n","import styled from 'styled-components'\n\nconst LabelContainer = styled.div`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n`\n\nexport default LabelContainer\n","import styled, { css } from 'styled-components'\n\ntype NavBarProps = {\n $position: 'bottom' | 'top'\n $strict: boolean | undefined\n}\n\nconst NavBar = styled.div<NavBarProps>`\n position: absolute;\n z-index: 2;\n\n left: 0;\n width: 100%;\n height: calc(33px + ${({ theme }) => theme.spacings.s3});\n transition: height 0.25s ease-in-out;\n overflow: hidden;\n\n ${({ theme, $position: position, $strict: strict }) => {\n const distance = strict ? `calc(${theme.spacings.s1} / 2)` : '0px'\n\n return position === 'bottom'\n ? css`\n bottom: calc(100% + ${distance});\n > div:nth-child(1) {\n bottom: ${theme.spacings.s1};\n }\n\n > div:nth-child(2) {\n top: calc(100% - 7px);\n }\n `\n : css`\n top: calc(100% + ${distance});\n > div:nth-child(1) {\n top: ${theme.spacings.s1};\n }\n\n > div:nth-child(2) {\n bottom: calc(100% - 7px);\n transform: rotate(180deg);\n }\n `\n }}\n\n > div:nth-child(1) {\n position: absolute;\n z-index: 2;\n\n width: 93px;\n /* height: 30px; */\n padding: 9px 7px;\n font-size: 13px;\n line-height: 16px;\n border-radius: 1px;\n\n background-color: ${({ theme }) => theme.colors.blue};\n color: ${({ theme }) => theme.colors.white};\n padding: ${({ theme }) => theme.spacings.s1};\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n > div:nth-child(2) {\n position: absolute;\n width: 0px;\n height: 0px;\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-top: 5px solid ${({ theme }) => theme.colors.blue};\n }\n`\n\nexport default NavBar\n","import styled, { css } from 'styled-components'\nimport LabelContainer from '../LabelContainer'\nimport NavBar from '../NavBar'\n\ninterface StyledLabelProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n $disabled?: boolean\n $required?: boolean\n $viewMode?: boolean\n width?: string\n}\n\nconst Label = styled.label<StyledLabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n line-height: 17px;\n\n ${({ width, $viewMode: viewMode }) => {\n if (width) {\n return css`\n width: ${width};\n `\n }\n\n return (\n !viewMode &&\n css`\n width: 100%;\n `\n )\n }};\n box-sizing: border-box;\n display: block;\n position: relative;\n\n ${({ $disabled: disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > ${LabelContainer} {\n ${({ $required: required, $viewMode: viewMode }) => {\n return (\n required &&\n !viewMode &&\n css`\n :after {\n content: ' *';\n }\n `\n )\n }}\n }\n\n :not(:hover) ${NavBar} {\n height: 0;\n }\n`\n\nexport default Label\n","import styled, { css } from 'styled-components'\n\ninterface MarkerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n $left: string\n $bullet: boolean\n $firstChild: boolean\n $lastChild: boolean\n}\n\nconst Marker = styled.div<MarkerProps>`\n position: absolute;\n top: 0;\n width: 40px;\n text-align: center;\n left: ${({ $left: left }) => left};\n z-index: 2;\n\n ${({ $firstChild: firstChild }) =>\n firstChild &&\n css`\n :first-child {\n left: 0;\n text-align: left;\n\n :after {\n left: 0;\n }\n }\n `}\n\n ${({ $lastChild: lastChild }) =>\n lastChild &&\n css`\n :last-child {\n right: 0;\n left: unset;\n text-align: right;\n\n :after {\n right: 0;\n left: unset;\n }\n }\n `}\n\n ${({ $bullet: bullet, theme }) => {\n if (!bullet) return\n return css`\n :after {\n content: '';\n position: absolute;\n left: calc(50% - 5px);\n width: 10px;\n height: 10px;\n border-radius: 100%;\n border: 1px solid ${theme.colors.lightestGrey};\n background-color: ${theme.colors.white};\n box-shadow: 0px 1px 3px ${theme.getColor('black', 10)};\n }\n `\n }}\n`\n\nexport default Marker\n","import styled from 'styled-components'\n\nconst MinMaxLabelContainer = styled.div`\n display: flex;\n padding-bottom: 2px;\n`\n\nexport default MinMaxLabelContainer\n","import styled, { css } from 'styled-components'\nimport InputContainer from '../InputContainer'\nimport Marker from '../Marker'\nimport MinMaxLabelContainer from '../MinMaxLabelContainer'\n\ninterface LabelsContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n position: 'bottom' | 'top'\n}\n\nconst LabelsContainer = styled.div<LabelsContainerProps>`\n display: flex;\n gap: 7px;\n\n ${({ position }) => {\n if (position === 'bottom') {\n return css`\n ${InputContainer} {\n flex-direction: column-reverse;\n }\n\n ${Marker} {\n :after {\n bottom: calc(100% + 9px);\n }\n }\n\n ${MinMaxLabelContainer} {\n align-items: start;\n }\n `\n }\n\n return css`\n ${InputContainer} {\n flex-direction: column;\n }\n\n ${Marker} {\n :after {\n top: calc(100% + 10px);\n }\n }\n\n ${MinMaxLabelContainer} {\n align-items: end;\n }\n `\n }}\n`\n\nexport default LabelsContainer\n","import styled from 'styled-components'\n\nconst MarkersContainer = styled.div`\n height: 17px;\n`\n\nexport default MarkersContainer\n","import styled from 'styled-components'\n\nconst ViewModeContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`\n\nexport default ViewModeContainer\n","import React from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport { isObject } from '../../../../functions/validators'\nimport Form from '../../../Form'\n\nimport Icon from '../../../Icon'\n\nimport { Marker, RangeProps } from './interfaces'\nimport * as S from './styles'\n\nconst getMarkers = (\n props: RangeProps,\n): {\n min: number\n max: number\n step: number\n strict: boolean | undefined\n markers: Marker[]\n position: 'bottom' | 'top'\n value: number\n} => {\n if (props.markers && 'markers' in props.markers) {\n const { strict } = props.markers\n const position = props.markers.position || 'bottom'\n\n const markers = props.markers.markers.map((m): Marker => {\n return isObject<Marker>(m) ? m : { label: m.toString(), value: m }\n })\n\n markers.sort((a, b) => a.value - b.value)\n\n if (strict) {\n const min = 0\n const max = markers.length - 1\n const step = 1\n const value = markers.findIndex((m) => m.value === props.value)\n\n return {\n min,\n max,\n step,\n strict,\n markers,\n position,\n value,\n }\n }\n\n const min =\n 'min' in props.markers && props.markers.min !== undefined\n ? props.markers.min\n : markers[0].value\n const max =\n 'max' in props.markers && props.markers.max !== undefined\n ? props.markers.max\n : markers[markers.length - 1].value\n const step = props.step\n ? parseFloat(`${props.step}`)\n : markers[1].value - markers[0].value\n\n return {\n min,\n max,\n step,\n strict,\n markers,\n position,\n value: props.value,\n }\n }\n\n const markers = props.markers || {}\n const step = props.step ? parseFloat(`${props.step}`) : 1\n const min = markers.min || 0\n const max = markers.max || 100\n const strict = false\n\n return {\n min,\n max,\n step,\n strict,\n markers: [],\n position: 'bottom',\n value: props.value,\n }\n}\n\nconst getMarkerLeft = (\n markers: number,\n range: number,\n index: number,\n value: number,\n min: number,\n strict: boolean | undefined,\n) => {\n let z = markers - 2\n if (z < markers - 1) z = markers - 1\n const y = 20 / z\n const x = 20 - y * (z - index)\n\n const p = strict ? (index * 100) / range : ((value - min) * 100) / range\n\n const left = `calc(${p}% - 10px - ${x}px)`\n return left\n}\n\nconst getLeftCalc = (\n size: number,\n bullet: number,\n value: number,\n min: number,\n max: number,\n) => {\n const percent = ((value - min) * 100) / (max - min)\n const calc = `calc(${percent}% - ${(bullet * percent) / 100}px + ${\n (bullet - size) / 2\n }px)`\n\n return calc\n}\n\nconst getBarLeft = (size: number, calc: string) => {\n return `min(max(${calc}, 0%), calc(100% - ${size}px))`\n}\n\nconst getIndicatorLeft = (size: number, calc: string) => {\n return `min(max(${calc}, calc(0% - ${size}px)), calc(100% - ${size}px))`\n}\n\nconst Range = React.forwardRef(\n (props: RangeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { label, minLabel, maxLabel, width, setValue, hideNavbar } = props\n\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const { min, max, strict, markers, step, position, value } =\n getMarkers(props)\n\n const range = max - min\n const percent = 100 / range\n const spans = value - min\n\n if (value < min || value > max) {\n throw new Error(\n `Value must be between \"${min}\" and \"${max}\". \"${value}\" given`,\n )\n }\n\n const getValue = strict\n ? (v: string | number) => {\n const index = typeof v === 'number' ? v : parseInt(v)\n const value = markers[index].value\n return value\n }\n : (v: string | number) => {\n const value = typeof v === 'number' ? v : parseFloat(v)\n return value\n }\n\n const currentValue = getValue(value)\n\n const _onChange = props.onChange || ((_event, value) => setValue(value))\n const onChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const value = getValue(event.target.value)\n _onChange(event, value)\n }\n\n const { increment, canIncrement, decrement, canDecrement } = strict\n ? {\n increment: () => {\n setValue((prev) => {\n const index = markers.findIndex((e) => e.value === prev)\n if (index < 0) return prev\n const x = index + 1\n return x < markers.length ? markers[x].value : prev\n })\n },\n canIncrement: value + 1 < markers.length,\n decrement: () => {\n setValue((prev) => {\n const index = markers.findIndex((e) => e.value === prev)\n if (index < 0) return prev\n const x = index - 1\n return x >= 0 ? markers[x].value : prev\n })\n },\n canDecrement: value - 1 >= 0,\n }\n : {\n increment: () => {\n setValue((prev) => {\n const x = prev + step\n return x > max ? prev : x\n })\n },\n canIncrement: value + step <= max,\n decrement: () => {\n setValue((prev) => {\n const x = prev - step\n return x < min ? prev : x\n })\n },\n canDecrement: value - step >= min,\n }\n\n const inputProps = filterObject<\n RangeProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(\n props,\n [\n 'label',\n 'minLabel',\n 'maxLabel',\n 'invalid',\n 'required',\n 'width',\n 'onChange',\n 'step',\n 'value',\n 'hideNavbar',\n ],\n {\n min,\n max,\n step,\n onChange,\n value,\n },\n )\n\n const bulletSize = strict === true ? 22 : 14\n\n return (\n <S.Label\n $required={required}\n $disabled={disabled}\n $viewMode={viewMode}\n width={width}\n >\n {label && <div children={label} />}\n\n {viewMode ? (\n <S.ViewModeContainer children={currentValue} />\n ) : (\n <S.LabelsContainer position={position}>\n {minLabel && (\n <S.MinMaxLabelContainer>{minLabel}</S.MinMaxLabelContainer>\n )}\n\n <S.InputContainer invalid={invalid ? 1 : 0}>\n {markers.length > 0 && (\n <S.MarkersContainer>\n {markers.map((marker, index) => {\n const firstChild = strict || min === markers[0].value\n const lastChild =\n strict || max === markers[markers.length - 1].value\n\n const left = getMarkerLeft(\n markers.length +\n (firstChild ? 0 : 1) +\n (lastChild ? 0 : 1),\n range,\n index + (firstChild ? 0 : 1),\n marker.value,\n min,\n strict,\n )\n\n const bullet =\n strict ||\n (marker.value > currentValue && marker.value < max)\n\n return (\n <S.Marker\n key={index}\n $left={left}\n $bullet={bullet}\n $firstChild={firstChild}\n $lastChild={lastChild}\n >\n {marker.label}\n </S.Marker>\n )\n })}\n </S.MarkersContainer>\n )}\n\n <div>\n <S.Input\n ref={ref}\n {...inputProps}\n $activeBullet={\n (strict === true ? markers[value].value : value) !== 0\n }\n $bulletSize={bulletSize}\n />\n\n {!hideNavbar && (\n <S.NavBar $position={position} $strict={strict}>\n <div\n style={{\n left: getBarLeft(\n 93,\n getLeftCalc(93, bulletSize, value, min, max),\n ),\n }}\n >\n <Icon\n type='feather'\n icon='minus_circle'\n color='white'\n onClick={canDecrement ? decrement : undefined}\n width='12px'\n height='12px'\n strokeWidth='2.5px'\n />\n\n {currentValue}\n\n <Icon\n type='feather'\n icon='plus_circle'\n color='white'\n onClick={canIncrement ? increment : undefined}\n width='12px'\n height='12px'\n strokeWidth='2.5px'\n />\n </div>\n\n <div\n style={{\n left: getIndicatorLeft(\n 14,\n getLeftCalc(14, bulletSize, value, min, max),\n ),\n }}\n ></div>\n </S.NavBar>\n )}\n\n <S.SelectedArea percent={percent}>\n {Array(spans)\n .fill(1)\n .map((_value, index) => (\n <span key={index} />\n ))}\n </S.SelectedArea>\n </div>\n </S.InputContainer>\n\n {maxLabel && (\n <S.MinMaxLabelContainer>{maxLabel}</S.MinMaxLabelContainer>\n )}\n </S.LabelsContainer>\n )}\n </S.Label>\n )\n },\n)\n\nRange.displayName = 'input'\n\nexport default Range\n","import styled, { css } from 'styled-components'\nimport { LabelProps } from './interfaces'\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n display: flex;\n align-items: center;\n`\n\nexport const Label = styled.label<LabelProps>`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n\n ${({ disabled }) => {\n if (!disabled) {\n return css`\n > span {\n cursor: pointer;\n }\n `\n }\n return css`\n opacity: 0.5;\n `\n }}\n\n ${({ required }) => {\n if (!required) return\n return css`\n > ${LabelContainer} {\n :after {\n content: ' *';\n }\n }\n `\n }}\n\n${({ invalid }) => {\n if (!invalid) {\n return css`\n > span {\n border-color: ${({ theme }) => theme.colors.lightestGrey};\n :before {\n background-color: ${({ theme }) => theme.colors.lightestGrey};\n }\n }\n > input:checked + span {\n border-color: ${({ theme }) => theme.colors.blue};\n :before {\n background-color: ${({ theme }) => theme.colors.blue};\n }\n }\n `\n }\n return css`\n > span {\n border-color: ${({ theme }) => theme.colors.warningRed};\n :before {\n background-color: ${({ theme }) => theme.colors.warningRed};\n }\n }\n `\n }}\n\n > input {\n position: absolute;\n top: 0;\n left: 0;\n height: 0;\n width: 0;\n /* Chrome, Safari, Edge, Opera */\n :-webkit-outer-spin-button,\n :-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n -moz-appearance: none;\n }\n\n > span {\n align-self: center;\n height: 17px;\n width: 17px;\n min-height: 17px;\n min-width: 17px;\n max-height: 17px;\n max-width: 17px;\n border-radius: 100%;\n border-width: 1px;\n border-style: solid;\n background-color: ${({ theme }) => theme.colors.white};\n position: relative;\n transition-property: border-color;\n transition-duration: 0.5s;\n transition-timing-function: ease-in-out;\n :before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n height: 0;\n width: 0;\n border-radius: 100%;\n transition-property: top, left, width, height, background-color;\n transition-duration: 0.5s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);\n }\n }\n > input:checked + span {\n :before {\n top: calc(50% - 4.5px);\n left: calc(50% - 4.5px);\n height: 9px;\n width: 9px;\n }\n }\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport { RadioButtonProps } from './interfaces'\nimport * as S from './styles'\n\nconst RadioButton = (props: RadioButtonProps) => {\n const { label, disabled, required, invalid } = props\n\n const htmlProps = filterObject<\n RadioButtonProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, ['label', 'invalid', 'required'])\n\n return (\n <S.Label\n disabled={disabled ? 1 : 0}\n required={required ? 1 : 0}\n invalid={invalid ? 1 : 0}\n >\n <input {...htmlProps} type='radio' />\n <span></span>\n\n {label && <S.LabelContainer>{label}</S.LabelContainer>}\n </S.Label>\n )\n}\n\nexport default RadioButton\n","import {\n dateToIsoString,\n getFirstWeek,\n getLastWeek,\n getMonthName,\n getWeekNumber,\n} from '../../../../functions/formatters'\nimport { dateCompare } from '../../../../functions/validators'\nimport { Value } from '../../../Calendar/components/Interval/interfaces'\n\nimport { IntervalType, IntervalTypes } from './interfaces'\n\nexport const validate: (value: Value, min?: Date, max?: Date) => boolean = (\n [start, end],\n min,\n max,\n) => {\n if (start === null || end === null) return true\n if (min && dateCompare(start, min, 'lt')) return false\n if (max && dateCompare(end, max, 'gt')) return false\n return true\n}\n\nexport const intervalTypes: IntervalTypes = {\n day: {\n label: (prev) => {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n if (dateCompare(today, prev[0], 'eq', false)) return 'Hoje'\n return dateToIsoString(prev[0], false, false)\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(base)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() + 1)\n return tmp\n }) as [Date, Date]\n },\n decrement: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() - 1)\n return tmp\n }) as [Date, Date]\n },\n },\n week: {\n label: (prev) => {\n const [weekNumber] = getWeekNumber(prev[0])\n return `${weekNumber}ª Semana`\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setDate(start.getDate() - start.getUTCDay())\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(start)\n end.setDate(start.getDate() + 6)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() + 7)\n return tmp\n }) as [Date, Date]\n },\n decrement: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() - 7)\n return tmp\n }) as [Date, Date]\n },\n getMinMax: (min, max) => {\n const firstWeek = getFirstWeek()\n const lastWeek = getLastWeek()\n\n if (!min || min < firstWeek) min = firstWeek\n if (!max || max > lastWeek) max = lastWeek\n\n return {\n min,\n max,\n }\n },\n },\n month: {\n label: (prev) => {\n const monthName = getMonthName(prev[0])\n const year = prev[0].getFullYear()\n\n return `${monthName}/${year}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setDate(1)\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n const start = new Date(prev[0])\n start.setDate(1)\n start.setMonth(start.getMonth() + 1)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n decrement: (prev) => {\n const start = new Date(prev[0])\n start.setDate(1)\n start.setMonth(start.getMonth() - 1)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n },\n custom: {\n label: (prev) => {\n const start = dateToIsoString(prev[0], true, false)\n .substring(0, 14)\n .split(' ')\n const end = dateToIsoString(prev[1], true, false)\n .substring(0, 14)\n .split(' ')\n\n if (start[1] === '00:00' && end[1] === '23:59') {\n start.pop()\n end.pop()\n } else {\n start[1] = `(${start[1]})`\n end[1] = `(${end[1]})`\n }\n\n return `${start.join(' ')} à ${end.join(' ')}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n return [base, base]\n },\n },\n}\n\nexport const identify = (value: Value): IntervalType => {\n const [start, end] = value\n\n if (start === null || end === null) return 'custom'\n\n if (dateCompare(start, end, 'eq', false)) {\n const [expectedStart, expectedEnd] = intervalTypes.day.initial(start)\n\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'day'\n }\n }\n\n if (start.getUTCDay() === 0) {\n const [expectedStart, expectedEnd] = intervalTypes.week.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'week'\n }\n }\n\n if (start.getDate() === 1) {\n const [expectedStart, expectedEnd] = intervalTypes.month.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'month'\n }\n }\n\n return 'custom'\n}\n\nexport const parse = (value: [string, string]): [Date | null, Date | null] =>\n value.map((v) => (v ? new Date(v) : null)) as [Date | null, Date | null]\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\ninterface RelativeContainerProps {\n invalid: boolean\n}\n\nexport const RelativeContainer = styled.div<RelativeContainerProps>`\n position: relative;\n user-select: none;\n min-width: 220px;\n\n > input,\n > label > input {\n color: transparent;\n background-color: transparent;\n width: 1px;\n height: 1px;\n position: absolute;\n left: 0;\n bottom: 0;\n border: 0;\n padding: 0;\n overflow: hidden;\n outline: none;\n box-shadow: none;\n }\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n flex: 1;\n\n :first-child {\n text-align: left;\n }\n :not(:first-child) {\n text-align: center;\n }\n\n ${({ children }) => {\n if (children) return\n return css`\n :after {\n content: '--/--/-- (--:--) à --/--/-- (--:--)';\n color: ${({ theme }) => theme.colors.darkGrey};\n }\n `\n }}\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\n\ninterface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n disabled: 1 | 0\n paddingless: 1 | 0\n borderless: 1 | 0\n}\n\nexport const Container = styled.div<ContainerProps>`\n display: flex;\n align-items: center;\n border-radius: 4px;\n white-space: nowrap;\n gap: ${({ theme }) => theme.spacings.s1};\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid, borderless }) => {\n if (borderless) return 'transparent'\n return invalid ? theme.colors.warningRed : theme.colors.lightGrey\n }};\n\n width: 100%;\n\n ${({ theme, invalid }) => {\n const [bgColor, color] = invalid\n ? [theme.getColor('warningRed', 5), theme.colors.warningRed]\n : [theme.colors.white, theme.colors.darkBlue]\n return css`\n color: ${color};\n background-color: ${bgColor};\n /** google chrome blue background */\n -webkit-box-shadow: 0 0 0px 1000px ${bgColor} inset !important;\n `\n }};\n\n ${({ theme, paddingless }) => {\n if (paddingless) return\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s1} ${theme.spacings.s2}\n ${theme.spacings.s3};\n `\n }}\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const Button = styled.button`\n display: flex;\n background-color: transparent;\n border: none;\n padding: 0;\n box-shadow: none;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\ninterface StyledLabelTextProps {\n required: 1 | 0\n}\n\nexport const LabelText = styled.label<StyledLabelTextProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React, { useEffect, useState } from 'react'\n\nimport { dateToIsoString, filterObject } from '../../../../functions/formatters'\nimport { isDateInstance } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\nimport { getMiddle } from '../../../Calendar/functions'\nimport Icon from '../../../Icon'\nimport Menu from '../../../Menu'\n\nimport { identify, intervalTypes, parse, validate } from './functions'\n\nimport { DateIntervalPickerProps, IntervalType } from './interfaces'\nimport * as S from './styles'\n\nconst Component = React.forwardRef(\n (\n props: DateIntervalPickerProps,\n ref?: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const center = props.center || { x: 50, y: 50 }\n const value = parse(props.value)\n\n const [open, setOpen] = useState<'menu' | 'calendar' | null>(null)\n const [intervalType, setIntervalType] = useState<IntervalType>(\n props.only || 'day',\n )\n\n const config = intervalTypes[intervalType]\n const { min, max } = config.getMinMax\n ? config.getMinMax(props.min, props.max)\n : props\n\n const setValue = (newValue: [Date, Date]) => {\n const parsed = newValue.map((v) =>\n dateToIsoString(v, true, true, 'us'),\n ) as [string, string]\n\n props.setValue(parsed)\n }\n\n useEffect(() => {\n if (props.min && props.max && props.min > props.max) {\n throw Error('Min prop must be less than Max')\n }\n\n if (props.only) {\n return\n }\n\n const value = parse(props.value)\n if (\n value.some((v) => !isDateInstance(v)) ||\n !validate(value, props.min, props.max)\n ) {\n return\n }\n\n const newIntervalType = identify(value)\n setIntervalType(newIntervalType)\n }, [props.value, props.min, props.max])\n\n const inputProps = filterObject<\n DateIntervalPickerProps,\n React.HtmlHTMLAttributes<HTMLInputElement>\n >(props, [\n 'label',\n 'invalid',\n 'required',\n 'disabled',\n 'width',\n 'borderless',\n 'paddingless',\n 'type',\n 'value',\n 'setValue',\n 'getLabel',\n 'max',\n 'min',\n 'only',\n 'calendar',\n ])\n\n const getArrowProps = (key: 'increment' | 'decrement') => {\n if (value.some((v) => !isDateInstance(v))) {\n return {\n disabled: true,\n }\n }\n\n const func = config[key]\n\n if (func === undefined) {\n return {\n disabled: true,\n }\n }\n const nextValue = func(value as [Date, Date])\n if (!validate(nextValue, min, max)) {\n return {\n disabled: true,\n }\n }\n return {\n onClick: () => setValue(nextValue),\n }\n }\n\n const invalid = props.invalid || !validate(value, min, max)\n\n const onClick = (() => {\n if (props.disabled || !['custom', undefined].includes(props.only)) {\n return undefined\n }\n\n const toOpen = props.only === 'custom' ? 'calendar' : 'menu'\n return () => setOpen((prev) => (prev === null ? toOpen : null))\n })()\n\n const input = <input {...inputProps} type='text' ref={ref} readOnly />\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(null))}\n invalid={invalid}\n >\n {props.label ? (\n <S.LabelText required={props.required ? 1 : 0}>\n {props.label}\n {input}\n </S.LabelText>\n ) : (\n input\n )}\n\n <S.Container\n invalid={props.invalid ? 1 : 0}\n disabled={props.disabled ? 1 : 0}\n paddingless={props.paddingless ? 1 : 0}\n borderless={props.borderless ? 1 : 0}\n >\n {(() => {\n const label = (\n <S.LabelContainer onClick={onClick}>\n {!value.some((v) => !isDateInstance(v)) &&\n config.label(value as [Date, Date])}\n </S.LabelContainer>\n )\n\n if (intervalType === 'custom') return label\n\n const incrementProps = getArrowProps('increment')\n const decrementProps = getArrowProps('decrement')\n\n return (\n <React.Fragment>\n <S.Button\n type='button'\n {...decrementProps}\n disabled={props.disabled || decrementProps.disabled}\n tabIndex={-1}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n {label}\n\n <S.Button\n type='button'\n {...incrementProps}\n disabled={props.disabled || incrementProps.disabled}\n tabIndex={-1}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n </React.Fragment>\n )\n })()}\n\n <S.Button type='button' onClick={onClick} tabIndex={-1}>\n <Icon\n type='feather'\n icon='calendar'\n color={props.invalid ? 'warningRed' : 'grey'}\n width='24px'\n />\n </S.Button>\n </S.Container>\n\n <Menu\n open={open === 'menu'}\n close={() => setOpen(null)}\n center={center}\n references={{ bottom: '35px' }}\n options={[\n {\n label: 'Hoje',\n onClick: () => setValue(intervalTypes.day.initial(props.min)),\n data: {},\n },\n {\n label: 'Semana',\n onClick: () => setValue(intervalTypes.week.initial(props.min)),\n data: {},\n },\n {\n label: 'Mês',\n onClick: () => setValue(intervalTypes.month.initial(props.min)),\n data: {},\n },\n {\n label: 'Personalizado',\n onClick: () => setOpen('calendar'),\n data: {},\n keepOpen: true,\n caret: true,\n },\n ]}\n width='165px'\n itemSpacing='s3'\n bordered\n />\n\n <Calendar\n {...(props.calendar || {})}\n center={center}\n type='interval'\n absolute\n open={open === 'calendar'}\n initialValue={value}\n onSubmit={{\n onClick: ([start, end]) => {\n if (start === null || end === null) return\n setValue([start, end])\n setOpen(null)\n },\n }}\n min={props.min}\n max={props.max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'DatePicker'\n\nconst useDefaultDateIntervalState = (min?: Date, max?: Date) => {\n const middle = getMiddle(min, max)\n\n const start = new Date(middle)\n start.setHours(0, 0, 0, 0)\n const end = new Date(middle)\n end.setHours(23, 59, 59, 999)\n\n return [start.toISOString(), end.toISOString()] as [string, string]\n}\n\nconst DatePicker = Object.assign(Component, {\n useDefaultDateIntervalState,\n})\n\nexport default DatePicker\n","import styled from 'styled-components'\n\nimport { StyledInputProps } from './interfaces'\n\nexport const Input = styled.input<StyledInputProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkBlue\n }};\n\n line-height: 17px;\n\n ::placeholder {\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkGrey\n }};\n\n line-height: 17px;\n ${({ theme }) => theme.useTypography('p')};\n opacity: 1;\n }\n\n display: block;\n box-sizing: border-box;\n flex: 1;\n min-width: ${({ minWidth }) => minWidth || '20%'};\n\n padding: calc(${({ theme }) => theme.spacings.s1} / 2) 0;\n\n box-shadow: none;\n outline: none;\n border: 1px solid transparent;\n`\n","import React from 'react'\nimport { filterObject } from '../../../../../../functions/formatters'\nimport { getMask } from '../../../../functions'\nimport { InputProps, StyledInputProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const [value, setValue] = props.value\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const onPressEnter = props.onPressEnter\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n _onKeyDown(e)\n if (e.key === 'Enter') {\n e.preventDefault()\n onPressEnter(e)\n }\n }\n\n const mask = getMask(props.mask)\n const _onChange = props.onChange || (() => {})\n const onChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.target.value = mask(e.target.value)\n _onChange(e)\n setValue(e.target.value)\n }\n\n const inputProps = filterObject<InputProps, StyledInputProps>(props, [\n 'value',\n 'onPressEnter',\n ])\n\n return (\n <S.Input\n ref={ref}\n {...inputProps}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={value}\n />\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport default Input\n","import styled, { css } from 'styled-components'\n\nimport { LabelProps } from './interfaces'\n\nexport const Label = styled.div<LabelProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React from 'react'\n\nimport { LabelProps } from './interfaces'\nimport * as S from './styles'\n\nconst Label = (props: LabelProps) => {\n return props.children ? <S.Label {...props} /> : null\n}\n\nexport default Label\n","import styled from 'styled-components'\nimport { TagProps } from './interfaces'\n\nexport const Tag = styled.div<TagProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.darkBlue};\n padding: calc(${({ theme }) => theme.spacings.s1} / 2);\n\n border-style: solid;\n border-width: 1px;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > div:last-child {\n cursor: pointer;\n }\n`\n","import React from 'react'\nimport Icon from '../../../../../Icon'\n\nimport { TagProps } from './interfaces'\nimport * as S from './styles'\n\nconst Tag = (props: TagProps) => {\n return (\n <S.Tag {...props}>\n {props.children}\n <div onClick={props.onClose}>\n <Icon\n type='feather'\n icon='x'\n width='10px'\n color={props.invalid ? 'warningRed' : undefined}\n strokeWidth='3px'\n />\n </div>\n </S.Tag>\n )\n}\n\nexport default Tag\n","import styled, { css } from 'styled-components'\nimport { LabelProps, TagContainerProps } from './interfaces'\n\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme }) => {\n return theme.colors.greyishBlue\n }};\n\n width: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n position: relative;\n display: block;\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const TagContainer = styled.div<TagContainerProps>`\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n border-radius: 4px;\n display: flex;\n flex-wrap: wrap;\n gap: calc(${({ theme }) => theme.spacings.s1} / 2);\n padding: ${({ theme }) => theme.spacings.s1};\n`\n","import React, { useState } from 'react'\nimport { strCmp } from '../../../../functions/validators'\nimport { Input, Label, Tag } from './components'\nimport { TagsProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Tags = React.forwardRef(\n (props: TagsProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, setValue } = props\n\n const [inputValue, setInputValue] =\n props.input && props.input.value\n ? props.input.value\n : useState<string>('')\n\n const validate = props.validate || (() => true)\n const onBeforeAdd = props.onBeforeAdd || ((v: string) => v)\n const validateUnique = props.unique\n ? (v: string) => (value.some((e) => strCmp(e, v)) ? '' : v)\n : (v: string) => v\n\n const add = (v: string) => {\n if (v === '') return\n\n v = validateUnique(v)\n if (v === '') return\n\n v = onBeforeAdd(v)\n if (v === '') return\n\n setValue([...value, v])\n setInputValue('')\n }\n\n const remove = (index: number) => {\n const prev = [...value]\n prev.splice(index, 1)\n setValue([...prev])\n }\n\n return (\n <S.Label disabled={props.disabled} width={props.width}>\n <Label required={props.required}>{props.label}</Label>\n\n <S.TagContainer invalid={props.invalid}>\n {value.map((v, index) => (\n <Tag\n key={index}\n onClose={() => remove(index)}\n invalid={!validate(v)}\n >\n {v}\n </Tag>\n ))}\n\n <Input\n ref={ref}\n disabled={props.disabled || props.loading}\n invalid={props.invalid}\n {...props.input}\n value={[inputValue, setInputValue]}\n onPressEnter={(e) => add((e.target as HTMLInputElement).value)}\n />\n </S.TagContainer>\n </S.Label>\n )\n },\n)\n\nTags.displayName = 'Tags'\n\nexport default Tags\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n keys,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport { DateTimeProps } from './interfaces'\nimport * as S from './styles'\n\nconst isLeapYear = (year: number): boolean => {\n if (year % 4 !== 0) return false\n else if (year % 100 !== 0) return true\n else if (year % 400 !== 0) return false\n else return true\n}\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/\\D+/g, '')\n\n // remove o primeiro digito enquanto ele for maior que 3, (nao existe dia maior que 31)\n while (v.length > 0 && parseInt(v[0]) > 3) {\n v = v.substring(1)\n }\n\n // se o primeiro digito for 3, remove o segundo digito enquanto ele for maior que 1, (nao existe dia maior que 31)\n if (v.length > 1) {\n if (v[0] === '3') {\n while (v.length > 1 && parseInt(v[1]) > 1) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n // remove o terceiro digito enquanto ele for maior que 1, (nao existe mes maior que 12)\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 1) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n // se o terceiro digito for 1, remove o quarto digito enquanto ele for maior que 2, (nao existe mes maior que 12)\n if (v.length > 3) {\n if (v[2] === '1') {\n while (v.length > 3 && parseInt(v[3]) > 2) {\n v = v.substring(0, 3) + v.substring(4)\n }\n }\n }\n\n // remove o nono digito enquanto ele for maior que 2, (nao existe hora maior que 23)\n if (v.length > 8) {\n while (v.length > 8 && parseInt(v[8]) > 2) {\n v = v.substring(0, 8) + v.substring(9)\n }\n }\n\n // se o nono digito for 2, remove o decimo digito enquanto ele for maior que 3, (nao existe hora maior que 23)\n if (v.length > 9) {\n if (v[8] === '2') {\n while (v.length > 9 && parseInt(v[9]) > 3) {\n v = v.substring(0, 9) + v.substring(10)\n }\n }\n }\n\n // remove o decimo primeiro digito enquanto ele for maior que 5, (nao existe minuto maior que 59)\n if (v.length > 10) {\n while (v.length > 10 && parseInt(v[10]) > 5) {\n v = v.substring(0, 10) + v.substring(11)\n }\n }\n\n // remove o decimo terceiro digito enquanto ele for maior que 5, (nao existe segundo maior que 59)\n if (v.length > 12) {\n while (v.length > 12 && parseInt(v[12]) > 5) {\n v = v.substring(0, 12) + v.substring(13)\n }\n }\n\n const date = [\n v.substring(0, 2),\n v.substring(2, 4),\n v.substring(4, 8),\n v.substring(8, 10),\n v.substring(10, 12),\n v.substring(12, 14),\n ]\n\n if (date[1] === '02') {\n const d = parseInt(date[0])\n\n if (date[2].length < 4 || isLeapYear(parseInt(date[2]))) {\n // se for ano nao estiver setado, ou se for bissexto, o dia maximo de fevereiro deve ser 29\n if (d > 29) {\n date[0] = '29'\n }\n } else if (d > 28) {\n // se for ano estiver setado e nao for bissexto, o dia maximo de fevereiro deve ser 28\n date[0] = '28'\n }\n } else if (['04', '06', '09', '11'].includes(date[1]) && date[0] === '31') {\n // meses com 30 dias\n date[0] = '30'\n }\n\n v = date.join('')\n\n v = v.replace(\n /^((\\d{0,2}))((\\d{0,2}))((\\d{0,4}))((\\d{0,2}))((\\d{0,2}))((\\d{0,2}))$/g,\n '$1/$3/$5 $7:$9:$11',\n )\n\n while (v.length > 0 && !v[v.length - 1].match(/^\\d$/g)) {\n v = v.substring(0, v.length - 1)\n }\n\n if (!seconds) {\n v = v.substring(0, 16)\n }\n\n return v\n}\n\nconst getValueThroughDate = (date: Date, seconds?: boolean) => {\n const newValue = dateToIsoString(date, true)\n return !seconds ? newValue.substring(0, newValue.length - 3) : newValue\n}\n\nconst steps = {\n year: {\n increment: (value: Date) => {\n value.setFullYear(value.getFullYear() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setFullYear(value.getFullYear() - 1)\n return value\n },\n },\n month: {\n increment: (value: Date) => {\n value.setMonth(value.getMonth() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMonth(value.getMonth() - 1)\n return value\n },\n },\n day: {\n increment: (value: Date) => {\n value.setDate(value.getDate() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setDate(value.getDate() - 1)\n return value\n },\n },\n hour: {\n increment: (value: Date) => {\n value.setHours(value.getHours() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setHours(value.getHours() - 1)\n return value\n },\n },\n minute: {\n increment: (value: Date) => {\n value.setMinutes(value.getMinutes() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMinutes(value.getMinutes() - 1)\n return value\n },\n },\n second: {\n increment: (value: Date) => {\n value.setSeconds(value.getSeconds() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setSeconds(value.getSeconds() - 1)\n return value\n },\n },\n}\n\nconst DateTime = React.forwardRef(\n (props: DateTimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, min, max } = props\n\n const step = steps[props.step || 'day']\n\n const setValue = props.setValue || (() => {})\n\n const [open, setOpen] = useState<boolean>(false)\n\n const _onKeyDown = props.onKeyDown || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const cur = {\n day: {\n start: 0,\n end: 2,\n value: todayDate.getDate(),\n },\n month: {\n start: 2,\n end: 4,\n value: todayDate.getMonth() + 1,\n },\n year: {\n start: 4,\n end: 8,\n value: todayDate.getFullYear(),\n },\n hours: {\n start: 8,\n end: 10,\n value: todayDate.getHours(),\n },\n minutes: {\n start: 10,\n end: 12,\n value: todayDate.getMinutes(),\n },\n seconds: {\n start: 12,\n end: 14,\n value: todayDate.getSeconds(),\n },\n }\n\n const value = target.value.replace(/\\D+/g, '')\n\n const v = keys(cur).reduce((prev, k) => {\n const { start, end, value: current } = cur[k]\n const len = end - start\n\n const tmp = value.substring(start, end)\n\n return {\n ...prev,\n [k]: tmp.length === 0 ? current : parseInt(tmp.padEnd(len, '0')),\n }\n }, {} as { [key in keyof typeof cur]: number })\n\n let date = new Date(\n `${v.year}-${v.month}-${v.day} ${v.hours}:${v.minutes}:${v.seconds}`,\n )\n\n if (event.key === 'ArrowUp') {\n date = step.increment(date)\n if (!max || date <= max) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n } else if (event.key === 'ArrowDown') {\n date = step.decrement(date)\n if (!min || date >= min) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? 'dd/mm/aaaa hh:mm:ss'\n : props.placeholder\n\n const icon: InputProps['icon'] = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n onClick: () => setOpen((prev) => !prev),\n },\n position: 'right',\n }\n : undefined\n\n const inputProps = filterObject<DateTimeProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='text'\n placeholder={placeholder}\n mask={(v) => mask(v, props.seconds)}\n onKeyDown={onKeyDown}\n icon={icon}\n ref={ref}\n />\n\n <Calendar\n time={{\n seconds: props.seconds,\n }}\n {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(getValueThroughDate(date, props.seconds))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDateTime.displayName = 'DateTime'\n\nexport default DateTime\n","import React from 'react'\n\nimport DefaultInput from './components/Input'\nimport { InputProps as DefaultInputProps } from './components/Input/interfaces'\n\nimport Checkbox from './components/Checkbox'\nimport { CheckboxProps } from './components/Checkbox/interfaces'\n\nimport Date from './components/Date'\nimport { DateProps } from './components/Date/interfaces'\n\nimport Time from './components/Time'\nimport { TimeProps } from './components/Time/interfaces'\n\nimport Select, { SelectProps } from './components/Select'\n\nimport Password from './components/Password'\nimport { PasswordProps } from './components/Password/interfaces'\n\nimport Phone from './components/Phone'\nimport { PhoneProps } from './components/Phone/interfaces'\n\nimport DatePicker from './components/DatePicker'\nimport { DatePickerProps } from './components/DatePicker/interfaces'\n\nimport { SwitchProps } from './components/Switch/interfaces'\nimport Switch from './components/Switch'\n\nimport Range from './components/Range'\nimport { RangeProps } from './components/Range/interfaces'\n\nimport { RadioButtonProps } from './components/RadioButton/interfaces'\nimport RadioButton from './components/RadioButton'\n\nimport { DateIntervalPickerProps } from './components/DateIntervalPicker/interfaces'\nimport DateIntervalPicker from './components/DateIntervalPicker'\n\nimport Tags from './components/Tags'\nimport { TagsProps } from './components/Tags/interfaces'\n\nimport DateTime from './components/DateTime'\nimport { DateTimeProps } from './components/DateTime/interfaces'\n\nexport type Props =\n | DateProps\n | TimeProps\n | CheckboxProps\n | SelectProps\n | PasswordProps\n | PhoneProps\n | DatePickerProps\n | RangeProps\n | DefaultInputProps\n | SwitchProps\n | RadioButtonProps\n | DateIntervalPickerProps\n | TagsProps\n | DateTimeProps\n\nconst Component = React.forwardRef(\n (props: Props, ref?: React.ForwardedRef<HTMLInputElement>) => {\n switch (props.type) {\n case 'date': {\n return <Date {...props} ref={ref} />\n }\n case 'time': {\n return <Time {...props} ref={ref} />\n }\n case 'checkbox': {\n return <Checkbox {...props} ref={ref} />\n }\n case 'select': {\n return <Select {...props} ref={ref} />\n }\n case 'select-multiple': {\n return <Select {...props} ref={ref} />\n }\n case 'password': {\n return <Password {...props} ref={ref} />\n }\n case 'phone': {\n return <Phone {...props} ref={ref} />\n }\n case 'datepicker': {\n return <DatePicker {...props} ref={ref} />\n }\n case 'range': {\n return <Range {...props} ref={ref} />\n }\n case 'switch': {\n return <Switch {...props} />\n }\n case 'radio': {\n return <RadioButton {...props} />\n }\n case 'date-interval-picker': {\n return <DateIntervalPicker {...props} ref={ref} />\n }\n case 'tags': {\n return <Tags {...props} ref={ref} />\n }\n case 'datetime': {\n return <DateTime {...props} ref={ref} />\n }\n default: {\n return <DefaultInput {...props} ref={ref} />\n }\n }\n },\n)\n\nComponent.displayName = 'Input'\n\nconst Input = Object.assign(Component, {\n useDefaultDateIntervalState: DateIntervalPicker.useDefaultDateIntervalState,\n getPhoneDetails: Phone.getPhoneDetails,\n})\n\nexport default Input\n","import styled from 'styled-components'\n\nimport AbsoluteContainer from '../../../../AbsoluteContainer'\n\nexport const Container = styled(AbsoluteContainer)`\n background-color: ${({ theme }) => theme.colors.white};\n\n > div {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n > div {\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `${s3} 0 ${s3} ${s3}`};\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n }\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({\n theme: {\n spacings: { s3 },\n },\n }) => s3};\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `0 ${s3} ${s3} 0`};\n > div {\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const Title = styled.div`\n ${({ theme: { useTypography } }) =>\n useTypography('p', { fontWeight: 'bold' })}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n`\n\nexport const Item = styled.div`\n padding: ${({\n theme: {\n spacings: { s1 },\n },\n }) => `${s1} ${s1} ${s1} 0`};\n display: flex;\n align-items: center;\n\n :not(:last-child) {\n border-bottom: 1px solid\n ${({ theme: { getColor } }) => getColor('greyishBlue', 25)};\n }\n\n > div:nth-child(1) {\n flex: 1;\n\n > div:nth-child(1) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n }\n > div:nth-child(2) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n }\n }\n > div:nth-child(2) {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport { strCmp } from '../../../../../functions/validators'\nimport Icon from '../../../../Icon'\nimport Input from '../../../../Input'\nimport Link from '../../../../Link'\nimport ScrollContainer from '../../../../ScrollContainer'\n\nimport { AppliedFiltersMenuProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst AppliedFiltersMenu = (props: AppliedFiltersMenuProps) => {\n const {\n open,\n close,\n appliedFilters: [appliedFilters, setAppliedFilters],\n } = props\n\n const [search, setSearch] = useState<string>('')\n const [searched, setSearched] = useState<string>('')\n\n useEffect(() => {\n setSearch('')\n setSearched('')\n }, [open])\n\n const onClear = () => {\n setAppliedFilters([])\n close()\n }\n\n const onSubmitSearch = () => {\n setSearched(search)\n }\n\n const onClearSearch = () => {\n setSearch('')\n setSearched('')\n }\n\n const onRemove = (name: string) => {\n setAppliedFilters((prev) => prev.filter((e) => e.name !== name))\n }\n\n return (\n <S.Container\n open={open}\n width='275px'\n height='261px'\n transition={{ properties: { height: {} } }}\n {...(props.containerProps || {})}\n >\n <div>\n <S.Header>\n <div>\n <S.Title>Filtros Aplicados</S.Title>\n\n <Link onClick={onClear} children='Limpar Todos' />\n </div>\n\n <Input\n type='search'\n placeholder='Pesquisar'\n setValue={setSearch}\n value={search}\n onPressEnter={onSubmitSearch}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n onClick: onSubmitSearch,\n },\n }}\n clearable={\n search !== '' && search === searched ? onClearSearch : undefined\n }\n />\n </S.Header>\n\n <ScrollContainer>\n {appliedFilters\n .filter(\n ({\n labels: {\n filter: { text: filter },\n option: { text: option },\n },\n }): boolean => {\n return (\n strCmp(filter, searched, { contain: true }) ||\n strCmp(option, searched, { contain: true })\n )\n },\n )\n .map(\n (\n {\n labels: {\n filter: { element: filter },\n option: { element: option },\n },\n name,\n },\n index,\n ) => {\n return (\n <S.Item key={index}>\n <div>\n <div>{filter}</div>\n <div>{option}</div>\n </div>\n <div>\n <Icon\n type='feather'\n icon='minus_circle'\n width='12px'\n height='12px'\n color='darkSilver'\n onClick={() => onRemove(name)}\n />\n </div>\n </S.Item>\n )\n },\n )}\n </ScrollContainer>\n </div>\n </S.Container>\n )\n}\n\nexport default AppliedFiltersMenu\n","import styled, { css } from 'styled-components'\nimport { SpacingOrZero } from '../../../interfaces'\n\nexport const Container = styled.div<{ $gap: SpacingOrZero }>`\n display: flex;\n gap: ${({ theme, $gap: gap }) => (gap === '0' ? '0' : theme.spacings[gap])};\n align-items: center;\n color: ${({ theme }) => theme.colors.darkestGrey};\n\n ${({ onClick }) => {\n if (!onClick) {\n return css`\n opacity: 0.3;\n pointer-events: none;\n `\n }\n\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React, { useState } from 'react'\nimport { filterObject } from '../../../functions/formatters'\n\nimport useOnClickOut from '../../../hooks/onClickOut'\nimport Icon from '../../Icon'\n\nimport { ButtonProps } from './interfaces'\nimport * as S from './styles'\n\nconst Button = (props: ButtonProps) => {\n const { getContent } = props\n\n const [open, setOpen] = useState<boolean>(false)\n\n const close = () => setOpen(false)\n\n const onClick = props.disabled ? undefined : () => setOpen((prev) => !prev)\n\n const buttonProps = filterObject<\n ButtonProps,\n Exclude<ButtonProps, 'getContent' | 'gap'>\n >(props, ['getContent', 'gap'])\n\n return (\n <div ref={useOnClickOut(close)}>\n <S.Container {...buttonProps} {...{ onClick }} $gap={props.gap}>\n {props.children}\n <Icon\n type='semantic'\n icon={open ? 'caret up' : 'caret down'}\n width='12px'\n />\n </S.Container>\n\n {getContent(open, close)}\n </div>\n )\n}\n\nexport default Button\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\n\nimport AppliedFiltersMenu from './components/Menu'\nimport { AppliedFiltersProps } from './interfaces'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nconst AppliedFilters = Object.assign(\n (props: AppliedFiltersProps) => {\n const { appliedFilters, containerProps } = props\n\n const buttonProps = filterObject<\n AppliedFiltersProps,\n Omit<ButtonProps, 'getContent' | 'gap'>\n >(props, ['appliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n gap='s1'\n getContent={(open, close) => (\n <AppliedFiltersMenu\n {...{ open, close, appliedFilters, containerProps }}\n />\n )}\n >\n Filtros Aplicados ({appliedFilters[0].length})\n </Button>\n )\n },\n { Menu: AppliedFiltersMenu },\n)\n\nexport default AppliedFilters\n","import styled, { css } from 'styled-components'\nimport { CardProps } from './interfaces'\nexport const Container = styled.div<CardProps>`\n width: 100%;\n background: #fff;\n border: 1px solid #d4d4d5;\n border-radius: 4px;\n border-left-width: 5px;\n padding: 14px;\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 394px;\n height: 99px;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 394px;\n height: 131px;\n `}\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 394px;\n `}\n ${(props) =>\n props.size === 'big' &&\n css`\n width: 414px;\n height: 324px;\n `}\n\n ${(props) =>\n props.borderType === 'info' &&\n css`\n border-left-color: #4d6dbe;\n `}\n ${(props) =>\n props.borderType === 'success' &&\n css`\n border-left-color: #66bb6a;\n `}\n ${(props) =>\n props.borderType === 'warning' &&\n css`\n border-left-color: #fbcb01;\n `}\n\n ${(props) =>\n props.borderType === 'danger' &&\n css`\n border-left-color: #e23851;\n `}\n ${(props) =>\n props.borderType === 'none' &&\n css`\n border: 1px solid #d4d4d5;\n `}\n`\n","import React from 'react'\nimport { CardProps } from './interfaces'\nimport * as S from './styled'\n\nconst Card = ({ children, ...rest }: CardProps) => {\n return <S.Container {...rest}>{children}</S.Container>\n}\n\nexport default Card\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: ${({\n theme: {\n spacings: { s1 },\n },\n }) => `0 0 ${s1} ${s1}`};\n\n display: flex;\n flex-direction: column;\n gap: ${({\n theme: {\n spacings: { s3 },\n },\n }) => s3};\n\n > div:nth-child(1) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n }\n`\n","import React, { useEffect, useState } from 'react'\n\nimport { isString } from '../../../../../../../functions/validators'\nimport EllipsisContainer from '../../../../../../EllipsisContainer'\n\nimport Input from '../../../../../../Input'\n\nimport { HeaderProps } from './interfaces'\nimport * as S from './styles'\n\nconst Header = (props: HeaderProps) => {\n const {\n title,\n search: [searched, _setSearched],\n allowEmptySearch,\n withSearch,\n } = props\n\n const [search, setSearch] = useState<string>('')\n\n const setSearched = allowEmptySearch\n ? _setSearched\n : (value: string) => {\n if (value === '') return\n _setSearched(value)\n }\n\n useEffect(() => {\n setSearch(searched)\n }, [searched])\n\n const onSubmit = () => {\n setSearched(search)\n }\n\n const onClear = () => {\n setSearch('')\n setSearched('')\n }\n\n return (\n <S.Container>\n <EllipsisContainer>\n {isString(title) ? title : title.element}\n </EllipsisContainer>\n\n {withSearch && (\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearch}\n value={search}\n onPressEnter={onSubmit}\n clearable={search !== '' && search === searched ? onClear : undefined}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n onClick: onSubmit,\n },\n }}\n />\n )}\n </S.Container>\n )\n}\n\nexport default Header\n","import styled from 'styled-components'\n\nexport const EmptyMessage = styled.div`\n padding: 0 20px;\n color: ${({\n theme: {\n colors: { lightGrey },\n },\n }) => lightGrey};\n text-align: center;\n margin: auto;\n width: 100%;\n`\n","import React, { useCallback, useEffect, useState } from 'react'\n\nimport Menu from '../../../../Menu'\nimport { Option as MenuOption } from '../../../../Menu/interfaces'\nimport { isString, strCmp } from '../../../../../functions/validators'\n\nimport { Label, Option as FilterOption, OptionsReturn } from '../../interfaces'\n\nimport Header from './components/Header'\nimport { SubmenuProps } from './interfaces'\nimport * as S from './styles'\nimport { SpacingOrZero } from '../../../../../interfaces'\n\ninterface Instance {\n getOptions: (\n value: string,\n page: number | undefined,\n ) => Promise<OptionsReturn>\n open: boolean\n isDynamic: boolean\n itemSpacing: SpacingOrZero\n label: Label\n allowEmptySearch?: boolean\n}\n\nconst getInstance = (props: SubmenuProps): Instance => {\n const { item } = props\n\n if (!item) {\n return {\n open: false,\n isDynamic: false,\n itemSpacing: 's3',\n label: {\n element: '',\n text: '',\n },\n getOptions: async () => ({ options: [], lastPage: true }),\n }\n }\n\n const open = true\n const allowEmptySearch = item.allowEmptySearch\n const label = isString(item.label)\n ? {\n element: item.label,\n text: item.label,\n }\n : item.label\n\n if (Array.isArray(item.options)) {\n const intialOptions = [...item.options]\n\n const getOptions = async (value: string): Promise<OptionsReturn> => {\n const options = intialOptions.filter((option) => {\n const label = isString(option.label) ? option.label : option.label.text\n\n return strCmp(label, value, { contain: true })\n })\n\n return {\n options,\n lastPage: true,\n }\n }\n\n return {\n open,\n isDynamic: false,\n itemSpacing: item.optionSpacing || 's1',\n label,\n allowEmptySearch,\n getOptions,\n }\n }\n\n const loader = item.options\n\n const getOptions = async (\n value: string,\n page: number | undefined,\n ): Promise<OptionsReturn> => {\n const options = await loader(value, page)\n\n if (!Array.isArray(options)) return options\n\n return {\n options,\n lastPage: true,\n }\n }\n\n return {\n open,\n isDynamic: true,\n itemSpacing: item.optionSpacing || 's3',\n label,\n allowEmptySearch,\n getOptions,\n }\n}\n\nconst Submenu = (props: SubmenuProps) => {\n const { item, close, setAppliedFilters, closeParent } = props\n\n const { open, isDynamic, itemSpacing, label, allowEmptySearch, getOptions } =\n getInstance(props)\n\n const [options, setOptions] = useState<FilterOption[]>([])\n const [page, setPage] = useState<number>(1)\n const [search, _setSearch] = useState<string>('')\n const [lastPage, setLastPage] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n const [, setFirstRender] = useState<boolean>(true)\n\n const onSearch = useCallback(async () => {\n const { options: newOptions, lastPage } = await getOptions(search, page)\n\n setLastPage(lastPage)\n\n setOptions([...newOptions])\n setLoading(false)\n }, [item, search, page])\n\n const setSearch = (value: string, force = true) => {\n const changed = search !== value || page !== 1\n\n _setSearch(value)\n setPage(1)\n\n if (force && changed === false) {\n setLoading(true)\n onSearch()\n }\n }\n\n useEffect(() => {\n setOptions([])\n setSearch('', false)\n setFirstRender(true)\n }, [item])\n\n useEffect(() => {\n setFirstRender((firstRender) => {\n if (!item || (isDynamic && firstRender)) {\n setLoading(false)\n } else {\n setLoading(true)\n onSearch()\n }\n\n return false\n })\n }, [onSearch])\n\n const onClickOption = item\n ? (index: number) => {\n const option = options[index]\n\n setAppliedFilters((prev) => {\n const newState = [...prev]\n\n const index = newState.findIndex(\n (filter) => filter.name === item.name,\n )\n\n if (index !== -1) {\n if (newState[index].value === option.value) return prev\n newState[index].value = option.value\n return [...newState]\n }\n\n newState.push({\n name: item.name,\n labels: {\n filter: label,\n option: isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label,\n },\n value: option.value,\n })\n\n return newState\n })\n\n !item.keepOpen && closeParent()\n }\n : undefined\n\n const optionsParser = (option: FilterOption): MenuOption => {\n return {\n label:\n typeof option.label === 'string' ? option.label : option.label.element,\n onClick: onClickOption,\n data: {},\n }\n }\n\n const onScrollEnd = () => {\n if (lastPage) return\n setPage((prev) => prev + 1)\n }\n\n return (\n <Menu\n open={open}\n axis='x'\n options={options.map(optionsParser)}\n close={close}\n width={isDynamic ? '275px' : '160px'}\n height='261px'\n containerSpacing={{\n top: 's3',\n left: 's1',\n bottom: isDynamic ? 's3' : 's1',\n }}\n onScrollEnd={onScrollEnd}\n itemSpacing={{\n top: itemSpacing,\n left: 's1',\n bottom: itemSpacing,\n }}\n bordered={isDynamic}\n before={\n <Header\n title={label}\n search={[search, setSearch]}\n allowEmptySearch={allowEmptySearch}\n withSearch={isDynamic}\n />\n }\n loading={loading}\n emptyContent={\n isDynamic && options.length === 0 ? (\n <S.EmptyMessage>\n {(() => {\n if (search !== '') {\n return (\n <React.Fragment>\n Nenhum resultado foi encontrado\n </React.Fragment>\n )\n }\n return (\n <React.Fragment>\n Utilize a busca para pesquisar por <br />\n {label.text}\n </React.Fragment>\n )\n })()}\n </S.EmptyMessage>\n ) : undefined\n }\n transition={{\n properties: {\n width: {},\n },\n }}\n {...(props.containerProps || {})}\n />\n )\n}\n\nexport default Submenu\n","import React, { useEffect, useState } from 'react'\n\nimport Menu from '../../../../Menu'\nimport { Option } from '../../../../Menu/interfaces'\nimport Submenu from '../Submenu'\n\nimport { FiltersMenuProps } from './interfaces'\n\nconst FiltersMenu = (props: FiltersMenuProps) => {\n const { open, close } = props\n\n const [active, setActive] = useState<number>(-1)\n\n const items: Option[] = props.items.map((item): Option => {\n return {\n label: typeof item.label === 'string' ? item.label : item.label.element,\n delimiter: item.delimiter,\n keepOpen: true,\n caret: true,\n onClick: (index: number) => {\n setActive((prev) => (prev === index ? -1 : index))\n },\n data: {},\n }\n })\n\n const selected =\n active >= 0 && active < props.items.length ? props.items[active] : undefined\n\n useEffect(() => {\n if (open) return\n setActive(-1)\n }, [open])\n\n return (\n <Menu\n open={open}\n options={items}\n close={close}\n width='160px'\n maxHeight='261px'\n containerSpacing={{\n top: 's1',\n left: 's1',\n bottom: 's1',\n }}\n itemSpacing={{\n top: 's1',\n left: 's1',\n bottom: 's1',\n }}\n transition={{\n properties: {\n width: {},\n },\n }}\n {...(props.containerProps || {})}\n >\n <Submenu\n item={selected}\n close={() => setActive(-1)}\n closeParent={close}\n setAppliedFilters={props.setAppliedFilters}\n containerProps={props.subContainerProps}\n />\n </Menu>\n )\n}\n\nexport default FiltersMenu\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nimport FiltersMenu from './components/Menu'\nimport { FiltersProps } from './interfaces'\n\nconst Filters = Object.assign(\n (props: FiltersProps) => {\n const { items, setAppliedFilters, containerProps, subContainerProps } =\n props\n\n const buttonProps = filterObject<\n FiltersProps,\n Omit<ButtonProps, 'getContent' | 'gap'>\n >(props, ['items', 'setAppliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n gap='s4'\n getContent={(open, close) => (\n <FiltersMenu\n {...{\n open,\n close,\n setAppliedFilters,\n items,\n containerProps,\n subContainerProps,\n }}\n />\n )}\n >\n Filtros\n </Button>\n )\n },\n { Menu: FiltersMenu },\n)\n\nexport default Filters\n","import React from 'react'\n\nimport { BaseColProps } from '../Col/interfaces'\n\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({\n cols: {} as BaseColProps,\n})\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import styled, { css, FlattenSimpleInterpolation } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { ColorOptions, OpacitiyOptions } from '../../../../theme/interfaces'\nimport { StyledColProps } from './interfaces'\n\nconst aligns = {\n self: {\n horizontal: {\n center: 'center',\n left: 'flex-start',\n right: 'flex-end',\n },\n vertical: {\n center: 'center',\n top: 'flex-start',\n bottom: 'flex-end',\n },\n },\n content: {\n horizontal: {\n around: 'space-around',\n between: 'space-between',\n center: 'center',\n left: 'flex-start',\n right: 'flex-end',\n },\n vertical: {\n center: 'center',\n top: 'flex-start',\n bottom: 'flex-end',\n },\n },\n}\n\nexport const Col = styled.div<StyledColProps>`\n display: flex;\n flex-wrap: wrap;\n position: relative;\n\n ${({ width }) => {\n if (width === undefined) {\n return css`\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n width: 100%;\n `\n } else if (width === 'auto') {\n return css`\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n `\n }\n\n const w = (parseFloat(width) * 100) / 12\n\n return css`\n flex: 0 0 ${w}%;\n max-width: ${w}%;\n width: 100%;\n `\n }}\n\n padding: ${({ spacing }) => {\n const padding = getSpacings(spacing === undefined ? 's1' : spacing)\n return padding\n }};\n\n ${({ spacingAround }) => {\n if (spacingAround) return\n\n return css`\n :first-child {\n padding-left: 0;\n }\n :last-child {\n padding-right: 0;\n }\n `\n }}\n\n ${({ align }) => {\n if (align === undefined) return\n\n const styles: FlattenSimpleInterpolation[] = []\n\n if (align.self !== undefined) {\n if (align.self.horizontal !== undefined) {\n const v = align.self.horizontal\n const a = aligns.self.horizontal\n\n styles.push(css`\n justify-self: ${a[v]};\n `)\n }\n\n if (align.self.vertical !== undefined) {\n const v = align.self.vertical\n const a = aligns.self.vertical\n\n styles.push(css`\n align-self: ${a[v]};\n `)\n }\n }\n\n if (align.content !== undefined) {\n if (align.content.horizontal !== undefined) {\n const v = align.content.horizontal\n const a = aligns.content.horizontal\n\n styles.push(css`\n justify-content: ${a[v]};\n `)\n }\n\n if (align.content.vertical !== undefined) {\n const v = align.content.vertical\n const a = aligns.content.vertical\n\n styles.push(css`\n align-items: ${a[v]};\n `)\n }\n }\n\n if (align.text !== undefined) {\n const v = align.text\n\n styles.push(css`\n text-align: ${v};\n `)\n }\n\n return styles\n }}\n\n ${({\n bordered,\n theme: {\n colors: { lightestGrey },\n },\n }) => {\n if (!bordered) return\n\n return css`\n :not(:last-child) {\n border-right: 1px solid ${lightestGrey};\n }\n `\n }}\n\n ${({ fontColor, theme }) => {\n if (fontColor === undefined) return\n\n const c = Array.isArray(fontColor)\n ? theme.getColor(...fontColor)\n : theme.colors[fontColor]\n\n return css`\n color: ${c};\n `\n }};\n\n ${({ backgroundColor, theme }) => {\n if (backgroundColor === undefined) return\n\n const c = Array.isArray(backgroundColor)\n ? theme.getColor(...backgroundColor)\n : theme.colors[backgroundColor]\n\n return css`\n background-color: ${c};\n `\n }};\n\n ${({ hover, theme }) => {\n if (!hover) return\n\n const h: ColorOptions | [ColorOptions, OpacitiyOptions] =\n hover === true ? ['lightGrey', 50] : hover\n\n const c = Array.isArray(h) ? theme.getColor(...h) : theme.colors[h]\n\n return css`\n :hover {\n background-color: ${c};\n }\n `\n }}\n\n ${({ pointer }) => {\n if (!pointer) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport EllipsisContainer from '../../../EllipsisContainer'\n\nimport { useContext } from '../Row/context'\n\nimport { ColProps, StyledColProps } from './interfaces'\nimport * as S from './styles'\n\nconst Col = React.forwardRef<HTMLDivElement, ColProps>((props, ref) => {\n const context = useContext()\n\n const _props = { ...context.cols, ...props }\n\n const colProps = filterObject<ColProps, StyledColProps>(_props, [\n 'ellipsis',\n 'children',\n ])\n\n return (\n <S.Col ref={ref} {...colProps}>\n {_props.ellipsis ? (\n <EllipsisContainer>{_props.children}</EllipsisContainer>\n ) : (\n _props.children\n )}\n </S.Col>\n )\n})\n\nCol.displayName = 'Col'\n\nexport default Col\n","import React from 'react'\n\nimport { BaseColProps } from '../Col/interfaces'\nimport { BaseRowProps } from '../Row/interfaces'\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({\n rows: {} as BaseRowProps,\n cols: {} as BaseColProps,\n})\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\n\nimport { StyledGridProps } from './interfaces'\n\nexport const Grid = styled.div<StyledGridProps>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n\n ${({ spacing }) => {\n if (spacing === undefined) return\n const padding = getSpacings(spacing)\n return css`\n padding: ${padding};\n `\n }}\n\n ${({\n borderless,\n theme: {\n colors: { lightestGrey },\n },\n }) => {\n if (borderless) return\n\n return css`\n border: 1px solid ${lightestGrey};\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\n\nimport Provider from './context'\nimport { GridProps, StyledGridProps } from './interfaces'\nimport * as S from './styles'\n\nconst Grid = React.forwardRef<HTMLDivElement, GridProps>((props, ref) => {\n const cols = props.cols || {}\n const rows = props.rows || {}\n\n const gridProps = filterObject<GridProps, StyledGridProps>(props, [\n 'cols',\n 'rows',\n ])\n\n return (\n <Provider.Provider value={{ rows, cols }}>\n <S.Grid ref={ref} {...gridProps} />\n </Provider.Provider>\n )\n})\n\nGrid.displayName = 'Grid'\n\nexport default Grid\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { ColorOptions, OpacitiyOptions } from '../../../../theme/interfaces'\nimport { HorizontalAligns, VerticalAligns } from '../../interfaces'\n\nimport { Striped, StyledRowProps } from './interfaces'\n\nconst horizontalAligns: { [key in HorizontalAligns]: string } = {\n around: 'space-around',\n between: 'space-between',\n center: 'center',\n left: 'start',\n right: 'end',\n}\n\nconst verticalAligns: { [key in VerticalAligns]: string } = {\n center: 'center',\n top: 'start',\n bottom: 'end',\n}\n\nexport const Row = styled.div<StyledRowProps>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n\n ${({ spacing }) => {\n if (spacing === undefined) return\n const padding = getSpacings(spacing)\n return css`\n padding: ${padding};\n `\n }}\n\n ${({ spacingAround }) => {\n if (spacingAround) return\n\n return css`\n :first-child {\n padding-top: 0;\n }\n :last-child {\n padding-bottom: 0;\n }\n `\n }}\n\n ${({ horizontalAlign }) => {\n if (horizontalAlign === undefined) return\n return css`\n justify-content: ${horizontalAligns[horizontalAlign]};\n `\n }}\n\n ${({ verticalAlign }) => {\n if (verticalAlign === undefined) return\n return css`\n align-items: ${verticalAligns[verticalAlign]};\n `\n }}\n\n ${({ striped, backgroundColor, theme }) => {\n if (backgroundColor !== undefined) {\n const c = Array.isArray(backgroundColor)\n ? theme.getColor(...backgroundColor)\n : theme.colors[backgroundColor]\n\n return css`\n background-color: ${c};\n `\n }\n\n if (striped === undefined) {\n return css`\n background-color: ${theme.colors.white};\n `\n }\n\n const config: Partial<Striped> =\n striped === true ? { even: ['ghostWhite', 50] } : striped\n\n const colors: { [key in keyof Striped]: string } = (\n Object.keys(config) as (keyof Striped)[]\n ).reduce(\n (prev, key) => {\n const c = config[key]\n\n if (c === undefined) return prev\n\n return {\n ...prev,\n [key]: Array.isArray(c) ? theme.getColor(...c) : theme.colors[c],\n }\n },\n {\n even: theme.colors.white,\n odd: theme.colors.white,\n },\n )\n\n return css`\n :nth-child(even) {\n background-color: ${colors.even};\n }\n :nth-child(odd) {\n background-color: ${colors.odd};\n }\n `\n }}\n\n color: ${({ fontColor, theme }) => {\n if (fontColor === undefined) return theme.getColor('black', 80)\n\n const c = Array.isArray(fontColor)\n ? theme.getColor(...fontColor)\n : theme.colors[fontColor]\n\n return c\n }};\n\n ${({\n borderless,\n theme: {\n colors: { lightestGrey },\n },\n }) => {\n if (borderless) return\n\n return css`\n border-bottom: 1px solid ${lightestGrey};\n :last-child {\n border-bottom: 1px solid transparent;\n }\n `\n }}\n\n ${({ hover, theme }) => {\n if (!hover) return\n\n const h: ColorOptions | [ColorOptions, OpacitiyOptions] =\n hover === true ? ['lightGrey', 50] : hover\n\n const c = Array.isArray(h) ? theme.getColor(...h) : theme.colors[h]\n\n return css`\n :hover {\n background-color: ${c};\n }\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { useContext } from '../Grid/context'\n\nimport Provider from './context'\nimport { RowProps, StyledRowProps } from './interfaces'\nimport * as S from './styles'\n\nconst Row = React.forwardRef<HTMLDivElement, RowProps>((props, ref) => {\n const context = useContext()\n\n const cols = { ...context.cols, ...(props.cols || {}) }\n\n const rowProps = filterObject<RowProps, StyledRowProps>(props, ['cols'], {\n ...context.rows,\n })\n\n return (\n <Provider.Provider value={{ cols }}>\n <S.Row ref={ref} {...rowProps} />\n </Provider.Provider>\n )\n})\n\nRow.displayName = 'Row'\n\nexport default Row\n","import Col from './components/Col'\nimport GridComponent from './components/Grid'\nimport Row from './components/Row'\n\nconst Grid = Object.assign(GridComponent, {\n Row,\n Col,\n})\n\nexport default Grid\n","import { useEffect } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { PortalProps } from './interfaces'\n\nconst Portal = (props: PortalProps) => {\n const { id, opened, children } = props\n\n const portalRoot = document.createElement('div')\n\n useEffect(() => {\n if (opened) {\n portalRoot.id = id + '-root'\n\n document.body.appendChild(portalRoot)\n\n return () => {\n document.body.removeChild(portalRoot)\n }\n }\n }, [opened])\n\n return opened ? createPortal(children, portalRoot) : null\n}\n\nexport default Portal\n","export const heights = {\n small: '356.4px' as string | number,\n medium: '549px' as string | number,\n large: '600px' as string | number,\n custom: '100%' as string | number,\n default: '356.4px' as string | number,\n} as const\n\nexport const widths = {\n small: '642.5px' as string | number,\n medium: '1010px' as string | number,\n large: '1095px' as string | number,\n custom: '100%' as string | number,\n default: '642.5px' as string | number,\n} as const\n","import styled, { css } from 'styled-components'\n\nimport { StyledModalProps } from './interfaces'\nimport { heights, widths } from './contants'\n\nexport const Background = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n backdrop-filter: blur(3px);\n background-color: ${({ theme }) => theme.getColor('black', 25)};\n`\n\nexport const Content = styled.div`\n flex: 1;\n position: relative;\n`\n\nexport const Header = styled.div`\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n ${({ theme: { colors, spacings, useTypography } }) => css`\n border-bottom: 1px solid ${colors.lightestGrey};\n padding: ${spacings.s4};\n\n ${useTypography('h1')}\n `}\n`\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n ${({ theme: { spacings, colors } }) => css`\n border-top: 1px solid ${colors.lightestGrey};\n padding: ${spacings.s3};\n `}\n`\n\nexport const FooterMessage = styled.div`\n max-width: 75%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n span {\n font-size: 14px;\n color: ${({ theme }) => theme.getColor('darkBlue', 75)};\n }\n`\n\nexport const FooterButtons = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const Container = styled.div<StyledModalProps>`\n display: flex;\n flex-direction: column;\n\n ${({ theme, size, customSize, color, inverted }) => css`\n background-color: ${theme.colors.white};\n box-shadow: 0 0 21px 7px ${theme.getColor('black', 15)};\n\n width: ${size === 'custom' && customSize\n ? customSize.width || 'auto'\n : widths[size]};\n\n height: ${size === 'custom' && customSize\n ? customSize.height || 'auto'\n : heights[size]};\n\n ${Header} {\n background-color: ${inverted\n ? theme.isDarkColor(color)\n : theme.colors[color]};\n color: ${inverted ? theme.colors[color] : theme.isDarkColor(color)};\n }\n `}\n`\n","import React, { useEffect } from 'react'\n\nimport Portal from '../../addons/Portal'\nimport Button from '../Button'\nimport Loader from '../Loader'\n\nimport { ModalProps } from './interfaces'\nimport { heights } from './contants'\nimport * as S from './styles'\n\nconst Modal = (props: ModalProps) => {\n const {\n openState,\n title,\n size,\n color,\n inverted,\n children,\n content,\n footer,\n footerMessage,\n loading,\n closeOnEsc,\n closeOnClickOutside,\n customSize,\n } = props\n\n const [open, setOpen] = openState\n\n const onClickOutside = (\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (\n closeOnClickOutside &&\n (event.target as HTMLDivElement).parentElement?.id\n ) {\n setOpen(false)\n }\n }\n\n useEffect(() => {\n const onEscDown = (event: KeyboardEvent) => {\n if (closeOnEsc && event.key === 'Escape') {\n event.preventDefault()\n\n setOpen(false)\n }\n }\n\n document.addEventListener('keydown', onEscDown)\n\n return () => {\n document.removeEventListener('keydown', onEscDown)\n }\n }, [])\n\n const _size = size ? heights[size] : heights.default\n\n return (\n <Portal opened={open || false} id='modal'>\n <S.Background onClick={onClickOutside}>\n <S.Container\n size={size || 'small'}\n color={color || 'blue'}\n inverted={+(inverted || false)}\n customSize={customSize}\n >\n <S.Header>{title}</S.Header>\n\n <S.Content>\n {loading ? (\n <Loader\n color='blue'\n size={`calc(${_size} * 0.1454)`}\n borderSize='3px'\n />\n ) : (\n children || content\n )}\n </S.Content>\n\n <S.Footer>\n <S.FooterMessage>\n {footerMessage &&\n (typeof footerMessage === 'string' ? (\n <span>{footerMessage}</span>\n ) : (\n footerMessage\n ))}\n </S.FooterMessage>\n\n <S.FooterButtons>\n {footer ? (\n footer.map(({ children, ...buttonProps }, index) => (\n <Button key={index} {...buttonProps}>\n {children}\n </Button>\n ))\n ) : (\n <Button\n content='OK'\n color={color || 'blue'}\n onClick={() => setOpen(false)}\n />\n )}\n </S.FooterButtons>\n </S.Footer>\n </S.Container>\n </S.Background>\n </Portal>\n )\n}\n\nexport default Modal\n","import styled from 'styled-components'\n\nexport const Content = styled.div`\n padding: ${({ theme }) => `${theme.spacings.s5} ${theme.spacings.s4}`};\n`\n","import React from 'react'\nimport Modal from '../../component'\n\nimport { ConfirmDeleteProps } from './interfaces'\nimport * as S from './styles'\n\nconst ConfirmDelete = (props: ConfirmDeleteProps) => {\n const {\n cancelAction,\n confirmAction,\n openState,\n content,\n children,\n title,\n closeOnClickOutside,\n closeOnEsc,\n } = props\n\n return (\n <Modal\n title={'Deletar ' + title}\n closeOnClickOutside={closeOnClickOutside}\n closeOnEsc={closeOnEsc}\n openState={openState}\n size='custom'\n customSize={{ width: '500px' }}\n color='greyishBlue'\n inverted\n footer={[\n {\n appearance: 'borderless',\n content: 'Cancelar',\n onClick: cancelAction,\n },\n {\n color: 'pink',\n content: 'Deletar',\n onClick: confirmAction,\n },\n ]}\n >\n <S.Content>{children || content}</S.Content>\n </Modal>\n )\n}\n\nexport default ConfirmDelete\n","import styled from 'styled-components'\n\nexport const Content = styled.div`\n padding: ${({ theme }) => `${theme.spacings.s5} ${theme.spacings.s4}`};\n`\n","import React from 'react'\nimport Modal from '../../component'\n\nimport { ConfirmSuccessProps } from './interfaces'\nimport * as S from './styles'\n\nconst ConfirmSuccess = (props: ConfirmSuccessProps) => {\n const {\n homeAction,\n cancelAction,\n confirmAction,\n openState,\n content,\n children,\n closeOnClickOutside,\n closeOnEsc,\n } = props\n\n return (\n <Modal\n title='Confirmação!'\n closeOnClickOutside={closeOnClickOutside}\n closeOnEsc={closeOnEsc}\n openState={openState}\n size='custom'\n customSize={{ width: '630px' }}\n color='greyishBlue'\n inverted\n footer={[\n {\n appearance: 'bordered',\n content: 'Ir para Home',\n onClick: homeAction,\n },\n {\n appearance: 'bordered',\n content: 'Continuar edição',\n onClick: cancelAction,\n },\n {\n content: 'Novo Cadastro',\n onClick: confirmAction,\n },\n ]}\n >\n <S.Content>{children || content}</S.Content>\n </Modal>\n )\n}\n\nexport default ConfirmSuccess\n","import styled from 'styled-components'\n\nexport const Content = styled.div`\n padding: ${({ theme }) => `${theme.spacings.s5} ${theme.spacings.s4}`};\n`\n","import React from 'react'\nimport Modal from '../../component'\n\nimport { AuditProps } from './interfaces'\nimport * as S from './styles'\n\nconst Audit = (props: AuditProps) => {\n const {\n cancelAction,\n confirmAction,\n openState,\n content,\n children,\n closeOnClickOutside,\n closeOnEsc,\n } = props\n\n return (\n <Modal\n title='Auditoria'\n closeOnClickOutside={closeOnClickOutside}\n closeOnEsc={closeOnEsc}\n openState={openState}\n size='custom'\n customSize={{ width: '500px' }}\n color='greyishBlue'\n inverted\n footer={[\n {\n appearance: 'borderless',\n content: 'Cancelar',\n onClick: cancelAction,\n },\n {\n content: 'Enviar',\n onClick: confirmAction,\n },\n ]}\n >\n <S.Content>{children || content}</S.Content>\n </Modal>\n )\n}\n\nexport default Audit\n","import Component from './component'\nimport { ConfirmDelete, ConfirmEdit, Audit } from './templates'\n\nconst Modal = Object.assign(Component, {\n ConfirmDelete,\n ConfirmEdit,\n Audit,\n})\n\nexport default Modal\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\n\nexport const Container = styled.div`\n width: 100%;\n height: 300px;\n position: absolute;\n padding: 14px;\n`\n\nexport const Header = styled.div`\n display: flex;\n`\n\nexport const HeaderImage = styled.div`\n width: 43px;\n height: 44px;\n background-color: #ebebeb;\n`\n\nexport const HeaderContent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex: 1;\n`\n\nexport const MainContent = styled.div`\n margin-top: 8px;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const MainLine = styled(HeaderLine)<HeaderLineProps>`\n margin-bottom: 14px;\n margin-left: 0;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template1 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.HeaderImage />\n <S.HeaderContent>\n <S.HeaderLine size='medium' height='9px' color='#E6E6E6' />\n <S.HeaderLine size='small' height='9px' color='#E6E6E6' />\n </S.HeaderContent>\n </S.Header>\n <S.MainContent>\n <S.MainLine size='medium' height='9px' color='#E6E6E6' />\n <S.MainLine size='small' height='9px' color='#E6E6E6' />\n <S.MainLine size='mini' height='9px' color='#E6E6E6' />\n <S.MainLine size='medium' height='9px' color='#E6E6E6' />\n <S.MainLine size='small' height='9px' color='#E6E6E6' />\n </S.MainContent>\n </S.Container>\n )\n}\n\nexport default Template1\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from './interfaces'\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n","import styled from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nimport { HeaderLine as HeaderLineStyle } from '../../styles'\n\nexport const Container = styled.div`\n width: 100%;\n max-height: 100%;\n position: absolute;\n padding: 14px;\n`\n\nexport const Template2Container = styled(Container)`\n background: #fff;\n border: 2px solid #ebebeb;\n`\n\nexport const Header = styled.div`\n display: flex;\n`\n\nexport const HeaderImage = styled.div`\n width: 43px;\n height: 44px;\n background-color: #ebebeb;\n`\n\nexport const HeaderContent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex: 1;\n`\n\nexport const MainContent = styled.div`\n margin-top: 8px;\n`\n\nexport const MainLine = styled(HeaderLineStyle)<HeaderLineProps>`\n margin-bottom: 14px;\n margin-left: 0;\n`\n\nexport const HeaderLine = styled(HeaderLineStyle)``\n","import React from 'react'\nimport * as S from './styles'\n\nimport { PlaceholderProps } from '../../interfaces'\n\nconst Template2 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Template2Container>\n <S.Header>\n <S.HeaderImage />\n <S.HeaderContent>\n <S.HeaderLine size='mini' height='9px' color='#E6E6E6' />\n <S.HeaderLine size='mini' height='9px' color='#E6E6E6' />\n </S.HeaderContent>\n </S.Header>\n <S.MainContent>\n <S.MainLine size='mini' height='9px' color='#E6E6E6' />\n <S.MainLine size='mini' height='9px' color='#E6E6E6' />\n </S.MainContent>\n </S.Template2Container>\n )\n}\n\nexport default Template2\n","import styled from 'styled-components'\nimport { HeaderLine } from '../../styles'\n\nexport const Container = styled.div`\n width: 100%;\n max-height: 100%;\n position: absolute;\n padding: 14px;\n`\n\nexport const Template3Container = styled(Container)``\nexport const Template3Line = styled(HeaderLine)`\n background-color: #dadada;\n height: ${(props) => props.height};\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template3 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Template3Container>\n <S.Template3Line size='large' height='7px' color='#DADADA' />\n <S.Template3Line size='small' height='7px' color='#DADADA' />\n <S.Template3Line size='medium' height='7px' color='#DADADA' />\n <S.Template3Line size='small' height='7px' color='#DADADA' />\n <S.Template3Line size='mini' height='7px' color='#DADADA' />\n </S.Template3Container>\n )\n}\n\nexport default Template3\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\n\nexport const Container = styled.div`\n width: 100%;\n max-height: 100%;\n position: absolute;\n padding: 14px;\n`\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\nexport const Template4Container = styled(Container)`\n border: 1px solid #e6e6e7;\n border-radius: 4px;\n`\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\nconst Template4 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Template4Container>\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='594px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='572px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='624px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='544px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width=' 607px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='581px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='601px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='251px' />\n </S.Template4Container>\n )\n}\n\nexport default Template4\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n position: absolute;\n width: 746px;\n height: 169px;\n border: 1px solid #e6e6e7;\n border-radius: 4px;\n padding: 14px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const Circle = styled.div`\n width: 141px;\n height: 141px;\n background-color: #dddedf;\n border-radius: 50%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n`\n\nexport const MainContent = styled.div`\n flex: 1;\n margin-left: 35px;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template5 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Circle />\n <S.MainContent>\n <S.CustomLine\n width='406px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n <S.CustomLine\n width='387px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n <S.CustomLine\n width='426px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n <S.CustomLine\n width='189px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n </S.MainContent>\n </S.Container>\n )\n}\n\nexport default Template5\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: #f5f5f5;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n`\n\nexport const Footer = styled.div`\n width: 100%;\n border-top: 1px solid #b1b1b3;\n height: 50px;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template6 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine\n width='274px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n <S.CustomLine\n width='274px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n <S.CustomLine\n width='274px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n </S.Header>\n </S.Container>\n )\n}\n\nexport default Template6\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 110px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const Main = styled.div`\n margin: 10px 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-evenly;\n`\nexport const Circle = styled.div`\n width: 30px;\n height: 30px;\n background-color: #ebebeb;\n border-radius: 50%;\n margin: 0 16px;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template7 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.Circle />\n <S.Circle />\n <S.Circle />\n <S.Circle />\n <S.Circle />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template7\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 110px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const Main = styled.div`\n padding: 14px;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template8 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.CustomLine\n width='217px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n <S.CustomLine\n width='217px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template8\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 245px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 7px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const Main = styled.div`\n padding: 14px;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nexport const Circle = styled.div`\n width: 128px;\n height: 128px;\n background-color: #ebebeb;\n border-radius: 50%;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template8 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n <S.CustomLine width='50px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.Circle />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template8\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 245px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 7px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const GraphLine = styled(CustomLine)`\n margin: 0 7px;\n`\n\nexport const Main = styled.div`\n flex: 1;\n padding: 0 7px 72px 7px;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: flex-end;\n justify-content: center;\n`\n\nexport const Circle = styled.div`\n width: 128px;\n height: 128px;\n background-color: #ebebeb;\n border-radius: 50%;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template10 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n <S.CustomLine width='50px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='73px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='61px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='73px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='61px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='27px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='90px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template10\n","import React from 'react'\n\nimport Template1 from './components/Template1'\nimport Template2 from './components/Template2'\nimport Template3 from './components/Template3'\nimport Template4 from './components/Template4'\nimport Template5 from './components/Template5'\nimport Template6 from './components/Template6'\nimport Template7 from './components/Template7'\nimport Template8 from './components/Template8'\nimport Template9 from './components/Template9'\nimport Template10 from './components/Template10'\n\nimport { PlaceholderProps } from './interfaces'\n\nconst Placeholder = (props: PlaceholderProps) => {\n switch (props.type) {\n case 'template1': {\n return <Template1 {...props} />\n }\n\n case 'template2': {\n return <Template2 {...props} />\n }\n case 'template3': {\n return <Template3 {...props} />\n }\n case 'template4': {\n return <Template4 {...props} />\n }\n\n case 'template5': {\n return <Template5 {...props} />\n }\n\n case 'template6': {\n return <Template6 {...props} />\n }\n case 'template7': {\n return <Template7 {...props} />\n }\n\n case 'template8': {\n return <Template8 {...props} />\n }\n case 'template9': {\n return <Template9 {...props} />\n }\n\n case 'template10': {\n return <Template10 {...props} />\n }\n }\n}\n\nexport default Placeholder\n","import styled, { css } from 'styled-components'\nimport { ProgressBarProps } from './interfaces'\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n span {\n display: inline-block;\n margin-left: 7px;\n color: #000000cc;\n }\n`\n\nexport const Progress = styled.div<ProgressBarProps>`\n width: 64px;\n height: 12px;\n border: 1px solid #e4e4e4;\n div {\n width: ${(props) => `${props.value}%`};\n max-width: 64px;\n height: 100%;\n ${(props) =>\n props.type === 'default' &&\n css`\n background-color: ${({ theme }) => theme.colors.warningGray};\n `}\n\n ${(props) =>\n props.type === 'info' &&\n css`\n background-color: ${({ theme }) => theme.colors.blue};\n `}\n ${(props) =>\n props.type === 'danger' &&\n css`\n background-color: ${({ theme }) => theme.colors.warningRed};\n `}\n ${(props) =>\n props.type === 'success' &&\n css`\n background-color: ${({ theme }) => theme.colors.green};\n `}\n ${(props) =>\n props.type === 'warning' &&\n css`\n background-color: ${({ theme }) => theme.colors.warningYellow};\n `}\n }\n`\n","import React from 'react'\nimport { ProgressBarProps } from './interfaces'\nimport * as S from './styles'\n\nconst ProgressBar = (props: ProgressBarProps) => {\n return (\n <S.Container>\n <S.Progress {...props}>\n <div />\n </S.Progress>\n <span> {props.value || '0'}%</span>\n </S.Container>\n )\n}\n\nexport default ProgressBar\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n position: absolute;\n top: 0;\n height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n background-color: #ecedef;\n opacity: 0.8;\n\n cursor: pointer;\n color: ${({ theme }) => theme.colors.darkBlue};\n\n transition-property: left, right;\n transition-timing-function: linear;\n transition-duration: 0.25s;\n\n z-index: 3;\n`\n","import React, { useCallback } from 'react'\nimport Icon from '../../../Icon'\nimport * as S from './styled'\n\nconst ScrollButton = (props: {\n mode: 'left' | 'right'\n visible: boolean\n scrollRef: HTMLDivElement | null\n}) => {\n const { mode, visible, scrollRef } = props\n\n const icon = `chevron_${mode}` as 'chevron_left' | 'chevron_right'\n\n const onClick = useCallback(() => {\n if (!scrollRef) return\n\n scrollRef.scrollBy({\n left:\n mode === 'left' ? -(scrollRef.scrollWidth + 1) : scrollRef.scrollWidth,\n behavior: 'smooth',\n })\n }, [scrollRef, mode])\n\n return (\n <S.Container\n className={['scroll-arrow', ...(visible ? ['visible'] : [])].join(' ')}\n onClick={onClick}\n >\n <Icon type='feather' icon={icon} width={16} height={16} color='black' />\n </S.Container>\n )\n}\n\nexport default ScrollButton\n","import styled, { css } from 'styled-components'\n\nexport const Container = styled.div<{ $internal?: boolean }>`\n overflow-x: auto;\n scrollbar-width: thin;\n scroll-behavior: smooth;\n display: flex;\n width: 100%;\n\n scrollbar-gutter: stable;\n\n -ms-overflow-style: none; /* IE / Edge antigos */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n }\n\n ${({ theme, $internal: internal }) =>\n internal &&\n css`\n gap: ${theme.spacings.s6};\n `}\n`\n","import React, { useCallback, useEffect, useState } from 'react'\n\nimport ScrollButton from '../ScrollButton'\nimport * as S from './styled'\n\ntype IScrollButton = React.PropsWithChildren<{\n activeTabIndex: number\n tabsLength: number\n internal: boolean | undefined\n}>\n\nconst ScrollButtons = (props: IScrollButton) => {\n const { activeTabIndex, tabsLength } = props\n\n const [ref, setRef] = useState<HTMLDivElement | null>(null)\n\n const [showLeftArrow, setShowLeftArrow] = useState(false)\n const [showRightArrow, setShowRightArrow] = useState(false)\n\n const checkScrollPosition = useCallback(() => {\n if (!ref) return\n if (ref.scrollWidth > ref.offsetWidth) {\n const { scrollLeft, scrollWidth, clientWidth } = ref\n\n setShowLeftArrow(scrollLeft > 10)\n setShowRightArrow(scrollWidth - clientWidth - scrollLeft > 10)\n } else {\n setShowLeftArrow(false)\n setShowRightArrow(false)\n }\n }, [ref])\n\n useEffect(() => {\n checkScrollPosition()\n\n window.addEventListener('resize', checkScrollPosition)\n return () => window.removeEventListener('resize', checkScrollPosition)\n }, [checkScrollPosition, tabsLength])\n\n // Faz o scroll para o item ativo\n useEffect(() => {\n if (!ref) return\n\n if (ref.scrollWidth <= ref.offsetWidth) return\n\n const element = ref.children[activeTabIndex] as HTMLElement | undefined\n if (!element) return\n\n element.scrollIntoView({\n behavior: 'smooth',\n inline: 'nearest',\n })\n }, [activeTabIndex, ref])\n\n return (\n <React.Fragment>\n <ScrollButton scrollRef={ref} mode='left' visible={showLeftArrow} />\n\n <S.Container\n ref={setRef}\n onWheel={(e) => {\n if (!ref) return\n\n const x = (ref.offsetWidth * 100) / ref.scrollWidth\n ref.scrollLeft += x * (e.deltaY > 0 ? 1 : -1) * 2\n\n e.preventDefault()\n }}\n onScroll={checkScrollPosition}\n $internal={props.internal}\n children={props.children}\n />\n\n <ScrollButton scrollRef={ref} mode='right' visible={showRightArrow} />\n </React.Fragment>\n )\n}\n\nexport default ScrollButtons\n","import { Tab, TabComponent, TabComponents, TabProvider } from './interfaces'\n\nexport const sortTabs = (\n tabs: (Tab & { index: number })[],\n sorted: (Tab & { index: number })[] = [],\n): (Tab & { index: number })[] => {\n if (tabs.length < 1) return sorted\n\n const tab = tabs[0]\n const { group } = tab\n\n // se a aba não possui grupo, apenas adicione-a na lista e siga a iteração\n if (!group) {\n return sortTabs(\n // remove a aba da iteração\n tabs.slice(1),\n // adiciona ela à lista ordenada\n [...sorted, tab],\n )\n }\n\n // se aba possui um grupo, devemos remover as abas do mesmo grupo da lista de iteração (tabs)\n // e adiciona-las na lista de forma ordenada (sorted)\n\n const res = tabs.reduce<{\n tabs: typeof tabs\n sorted: typeof sorted\n }>(\n ({ tabs, sorted }, t) => {\n // se ela não pertence ao grupo, mantem na lista de iteração (tabs)\n if (t.group !== group) {\n return {\n tabs: [...tabs, t],\n sorted,\n }\n }\n\n // se ela pertence ao grupo ela deve ser adicionada à lista ordenada (sorted)\n // se aba for primaria adiciona no inicio, se nao, no final\n return t.primary\n ? { tabs, sorted: [t, ...sorted] }\n : { tabs, sorted: [...sorted, t] }\n },\n {\n tabs: [],\n sorted: [],\n },\n )\n\n // continua a iteração\n return sortTabs(\n // lista de iteração sem as abas do grupo recém processado\n res.tabs,\n // abas já ordenadas, mais o grupo recém processado\n [...sorted, ...res.sorted],\n )\n}\n\nexport const hasChildren = (tabs: Tab[], group: string | undefined) => {\n return group ? tabs.some((tab) => tab.group === group && !tab.primary) : false\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const mapComponents = <C extends string, T = {}>(obj: {\n [K in C]: TabComponent<T>\n}): TabComponents<T, C> => {\n return obj\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const buildComponent = <T = {}>(\n component: TabComponent<T>,\n provider?: TabProvider<T>,\n): TabComponent<T> => {\n return provider ? Object.assign(component, { provider }) : component\n}\n","import styled from 'styled-components'\nexport const Close = styled.div`\n position: relative;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n background-color: var(--bgColor);\n color: var(--color);\n padding: 4px 8px;\n\n transition: --color 0.5s, --bgColor 0.5s;\n\n svg {\n width: 14px;\n height: 14px;\n\n * {\n transition: --color 0.5s;\n stroke: var(--color);\n }\n }\n`\n","import React, { useCallback } from 'react'\n\nimport Icon from '../../../../../Icon'\nimport { TabProps, TabsProps } from '../../../../interfaces'\n\nimport * as S from './styles'\n\nconst Close = (\n props: Pick<TabsProps, 'onClose'> & {\n index: number\n active: Exclude<TabsProps['active'], number>\n options: [TabProps[], React.Dispatch<React.SetStateAction<TabProps[]>>]\n },\n) => {\n const {\n index,\n active: [active, setActive],\n options: [options, setOptions],\n } = props\n const onClose = props.onClose || (() => true)\n\n const onClickClose = useCallback(\n async (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (options.length === 1) return\n\n const newOptions = [...options]\n newOptions.splice(index, 1)\n\n if (!(await onClose(index, options[index], event))) {\n return\n }\n\n const newactive = (() => {\n if (index < active) return active - 1\n return active > 0 ? active - 1 : active\n })()\n setActive(newactive, newOptions[newactive].data)\n\n setOptions(newOptions)\n },\n [options, active, index, onClose],\n )\n\n return (\n <S.Close>\n <Icon\n type='feather'\n icon='x'\n onClick={onClickClose}\n width='14px'\n height='14px'\n strokeWidth='3px'\n />\n </S.Close>\n )\n}\n\nexport default Close\n","import styled, { css } from 'styled-components'\nimport { TabsProps } from '../../../../interfaces'\n\nexport const StyledTab = styled.div<{\n $primary?: boolean\n $hasSiblings?: boolean\n $internal?: TabsProps['internal']\n}>`\n position: relative;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n cursor: ${({ onClick }) => (onClick ? 'pointer' : 'default')};\n\n background-color: var(--bgColor);\n color: var(--color);\n\n padding: ${({ theme }) => `${theme.spacings.s1} ${theme.spacings.s3}`};\n box-shadow: ${({ $internal, theme }) =>\n $internal ? 'none' : `0px 3px 6px ${theme.getColor('black', 15)}`};\n transition: --color 0.5s, --bgColor 0.5s;\n\n border-radius: ${({ $internal }) => ($internal ? '4px 4px 0 0' : 'none')};\n\n /* Pseudo-element para o degradê */\n &.overflow::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n width: 34px;\n height: 100%;\n\n background-image: linear-gradient(\n to right,\n transparent,\n var(--bgColor) 80%\n );\n transition: --color 0.5s, --bgColor 0.5s;\n }\n\n ${({ $primary, $hasSiblings, $internal }) =>\n $primary &&\n $hasSiblings &&\n !$internal &&\n css`\n &::before {\n content: '';\n position: absolute;\n left: 4px;\n top: 4px;\n bottom: 4px;\n width: 3px;\n background-color: var(--colorBefore);\n transition: --colorBefore 0.5s;\n border-radius: 2px;\n }\n `}\n`\n","import React, { useState } from 'react'\nimport { useEllipsis } from '../../../../../EllipsisContainer/functions'\nimport { TabsProps } from '../../../../interfaces'\nimport * as S from './styled'\n\ntype LabelItemProps = React.PropsWithChildren<{\n onClick?: () => void\n /** se a aba é primária do grupo */\n primary?: boolean\n /** se a aba primária possui mais de uma aba nesse grupo */\n hasSiblings?: boolean\n internal?: TabsProps['internal']\n}>\n\nconst LabelItem = (props: LabelItemProps) => {\n const { children, onClick, primary, hasSiblings, internal } = props\n\n const [ref, setRef] = useState<HTMLDivElement | null>(null)\n\n return (\n <S.StyledTab\n ref={setRef}\n $primary={primary}\n $hasSiblings={hasSiblings}\n $internal={internal}\n onClick={onClick}\n {...useEllipsis()}\n {...(ref && ref.scrollWidth > ref.offsetWidth\n ? {\n className: 'overflow',\n }\n : {})}\n children={children}\n />\n )\n}\n\nexport default LabelItem\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n @property --bgColor {\n syntax: '<color>';\n initial-value: #ffffff;\n inherits: false;\n }\n\n @property --color {\n syntax: '<color>';\n initial-value: #000000;\n inherits: false;\n }\n\n @property --colorBefore {\n syntax: '<color>';\n initial-value: #3455ab;\n inherits: false;\n }\n\n &.active *,\n &.active ::before,\n &.active ::after {\n --bgColor: #3455ab;\n --color: #ffffff;\n --colorBefore: #ffffff;\n }\n\n display: flex;\n\n max-width: 176px;\n position: relative;\n`\n","import React from 'react'\nimport { hasChildren } from '../../functions'\nimport { Tab, TabProps, TabsProps } from '../../interfaces'\nimport * as Component from './components'\nimport * as S from './styled'\n\ntype TabItemProps = {\n active: Exclude<TabsProps['active'], number>\n tabs: [Tab[], React.Dispatch<React.SetStateAction<TabProps[]>>]\n sortedTabs: (Tab & { index: number })[]\n} & Pick<TabsProps, 'onClose' | 'alwaysOpen' | 'internal'>\n\nconst VoidClose: typeof Component.Close = () => <React.Fragment />\n\nconst TabItem = (props: TabItemProps) => {\n const {\n active: [active, setActive],\n tabs: [tabs, setTabs],\n sortedTabs,\n onClose,\n alwaysOpen,\n } = props\n\n const CloseComponent =\n alwaysOpen || tabs.length < 2 ? VoidClose : Component.Close\n\n return (\n <React.Fragment>\n {sortedTabs.map(({ index, ...tab }) => {\n const isActive = index === active\n const hasSiblings = hasChildren(tabs, tab.group)\n const canClose = !props.internal && (!tab.primary || !hasSiblings)\n\n return (\n <S.Container\n key={index}\n {...(isActive ? { className: 'active' } : {})}\n >\n <Component.LabelItem\n children={tab.label}\n primary={tab.primary}\n hasSiblings={hasSiblings}\n onClick={isActive ? undefined : () => setActive(index, tab.data)}\n internal={props.internal}\n />\n\n {canClose && (\n <CloseComponent\n index={index}\n active={[active, setActive]}\n options={[tabs, setTabs]}\n onClose={onClose as TabsProps['onClose']}\n />\n )}\n </S.Container>\n )\n })}\n </React.Fragment>\n )\n}\n\nexport default TabItem\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../functions/formatters'\nimport { ThemeInterface } from '../../interfaces'\nimport { TabsProps } from './interfaces'\n\ntype TabsContainerProps = {\n $internal?: TabsProps['internal']\n $delimiter?: TabsProps['delimiter']\n $spacing?: TabsProps['spacing']\n}\n\nconst delimiters: {\n [K in Exclude<TabsProps['delimiter'], undefined | 'none'>]: Parameters<\n ThemeInterface['getColor']\n >\n} = {\n blue: ['blue'],\n grey: ['warningGray'],\n}\n\nexport const ComponentContainer = styled.div``\n\nexport const Tabs = styled.div<TabsContainerProps>`\n position: relative;\n overflow: hidden;\n\n display: flex;\n width: 100%;\n white-space: nowrap;\n\n ${({ $spacing: spacing }) => {\n const [top, right, bottom, left] = getSpacings(spacing || {}, {\n top: '0',\n right: '0',\n bottom: 's4',\n left: '0',\n }).split(' ')\n return css`\n margin: ${top} 0 ${bottom} 0;\n padding: 0 ${right} 0 ${left};\n `\n }}\n\n ${({ theme, $internal: internal, $delimiter: delimiter }) => {\n const border =\n delimiter === 'none'\n ? 'none'\n : internal\n ? `1px solid ${theme.getColor(...delimiters[delimiter || 'grey'])}`\n : `2px solid ${theme.getColor(...delimiters[delimiter || 'blue'])}`\n\n return css`\n border-bottom: ${border};\n + ${ComponentContainer} {\n border: 1px solid ${theme.getColor(...delimiters.grey)};\n border-top-width: 0px;\n border-radius: 0px 0px 2px 2px;\n padding: ${theme.spacings.s3};\n }\n `\n }}\n\n\n /* exibe as setas de navegação visíveis ao passar o mouse sobre o container */\n &:hover .scroll-arrow.visible:nth-child(1) {\n left: 0;\n }\n & .scroll-arrow:nth-child(1) {\n left: -16px;\n }\n\n &:hover .scroll-arrow.visible:nth-last-child(1) {\n right: 0;\n }\n & .scroll-arrow:nth-last-child(1) {\n right: -16px;\n }\n`\n","import React, { useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport * as Components from './components'\n\nimport { buildComponent, mapComponents, sortTabs } from './functions'\nimport {\n TabComponent,\n TabComponents,\n TabProps,\n TabProvider,\n TabsComponent,\n TabsProps,\n} from './interfaces'\nimport * as S from './styled'\n\nconst VoidProvider: TabProvider = (props) => (\n <React.Fragment children={props.children} />\n)\n\nconst Component: TabsComponent = (props) => {\n const components = (props.components || {}) as TabComponents\n\n const [options, setOptions] = (typeof props.options[1] === 'function'\n ? props.options\n : useState(props.options)) as never as [\n TabProps[],\n React.Dispatch<React.SetStateAction<TabProps[]>>,\n ]\n\n const [active, setActive] = (\n Array.isArray(props.active) ? props.active : useState(props.active)\n ) as Exclude<TabsProps['active'], number>\n\n const sortedTabs = sortTabs(options.map((tab, index) => ({ ...tab, index })))\n\n const activeTabIndex = sortedTabs.findIndex((tab) => tab.index === active)\n\n const divProps = filterObject<\n typeof props,\n React.HTMLAttributes<HTMLDivElement>\n >(props, [\n 'options',\n 'active',\n 'internal',\n 'maxTabs',\n 'onMaxTabsExceeded',\n 'onClose',\n 'alwaysOpen',\n 'delimiter',\n 'spacing',\n ])\n\n return (\n <React.Fragment>\n <S.Tabs\n {...divProps}\n $internal={props.internal}\n $delimiter={props.delimiter}\n $spacing={props.spacing}\n >\n <Components.ScrollButtons\n {...{\n activeTabIndex,\n tabsLength: options.length,\n internal: props.internal,\n }}\n >\n <Components.TabItem\n active={[active, setActive]}\n tabs={[options, setOptions]}\n sortedTabs={sortedTabs}\n onClose={props.onClose as TabsProps['onClose']}\n alwaysOpen={props.alwaysOpen}\n internal={props.internal}\n />\n </Components.ScrollButtons>\n </S.Tabs>\n\n {options.map((tab, index) => {\n if (tab.component === undefined) {\n return <React.Fragment key={index} />\n }\n\n const Component = components[tab.component] as TabComponent\n const Provider = Component.provider || VoidProvider\n\n const setTab: Parameters<TabProvider>[0]['setTab'] = (s) => {\n setOptions((prev) => {\n if (prev[index] !== tab) return prev\n const newTab = typeof s === 'function' ? s(prev[index]) : s\n if (prev[index] === newTab) return prev\n const newTabs = [...prev]\n newTabs[index] = { ...prev[index], ...newTab }\n return newTabs\n })\n }\n\n const setLabel: Parameters<TabProvider>[0]['setLabel'] = (s) => {\n setTab((prev) => {\n const label = typeof s === 'function' ? s(prev.label) : s\n return s === label ? prev : { ...prev, label }\n })\n }\n\n return (\n <Provider\n key={tab.key !== undefined ? tab.key : index}\n label={tab.label}\n data={tab.data}\n setTab={setTab}\n setLabel={setLabel}\n {...(index === active\n ? {\n active: true,\n children: (\n <S.ComponentContainer>\n <Component\n data={tab.data}\n label={tab.label}\n setLabel={setLabel}\n />\n </S.ComponentContainer>\n ),\n }\n : { active: false })}\n />\n )\n })}\n </React.Fragment>\n )\n}\n\nconst Tabs = Object.assign(Component, {\n mapComponents,\n buildComponent,\n})\n\nexport default Tabs\n","import styled from 'styled-components'\nimport { MwTextAreaProps } from './interfaces'\n\nexport const Container = styled.textarea<MwTextAreaProps>`\n width: ${(props) => `${props.width}`};\n height: ${(props) => `${props.height}`};\n resize: none;\n outline: 0;\n border: 1px solid #c8c8c8;\n padding: 14px;\n border-radius: 4px;\n color: #192338;\n`\n","import React from 'react'\nimport { MwTextAreaProps } from './interfaces'\nimport * as S from './styles'\n\nconst TextArea = (props: MwTextAreaProps): JSX.Element => {\n return <S.Container {...props} />\n}\n\nexport default TextArea\n","import styled, { css } from 'styled-components'\nimport { ToasterTypes } from './interfaces'\n\nexport const Container = styled.div<ToasterTypes>`\n border-radius: 4px;\n width: ${(props) => (props.size === 'large' ? '837px' : '460px')};\n height: 88px;\n border: 1px solid transparent;\n position: relative;\n\n ${(props) =>\n props.color === 'success' &&\n css`\n background-color: #fcfff5;\n opacity: 1;\n border-color: #a8c599;\n h4 {\n color: #1e561f;\n }\n p {\n color: #1e561fcc;\n }\n `}\n\n ${(props) =>\n props.color === 'error' &&\n css`\n background-color: #fff6f6;\n opacity: 1;\n border-color: #973937;\n h4 {\n color: #973937;\n }\n p {\n color: #973937;\n }\n `}\n\n ${(props) =>\n props.color === 'warning' &&\n css`\n background-color: #fffaf3;\n opacity: 1;\n border-color: #ccbea0;\n h4 {\n color: #7a4d05;\n }\n p {\n color: #7a4d05cc;\n }\n `}\n\n svg {\n cursor: pointer;\n position: absolute;\n top: 14px;\n right: 14px;\n width: 13px;\n height: 13px;\n }\n`\n\nexport const IconContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 14px 14px 0 0;\n margin: 0;\n`\n\nexport const IconContent = styled.div`\n width: 100%;\n padding: 13px 0 21px 28px;\n display: flex;\n flex: 1;\n flex-direction: column;\n\n h4 {\n margin-bottom: 7px;\n font-size: 18p;\n }\n p {\n margin: 0;\n font-size: 14px;\n max-width: 380px;\n }\n`\n","import React from 'react'\nimport { ToasterTypes } from './interfaces'\nimport MwIcon from '../../components/Icon'\nimport * as S from './styles'\n\nconst Toast = (props: ToasterTypes) => {\n return (\n <S.Container {...props}>\n <S.IconContainer>\n <MwIcon type='feather' icon='x' onClick={() => props.handlClose()} />\n </S.IconContainer>\n <S.IconContent>\n <h4>{props.title}</h4>\n <p> {props.description}</p>\n </S.IconContent>\n </S.Container>\n )\n}\n\nexport default Toast\n","import styled from 'styled-components'\n\nimport MwButton from '../Button'\nimport { StyledZoomProps } from './interfaces'\n\nexport const Image = styled.img`\n max-width: 100%;\n max-height: 100%;\n`\n\nexport const Container = styled.div<StyledZoomProps>`\n position: relative;\n display: inline-flex;\n\n &,\n ${Image} {\n width: ${({ width }) => {\n switch (typeof width) {\n case 'string':\n return width\n case 'number':\n return `${width}px`\n default:\n return 'auto'\n }\n }};\n\n height: ${({ height }) => {\n switch (typeof height) {\n case 'string':\n return height\n case 'number':\n return `${height}px`\n default:\n return 'auto'\n }\n }};\n }\n`\n\nexport const Dimmer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${({ theme }) => theme.getColor('greyishBlue', 50)};\n opacity: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: opacity 0.5s;\n cursor: pointer;\n\n :hover {\n opacity: 1;\n }\n`\n\nexport const Button = styled(MwButton)`\n background-color: ${({ theme }) => theme.getColor('white', 50)};\n`\n\nexport const ModalContent = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n\n img {\n max-height: 100%;\n max-width: 100%;\n }\n`\n","import React, { useState } from 'react'\nimport Modal from '../Modal'\n\nimport { ZoomProps } from './interfaces'\nimport * as S from './styles'\n\nconst Zoom = (props: ZoomProps) => {\n const { src, defaultClickOptions, ...imgProps } = props\n const [modalOpened, setModalOpened] = useState<boolean>(false)\n\n return (\n <React.Fragment>\n <S.Container {...imgProps} onClick={() => setModalOpened(true)}>\n <S.Image src={src} alt='zoom' />\n\n <S.Dimmer>\n <S.Button\n content='Zoom'\n color='white'\n onClick={() => setModalOpened(true)}\n />\n </S.Dimmer>\n </S.Container>\n\n <Modal\n openState={[modalOpened, setModalOpened]}\n size='large'\n title='Zoom'\n closeOnClickOutside\n // {...defaultClickOptions}\n >\n <S.ModalContent>\n <img src={src} alt='zoom' />\n </S.ModalContent>\n </Modal>\n </React.Fragment>\n )\n}\n\nexport default Zoom\n"],"names":["colors","black","blue","bronze","brown","darkBlue","darkestBlue","darkestGreen","darkestGrey","darkGreen","darkGrey","darkSilver","floralWhite","ghostWhite","green","grey","greyishBlue","iceWhite","lightBlue","lightestGrey","lightGreen","lightGrey","milkWhite","orange","pink","purple","red","silver","snowWhite","vanilla","warningGray","warningRed","warningYellow","white","yellow","opacities","spacings","s1","s2","s3","s4","s5","s6","fonts","lato","typographies","h1","fontFamily","fontWeight","fontSize","h2","h3","h4","h5","h6","p","stripAccents","value","normalize","replace","isKeyOf","object","key","Object","prototype","hasOwnProperty","call","isObject","toString","dateToIsoString","date","time","fullYear","pattern","dateData","getDate","padStart","getMonth","getFullYear","substring","dateStr","join","tmp","timeStr","getHours","getMinutes","getSeconds","keys","notEmptyString","trim","isBoolean","isString","isDateInstance","Date","isNaN","valueOf","dateCompare","a","b","operation","h","m","s","operations","eq","getTime","gt","gte","lt","lte","setHours","methods","ms","forEach","k","method","isValidTime","format","c","sep","conditions","map","f","content","re","RegExp","match","strCmp","x","y","options","ignoreAccents","ignoreCase","contain","toUpperCase","includes","filterObject","remove","inital","r","filter","reduce","prev","isoStringToDate","split","d","t","reverse","slice","padEnd","getWeekNumber","weekSunday","setDate","getUTCDay","yearStart","UTC","getUTCFullYear","weekNumber","Math","ceil","getMonthName","months","monthName","getFirstWeek","year","today","undefined","setFullYear","week","weekYear","getLastWeek","getSpacings","defaults","top","left","bottom","right","spacing","values","getBorder","config","Transition","props","active","mountDuration","element","useState","render","setRender","useEffect","timeoutId","setTimeout","clearTimeout","useTransition","animation","enabled","css","disabled","properties","durations","functions","push","duration","function","concat","length","positions","pointerSize","pointerPositions","distance","size","Container","styled","div","theme","useTypography","getColor","bgColor","zIndex","width","height","maxWidth","maxHeight","position","references","pointer","transition","color","AbsoluteContainer","React","forwardRef","fowardedRef","open","boundRef","center","axis","ref","setRef","getPosition","useCallback","rect","getBoundingClientRect","offsetTop","offsetLeft","offsetWidth","offsetHeight","window","innerWidth","innerHeight","xDirection","yDirection","newPosition","setPosition","useImperativeHandle","htmlProps","cssKeys","propsTransition","S","children","displayName","icons","activity","activity_icon","airplay","airplay_icon","alert_circle","alert_circle_icon","alert_octagon","alert_octagon_icon","alert_triangle","alert_triangle_icon","align_center","align_center_icon","align_justify","align_justify_icon","align_left","align_left_icon","align_right","align_right_icon","anchor","anchor_icon","aperture","aperture_icon","archive","archive_icon","arrow_down","arrow_down_icon","arrow_down_circle","arrow_down_circle_icon","arrow_down_left","arrow_down_left_icon","arrow_down_right","arrow_down_right_icon","arrow_left","arrow_left_icon","arrow_left_circle","arrow_left_circle_icon","arrow_right","arrow_right_icon","arrow_right_circle","arrow_right_circle_icon","arrow_up","arrow_up_icon","arrow_up_circle","arrow_up_circle_icon","arrow_up_left","arrow_up_left_icon","arrow_up_right","arrow_up_right_icon","at_sign","at_sign_icon","award","award_icon","bar_chart","bar_chart_icon","bar_chart_2","bar_chart_2_icon","battery","battery_icon","battery_charging","battery_charging_icon","bell","bell_icon","bell_off","bell_off_icon","bluetooth","bluetooth_icon","bold","bold_icon","book","book_icon","book_open","book_open_icon","bookmark","bookmark_icon","box","box_icon","briefcase","briefcase_icon","calendar","calendar_icon","camera","camera_icon","camera_off","camera_off_icon","cast","cast_icon","check","check_icon","check_circle","check_circle_icon","check_square","check_square_icon","chevron_down","chevron_down_icon","chevron_left","chevron_left_icon","chevron_right","chevron_right_icon","chevron_up","chevron_up_icon","chevrons_down","chevrons_down_icon","chevrons_left","chevrons_left_icon","chevrons_right","chevrons_right_icon","chevrons_up","chevrons_up_icon","chrome","chrome_icon","circle","circle_icon","clipboard","clipboard_icon","clock","clock_icon","cloud","cloud_icon","cloud_drizzle","cloud_drizzle_icon","cloud_lightning","cloud_lightning_icon","cloud_off","cloud_off_icon","cloud_rain","cloud_rain_icon","cloud_snow","cloud_snow_icon","code","code_icon","codepen","codepen_icon","codesandbox","codesandbox_icon","coffee","coffee_icon","columns","columns_icon","command","command_icon","compass","compass_icon","copy","copy_icon","corner_down_left","corner_down_left_icon","corner_down_right","corner_down_right_icon","corner_left_down","corner_left_down_icon","corner_left_up","corner_left_up_icon","corner_right_down","corner_right_down_icon","corner_right_up","corner_right_up_icon","corner_up_left","corner_up_left_icon","corner_up_right","corner_up_right_icon","cpu","cpu_icon","credit_card","credit_card_icon","crop","crop_icon","crosshair","crosshair_icon","database","database_icon","delete","delete_icon","disc","disc_icon","divide","divide_icon","divide_circle","divide_circle_icon","divide_square","divide_square_icon","dollar_sign","dollar_sign_icon","download","download_icon","download_cloud","download_cloud_icon","dribbble","dribbble_icon","droplet","droplet_icon","edit","edit_icon","edit_2","edit_2_icon","edit_3","edit_3_icon","external_link","external_link_icon","eye","eye_icon","eye_off","eye_off_icon","facebook","facebook_icon","fast_forward","fast_forward_icon","feather","feather_icon","figma","figma_icon","file","file_icon","file_minus","file_minus_icon","file_plus","file_plus_icon","file_text","file_text_icon","film","film_icon","filter_icon","flag","flag_icon","folder","folder_icon","folder_minus","folder_minus_icon","folder_plus","folder_plus_icon","framer","framer_icon","frown","frown_icon","gift","gift_icon","git_branch","git_branch_icon","git_commit","git_commit_icon","git_merge","git_merge_icon","git_pull_request","git_pull_request_icon","github","github_icon","gitlab","gitlab_icon","globe","globe_icon","grid","grid_icon","hard_drive","hard_drive_icon","hash","hash_icon","headphones","headphones_icon","heart","heart_icon","help_circle","help_circle_icon","hexagon","hexagon_icon","home","home_icon","image","image_icon","inbox","inbox_icon","info","info_icon","instagram","instagram_icon","italic","italic_icon","key_icon","layers","layers_icon","layout","layout_icon","life_buoy","life_buoy_icon","link","link_icon","link_2","link_2_icon","linkedin","linkedin_icon","list","list_icon","loader","loader_icon","lock","lock_icon","log_in","log_in_icon","log_out","log_out_icon","mail","mail_icon","map_icon","map_pin","map_pin_icon","maximize","maximize_icon","maximize_2","maximize_2_icon","meh","meh_icon","menu","menu_icon","message_circle","message_circle_icon","message_square","message_square_icon","mic","mic_icon","mic_off","mic_off_icon","minimize","minimize_icon","minimize_2","minimize_2_icon","minus","minus_icon","minus_circle","minus_circle_icon","minus_square","minus_square_icon","monitor","monitor_icon","moon","moon_icon","more_horizontal","more_horizontal_icon","more_vertical","more_vertical_icon","mouse_pointer","mouse_pointer_icon","move","move_icon","music","music_icon","navigation","navigation_icon","navigation_2","navigation_2_icon","octagon","octagon_icon","package","package_icon","paperclip","paperclip_icon","pause","pause_icon","pause_circle","pause_circle_icon","pen_tool","pen_tool_icon","percent","percent_icon","phone","phone_icon","phone_call","phone_call_icon","phone_forwarded","phone_forwarded_icon","phone_incoming","phone_incoming_icon","phone_missed","phone_missed_icon","phone_off","phone_off_icon","phone_outgoing","phone_outgoing_icon","pie_chart","pie_chart_icon","play","play_icon","play_circle","play_circle_icon","plus","plus_icon","plus_circle","plus_circle_icon","plus_square","plus_square_icon","pocket","pocket_icon","power","power_icon","printer","printer_icon","radio","radio_icon","refresh_ccw","refresh_ccw_icon","refresh_cw","refresh_cw_icon","repeat","repeat_icon","rewind","rewind_icon","rotate_ccw","rotate_ccw_icon","rotate_cw","rotate_cw_icon","rss","rss_icon","save","save_icon","scissors","scissors_icon","search","search_icon","send","send_icon","server","server_icon","settings","settings_icon","share","share_icon","share_2","share_2_icon","shield","shield_icon","shield_off","shield_off_icon","shopping_bag","shopping_bag_icon","shopping_cart","shopping_cart_icon","shuffle","shuffle_icon","sidebar","sidebar_icon","skip_back","skip_back_icon","skip_forward","skip_forward_icon","slack","slack_icon","slash","slash_icon","sliders","sliders_icon","smartphone","smartphone_icon","smile","smile_icon","speaker","speaker_icon","square","square_icon","star","star_icon","stop_circle","stop_circle_icon","sun","sun_icon","sunrise","sunrise_icon","sunset","sunset_icon","table","table_icon","tablet","tablet_icon","tag","tag_icon","target","target_icon","terminal","terminal_icon","thermometer","thermometer_icon","thumbs_down","thumbs_down_icon","thumbs_up","thumbs_up_icon","toggle_left","toggle_left_icon","toggle_right","toggle_right_icon","tool","tool_icon","trash","trash_icon","trash_2","trash_2_icon","trello","trello_icon","trending_down","trending_down_icon","trending_up","trending_up_icon","triangle","triangle_icon","truck","truck_icon","tv","tv_icon","twitch","twitch_icon","twitter","twitter_icon","type","type_icon","umbrella","umbrella_icon","underline","underline_icon","unlock","unlock_icon","upload","upload_icon","upload_cloud","upload_cloud_icon","user","user_icon","user_check","user_check_icon","user_minus","user_minus_icon","user_plus","user_plus_icon","user_x","user_x_icon","users","users_icon","video","video_icon","video_off","video_off_icon","voicemail","voicemail_icon","volume","volume_icon","volume_1","volume_1_icon","volume_2","volume_2_icon","volume_x","volume_x_icon","watch","watch_icon","wifi","wifi_icon","wifi_off","wifi_off_icon","wind","wind_icon","x_icon","x_circle","x_circle_icon","x_octagon","x_octagon_icon","x_square","x_square_icon","youtube","youtube_icon","zap","zap_icon","zap_off","zap_off_icon","zoom_in","zoom_in_icon","zoom_out","zoom_out_icon","SemanticIcon","Icon","fontcolor","onClick","SVGContainer","strokeWidth","getCommonProps","commonProps","Component","icon","name","Error","keyframes","Loader","borderSize","filled","beforeColor","afterColor","fill","fillColor","isMaskFunction","isMaskReplace","Array","isArray","isMaskReplaceArray","getMask","mask","find","newValue","e","updateTitle","event","dataset","parentElement","scrollWidth","scrollHeight","title","innerText","removeAttribute","voidF","useEllipsis","onMouseOver","originalHandler","handler","EllipsisContainer","lines","IconContainer","ChildrenContainer","Input","input","invalid","$invalid","placeholder","paddingless","$paddingless","borderless","$borderless","arrows","$arrows","readOnly","InputContainer","Label","label","$width","$disabled","viewMode","$viewMode","$readOnly","loading","$loading","iconWidths","$iconWidths","$iconPosition","padding","LabelText","required","$required","ViewModeContainer","defaultValue","isRequired","isInvalid","isViewMode","isDisabled","Context","createContext","useContext","context","Provider","Form","assign","formProps","clearable","onPressEnter","masked","setValue","inputProps","onChange","selectionStart","selectionEnd","start","end","setSelectionRange","onKeyDown","_onPressEnter","preventDefault","onKeyUp","v","onKeyDownCapture","onKeyUpCapture","callback","dirty","onDirty","htmlDisabled","htmlReadOnly","inputWidth","Fragment","Checkmark","$padding","_padding","bordered","$bordered","LabelContent","Checkbox","LabelComponent","useOnClickOut","listener","contains","document","addEventListener","removeEventListener","inputTimeWidth","withSeconds","withoutSeconds","BeforeAfterContainer","fluid","$fluid","$spacing","background","$background","args","OverflowContainer","$height","$maxHeight","RelativeContainer","isAfterBefore","isValidElement","getBeforeAfter","ScrollContainer","onScrollEnd","setLastPagination","onScroll","currentTarget","nativeEvent","scrollTopMax","scrollTop","now","diff","abs","_onScroll","before","empty","after","Option","border","$border","pos","cfg","style","highlighted","$highlighted","containerSpacing","itemSpacing","Delimiter","isVisible","elem","bound","docViewTop","docViewBottom","elemTop","elemBottom","MenuComponent","close","highlight","scrollRef","setScrollRef","scrollTo","absoluteContainerProps","emptyContent","scrollSpacing","tabIndex","scrollTabIndex","option","index","delimiter","keepOpen","caret","data","closeMenu","OptionContent","rule","rules","result","_onClick","Popup","on","inverted","wide","popperModifiers","boundariesElement","trigger","labelOptions","Menu","LabelContainer","CalendarContainer","MwAbsoluteContainer","MonthContainer","MonthName","MonthBtn","NavBtn","button","MonthPicker","min","max","setYear","sizes","medium","small","mini","types","default","danger","success","warning","labelColor","Indicator","Footer","WeekContainer","Header","DayContainer","appearance","activeColor","hover","DayIndicator","attrs","getCalendar","month","days","getDay","unshift","weeks","i","getMiddle","getFullDate","hours","parsed","parseInt","isDateBetween","getTimeFromDate","timeOptions","seconds","getInitialCalendar","lineHeight","minWidth","minHeight","tiny","large","big","FontStyles","createGlobalStyle","Globals","opacity","typography","isDarkColor","ifDark","ifLight","hex","luminosity","components","ThemeProvider","Main","initialMonth","selectOpen","setSelectOpen","setLoading","onChangeMonth","_setCalendar","setCalendar","newv","isControlled","toISOString","first","last","firstDay","lastDay","changeMonth","add","setMonth","getPrev","getNext","details","day","onMouseOut","indicator","some","BasicCalendar","containerProps","Time","_onKeyDown","todayDate","curH","curM","curS","setMinutes","setSeconds","getValue","dates","n","sort","getCalendar2","calendar1","getTimeProps","Button","borderColor","defaultValues","loaderSize","SubmitButton","CalendarsContainer","initialValue","setInvalid","setTime","_setCalendar1","setCalendar1","calendar2","_setCalendar2","setCalendar2","hoverDay","setHoverDay","timeProps","c1","c2","_getDay","side","dayProps","_onMouseOver","_onMouseOut","calendarProps","timeInvalid","submitProps","onSubmit","middle","inputs","CalendarInterval","mainProps","absolute","SingleCalendar","CalendarSingle","Calendar","IntervalCalendar","JSDate","isLeapYear","picker","setOpen","curD","curY","EmptyContentContainer","HiddenInput","isAvailable","useNavigation","setHighlight","onSelectHighlight","current","onFocus","findIndex","onBlur","HeaderContainer","searchInput","setSearchInput","getOptions","onSelect","selected","isSelected","getSelected","selectedIndex","getInputContent","selectedOption","mode","useSelect","setOptions","parsedOptions","onReset","inputContent","getContext","base","onClear","checked","isDirty","marginRight","Link","colorSetting","def","normal","SelectAllContainer","setChecked","o","selectAll","isChecked","newState","parseValue","useSelectMultiple","initial","news","splice","returnData","Select","initialLoader","hook","menuProps","_loading","_setSearch","page","setPage","lastPage","setLastPage","setSearch","_onScrollEnd","optionsResult","filtered","getWithOptions","isEmpty","Password","visibility","setVisibility","visible","hidden","coordinates","ar","br","cl","es","us","mx","py","pt","uy","Flag","flags","iso","countries","ddi","validation","charLimit","getPhoneDetails","splitted","shift","country","valid","test","withDDI","inputValue","setInputValue","setCountry","Phone","iconWidth","borderwidth","DatePicker","onAdd","onSub","keepSpace","$keepSpace","Switch","labelProps","bullet","bulletSize","$bulletSize","activeBullet","$activeBullet","SelectedArea","NavBar","$position","strict","$strict","Marker","$left","firstChild","$firstChild","lastChild","$lastChild","$bullet","MinMaxLabelContainer","LabelsContainer","MarkersContainer","getMarkers","markers","step","parseFloat","getMarkerLeft","range","z","getLeftCalc","calc","getBarLeft","getIndicatorLeft","Range","minLabel","maxLabel","hideNavbar","spans","currentValue","_onChange","_event","increment","canIncrement","decrement","canDecrement","marker","_value","RadioButton","validate","intervalTypes","getMinMax","firstWeek","lastWeek","custom","pop","identify","expectedStart","expectedEnd","parse","only","intervalType","setIntervalType","newIntervalType","getArrowProps","func","nextValue","toOpen","incrementProps","decrementProps","useDefaultDateIntervalState","Tag","onClose","TagContainer","Tags","onBeforeAdd","validateUnique","unique","getValueThroughDate","steps","hour","minute","second","DateTime","cur","minutes","len","DateIntervalPicker","DefaultInput","Title","Item","AppliedFiltersMenu","appliedFilters","setAppliedFilters","searched","setSearched","onSubmitSearch","onClearSearch","onRemove","labels","text","gap","$gap","getContent","buttonProps","AppliedFilters","borderType","Card","rest","_setSearched","allowEmptySearch","withSearch","EmptyMessage","getInstance","item","isDynamic","intialOptions","optionSpacing","Submenu","closeParent","setFirstRender","onSearch","newOptions","force","changed","firstRender","onClickOption","optionsParser","FiltersMenu","setActive","items","subContainerProps","Filters","cols","aligns","self","horizontal","vertical","around","between","Col","w","spacingAround","align","styles","fontColor","backgroundColor","_props","colProps","ellipsis","rows","Grid","gridProps","horizontalAligns","verticalAligns","Row","horizontalAlign","verticalAlign","striped","even","odd","rowProps","GridComponent","Portal","id","opened","portalRoot","createElement","body","appendChild","removeChild","createPortal","heights","widths","Background","Content","FooterMessage","FooterButtons","customSize","Modal","openState","footer","footerMessage","closeOnEsc","closeOnClickOutside","onClickOutside","onEscDown","_size","ConfirmDelete","cancelAction","confirmAction","ConfirmSuccess","homeAction","Audit","ConfirmEdit","HeaderImage","HeaderContent","MainContent","HeaderLine","MainLine","Template1","Template2Container","HeaderLineStyle","Template2","Template3Container","Template3Line","Template3","Template4Container","CustomLine","Template4","Circle","Template5","Template6","Template7","Template8","GraphLine","Template10","Placeholder","Template9","Progress","ProgressBar","ScrollButton","scrollBy","behavior","className","internal","$internal","ScrollButtons","activeTabIndex","tabsLength","showLeftArrow","setShowLeftArrow","showRightArrow","setShowRightArrow","checkScrollPosition","scrollLeft","clientWidth","scrollIntoView","inline","onWheel","deltaY","sortTabs","tabs","sorted","tab","group","res","primary","hasChildren","mapComponents","obj","buildComponent","component","provider","Close","onClickClose","newactive","StyledTab","$primary","$hasSiblings","LabelItem","hasSiblings","VoidClose","TabItem","setTabs","sortedTabs","alwaysOpen","CloseComponent","isActive","canClose","delimiters","ComponentContainer","Tabs","$delimiter","VoidProvider","divProps","Components","setTab","newTab","newTabs","setLabel","textarea","TextArea","IconContent","Toast","MwIcon","handlClose","description","Image","img","Dimmer","MwButton","ModalContent","Zoom","src","defaultClickOptions","imgProps","modalOpened","setModalOpened","alt"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/theme/constants.ts","../src/functions/common.ts","../src/functions/validators.ts","../src/functions/formatters.ts","../src/components/Transition/components/Transition/index.ts","../src/components/Transition/hooks/useTransition/index.ts","../src/components/AbsoluteContainer/styles.ts","../src/components/AbsoluteContainer/index.tsx","../src/assets/icons/feather/index.ts","../src/components/Icon/styled.ts","../src/components/Icon/index.tsx","../src/components/Loader/index.ts","../src/components/Input/functions.ts","../src/components/EllipsisContainer/functions.ts","../src/components/EllipsisContainer/styled.tsx","../src/components/EllipsisContainer/index.tsx","../src/components/Input/components/Input/styles.ts","../src/components/Form/context.tsx","../src/components/Form/index.tsx","../src/components/Input/components/Input/index.tsx","../src/components/Input/components/Checkbox/styles.ts","../src/components/Input/components/Checkbox/index.tsx","../src/hooks/onClickOut.ts","../src/components/Calendar/constants.ts","../src/components/ScrollContainer/styles/BeforeAfterContainer/index.ts","../src/components/ScrollContainer/styles/Container/index.ts","../src/components/ScrollContainer/styles/OverflowContainer/index.ts","../src/components/ScrollContainer/styles/RelativeContainer/index.ts","../src/components/ScrollContainer/index.tsx","../src/components/Menu/styles.ts","../src/components/Menu/index.tsx","../src/components/Calendar/components/Basic/styles.ts","../src/components/Calendar/components/Basic/components/MonthPicker/index.tsx","../src/components/Indicator/constants.ts","../src/components/Indicator/styles.ts","../src/components/Indicator/index.tsx","../src/components/Calendar/components/Basic/components/Main/styles.ts","../src/components/Calendar/functions.ts","../src/components/Button/constants.ts","../src/components/Button/theme.ts","../src/components/theme.ts","../src/theme/globals.tsx","../src/theme/index.tsx","../src/components/Calendar/components/Basic/components/Main/index.tsx","../src/components/Calendar/components/Basic/index.tsx","../src/components/Input/components/Time/index.tsx","../src/components/Calendar/components/Interval/components/Main/functions.ts","../src/components/Button/styles.ts","../src/components/Button/index.tsx","../src/components/Calendar/styles.ts","../src/components/Calendar/components/Interval/components/Main/styles.ts","../src/components/Calendar/components/Interval/components/Main/index.tsx","../src/components/Calendar/components/Interval/index.tsx","../src/components/Calendar/components/Single/components/Main/index.tsx","../src/components/Calendar/components/Single/index.tsx","../src/components/Calendar/index.tsx","../src/components/Input/components/Date/functions.ts","../src/components/Input/components/Date/styles.ts","../src/components/Input/components/Date/index.tsx","../src/components/Input/components/Select/styles.ts","../src/components/Input/components/Select/hooks/Navigation/index.ts","../src/components/Input/components/Select/hooks/Select/context.ts","../src/components/Input/components/Select/hooks/Select/components/Header/styles.ts","../src/components/Input/components/Select/hooks/Select/components/Header/index.tsx","../src/components/Input/components/Select/hooks/Select/index.tsx","../src/components/Input/components/Select/hooks/SelectMultiple/context.ts","../src/components/Input/components/Select/hooks/SelectMultiple/components/Footer/index.tsx","../src/components/Link/index.ts","../src/components/Input/components/Select/hooks/SelectMultiple/components/Header/styles.ts","../src/components/Input/components/Select/hooks/SelectMultiple/components/Header/index.tsx","../src/components/Input/components/Select/hooks/SelectMultiple/components/Label/index.tsx","../src/components/Input/components/Select/hooks/SelectMultiple/index.tsx","../src/components/Input/components/Select/index.tsx","../src/components/Input/components/Password/index.tsx","../src/assets/icons/flags/flags.ts","../src/assets/icons/flags/index.ts","../src/components/Input/components/Phone/countries.ts","../src/components/Input/components/Phone/styles.ts","../src/components/Input/components/Phone/index.tsx","../src/components/Input/components/DatePicker/styles.ts","../src/components/Input/components/DatePicker/index.tsx","../src/components/Input/components/Switch/styles.ts","../src/components/Input/components/Switch/index.tsx","../src/components/Input/components/Range/styles/Input/index.ts","../src/components/Input/components/Range/styles/SelectedArea/index.ts","../src/components/Input/components/Range/styles/InputContainer/index.ts","../src/components/Input/components/Range/styles/LabelContainer/index.ts","../src/components/Input/components/Range/styles/NavBar/index.ts","../src/components/Input/components/Range/styles/Label/index.ts","../src/components/Input/components/Range/styles/Marker/index.ts","../src/components/Input/components/Range/styles/MinMaxLabelContainer/index.ts","../src/components/Input/components/Range/styles/LabelsContainer/index.ts","../src/components/Input/components/Range/styles/MarkersContainer/index.ts","../src/components/Input/components/Range/styles/ViewModeContainer/index.ts","../src/components/Input/components/Range/index.tsx","../src/components/Input/components/RadioButton/styles.ts","../src/components/Input/components/RadioButton/index.tsx","../src/components/Input/components/DateIntervalPicker/functions.ts","../src/components/Input/components/DateIntervalPicker/styles.ts","../src/components/Input/components/DateIntervalPicker/index.tsx","../src/components/Input/components/Tags/components/Input/styles.ts","../src/components/Input/components/Tags/components/Input/index.tsx","../src/components/Input/components/Tags/components/Label/styles.ts","../src/components/Input/components/Tags/components/Label/index.tsx","../src/components/Input/components/Tags/components/Tag/styles.ts","../src/components/Input/components/Tags/components/Tag/index.tsx","../src/components/Input/components/Tags/styles.ts","../src/components/Input/components/Tags/index.tsx","../src/components/Input/components/DateTime/styles.ts","../src/components/Input/components/DateTime/index.tsx","../src/components/Input/index.tsx","../src/components/Filters/AppliedFilters/components/Menu/styles.ts","../src/components/Filters/AppliedFilters/components/Menu/index.tsx","../src/components/Filters/Button/styles.ts","../src/components/Filters/Button/index.tsx","../src/components/Filters/AppliedFilters/index.tsx","../src/components/Card/styled.ts","../src/components/Card/index.tsx","../src/components/Filters/Filters/components/Submenu/components/Header/styles.ts","../src/components/Filters/Filters/components/Submenu/components/Header/index.tsx","../src/components/Filters/Filters/components/Submenu/styles.ts","../src/components/Filters/Filters/components/Submenu/index.tsx","../src/components/Filters/Filters/components/Menu/index.tsx","../src/components/Filters/Filters/index.tsx","../src/components/Grid/components/Row/context.ts","../src/components/Grid/components/Col/styles.ts","../src/components/Grid/components/Col/index.tsx","../src/components/Grid/components/Grid/context.ts","../src/components/Grid/components/Grid/styles.ts","../src/components/Grid/components/Grid/index.tsx","../src/components/Grid/components/Row/styles.ts","../src/components/Grid/components/Row/index.tsx","../src/components/Grid/index.ts","../src/addons/Portal/index.ts","../src/components/Modal/contants.ts","../src/components/Modal/styles.ts","../src/components/Modal/component.tsx","../src/components/Modal/templates/ConfirmDelete/styles.ts","../src/components/Modal/templates/ConfirmDelete/index.tsx","../src/components/Modal/templates/ConfirmEdit/styles.ts","../src/components/Modal/templates/ConfirmEdit/index.tsx","../src/components/Modal/templates/Audit/styles.ts","../src/components/Modal/templates/Audit/index.tsx","../src/components/Modal/index.ts","../src/components/Placeholder/components/Template1/styles.ts","../src/components/Placeholder/components/Template1/index.tsx","../src/components/Placeholder/styles.ts","../src/components/Placeholder/components/Template2/styles.ts","../src/components/Placeholder/components/Template2/index.tsx","../src/components/Placeholder/components/Template3/styles.ts","../src/components/Placeholder/components/Template3/index.tsx","../src/components/Placeholder/components/Template4/styles.ts","../src/components/Placeholder/components/Template4/index.tsx","../src/components/Placeholder/components/Template5/styles.ts","../src/components/Placeholder/components/Template5/index.tsx","../src/components/Placeholder/components/Template6/styles.ts","../src/components/Placeholder/components/Template6/index.tsx","../src/components/Placeholder/components/Template7/styles.ts","../src/components/Placeholder/components/Template7/index.tsx","../src/components/Placeholder/components/Template8/styles.ts","../src/components/Placeholder/components/Template8/index.tsx","../src/components/Placeholder/components/Template9/styles.ts","../src/components/Placeholder/components/Template9/index.tsx","../src/components/Placeholder/components/Template10/styles.ts","../src/components/Placeholder/components/Template10/index.tsx","../src/components/Placeholder/index.tsx","../src/components/ProgressBar/styles.ts","../src/components/ProgressBar/index.tsx","../src/components/Tabs/components/ScrollButton/styled.ts","../src/components/Tabs/components/ScrollButton/index.tsx","../src/components/Tabs/components/ScrollButtons/styled.ts","../src/components/Tabs/components/ScrollButtons/index.tsx","../src/components/Tabs/functions.ts","../src/components/Tabs/components/TabItem/components/Close/styles.ts","../src/components/Tabs/components/TabItem/components/Close/index.tsx","../src/components/Tabs/components/TabItem/components/LabelItem/styled.ts","../src/components/Tabs/components/TabItem/components/LabelItem/index.tsx","../src/components/Tabs/components/TabItem/styled.ts","../src/components/Tabs/components/TabItem/index.tsx","../src/components/Tabs/styled.ts","../src/components/Tabs/index.tsx","../src/components/TextArea/styles.ts","../src/components/TextArea/index.tsx","../src/components/Toast/styles.ts","../src/components/Toast/index.tsx","../src/components/Zoom/styles.ts","../src/components/Zoom/index.tsx"],"sourcesContent":["import { Typographies } from './interfaces'\r\n\r\nexport const colors = {\r\n black: '#000000',\r\n blue: '#3455AB',\r\n bronze: '#7A4D05',\r\n brown: '#9F3A38',\r\n darkBlue: '#192338',\r\n darkestBlue: '#121B2E',\r\n darkestGreen: '#1E561F',\r\n darkestGrey: '#989898',\r\n darkGreen: '#129105',\r\n darkGrey: '#949494',\r\n darkSilver: '#525A6A',\r\n floralWhite: '#FFFAF3',\r\n ghostWhite: '#F9FAFB',\r\n green: '#76B100',\r\n grey: '#ADADAD',\r\n greyishBlue: '#263046',\r\n iceWhite: '#F9F8F8',\r\n lightBlue: '#2D9AFF',\r\n lightestGrey: '#E2E2E3',\r\n lightGreen: '#66BB6A',\r\n lightGrey: '#C8C8C8',\r\n milkWhite: '#FCFFF5',\r\n orange: '#FB8702',\r\n pink: '#E23851',\r\n purple: '#8E66BB',\r\n red: '#C31717',\r\n silver: '#B2B2B2',\r\n snowWhite: '#FFF6F6',\r\n vanilla: '#CCBEA0',\r\n warningGray: '#E6E6E6',\r\n warningRed: '#EF5350',\r\n warningYellow: '#FBCF30',\r\n white: '#FFFFFF',\r\n yellow: '#FBCB01',\r\n} as const\r\n\r\nexport const opacities = {\r\n 100: 'FF',\r\n 95: 'F2',\r\n 90: 'E6',\r\n 85: 'D9',\r\n 80: 'CC',\r\n 75: 'BF',\r\n 70: 'B3',\r\n 65: 'A6',\r\n 60: '99',\r\n 55: '8C',\r\n 50: '80',\r\n 45: '73',\r\n 40: '66',\r\n 35: '59',\r\n 30: '4D',\r\n 25: '40',\r\n 20: '33',\r\n 15: '26',\r\n 10: '1A',\r\n 5: '0D',\r\n 0: '00',\r\n} as const\r\n\r\nexport const spacings = {\r\n s1: '7px',\r\n s2: '8px',\r\n s3: '14px',\r\n s4: '21px',\r\n s5: '28px',\r\n s6: '35px',\r\n} as const\r\n\r\nexport const fonts = {\r\n lato: '\"Lato\", sans-serif',\r\n} as const\r\n\r\nexport const typographies: Typographies = {\r\n h1: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '18px',\r\n },\r\n h2: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '16px',\r\n },\r\n h3: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '16px',\r\n },\r\n h4: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '14px',\r\n },\r\n h5: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n h6: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '13px',\r\n },\r\n p: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n} as const\r\n","import { GenericObject } from '../interfaces'\n\nexport const stripAccents = (value: string): string => {\n return value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n}\n\nexport const isKeyOf = <T>(\n object: T,\n key: string | number | symbol,\n): key is keyof T => {\n return Object.prototype.hasOwnProperty.call(object, key)\n}\n\nexport const isObject = <T = unknown>(value: unknown): value is T => {\n return Object.prototype.toString.call(value) === '[object Object]'\n}\n\nexport const dateToIsoString = (\n date: Date,\n time = false,\n fullYear = true,\n pattern: 'us' | 'br' = 'br',\n): string => {\n const dateData = [\n date.getDate().toString().padStart(2, '0'),\n (date.getMonth() + 1).toString().padStart(2, '0'),\n date.getFullYear().toString().padStart(4, '0'),\n ]\n\n if (fullYear === false) dateData[2] = dateData[2].substring(2, 4)\n\n let dateStr = dateData.join('/')\n\n if (pattern === 'us') {\n const tmp = dateData[0]\n dateData[0] = dateData[2]\n dateData[2] = tmp\n dateStr = dateData.join('-')\n }\n\n if (!time) return dateStr\n\n const timeStr = [\n date.getHours().toString().padStart(2, '0'),\n date.getMinutes().toString().padStart(2, '0'),\n date.getSeconds().toString().padStart(2, '0'),\n ].join(':')\n\n return [dateStr, timeStr].join(' ')\n}\n\nexport const keys = <T extends GenericObject>(value: T): (keyof T)[] => {\n return Object.keys(value)\n}\n","import { stripAccents, keys } from './common'\n\nexport const notEmptyString = (value: unknown): value is string => {\n return typeof value === 'string' && value.trim() !== ''\n}\n\nexport const isNumber = (value: unknown): value is number => {\n return typeof value === 'number' && isFinite(value)\n}\n\nexport const isNumeric = (value: unknown): value is number | string => {\n if (isNumber(value)) return true\n\n if (!isString(value)) return false\n\n return !isNaN(parseFloat(value))\n}\n\nexport const isBoolean = (value: unknown): value is boolean => {\n return typeof value === 'boolean'\n}\n\nexport const isNumericString = (value: unknown): value is string => {\n return notEmptyString(value) && isNumeric(value)\n}\n\nexport const isString = (value: unknown): value is string => {\n return typeof value === 'string'\n}\n\nexport const isDateInstance = (value: unknown): value is Date => {\n return value instanceof Date && !isNaN(value.valueOf())\n}\n\nexport const isDate = (value: unknown): boolean => {\n return (\n (isNumeric(value) || isDateInstance(value)) &&\n isDateInstance(new Date(value))\n )\n}\n\ntype Operations = 'eq' | 'gt' | 'gte' | 'lt' | 'lte'\n\nexport const dateCompare = (\n a: Date,\n b: Date,\n operation: Operations,\n time: boolean | Partial<{ [key in 'h' | 'm' | 's' | 'ms']: true }> = {\n h: true,\n m: true,\n s: true,\n },\n): boolean => {\n const operations: { [key in Operations]: (a: Date, b: Date) => boolean } = {\n eq: (a, b) => a.getTime() === b.getTime(),\n gt: (a, b) => a > b,\n gte(a, b) {\n return this.gt(a, b) || this.eq(a, b)\n },\n lt: (a, b) => a < b,\n lte(a, b) {\n return this.lt(a, b) || this.eq(a, b)\n },\n }\n\n a = new Date(a)\n b = new Date(b)\n\n if (time === false) {\n a.setHours(0, 0, 0, 0)\n b.setHours(0, 0, 0, 0)\n } else if (time !== true) {\n const methods = {\n h: 'setHours',\n m: 'setMinutes',\n s: 'setSeconds',\n ms: 'setMilliseconds',\n } as const\n\n keys(methods).forEach((k) => {\n if (time[k]) return\n const method = methods[k]\n a[method](0)\n b[method](0)\n })\n }\n\n return operations[operation](a, b)\n}\n\ntype Formats = 'h' | 'm' | 's'\ntype Mode = 'required' | 'optional'\n\nexport const isValidTime = (\n time: string,\n format: Partial<{ [key in Formats]: Mode }> = {\n h: 'required',\n m: 'required',\n },\n): boolean => {\n const c = {\n h: '(([0-1][0-9])|(2[0-3]))',\n m: '([0-5][0-9])',\n s: '([0-5][0-9])',\n }\n\n let sep = ''\n\n const conditions = (Object.keys(format) as Formats[])\n .map((f) => {\n const content = `(${sep}${c[f]})`\n sep = ':'\n return format[f] === 'required' ? content : `${content}?`\n })\n .join('')\n\n // /(([0-1][0-9])|(2[0-3])):([0-5][0-9])(:([0-5][0-9]))?$/\n const re = new RegExp(`${conditions}$`)\n\n return time.match(re) !== null\n}\n\nexport const strCmp = (\n x: string,\n y: string,\n options: {\n ignoreAccents?: boolean\n ignoreCase?: boolean\n trim?: boolean\n contain?: boolean\n } = {},\n): boolean => {\n options = {\n ignoreAccents: true,\n ignoreCase: true,\n trim: true,\n contain: false,\n ...options,\n }\n\n if (options.trim) {\n x = x.trim()\n y = y.trim()\n }\n\n if (options.ignoreCase) {\n x = x.toUpperCase()\n y = y.toUpperCase()\n }\n\n if (options.ignoreAccents) {\n x = stripAccents(x)\n y = stripAccents(y)\n }\n\n return options.contain ? x.includes(y) : x === y\n}\n\nexport const isValidEmail = (value: string): boolean => {\n const emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i\n\n return emailRegex.test(value)\n}\n\nexport { isObject, isKeyOf } from './common'\n","import {\n Border,\n Borders,\n GenericObject,\n SpacingOrZero,\n Spacings,\n} from '../interfaces'\nimport { spacings } from '../theme/constants'\nimport {\n isBoolean,\n isNumber,\n isNumericString,\n notEmptyString,\n} from './validators'\nimport { isKeyOf, isObject, keys } from './common'\n\nexport const filterObject = <T extends GenericObject, R extends GenericObject>(\n object: T,\n remove: (keyof T)[],\n inital = {} as Partial<R>,\n): R => {\n const r = keys(object)\n .filter((key) => !remove.includes(key))\n .reduce(\n (prev, key) => ({\n ...prev,\n [key]: object[key],\n }),\n inital as R,\n )\n\n return r\n}\n\nexport const phone = (value: string) => {\n let masked = value\n\n if (value.startsWith('+55')) {\n masked = value\n .replace(/\\D/g, '')\n .replace(/(\\d{2})(\\d{2})(\\d)/, '+$1 ($2) $3')\n .replace(/(\\d{5})(\\d{4})$/, '$1-$2')\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\n }\n\n return masked\n}\n\nexport const cnpj = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 14)\n .replace(/^(\\d{2})(\\d{3})?(\\d{3})?(\\d{4})?(\\d{2})?/, '$1.$2.$3/$4-$5')\n}\n\nexport const cpf = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .replace(/^(\\d{3})(\\d{3})?(\\d{3})?(\\d{2})?/, '$1.$2.$3-$4')\n}\n\nexport const cep = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 8)\n .replace(/^(\\d{5})(\\d{3})/, '$1-$2')\n}\n\ninterface TimeLabels {\n hour?: string\n minute?: string\n join?: string\n}\n\nexport const time = (value: number, labels?: TimeLabels): string => {\n const l: TimeLabels = {\n hour: 'h',\n minute: 'm',\n join: 'e',\n }\n\n if (labels) {\n const k = keys(labels)\n k.forEach((key) => (l[key] = labels[key]))\n }\n\n const hours = Math.floor(value / 60)\n const minutes = value % 60\n\n const result = []\n if (hours > 0) result.push(`${hours}${l.hour}`)\n result.push(`${minutes}${l.minute}`)\n\n return result.join(l.join)\n}\n\nexport const simpleTime = (value: number) => {\n return [Math.floor(value / 60), value % 60]\n .map((num) => num.toString().padStart(2, '0'))\n .join(':')\n}\n\nexport const reverseSimpleTime = (value: string) => {\n const t = value.replace(/\\D/g, '')\n\n if (t.length === 0) return 0\n\n const h = parseInt(t.substring(0, 2).padEnd(2, '0'))\n\n if (t.length < 3) return h * 60\n\n const m = parseInt(t.substring(2, 4).padEnd(2, '0'))\n\n return h * 60 + m\n}\n\nexport const intToBool = (value: 1 | 0): boolean => {\n const values = {\n 1: true,\n 0: false,\n }\n\n return values[value]\n}\n\nexport const boolToInt = (value: boolean): 1 | 0 => {\n return value ? 1 : 0\n}\n\nexport const numberOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): number | T => {\n if (isNumber(value)) return value\n if (isNumericString(value)) return parseFloat(value)\n return defaultValue\n}\n\nexport const booleanOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): boolean | T => {\n if (isBoolean(value)) return value\n\n if (isNumber(value)) return value > 0\n if (isNumericString(value)) return parseInt(value) > 0\n\n return defaultValue\n}\n\nexport const notEmptyStringOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): string | T => {\n if (notEmptyString(value)) return value.trim()\n return defaultValue\n}\n\nexport const capitalize = (value: string): string => {\n return value\n .split(' ')\n .map((word) => `${word[0].toUpperCase()}${word.slice(1).toLowerCase()}`)\n .join(' ')\n}\n\nexport const isoStringToDate = (value: string): Date | null => {\n const [d, t = '00:00:00'] = value.split(' ')\n\n const date = new Date(\n d.split('/').reverse().join('-') +\n ' ' +\n [...t.split(':'), '0', '0', '0']\n .slice(0, 3)\n .map((s) => s.padEnd(2, '0'))\n .join(':'),\n )\n return isNaN(date.getTime()) ? null : date\n}\n\nexport const getWeekNumber = (value: Date): [number, number] => {\n // cloning date\n const weekSunday = new Date(value)\n // reset time\n weekSunday.setHours(0, 0, 0, 0)\n // set date to week sunday\n weekSunday.setDate(weekSunday.getDate() - weekSunday.getUTCDay())\n // get first day of year\n const yearStart = new Date(Date.UTC(weekSunday.getUTCFullYear(), 0, 1))\n // calculate full weeks to the target week\n const weekNumber = Math.ceil(\n ((weekSunday.getTime() - yearStart.getTime()) / 86400000 + 1) / 7,\n )\n // return array of year and week number\n return [weekNumber, weekSunday.getUTCFullYear()]\n}\n\nexport const getMonthName = (value: Date): string => {\n const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n ]\n\n const monthName = months[value.getMonth()]\n return monthName\n}\n\nexport const getFirstWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-01-01 00:00:00`)\n // jumping to week sunday\n week.setDate(week.getDate() - week.getUTCDay() - 7)\n week.setHours(0, 0, 0, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to next sunday\n week.setDate(week.getDate() + 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport const getLastWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-12-31 00:00:00`)\n // jumping to week saturday\n week.setDate(week.getDate() - week.getUTCDay() + 6)\n week.setHours(23, 59, 59, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to previous saturday\n week.setDate(week.getDate() - 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport { stripAccents, dateToIsoString, keys } from './common'\n\nexport const getSpacings = (\n value: SpacingOrZero | Spacings,\n defaults?: SpacingOrZero | Spacings,\n) => {\n let d = {\n top: 's1',\n left: 's1',\n bottom: 's1',\n right: 's1',\n }\n\n if (defaults) {\n if (typeof defaults === 'string') {\n d.top = defaults\n d.left = defaults\n d.bottom = defaults\n d.right = defaults\n } else {\n d = {\n ...d,\n ...defaults,\n }\n }\n }\n\n const spacing =\n typeof value === 'string'\n ? {\n top: value,\n left: value,\n bottom: value,\n right: value,\n }\n : {\n ...d,\n ...value,\n }\n\n const values = {\n top: isKeyOf(spacings, spacing.top) ? spacings[spacing.top] : spacing.top,\n left: isKeyOf(spacings, spacing.left)\n ? spacings[spacing.left]\n : spacing.left,\n bottom: isKeyOf(spacings, spacing.bottom)\n ? spacings[spacing.bottom]\n : spacing.bottom,\n right: isKeyOf(spacings, spacing.right)\n ? spacings[spacing.right]\n : spacing.right,\n }\n\n return `${values.top} ${values.right} ${values.bottom} ${values.left}`\n}\n\nexport const getBorder = (config: Borders): Exclude<Borders, Border> => {\n return 'color' in config\n ? {\n top: config,\n left: config,\n bottom: config,\n right: config,\n }\n : config\n}\n\nexport const clone = <T>(value: T): T => {\n if (Array.isArray(value)) {\n const r = value.map(clone) as unknown as T\n return r\n }\n\n if (isObject<GenericObject>(value)) {\n const r = keys(value).reduce((prev, key) => {\n const v = clone(value[key])\n return { ...prev, [key]: v }\n }, {} as T)\n return r\n }\n\n return value\n}\n\nexport const unique = <T>(\n value: T[],\n callback: (item: T, arr: T[]) => boolean = (item, arr) => arr.includes(item),\n): T[] => {\n return value.filter((v, _i, self) => callback(v, self))\n}\n","import { useEffect, useState } from 'react'\nimport { isBoolean } from '../../../../functions/validators'\nimport { TransitionProps } from './interfaces'\n\nconst Transition = (props: TransitionProps) => {\n const { active, mountDuration, element } = props\n\n const [render, setRender] = useState<boolean | 'unmounted' | 'first'>('first')\n\n useEffect(() => {\n // se o estado inicial é fechado, nao precisa passar pelo estado fechado pra desmontar, simplismente nao monta\n setRender((prev) =>\n prev === 'first' && active === false ? 'unmounted' : false,\n )\n\n const timeoutId = active\n ? setTimeout(() => setRender(true))\n : setTimeout(() => setRender('unmounted'), mountDuration)\n\n return () => clearTimeout(timeoutId)\n }, [active])\n\n return isBoolean(render) ? element({ active: render, mountDuration }) : null\n}\n\nexport default Transition\n","import { css } from 'styled-components'\nimport { keys } from '../../../../functions/formatters'\nimport { MappedTransitions, Transition } from './interfaces'\n\nconst useTransition = <P extends string>(\n props: Transition<P>,\n values: MappedTransitions<P>,\n) => {\n const { active, mountDuration } = props\n\n const animation = {\n enabled: css``,\n disabled: css``,\n }\n\n const properties: string[] = []\n const durations: number[] = []\n const functions: string[] = []\n\n keys(props.properties).forEach((k) => {\n const config = props.properties[k]\n if (config === undefined) return\n properties.push(k)\n durations.push(\n config.duration && config.duration <= mountDuration\n ? config.duration\n : mountDuration,\n )\n functions.push(config.function || 'ease-in-out')\n\n if (values[k].disabled) {\n animation.disabled = animation.disabled.concat(\n `${k}: ${values[k].disabled};`,\n )\n }\n\n if (values[k].enabled) {\n animation.enabled = animation.enabled.concat(\n `${k}: ${values[k].enabled};`,\n )\n }\n })\n\n if (properties.length === 0) return\n\n return css`\n transition-property: ${properties.join(', ')};\n transition-duration: ${durations.map((d) => `${d}ms`).join(', ')};\n transition-timing-function: ${functions.join(', ')};\n ${animation[active ? 'enabled' : 'disabled']}\n `\n}\n\nexport default useTransition\n","import styled, { css, FlattenSimpleInterpolation } from 'styled-components'\nimport { isKeyOf } from '../../functions/common'\nimport { useTransition } from '../Transition'\n\nimport { ContainerProps, Position, References } from './interfaces'\n\nconst positions: {\n [key in Position]: (\n reference: References,\n pointerSize: string,\n ) => FlattenSimpleInterpolation\n} = {\n 'top right': ({ bottom, left }, pointerSize) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n left: ${left || `calc(100% + ${pointerSize})`};\n `,\n 'top left': ({ bottom, right }, pointerSize) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n right: ${right || `calc(100% + ${pointerSize})`};\n `,\n 'bottom right': ({ top, left }, pointerSize) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n left: ${left || `calc(100% + ${pointerSize})`};\n `,\n 'bottom left': ({ top, right }, pointerSize) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n right: ${right || `calc(100% + ${pointerSize})`};\n `,\n 'right top': ({ bottom }, pointerSize) => css`\n bottom: ${bottom || `calc(100% + ${pointerSize})`};\n right: 0;\n `,\n 'right bottom': ({ top }, pointerSize) => css`\n top: ${top || `calc(100% + ${pointerSize})`};\n right: 0;\n `,\n 'left top': ({ bottom }, pointerSize) => css`\n bottom: ${bottom || `calc(100% + ${pointerSize})`};\n left: 0;\n `,\n 'left bottom': ({ top }, pointerSize) => css`\n top: ${top || `calc(100% + ${pointerSize})`};\n left: 0;\n `,\n}\n\nconst pointerPositions: {\n [key in Position]: (\n distance: string,\n size: string,\n ) => FlattenSimpleInterpolation\n} = {\n 'top right': (distance, size) => css`\n top: ${distance};\n left: calc(${size} / 2 * -1);\n `,\n 'top left': (distance, size) => css`\n top: ${distance};\n right: calc(${size} / 2 * -1);\n `,\n 'bottom right': (distance, size) => css`\n bottom: ${distance};\n left: calc(${size} / 2 * -1);\n `,\n 'bottom left': (distance, size) => css`\n bottom: ${distance};\n right: calc(${size} / 2 * -1);\n `,\n 'right top': (distance, size) => css`\n bottom: calc(${size} / 2 * -1);\n right: ${distance};\n `,\n 'right bottom': (distance, size) => css`\n top: calc(${size} / 2 * -1);\n right: ${distance};\n `,\n 'left top': (distance, size) => css`\n bottom: calc(${size} / 2 * -1);\n left: ${distance};\n `,\n 'left bottom': (distance, size) => css`\n top: calc(${size} / 2 * -1);\n left: ${distance};\n `,\n}\n\nexport const Container = styled.div<ContainerProps>`\n ${({ theme }) => theme.useTypography('p')};\n display: flex;\n\n > div {\n box-shadow: 0px 3px 6px ${({ theme }) => theme.getColor('black', 15)};\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n overflow: hidden;\n z-index: 1;\n background-color: ${({ theme, bgColor }) =>\n !bgColor\n ? theme.colors.white\n : typeof bgColor === 'function'\n ? bgColor(theme)\n : isKeyOf(theme.colors, bgColor)\n ? theme.colors[bgColor]\n : bgColor};\n }\n\n z-index: ${({ zIndex }) => zIndex || 1};\n\n ${({ width }) => {\n if (!width) return\n\n return css`\n width: ${width};\n `\n }}\n\n ${({ height }) => {\n if (!height) return\n\n return css`\n height: ${height};\n `\n }}\n\n ${({ maxWidth }) => {\n if (!maxWidth) return\n\n return css`\n max-width: ${maxWidth};\n `\n }}\n\n ${({ maxHeight }) => {\n if (!maxHeight) return\n\n return css`\n max-height: ${maxHeight};\n `\n }}\n\n position: absolute;\n\n ${({ theme, position, references, pointer }) => {\n if (!position) {\n return css`\n visibility: collapse;\n `\n }\n\n const pointerSize = pointer\n ? pointer === true\n ? theme.spacings.s1\n : typeof pointer.size === 'function'\n ? pointer.size(theme)\n : pointer.size || theme.spacings.s1\n : '0px'\n\n return positions[position](references || {}, pointerSize)\n }}\n\n ${(props) => {\n const { transition } = props\n\n if (transition === undefined) return\n\n return useTransition(transition, {\n 'max-width': {\n disabled: '0px',\n },\n 'max-height': {\n disabled: '0px',\n },\n width: {\n disabled: '0px',\n },\n height: {\n disabled: '0px',\n },\n })\n }};\n\n ${({ theme, pointer, position }) => {\n if (!pointer || !position) return\n\n const config: Required<typeof pointer> = {\n size: 's1',\n color: 'white',\n distance: 's1',\n ...(pointer === true ? {} : pointer),\n }\n\n const size =\n typeof config.size === 'function'\n ? config.size(theme)\n : isKeyOf(theme.spacings, config.size)\n ? theme.spacings[config.size]\n : config.size\n\n const distance =\n typeof config.distance === 'function'\n ? config.distance(theme)\n : isKeyOf(theme.spacings, config.distance)\n ? theme.spacings[config.distance]\n : config.distance\n\n const color =\n typeof config.color === 'function'\n ? config.color(theme)\n : isKeyOf(theme.colors, config.color)\n ? theme.colors[config.color]\n : config.color\n\n return css`\n :after {\n content: '';\n\n position: absolute;\n\n ${pointerPositions[position](distance, size)}\n\n width: ${size};\n height: ${size};\n\n transform: rotate(45deg);\n\n background-color: ${color};\n box-shadow: 0px 3px 6px ${({ theme }) => theme.getColor('black', 15)};\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n }\n `\n }}\n`\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { filterObject, keys } from '../../functions/formatters'\nimport { isKeyOf } from '../../functions/validators'\nimport Transition from '../Transition'\n\nimport { AbsoluteContainerProps, Position } from './interfaces'\nimport * as S from './styles'\n\nexport const AbsoluteContainer = React.forwardRef(\n (\n props: AbsoluteContainerProps,\n fowardedRef?: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { open, boundRef } = props\n\n const center = props.center || {\n x: 50,\n y: 75,\n }\n\n const axis = props.axis || 'y'\n\n const [ref, setRef] = useState<HTMLDivElement | null>(null)\n\n const getPosition = useCallback((): Position | null => {\n if (props.position) return props.position\n\n if (!ref) return null\n\n const { width, height, offsetTop, offsetLeft } = boundRef\n ? (() => {\n const rect = boundRef.getBoundingClientRect()\n return {\n offsetTop: rect.top,\n offsetLeft: rect.left,\n width: boundRef.offsetWidth,\n height: boundRef.offsetHeight,\n }\n })()\n : {\n offsetTop: 0,\n offsetLeft: 0,\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const rect = ref.getBoundingClientRect()\n const top = rect.top - offsetTop\n const left = rect.left - offsetLeft\n\n const x = (left * 100) / width\n const y = (top * 100) / height\n\n if (axis === 'y') {\n const xDirection = x > center.x ? 'right' : 'left'\n const yDirection = y > center.y ? 'top' : 'bottom'\n\n const newPosition: Position = `${xDirection} ${yDirection}` as Position\n return newPosition\n } else {\n const xDirection = x > center.x ? 'left' : 'right'\n const yDirection = y > center.y ? 'bottom' : 'top'\n\n const newPosition: Position = `${yDirection} ${xDirection}` as Position\n return newPosition\n }\n }, [ref, boundRef, props.position])\n\n const [position, setPosition] = useState<Position | null>(getPosition)\n\n useImperativeHandle(fowardedRef, () => ref as HTMLDivElement)\n\n useEffect(() => {\n setPosition(getPosition)\n }, [getPosition])\n\n const htmlProps = filterObject<\n AbsoluteContainerProps,\n React.HTMLAttributes<HTMLDivElement>\n >(props, [\n 'center',\n 'position',\n 'children' as keyof AbsoluteContainerProps,\n 'content' as keyof AbsoluteContainerProps,\n ])\n\n const cssKeys = {\n width: 'width',\n 'max-width': 'maxWidth',\n height: 'height',\n 'max-height': 'maxHeight',\n }\n\n const propsTransition = {\n mountDuration: 500,\n properties: keys(cssKeys)\n .filter((k) => {\n const key = cssKeys[k]\n return isKeyOf(props, key) && props[key] !== undefined\n })\n .reduce((prev, k) => ({ ...prev, [k]: {} }), {}),\n ...(props.transition || {}),\n }\n\n return (\n <Transition\n active={open}\n mountDuration={propsTransition.mountDuration}\n element={(transition) => (\n <S.Container\n {...htmlProps}\n position={position}\n ref={setRef}\n transition={{\n ...propsTransition,\n ...transition,\n }}\n >\n <div\n children={'content' in props ? <props.content /> : props.children}\n />\n </S.Container>\n )}\n />\n )\n },\n)\n\nAbsoluteContainer.displayName = 'AbsoluteContainer'\n\nexport default AbsoluteContainer\n","/* eslint-disable camelcase */\n\nimport { ReactComponent as activity_icon } from './activity.svg'\nimport { ReactComponent as airplay_icon } from './airplay.svg'\nimport { ReactComponent as alert_circle_icon } from './alert-circle.svg'\nimport { ReactComponent as alert_octagon_icon } from './alert-octagon.svg'\nimport { ReactComponent as alert_triangle_icon } from './alert-triangle.svg'\nimport { ReactComponent as align_center_icon } from './align-center.svg'\nimport { ReactComponent as align_justify_icon } from './align-justify.svg'\nimport { ReactComponent as align_left_icon } from './align-left.svg'\nimport { ReactComponent as align_right_icon } from './align-right.svg'\nimport { ReactComponent as anchor_icon } from './anchor.svg'\nimport { ReactComponent as aperture_icon } from './aperture.svg'\nimport { ReactComponent as archive_icon } from './archive.svg'\nimport { ReactComponent as arrow_down_icon } from './arrow-down.svg'\nimport { ReactComponent as arrow_down_circle_icon } from './arrow-down-circle.svg'\nimport { ReactComponent as arrow_down_left_icon } from './arrow-down-left.svg'\nimport { ReactComponent as arrow_down_right_icon } from './arrow-down-right.svg'\nimport { ReactComponent as arrow_left_icon } from './arrow-left.svg'\nimport { ReactComponent as arrow_left_circle_icon } from './arrow-left-circle.svg'\nimport { ReactComponent as arrow_right_icon } from './arrow-right.svg'\nimport { ReactComponent as arrow_right_circle_icon } from './arrow-right-circle.svg'\nimport { ReactComponent as arrow_up_icon } from './arrow-up.svg'\nimport { ReactComponent as arrow_up_circle_icon } from './arrow-up-circle.svg'\nimport { ReactComponent as arrow_up_left_icon } from './arrow-up-left.svg'\nimport { ReactComponent as arrow_up_right_icon } from './arrow-up-right.svg'\nimport { ReactComponent as at_sign_icon } from './at-sign.svg'\nimport { ReactComponent as award_icon } from './award.svg'\nimport { ReactComponent as bar_chart_icon } from './bar-chart.svg'\nimport { ReactComponent as bar_chart_2_icon } from './bar-chart-2.svg'\nimport { ReactComponent as battery_icon } from './battery.svg'\nimport { ReactComponent as battery_charging_icon } from './battery-charging.svg'\nimport { ReactComponent as bell_icon } from './bell.svg'\nimport { ReactComponent as bell_off_icon } from './bell-off.svg'\nimport { ReactComponent as bluetooth_icon } from './bluetooth.svg'\nimport { ReactComponent as bold_icon } from './bold.svg'\nimport { ReactComponent as book_icon } from './book.svg'\nimport { ReactComponent as book_open_icon } from './book-open.svg'\nimport { ReactComponent as bookmark_icon } from './bookmark.svg'\nimport { ReactComponent as box_icon } from './box.svg'\nimport { ReactComponent as briefcase_icon } from './briefcase.svg'\nimport { ReactComponent as calendar_icon } from './calendar.svg'\nimport { ReactComponent as camera_icon } from './camera.svg'\nimport { ReactComponent as camera_off_icon } from './camera-off.svg'\nimport { ReactComponent as cast_icon } from './cast.svg'\nimport { ReactComponent as check_icon } from './check.svg'\nimport { ReactComponent as check_circle_icon } from './check-circle.svg'\nimport { ReactComponent as check_square_icon } from './check-square.svg'\nimport { ReactComponent as chevron_down_icon } from './chevron-down.svg'\nimport { ReactComponent as chevron_left_icon } from './chevron-left.svg'\nimport { ReactComponent as chevron_right_icon } from './chevron-right.svg'\nimport { ReactComponent as chevron_up_icon } from './chevron-up.svg'\nimport { ReactComponent as chevrons_down_icon } from './chevrons-down.svg'\nimport { ReactComponent as chevrons_left_icon } from './chevrons-left.svg'\nimport { ReactComponent as chevrons_right_icon } from './chevrons-right.svg'\nimport { ReactComponent as chevrons_up_icon } from './chevrons-up.svg'\nimport { ReactComponent as chrome_icon } from './chrome.svg'\nimport { ReactComponent as circle_icon } from './circle.svg'\nimport { ReactComponent as clipboard_icon } from './clipboard.svg'\nimport { ReactComponent as clock_icon } from './clock.svg'\nimport { ReactComponent as cloud_icon } from './cloud.svg'\nimport { ReactComponent as cloud_drizzle_icon } from './cloud-drizzle.svg'\nimport { ReactComponent as cloud_lightning_icon } from './cloud-lightning.svg'\nimport { ReactComponent as cloud_off_icon } from './cloud-off.svg'\nimport { ReactComponent as cloud_rain_icon } from './cloud-rain.svg'\nimport { ReactComponent as cloud_snow_icon } from './cloud-snow.svg'\nimport { ReactComponent as code_icon } from './code.svg'\nimport { ReactComponent as codepen_icon } from './codepen.svg'\nimport { ReactComponent as codesandbox_icon } from './codesandbox.svg'\nimport { ReactComponent as coffee_icon } from './coffee.svg'\nimport { ReactComponent as columns_icon } from './columns.svg'\nimport { ReactComponent as command_icon } from './command.svg'\nimport { ReactComponent as compass_icon } from './compass.svg'\nimport { ReactComponent as copy_icon } from './copy.svg'\nimport { ReactComponent as corner_down_left_icon } from './corner-down-left.svg'\nimport { ReactComponent as corner_down_right_icon } from './corner-down-right.svg'\nimport { ReactComponent as corner_left_down_icon } from './corner-left-down.svg'\nimport { ReactComponent as corner_left_up_icon } from './corner-left-up.svg'\nimport { ReactComponent as corner_right_down_icon } from './corner-right-down.svg'\nimport { ReactComponent as corner_right_up_icon } from './corner-right-up.svg'\nimport { ReactComponent as corner_up_left_icon } from './corner-up-left.svg'\nimport { ReactComponent as corner_up_right_icon } from './corner-up-right.svg'\nimport { ReactComponent as cpu_icon } from './cpu.svg'\nimport { ReactComponent as credit_card_icon } from './credit-card.svg'\nimport { ReactComponent as crop_icon } from './crop.svg'\nimport { ReactComponent as crosshair_icon } from './crosshair.svg'\nimport { ReactComponent as database_icon } from './database.svg'\nimport { ReactComponent as delete_icon } from './delete.svg'\nimport { ReactComponent as disc_icon } from './disc.svg'\nimport { ReactComponent as divide_icon } from './divide.svg'\nimport { ReactComponent as divide_circle_icon } from './divide-circle.svg'\nimport { ReactComponent as divide_square_icon } from './divide-square.svg'\nimport { ReactComponent as dollar_sign_icon } from './dollar-sign.svg'\nimport { ReactComponent as download_icon } from './download.svg'\nimport { ReactComponent as download_cloud_icon } from './download-cloud.svg'\nimport { ReactComponent as dribbble_icon } from './dribbble.svg'\nimport { ReactComponent as droplet_icon } from './droplet.svg'\nimport { ReactComponent as edit_icon } from './edit.svg'\nimport { ReactComponent as edit_2_icon } from './edit-2.svg'\nimport { ReactComponent as edit_3_icon } from './edit-3.svg'\nimport { ReactComponent as external_link_icon } from './external-link.svg'\nimport { ReactComponent as eye_icon } from './eye.svg'\nimport { ReactComponent as eye_off_icon } from './eye-off.svg'\nimport { ReactComponent as facebook_icon } from './facebook.svg'\nimport { ReactComponent as fast_forward_icon } from './fast-forward.svg'\nimport { ReactComponent as feather_icon } from './feather.svg'\nimport { ReactComponent as figma_icon } from './figma.svg'\nimport { ReactComponent as file_icon } from './file.svg'\nimport { ReactComponent as file_minus_icon } from './file-minus.svg'\nimport { ReactComponent as file_plus_icon } from './file-plus.svg'\nimport { ReactComponent as file_text_icon } from './file-text.svg'\nimport { ReactComponent as film_icon } from './film.svg'\nimport { ReactComponent as filter_icon } from './filter.svg'\nimport { ReactComponent as flag_icon } from './flag.svg'\nimport { ReactComponent as folder_icon } from './folder.svg'\nimport { ReactComponent as folder_minus_icon } from './folder-minus.svg'\nimport { ReactComponent as folder_plus_icon } from './folder-plus.svg'\nimport { ReactComponent as framer_icon } from './framer.svg'\nimport { ReactComponent as frown_icon } from './frown.svg'\nimport { ReactComponent as gift_icon } from './gift.svg'\nimport { ReactComponent as git_branch_icon } from './git-branch.svg'\nimport { ReactComponent as git_commit_icon } from './git-commit.svg'\nimport { ReactComponent as git_merge_icon } from './git-merge.svg'\nimport { ReactComponent as git_pull_request_icon } from './git-pull-request.svg'\nimport { ReactComponent as github_icon } from './github.svg'\nimport { ReactComponent as gitlab_icon } from './gitlab.svg'\nimport { ReactComponent as globe_icon } from './globe.svg'\nimport { ReactComponent as grid_icon } from './grid.svg'\nimport { ReactComponent as hard_drive_icon } from './hard-drive.svg'\nimport { ReactComponent as hash_icon } from './hash.svg'\nimport { ReactComponent as headphones_icon } from './headphones.svg'\nimport { ReactComponent as heart_icon } from './heart.svg'\nimport { ReactComponent as help_circle_icon } from './help-circle.svg'\nimport { ReactComponent as hexagon_icon } from './hexagon.svg'\nimport { ReactComponent as home_icon } from './home.svg'\nimport { ReactComponent as image_icon } from './image.svg'\nimport { ReactComponent as inbox_icon } from './inbox.svg'\nimport { ReactComponent as info_icon } from './info.svg'\nimport { ReactComponent as instagram_icon } from './instagram.svg'\nimport { ReactComponent as italic_icon } from './italic.svg'\nimport { ReactComponent as key_icon } from './key.svg'\nimport { ReactComponent as layers_icon } from './layers.svg'\nimport { ReactComponent as layout_icon } from './layout.svg'\nimport { ReactComponent as life_buoy_icon } from './life-buoy.svg'\nimport { ReactComponent as link_icon } from './link.svg'\nimport { ReactComponent as link_2_icon } from './link-2.svg'\nimport { ReactComponent as linkedin_icon } from './linkedin.svg'\nimport { ReactComponent as list_icon } from './list.svg'\nimport { ReactComponent as loader_icon } from './loader.svg'\nimport { ReactComponent as lock_icon } from './lock.svg'\nimport { ReactComponent as log_in_icon } from './log-in.svg'\nimport { ReactComponent as log_out_icon } from './log-out.svg'\nimport { ReactComponent as mail_icon } from './mail.svg'\nimport { ReactComponent as map_icon } from './map.svg'\nimport { ReactComponent as map_pin_icon } from './map-pin.svg'\nimport { ReactComponent as maximize_icon } from './maximize.svg'\nimport { ReactComponent as maximize_2_icon } from './maximize-2.svg'\nimport { ReactComponent as meh_icon } from './meh.svg'\nimport { ReactComponent as menu_icon } from './menu.svg'\nimport { ReactComponent as message_circle_icon } from './message-circle.svg'\nimport { ReactComponent as message_square_icon } from './message-square.svg'\nimport { ReactComponent as mic_icon } from './mic.svg'\nimport { ReactComponent as mic_off_icon } from './mic-off.svg'\nimport { ReactComponent as minimize_icon } from './minimize.svg'\nimport { ReactComponent as minimize_2_icon } from './minimize-2.svg'\nimport { ReactComponent as minus_icon } from './minus.svg'\nimport { ReactComponent as minus_circle_icon } from './minus-circle.svg'\nimport { ReactComponent as minus_square_icon } from './minus-square.svg'\nimport { ReactComponent as monitor_icon } from './monitor.svg'\nimport { ReactComponent as moon_icon } from './moon.svg'\nimport { ReactComponent as more_horizontal_icon } from './more-horizontal.svg'\nimport { ReactComponent as more_vertical_icon } from './more-vertical.svg'\nimport { ReactComponent as mouse_pointer_icon } from './mouse-pointer.svg'\nimport { ReactComponent as move_icon } from './move.svg'\nimport { ReactComponent as music_icon } from './music.svg'\nimport { ReactComponent as navigation_icon } from './navigation.svg'\nimport { ReactComponent as navigation_2_icon } from './navigation-2.svg'\nimport { ReactComponent as octagon_icon } from './octagon.svg'\nimport { ReactComponent as package_icon } from './package.svg'\nimport { ReactComponent as paperclip_icon } from './paperclip.svg'\nimport { ReactComponent as pause_icon } from './pause.svg'\nimport { ReactComponent as pause_circle_icon } from './pause-circle.svg'\nimport { ReactComponent as pen_tool_icon } from './pen-tool.svg'\nimport { ReactComponent as percent_icon } from './percent.svg'\nimport { ReactComponent as phone_icon } from './phone.svg'\nimport { ReactComponent as phone_call_icon } from './phone-call.svg'\nimport { ReactComponent as phone_forwarded_icon } from './phone-forwarded.svg'\nimport { ReactComponent as phone_incoming_icon } from './phone-incoming.svg'\nimport { ReactComponent as phone_missed_icon } from './phone-missed.svg'\nimport { ReactComponent as phone_off_icon } from './phone-off.svg'\nimport { ReactComponent as phone_outgoing_icon } from './phone-outgoing.svg'\nimport { ReactComponent as pie_chart_icon } from './pie-chart.svg'\nimport { ReactComponent as play_icon } from './play.svg'\nimport { ReactComponent as play_circle_icon } from './play-circle.svg'\nimport { ReactComponent as plus_icon } from './plus.svg'\nimport { ReactComponent as plus_circle_icon } from './plus-circle.svg'\nimport { ReactComponent as plus_square_icon } from './plus-square.svg'\nimport { ReactComponent as pocket_icon } from './pocket.svg'\nimport { ReactComponent as power_icon } from './power.svg'\nimport { ReactComponent as printer_icon } from './printer.svg'\nimport { ReactComponent as radio_icon } from './radio.svg'\nimport { ReactComponent as refresh_ccw_icon } from './refresh-ccw.svg'\nimport { ReactComponent as refresh_cw_icon } from './refresh-cw.svg'\nimport { ReactComponent as repeat_icon } from './repeat.svg'\nimport { ReactComponent as rewind_icon } from './rewind.svg'\nimport { ReactComponent as rotate_ccw_icon } from './rotate-ccw.svg'\nimport { ReactComponent as rotate_cw_icon } from './rotate-cw.svg'\nimport { ReactComponent as rss_icon } from './rss.svg'\nimport { ReactComponent as save_icon } from './save.svg'\nimport { ReactComponent as scissors_icon } from './scissors.svg'\nimport { ReactComponent as search_icon } from './search.svg'\nimport { ReactComponent as send_icon } from './send.svg'\nimport { ReactComponent as server_icon } from './server.svg'\nimport { ReactComponent as settings_icon } from './settings.svg'\nimport { ReactComponent as share_icon } from './share.svg'\nimport { ReactComponent as share_2_icon } from './share-2.svg'\nimport { ReactComponent as shield_icon } from './shield.svg'\nimport { ReactComponent as shield_off_icon } from './shield-off.svg'\nimport { ReactComponent as shopping_bag_icon } from './shopping-bag.svg'\nimport { ReactComponent as shopping_cart_icon } from './shopping-cart.svg'\nimport { ReactComponent as shuffle_icon } from './shuffle.svg'\nimport { ReactComponent as sidebar_icon } from './sidebar.svg'\nimport { ReactComponent as skip_back_icon } from './skip-back.svg'\nimport { ReactComponent as skip_forward_icon } from './skip-forward.svg'\nimport { ReactComponent as slack_icon } from './slack.svg'\nimport { ReactComponent as slash_icon } from './slash.svg'\nimport { ReactComponent as sliders_icon } from './sliders.svg'\nimport { ReactComponent as smartphone_icon } from './smartphone.svg'\nimport { ReactComponent as smile_icon } from './smile.svg'\nimport { ReactComponent as speaker_icon } from './speaker.svg'\nimport { ReactComponent as square_icon } from './square.svg'\nimport { ReactComponent as star_icon } from './star.svg'\nimport { ReactComponent as stop_circle_icon } from './stop-circle.svg'\nimport { ReactComponent as sun_icon } from './sun.svg'\nimport { ReactComponent as sunrise_icon } from './sunrise.svg'\nimport { ReactComponent as sunset_icon } from './sunset.svg'\nimport { ReactComponent as table_icon } from './table.svg'\nimport { ReactComponent as tablet_icon } from './tablet.svg'\nimport { ReactComponent as tag_icon } from './tag.svg'\nimport { ReactComponent as target_icon } from './target.svg'\nimport { ReactComponent as terminal_icon } from './terminal.svg'\nimport { ReactComponent as thermometer_icon } from './thermometer.svg'\nimport { ReactComponent as thumbs_down_icon } from './thumbs-down.svg'\nimport { ReactComponent as thumbs_up_icon } from './thumbs-up.svg'\nimport { ReactComponent as toggle_left_icon } from './toggle-left.svg'\nimport { ReactComponent as toggle_right_icon } from './toggle-right.svg'\nimport { ReactComponent as tool_icon } from './tool.svg'\nimport { ReactComponent as trash_icon } from './trash.svg'\nimport { ReactComponent as trash_2_icon } from './trash-2.svg'\nimport { ReactComponent as trello_icon } from './trello.svg'\nimport { ReactComponent as trending_down_icon } from './trending-down.svg'\nimport { ReactComponent as trending_up_icon } from './trending-up.svg'\nimport { ReactComponent as triangle_icon } from './triangle.svg'\nimport { ReactComponent as truck_icon } from './truck.svg'\nimport { ReactComponent as tv_icon } from './tv.svg'\nimport { ReactComponent as twitch_icon } from './twitch.svg'\nimport { ReactComponent as twitter_icon } from './twitter.svg'\nimport { ReactComponent as type_icon } from './type.svg'\nimport { ReactComponent as umbrella_icon } from './umbrella.svg'\nimport { ReactComponent as underline_icon } from './underline.svg'\nimport { ReactComponent as unlock_icon } from './unlock.svg'\nimport { ReactComponent as upload_icon } from './upload.svg'\nimport { ReactComponent as upload_cloud_icon } from './upload-cloud.svg'\nimport { ReactComponent as user_icon } from './user.svg'\nimport { ReactComponent as user_check_icon } from './user-check.svg'\nimport { ReactComponent as user_minus_icon } from './user-minus.svg'\nimport { ReactComponent as user_plus_icon } from './user-plus.svg'\nimport { ReactComponent as user_x_icon } from './user-x.svg'\nimport { ReactComponent as users_icon } from './users.svg'\nimport { ReactComponent as video_icon } from './video.svg'\nimport { ReactComponent as video_off_icon } from './video-off.svg'\nimport { ReactComponent as voicemail_icon } from './voicemail.svg'\nimport { ReactComponent as volume_icon } from './volume.svg'\nimport { ReactComponent as volume_1_icon } from './volume-1.svg'\nimport { ReactComponent as volume_2_icon } from './volume-2.svg'\nimport { ReactComponent as volume_x_icon } from './volume-x.svg'\nimport { ReactComponent as watch_icon } from './watch.svg'\nimport { ReactComponent as wifi_icon } from './wifi.svg'\nimport { ReactComponent as wifi_off_icon } from './wifi-off.svg'\nimport { ReactComponent as wind_icon } from './wind.svg'\nimport { ReactComponent as x_icon } from './x.svg'\nimport { ReactComponent as x_circle_icon } from './x-circle.svg'\nimport { ReactComponent as x_octagon_icon } from './x-octagon.svg'\nimport { ReactComponent as x_square_icon } from './x-square.svg'\nimport { ReactComponent as youtube_icon } from './youtube.svg'\nimport { ReactComponent as zap_icon } from './zap.svg'\nimport { ReactComponent as zap_off_icon } from './zap-off.svg'\nimport { ReactComponent as zoom_in_icon } from './zoom-in.svg'\nimport { ReactComponent as zoom_out_icon } from './zoom-out.svg'\n\nconst icons = {\n activity: activity_icon,\n airplay: airplay_icon,\n alert_circle: alert_circle_icon,\n alert_octagon: alert_octagon_icon,\n alert_triangle: alert_triangle_icon,\n align_center: align_center_icon,\n align_justify: align_justify_icon,\n align_left: align_left_icon,\n align_right: align_right_icon,\n anchor: anchor_icon,\n aperture: aperture_icon,\n archive: archive_icon,\n arrow_down: arrow_down_icon,\n arrow_down_circle: arrow_down_circle_icon,\n arrow_down_left: arrow_down_left_icon,\n arrow_down_right: arrow_down_right_icon,\n arrow_left: arrow_left_icon,\n arrow_left_circle: arrow_left_circle_icon,\n arrow_right: arrow_right_icon,\n arrow_right_circle: arrow_right_circle_icon,\n arrow_up: arrow_up_icon,\n arrow_up_circle: arrow_up_circle_icon,\n arrow_up_left: arrow_up_left_icon,\n arrow_up_right: arrow_up_right_icon,\n at_sign: at_sign_icon,\n award: award_icon,\n bar_chart: bar_chart_icon,\n bar_chart_2: bar_chart_2_icon,\n battery: battery_icon,\n battery_charging: battery_charging_icon,\n bell: bell_icon,\n bell_off: bell_off_icon,\n bluetooth: bluetooth_icon,\n bold: bold_icon,\n book: book_icon,\n book_open: book_open_icon,\n bookmark: bookmark_icon,\n box: box_icon,\n briefcase: briefcase_icon,\n calendar: calendar_icon,\n camera: camera_icon,\n camera_off: camera_off_icon,\n cast: cast_icon,\n check: check_icon,\n check_circle: check_circle_icon,\n check_square: check_square_icon,\n chevron_down: chevron_down_icon,\n chevron_left: chevron_left_icon,\n chevron_right: chevron_right_icon,\n chevron_up: chevron_up_icon,\n chevrons_down: chevrons_down_icon,\n chevrons_left: chevrons_left_icon,\n chevrons_right: chevrons_right_icon,\n chevrons_up: chevrons_up_icon,\n chrome: chrome_icon,\n circle: circle_icon,\n clipboard: clipboard_icon,\n clock: clock_icon,\n cloud: cloud_icon,\n cloud_drizzle: cloud_drizzle_icon,\n cloud_lightning: cloud_lightning_icon,\n cloud_off: cloud_off_icon,\n cloud_rain: cloud_rain_icon,\n cloud_snow: cloud_snow_icon,\n code: code_icon,\n codepen: codepen_icon,\n codesandbox: codesandbox_icon,\n coffee: coffee_icon,\n columns: columns_icon,\n command: command_icon,\n compass: compass_icon,\n copy: copy_icon,\n corner_down_left: corner_down_left_icon,\n corner_down_right: corner_down_right_icon,\n corner_left_down: corner_left_down_icon,\n corner_left_up: corner_left_up_icon,\n corner_right_down: corner_right_down_icon,\n corner_right_up: corner_right_up_icon,\n corner_up_left: corner_up_left_icon,\n corner_up_right: corner_up_right_icon,\n cpu: cpu_icon,\n credit_card: credit_card_icon,\n crop: crop_icon,\n crosshair: crosshair_icon,\n database: database_icon,\n delete: delete_icon,\n disc: disc_icon,\n divide: divide_icon,\n divide_circle: divide_circle_icon,\n divide_square: divide_square_icon,\n dollar_sign: dollar_sign_icon,\n download: download_icon,\n download_cloud: download_cloud_icon,\n dribbble: dribbble_icon,\n droplet: droplet_icon,\n edit: edit_icon,\n edit_2: edit_2_icon,\n edit_3: edit_3_icon,\n external_link: external_link_icon,\n eye: eye_icon,\n eye_off: eye_off_icon,\n facebook: facebook_icon,\n fast_forward: fast_forward_icon,\n feather: feather_icon,\n figma: figma_icon,\n file: file_icon,\n file_minus: file_minus_icon,\n file_plus: file_plus_icon,\n file_text: file_text_icon,\n film: film_icon,\n filter: filter_icon,\n flag: flag_icon,\n folder: folder_icon,\n folder_minus: folder_minus_icon,\n folder_plus: folder_plus_icon,\n framer: framer_icon,\n frown: frown_icon,\n gift: gift_icon,\n git_branch: git_branch_icon,\n git_commit: git_commit_icon,\n git_merge: git_merge_icon,\n git_pull_request: git_pull_request_icon,\n github: github_icon,\n gitlab: gitlab_icon,\n globe: globe_icon,\n grid: grid_icon,\n hard_drive: hard_drive_icon,\n hash: hash_icon,\n headphones: headphones_icon,\n heart: heart_icon,\n help_circle: help_circle_icon,\n hexagon: hexagon_icon,\n home: home_icon,\n image: image_icon,\n inbox: inbox_icon,\n info: info_icon,\n instagram: instagram_icon,\n italic: italic_icon,\n key: key_icon,\n layers: layers_icon,\n layout: layout_icon,\n life_buoy: life_buoy_icon,\n link: link_icon,\n link_2: link_2_icon,\n linkedin: linkedin_icon,\n list: list_icon,\n loader: loader_icon,\n lock: lock_icon,\n log_in: log_in_icon,\n log_out: log_out_icon,\n mail: mail_icon,\n map: map_icon,\n map_pin: map_pin_icon,\n maximize: maximize_icon,\n maximize_2: maximize_2_icon,\n meh: meh_icon,\n menu: menu_icon,\n message_circle: message_circle_icon,\n message_square: message_square_icon,\n mic: mic_icon,\n mic_off: mic_off_icon,\n minimize: minimize_icon,\n minimize_2: minimize_2_icon,\n minus: minus_icon,\n minus_circle: minus_circle_icon,\n minus_square: minus_square_icon,\n monitor: monitor_icon,\n moon: moon_icon,\n more_horizontal: more_horizontal_icon,\n more_vertical: more_vertical_icon,\n mouse_pointer: mouse_pointer_icon,\n move: move_icon,\n music: music_icon,\n navigation: navigation_icon,\n navigation_2: navigation_2_icon,\n octagon: octagon_icon,\n package: package_icon,\n paperclip: paperclip_icon,\n pause: pause_icon,\n pause_circle: pause_circle_icon,\n pen_tool: pen_tool_icon,\n percent: percent_icon,\n phone: phone_icon,\n phone_call: phone_call_icon,\n phone_forwarded: phone_forwarded_icon,\n phone_incoming: phone_incoming_icon,\n phone_missed: phone_missed_icon,\n phone_off: phone_off_icon,\n phone_outgoing: phone_outgoing_icon,\n pie_chart: pie_chart_icon,\n play: play_icon,\n play_circle: play_circle_icon,\n plus: plus_icon,\n plus_circle: plus_circle_icon,\n plus_square: plus_square_icon,\n pocket: pocket_icon,\n power: power_icon,\n printer: printer_icon,\n radio: radio_icon,\n refresh_ccw: refresh_ccw_icon,\n refresh_cw: refresh_cw_icon,\n repeat: repeat_icon,\n rewind: rewind_icon,\n rotate_ccw: rotate_ccw_icon,\n rotate_cw: rotate_cw_icon,\n rss: rss_icon,\n save: save_icon,\n scissors: scissors_icon,\n search: search_icon,\n send: send_icon,\n server: server_icon,\n settings: settings_icon,\n share: share_icon,\n share_2: share_2_icon,\n shield: shield_icon,\n shield_off: shield_off_icon,\n shopping_bag: shopping_bag_icon,\n shopping_cart: shopping_cart_icon,\n shuffle: shuffle_icon,\n sidebar: sidebar_icon,\n skip_back: skip_back_icon,\n skip_forward: skip_forward_icon,\n slack: slack_icon,\n slash: slash_icon,\n sliders: sliders_icon,\n smartphone: smartphone_icon,\n smile: smile_icon,\n speaker: speaker_icon,\n square: square_icon,\n star: star_icon,\n stop_circle: stop_circle_icon,\n sun: sun_icon,\n sunrise: sunrise_icon,\n sunset: sunset_icon,\n table: table_icon,\n tablet: tablet_icon,\n tag: tag_icon,\n target: target_icon,\n terminal: terminal_icon,\n thermometer: thermometer_icon,\n thumbs_down: thumbs_down_icon,\n thumbs_up: thumbs_up_icon,\n toggle_left: toggle_left_icon,\n toggle_right: toggle_right_icon,\n tool: tool_icon,\n trash: trash_icon,\n trash_2: trash_2_icon,\n trello: trello_icon,\n trending_down: trending_down_icon,\n trending_up: trending_up_icon,\n triangle: triangle_icon,\n truck: truck_icon,\n tv: tv_icon,\n twitch: twitch_icon,\n twitter: twitter_icon,\n type: type_icon,\n umbrella: umbrella_icon,\n underline: underline_icon,\n unlock: unlock_icon,\n upload: upload_icon,\n upload_cloud: upload_cloud_icon,\n user: user_icon,\n user_check: user_check_icon,\n user_minus: user_minus_icon,\n user_plus: user_plus_icon,\n user_x: user_x_icon,\n users: users_icon,\n video: video_icon,\n video_off: video_off_icon,\n voicemail: voicemail_icon,\n volume: volume_icon,\n volume_1: volume_1_icon,\n volume_2: volume_2_icon,\n volume_x: volume_x_icon,\n watch: watch_icon,\n wifi: wifi_icon,\n wifi_off: wifi_off_icon,\n wind: wind_icon,\n x: x_icon,\n x_circle: x_circle_icon,\n x_octagon: x_octagon_icon,\n x_square: x_square_icon,\n youtube: youtube_icon,\n zap: zap_icon,\n zap_off: zap_off_icon,\n zoom_in: zoom_in_icon,\n zoom_out: zoom_out_icon,\n} as const\n\nexport default icons\n","import { Icon, IconProps } from 'semantic-ui-react'\nimport styled, { css } from 'styled-components'\n\ninterface SemanticIconProps extends IconProps {\n fontcolor: string\n width?: string | number\n height?: string | number\n}\n\nexport const SemanticIcon = styled(Icon)<SemanticIconProps>`\n &.icon,\n &.icon:before {\n margin: 0;\n color: ${({ fontcolor }) => fontcolor};\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${({ width }) => {\n if (!width) return\n\n return css`\n font-size: ${width};\n width: ${width};\n `\n }}\n\n ${({ height }) => {\n if (!height) return\n\n return css`\n font-size: ${height};\n height: ${height};\n `\n }}\n }\n\n &.icon:before {\n height: 100%;\n }\n\n ${({ onClick }) => {\n if (!onClick) return\n return css`\n cursor: pointer;\n `\n }}\n`\n\ninterface SVGContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n color: string\n strokeWidth?: string\n pointer: boolean\n}\n\nexport const SVGContainer = styled.div<SVGContainerProps>`\n display: flex;\n > svg {\n &,\n * {\n stroke: ${({ color }) => color};\n\n ${({ strokeWidth }) => {\n if (!strokeWidth) return\n\n return css`\n stroke-width: ${strokeWidth};\n `\n }}\n }\n }\n\n ${({ pointer }) => {\n if (!pointer) return\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../functions/formatters'\n\nimport { isKeyOf } from '../../functions/validators'\nimport { colors } from '../../theme/constants'\nimport feather from '.././../assets/icons/feather'\nimport { CommonProps, ExtendsCommon, IconProps } from './interfaces'\nimport * as S from './styled'\n\nconst getColor = (c?: string): string => {\n if (!c) return colors.grey\n\n return isKeyOf(colors, c) ? colors[c] : c\n}\n\nconst getCommonProps = (props: ExtendsCommon) => {\n const color = getColor(props.color as string)\n const commonProps = filterObject<typeof props, Omit<CommonProps, 'color'>>(\n props,\n ['type', 'icon', 'color'],\n {\n width: '24px',\n },\n )\n\n return { color, commonProps }\n}\n\nconst Icon = (props: IconProps) => {\n switch (props.type) {\n case 'feather': {\n const { color, commonProps } = getCommonProps(props)\n\n const Component = feather[props.icon]\n return (\n <S.SVGContainer\n color={color}\n strokeWidth={props.strokeWidth}\n pointer={!!props.onClick}\n >\n <Component {...commonProps} />\n </S.SVGContainer>\n )\n }\n case 'semantic': {\n const { color, commonProps } = getCommonProps(props)\n\n return (\n <S.SemanticIcon fontcolor={color} name={props.icon} {...commonProps} />\n )\n }\n case 'svg': {\n const { color, commonProps } = getCommonProps(props)\n\n const Component = props.icon\n return (\n <S.SVGContainer\n color={color}\n strokeWidth={props.strokeWidth}\n pointer={!!props.onClick}\n >\n <Component {...commonProps} />\n </S.SVGContainer>\n )\n }\n case 'jsx': {\n return props.icon\n }\n default:\n throw new Error('Invalid icon type')\n }\n}\n\nexport default Icon\n","import { LoaderProps } from './interfaces'\nimport styled, { css, keyframes } from 'styled-components'\nimport { isKeyOf, isString } from '../../functions/validators'\n\nconst loader = keyframes`\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n`\n\nconst Loader = styled.div<LoaderProps>`\n ${({ size, borderSize, bgColor, color, theme, filled, zIndex }) => {\n borderSize = borderSize || size ? `calc(${size} * 0.0757)` : '5px'\n size = size || '48px'\n color = color || 'blue'\n bgColor = bgColor || color\n\n const beforeColor = isKeyOf<typeof theme.colors>(theme.colors, bgColor)\n ? theme.getColor(bgColor, 25)\n : color\n\n const afterColor = isKeyOf<typeof theme.colors>(theme.colors, color)\n ? theme.getColor(color)\n : color\n\n const fill = !filled\n ? css``\n : css`\n position: absolute;\n left: 0;\n top: 0;\n background-color: ${() => {\n const fillColor = !isString(filled)\n ? theme.colors.white\n : isKeyOf<typeof theme.colors>(theme.colors, filled)\n ? theme.getColor(filled)\n : filled\n return fillColor\n }};\n width: 100%;\n height: 100%;\n `\n\n return css`\n ${fill}\n\n pointer-events: none;\n\n z-index: ${zIndex || 1};\n\n ::before,\n ::after {\n position: absolute;\n content: '';\n\n top: calc(50% - ${size} / 2);\n left: calc(50% - ${size} / 2);\n width: ${size};\n height: ${size};\n border-radius: 50%;\n border-width: ${borderSize};\n border-style: solid;\n }\n\n ::before {\n border-color: ${beforeColor};\n }\n\n ::after {\n animation: ${loader} 0.6s linear;\n animation-iteration-count: infinite;\n border-color: ${afterColor} transparent transparent;\n }\n `\n }}\n`\n\nexport default Loader\n","import { Mask, MaskFunction, MaskReplace, MaskReplaceArray } from './interfaces'\n\nconst isMaskFunction = (value?: Mask): value is MaskFunction => {\n return typeof value === 'function'\n}\n\nconst isMaskReplace = (value?: Mask): value is MaskReplace => {\n return Array.isArray(value) && value[0] instanceof RegExp\n}\n\nconst isMaskReplaceArray = (value?: Mask): value is MaskReplaceArray => {\n return Array.isArray(value) && Array.isArray(value[0])\n}\n\nexport const getMask = (mask?: Mask): MaskFunction => {\n if (isMaskFunction(mask)) {\n return mask\n } else if (isMaskReplace(mask)) {\n const [find, replace] = mask\n return (value: string) => value.replace(find, replace)\n } else if (isMaskReplaceArray(mask)) {\n return (value: string) => {\n let newValue = value\n\n mask.forEach((e) => {\n const [find, replace] = e\n newValue = newValue.replace(find, replace)\n })\n\n return newValue\n }\n }\n\n return (value: string) => value\n}\n","export const updateTitle: React.MouseEventHandler = (event) => {\n let target = event.target as HTMLElement | null\n\n while (target && !('ellipsis' in target.dataset)) {\n target = target.parentElement as HTMLElement | null\n }\n\n if (!target) return\n\n if (\n target.scrollWidth > target.offsetWidth ||\n target.scrollHeight > target.offsetHeight\n ) {\n target.title = target.innerText\n } else target.removeAttribute('title')\n}\n\nconst voidF = () => {}\n\nexport const useEllipsis = (onMouseOver?: React.MouseEventHandler) => {\n const originalHandler = onMouseOver || voidF\n const handler: React.MouseEventHandler = (event) => {\n originalHandler(event)\n updateTitle(event)\n }\n\n return {\n onMouseOver: handler,\n 'data-ellipsis': '',\n }\n}\n","import styled, { css } from 'styled-components'\nimport { EllipsisContainerProps } from './types'\n\nexport const EllipsisContainer = styled.div<EllipsisContainerProps>`\n overflow: hidden;\n text-overflow: ellipsis;\n\n ${({ lines }) => {\n return lines\n ? css`\n display: -webkit-box;\n\n -webkit-box-orient: vertical;\n -moz-box-orient: vertical;\n -ms-box-orient: vertical;\n box-orient: vertical;\n\n -webkit-line-clamp: ${lines};\n -moz-line-clamp: ${lines};\n -ms-line-clamp: ${lines};\n line-clamp: ${lines};\n `\n : css`\n white-space: nowrap;\n `\n }}\n`\n","import React from 'react'\nimport { useEllipsis } from './functions'\n\nimport * as S from './styled'\nimport { EllipsisContainerProps } from './types'\n\nconst EllipsisContainer = (props: EllipsisContainerProps) => {\n return <S.EllipsisContainer {...props} {...useEllipsis(props.onMouseOver)} />\n}\n\nexport default EllipsisContainer\n","import styled, { css } from 'styled-components'\nimport EllipsisContainer from '../../../EllipsisContainer'\nimport {\n StyledInputProps,\n StyledLabelProps,\n StyledLabelTextProps,\n} from './interfaces'\n\nexport const IconContainer = styled.div`\n position: absolute;\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 17px;\n\n background-color: transparent;\n border: none;\n box-shadow: none;\n padding: 0;\n`\n\nexport const ChildrenContainer = styled(EllipsisContainer)`\n position: absolute;\n width: 100%;\n height: 100%;\n bottom: 0;\n left: 0;\n line-height: 19px;\n display: flex;\n gap: calc(${({ theme }) => theme.spacings.s1} / 2);\n`\n\nexport const Input = styled.input<StyledInputProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme, $invalid: invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkBlue\n }};\n\n line-height: 17px;\n\n ::placeholder {\n color: ${({ theme, $invalid: invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkGrey\n }};\n\n line-height: 17px;\n\n ${({ placeholder }) => {\n if (placeholder !== '••••••••') {\n return css`\n ${({ theme }) => theme.useTypography('p')};\n opacity: 1;\n `\n }\n\n return css`\n opacity: 0.5;\n font-size: 14px;\n letter-spacing: 0px;\n `\n }}\n }\n\n display: block;\n width: 100%;\n box-sizing: border-box;\n\n ${({ theme, $paddingless: paddingless }) => {\n if (paddingless) {\n return css`\n padding: 0;\n `\n }\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n ~ ${ChildrenContainer} {\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n }\n `\n }};\n\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, $invalid: invalid, $borderless: borderless }) => {\n if (borderless) return 'transparent'\n return invalid ? theme.colors.warningRed : theme.colors.lightGrey\n }};\n border-radius: 4px;\n\n ${({ theme, $invalid: invalid }) => {\n const color = invalid ? theme.getColor('warningRed', 5) : theme.colors.white\n return css`\n background-color: ${color};\n /** google chrome blue background */\n -webkit-box-shadow: 0 0 0px 1000px ${color} inset !important;\n `\n }};\n\n box-shadow: none;\n outline: none;\n\n ${({ $arrows: arrows }) => {\n if (arrows) return\n\n return css`\n /* Chrome, Safari, Edge, Opera */\n :-webkit-outer-spin-button,\n :-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n -moz-appearance: textfield;\n `\n }}\n\n ${({ readOnly, onClick, disabled }) => {\n if (!readOnly || !onClick || disabled) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n\nexport const InputContainer = styled.div<{ width?: string }>`\n position: relative;\n width: ${({ width }) => width || '100%'};\n`\n\nexport const Label = styled.label<StyledLabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n line-height: 17px;\n\n color: ${({ theme }) => {\n return theme.colors.greyishBlue\n }};\n\n width: ${({ $width: width }) => width || '100%'};\n box-sizing: border-box;\n display: block;\n\n ${({ $disabled: disabled, $viewMode: viewMode }) => {\n if (!disabled || viewMode) return\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > ${InputContainer} > ${IconContainer} {\n bottom: ${({ theme, $paddingless: paddingless }) => {\n return paddingless ? '2px' : `calc(${theme.spacings.s2} + 1px)`\n }};\n }\n\n ${({ $disabled: disabled }) => {\n if (!disabled) return\n\n return css`\n > ${InputContainer}:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n `\n }}\n\n ${({ $readOnly: readOnly, $disabled: disabled, $loading: loading }) => {\n if (loading || readOnly || disabled) return\n\n return css`\n cursor: pointer;\n `\n }}\n\n ${({\n theme,\n $iconWidths: iconWidths,\n $iconPosition: position,\n $paddingless: paddingless,\n }) => {\n if (iconWidths.length < 1) return\n\n const width = `calc(${iconWidths.join(' + ')} + ${\n theme.spacings.s1\n } / 2 * ${iconWidths.length - 1})`\n\n const padding = paddingless ? '0px' : theme.spacings.s3\n\n if (position === 'right') {\n return css`\n > ${InputContainer} > ${IconContainer} {\n width: ${width};\n right: calc(${padding} / 2);\n }\n\n > ${InputContainer} > ${Input} {\n padding-right: calc(${padding} + ${width});\n ~ ${ChildrenContainer} {\n padding-right: calc(${padding} + ${width});\n }\n }\n `\n }\n\n return css`\n > ${InputContainer} > ${IconContainer} {\n width: ${width};\n left: calc(${padding} / 2);\n }\n\n > ${InputContainer} > ${Input} {\n padding-left: calc(${padding} + ${width});\n ~ ${ChildrenContainer} {\n padding-left: calc(${padding} + ${width});\n }\n }\n `\n }}\n`\n\nexport const LabelText = styled.div<StyledLabelTextProps>`\n display: inline-block;\n\n ${({ $viewMode: viewMode }) => {\n if (!viewMode) return\n\n return css`\n font-weight: bold;\n `\n }}\n\n margin-bottom: ${({ theme, $viewMode: viewMode }) =>\n theme.spacings[viewMode ? 's3' : 's1']};\n\n ${({ $required: required, $viewMode: viewMode }) => {\n if (!required || viewMode) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n\nexport const ViewModeContainer = styled.div`\n ${({ children }) => {\n if (children) return\n\n return css`\n :before {\n content: ' ';\n white-space: pre;\n }\n `\n }}\n`\n","import React, { ProviderProps } from 'react'\nimport { ContextProps } from './types'\n\nconst defaultValue: ContextProps = {\n isRequired: () => false,\n isInvalid: () => false,\n isViewMode: () => false,\n isDisabled: () => false,\n}\n\nconst Context = React.createContext<ContextProps>({ ...defaultValue })\n\nconst useContext = <Name extends string = string>(\n name: Name | undefined,\n): { [K in keyof ContextProps]: () => boolean } => {\n const context = React.useContext(Context)\n\n return {\n isRequired: () => false,\n isInvalid: () => false,\n isViewMode: () => false,\n isDisabled: () => false,\n\n ...(name\n ? {\n isRequired: () => context.isRequired(name),\n isInvalid: () => context.isInvalid(name),\n isViewMode: () => context.isViewMode(name),\n isDisabled: () => context.isDisabled(name),\n }\n : {}),\n }\n}\n\nexport const Provider = <Name extends string = string>(\n props: ProviderProps<Partial<ContextProps<Name>>>,\n) => {\n return (\n <Context.Provider\n {...props}\n value={{ ...defaultValue, ...props.value } as ContextProps}\n />\n )\n}\n\nexport default useContext\n","import React from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport useContext, { Provider } from './context'\nimport { FormProps } from './types'\n\nconst Form = Object.assign(\n React.forwardRef(\n Object.assign(\n <Name extends string = string>(\n props: FormProps<Name>,\n ref: React.ForwardedRef<HTMLFormElement>,\n ) => {\n const formProps = filterObject<\n FormProps<Name>,\n React.HTMLAttributes<HTMLFormElement>\n >(props, ['isRequired', 'isInvalid', 'isViewMode', 'isDisabled'])\n\n return (\n <Provider\n value={{\n ...(props.isRequired ? { isRequired: props.isRequired } : {}),\n ...(props.isInvalid ? { isInvalid: props.isInvalid } : {}),\n ...(props.isViewMode ? { isViewMode: props.isViewMode } : {}),\n ...(props.isDisabled ? { isDisabled: props.isDisabled } : {}),\n }}\n >\n <form ref={ref} {...formProps} />\n </Provider>\n )\n },\n { displayName: 'Form' },\n ),\n ),\n { useContext },\n)\n\nexport default Form\n","import React, { useEffect } from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport Loader from '../../../Loader'\nimport { getMask } from '../../functions'\n\nimport { InputProps, StyledInputProps } from './interfaces'\nimport * as S from './styles'\nimport { isString } from '../../../../functions/validators'\nimport Form from '../../../Form'\nimport Icon from '../../../Icon'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref: React.ForwardedRef<HTMLInputElement>) => {\n const {\n label,\n loading,\n readOnly,\n arrows,\n borderless,\n paddingless,\n clearable,\n onPressEnter,\n width,\n } = {\n ...props,\n }\n\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const mask = getMask(props.mask)\n\n useEffect(() => {\n if (!isString(props.value)) return\n const masked = mask(props.value)\n if (masked !== props.value) setValue(masked)\n }, [props.value])\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const inputProps = filterObject<InputProps, StyledInputProps>(\n props,\n [\n 'label',\n 'invalid',\n 'required',\n 'icon',\n 'mask',\n 'loading',\n 'clearable',\n 'setValue',\n 'onPressEnter',\n 'htmlDisabled',\n 'htmlReadOnly',\n 'viewMode',\n 'width',\n 'inputWidth',\n 'arrows',\n 'borderless',\n 'paddingless',\n 'children',\n ],\n {\n $invalid: invalid,\n type: 'text',\n $arrows: arrows,\n $borderless: borderless,\n $paddingless: paddingless,\n },\n )\n\n const onChange = inputProps.onChange || (() => {})\n const setValue = props.setValue || (() => {})\n\n inputProps.onChange = (event) => {\n const masked = mask(event.target.value)\n\n const [start, end] =\n event.target.selectionStart === event.target.selectionEnd &&\n event.target.selectionEnd === event.target.value.length\n ? [masked.length, masked.length]\n : [event.target.selectionStart, event.target.selectionEnd]\n\n event.target.value = masked\n\n onChange(event)\n setValue(event.target.value)\n\n // some types, like \"email\", does'nt support setSelectionRange\n if (['text', 'search', 'url', 'password'].includes(event.target.type)) {\n // restore cursor position\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: microbundle ts is outdated\n event.target.setSelectionRange(start, end)\n }\n }\n\n if (inputProps.onKeyDown || onPressEnter) {\n const onKeyDown = inputProps.onKeyDown || (() => {})\n\n const _onPressEnter = onPressEnter\n ? (event: React.KeyboardEvent<HTMLInputElement>) => {\n event.preventDefault()\n onPressEnter(event)\n }\n : () => {}\n\n inputProps.onKeyDown = (event) => {\n onKeyDown(event)\n\n if (event.key === 'Enter') {\n _onPressEnter(event)\n }\n }\n }\n\n if (inputProps.onKeyUp) {\n const onKeyUp = inputProps.onKeyUp\n\n inputProps.onKeyUp = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUp(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyDownCapture) {\n const onKeyDownCapture = inputProps.onKeyDownCapture\n\n inputProps.onKeyDownCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyDownCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyUpCapture) {\n const onKeyUpCapture = inputProps.onKeyUpCapture\n\n inputProps.onKeyUpCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUpCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n const icon: Required<InputProps>['icon']['icon'] | undefined = (() => {\n const icon = {\n ...(invalid ? { color: 'warningRed' } : {}),\n }\n\n if (clearable) {\n const callback =\n typeof clearable === 'function' ? clearable : () => setValue('')\n\n return {\n ...icon,\n type: 'feather',\n icon: 'x',\n width: '14px',\n onClick: (e) => {\n e.preventDefault()\n callback()\n },\n } as Required<InputProps>['icon']['icon']\n }\n\n if (!props.icon) return props.icon\n\n return { ...icon, ...props.icon.icon }\n })()\n\n const { dirty } = props\n const onDirty = (() => {\n if (dirty === undefined || typeof dirty === 'function') return dirty\n\n if (props.value === dirty) return undefined\n\n return () => setValue(dirty)\n })()\n\n if (props.htmlDisabled) inputProps.disabled = true\n if (props.htmlReadOnly) inputProps.readOnly = true\n\n return (\n <S.Label\n $readOnly={readOnly || viewMode}\n $disabled={disabled}\n $loading={loading}\n $invalid={invalid}\n $paddingless={paddingless}\n $iconPosition={props.icon?.position || 'right'}\n $iconWidths={\n loading\n ? ['14px']\n : [\n ...(icon ? [icon.width || '24px'] : []),\n ...(onDirty ? ['10px'] : []),\n ]\n }\n $width={width}\n $viewMode={viewMode}\n >\n {label && (\n <S.LabelText $required={required} $viewMode={viewMode}>\n {label}\n </S.LabelText>\n )}\n\n {viewMode ? (\n <S.ViewModeContainer children={inputProps.value || props.children} />\n ) : (\n <S.InputContainer width={props.inputWidth}>\n <S.Input {...inputProps} ref={ref} />\n\n {props.children && (\n <S.ChildrenContainer children={props.children} />\n )}\n\n <S.IconContainer>\n {loading ? (\n <Icon type='jsx' icon={<Loader size='14px' />} width='14px' />\n ) : (\n <React.Fragment>\n {onDirty && (\n <Icon\n {...{\n type: 'semantic',\n icon: 'undo alternate',\n width: '10px',\n onClick: props.disabled\n ? undefined\n : (e) => {\n e.preventDefault()\n onDirty()\n },\n ...(invalid ? { color: 'warningRed' } : {}),\n }}\n />\n )}\n\n {icon && (\n <Icon\n {...icon}\n {...('onClick' in icon && props.disabled\n ? { onClick: undefined }\n : {})}\n />\n )}\n </React.Fragment>\n )}\n </S.IconContainer>\n </S.InputContainer>\n )}\n </S.Label>\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport default Input\n","import styled, { css } from 'styled-components'\nimport { isKeyOf } from '../../../../functions/validators'\nimport { LabelContentProps, LabelProps } from './interfaces'\n\nconst size = '17px'\n\nexport const Checkmark = styled.div`\n position: relative;\n height: ${size};\n width: ${size};\n background-color: ${({ theme }) => theme.colors.white};\n\n border-style: solid;\n border-color: transparent;\n border-width: 1px;\n border-radius: 4px;\n\n transition-property: border-color;\n transition-duration: 0.25s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);\n\n :after {\n content: '';\n position: absolute;\n\n left: 50%;\n top: 50%;\n height: 0;\n width: 0;\n\n border-style: solid;\n border-color: ${({ theme }) => theme.colors.blue};\n border-width: 0;\n transform: rotate(45deg);\n\n transition-property: width height border-width top left;\n transition-duration: 0.25s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);\n }\n\n /** if there is a label, it will be placed after this element */\n + * {\n flex: 1;\n }\n`\n\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n\n ${({ $padding: padding, theme }) => {\n if (!padding) return\n\n const _padding = {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n }\n\n if (padding.top) {\n _padding.top = padding.top\n if (isKeyOf(theme.spacings, padding.top)) {\n _padding.top = theme.spacings[padding.top]\n }\n }\n\n if (padding.left) {\n _padding.left = padding.left\n if (isKeyOf(theme.spacings, padding.left)) {\n _padding.left = theme.spacings[padding.left]\n }\n }\n\n if (padding.bottom) {\n _padding.bottom = padding.bottom\n if (isKeyOf(theme.spacings, padding.bottom)) {\n _padding.bottom = theme.spacings[padding.bottom]\n }\n }\n\n if (padding.right) {\n _padding.right = padding.right\n if (isKeyOf(theme.spacings, padding.right)) {\n _padding.right = theme.spacings[padding.right]\n }\n }\n\n return css`\n padding-top: ${_padding.top};\n padding-left: ${_padding.left};\n padding-right: ${_padding.right};\n padding-bottom: ${_padding.bottom};\n `\n }}\n\n ${({ $disabled: disabled, $readOnly: readOnly }) => {\n if (disabled) {\n return css`\n opacity: 0.5;\n `\n }\n\n if (readOnly) return\n\n return css`\n cursor: pointer;\n `\n }}\n\n ${({ theme, $bordered: bordered, $invalid: invalid }) => {\n if (!bordered) return\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n\n border-width: 1px;\n border-style: solid;\n border-color: ${theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n border-radius: 4px;\n `\n }}\n\n display: flex;\n align-items: center;\n\n user-select: none;\n min-height: ${size};\n min-width: ${size};\n gap: ${({ theme }) => theme.spacings.s1};\n\n > input {\n position: absolute;\n opacity: 0;\n height: 1px;\n width: 1px;\n }\n\n :hover ${Checkmark} {\n background-color: ${({ theme }) => theme.colors.iceWhite};\n }\n ${({ theme, $viewMode: viewMode }) =>\n viewMode\n ? css`\n > input ~ ${Checkmark} {\n border-color: transparent;\n }\n `\n : css`\n > input ~ ${Checkmark} {\n border-color: ${theme.colors.lightestGrey};\n }\n > input:checked ~ ${Checkmark} {\n border-color: ${({ theme }) => theme.colors.blue};\n }\n `}\n\n > input:checked ~ ${Checkmark} {\n :after {\n width: 5px;\n height: 9.5px;\n border-width: 0 2px 2px 0;\n left: 5px;\n top: 1px;\n }\n }\n\n ${({ theme, $invalid: invalid }) => {\n if (!invalid) return\n\n return css`\n ${Checkmark},\n > input:checked ~ ${Checkmark}, \n > input:checked ~ ${Checkmark}:after {\n border-color: ${theme.colors.warningRed};\n }\n `\n }};\n\n ${({ $width: width }) => {\n return (\n width &&\n css`\n width: ${width};\n `\n )\n }}\n`\n\nexport const LabelContent = styled.div<LabelContentProps>`\n display: inline-block;\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n flex: 1;\n overflow: hidden;\n\n ${({ required, viewMode }) => {\n if (!required || viewMode) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport Form from '../../../Form'\n\nimport { CheckboxProps } from './interfaces'\nimport * as S from './styles'\n\nconst Checkbox = React.forwardRef(\n (props: CheckboxProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { padding, bordered } = props\n\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const htmlProps = filterObject<\n CheckboxProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, ['label', 'invalid', 'required', 'padding', 'bordered'])\n\n const [LabelComponent, children] = (() => {\n if (!props.label) {\n return [\n (() => null) as Exclude<\n CheckboxProps['label'],\n React.ReactNode | undefined\n >,\n ] as const\n }\n return typeof props.label === 'function'\n ? ([props.label] as const)\n : ([S.LabelContent, props.label] as const)\n })()\n\n return (\n <S.Label\n $disabled={disabled}\n $required={required}\n $invalid={invalid}\n $bordered={!viewMode && bordered}\n $padding={padding}\n $readOnly={props.readOnly || viewMode}\n $width={props.width}\n $viewMode={viewMode}\n >\n <input\n {...htmlProps}\n type='checkbox'\n ref={ref}\n disabled={htmlProps.disabled || viewMode}\n />\n <S.Checkmark />\n <LabelComponent\n {...{\n disabled,\n required,\n viewMode,\n invalid,\n bordered,\n padding,\n children,\n }}\n />\n </S.Label>\n )\n },\n)\n\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\n","import { useEffect, useState } from 'react'\n\nconst useOnClickOut = <T extends HTMLElement>(callback: () => void) => {\n const [ref, setRef] = useState<T | null>(null)\n\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref || ref.contains(event.target as Node)) {\n return\n }\n\n callback()\n }\n\n document.addEventListener('mousedown', listener)\n document.addEventListener('touchstart', listener)\n\n return () => {\n document.removeEventListener('mousedown', listener)\n document.removeEventListener('touchstart', listener)\n }\n }, [ref, callback])\n\n return setRef\n}\n\nexport default useOnClickOut\n","export const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n] as const\n\nexport const maxHeight = '378px'\n\nexport const inputTimeWidth = {\n withSeconds: '86px',\n withoutSeconds: '66px',\n}\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { StyledAfterBefore } from '../../interfaces'\n\nconst BeforeAfterContainer = styled.div<StyledAfterBefore>`\n ${({ theme, $fluid: fluid, $spacing: spacing }) => {\n const padding = getSpacings(spacing || '0', {\n top: '0',\n right: '0',\n bottom: '0',\n left: '0',\n }).split(' ')\n\n padding[1] = fluid ? '0' : `calc(${theme.spacings.s1} * 1.5)`\n\n return css`\n padding: ${padding.join(' ')};\n `\n }}\n\n ${({ theme, $background: background }) => {\n if (!background) return\n const args: Parameters<typeof theme.getColor> = Array.isArray(background)\n ? background\n : [background]\n\n const value = theme.getColor(...args)\n\n return css`\n background-color: ${value};\n :after {\n background-color: ${value};\n }\n `\n }}\n\n display: flex;\n flex-direction: column;\n\n position: relative;\n\n :after {\n content: '';\n width: ${({ theme }) => `calc(${theme.spacings.s1} * .5)`};\n height: 100%;\n\n position: absolute;\n top: 0;\n left: 100%;\n }\n`\n\nexport default BeforeAfterContainer\n","import styled from 'styled-components'\n\nconst Container = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n\n padding-right: calc(${({ theme }) => theme.spacings.s1} / 2);\n display: flex;\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n`\n\nexport default Container\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { OverflowContainerProps } from '../../interfaces'\n\nconst OverflowContainer = styled.div<OverflowContainerProps>`\n overflow-y: scroll;\n overflow-y: overlay;\n width: 100%;\n position: relative;\n\n flex: 1;\n display: flex;\n flex-direction: column;\n\n ${({ $height: height, $maxHeight: maxHeight }) => {\n if (height) {\n return css`\n min-height: ${height};\n max-height: ${maxHeight || height};\n `\n }\n\n return css`\n max-height: ${maxHeight || '100%'};\n `\n }};\n\n scrollbar-color: ${({ theme }) =>\n `${theme.colors.grey} ${theme.colors.white}`};\n scrollbar-width: thin;\n\n ::-webkit-scrollbar {\n width: 7px;\n }\n ::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.colors.grey};\n }\n ::-webkit-scrollbar-track {\n background: ${({ theme }) => theme.colors.white};\n }\n\n ${({ $spacing: spacing, theme }) => {\n const value = getSpacings(spacing || '0', '0').split(' ')\n\n return css`\n padding: ${value[0]} calc(${theme.spacings.s1} * 1.5) ${value[2]}\n ${value[3]};\n `\n }};\n`\n\nexport default OverflowContainer\n","import styled from 'styled-components'\n\nconst RelativeContainer = styled.div`\n position: relative;\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n`\n\nexport default RelativeContainer\n","import React, { useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport Loader from '../Loader'\n\nimport {\n AfterBefore,\n OverflowContainerProps,\n ScrollContainerProps,\n StyledAfterBefore,\n} from './interfaces'\nimport * as S from './styles'\n\nconst isAfterBefore = (\n props: Exclude<ScrollContainerProps['before'], undefined>,\n): props is AfterBefore => {\n return !React.isValidElement(props)\n}\n\nconst getBeforeAfter = (props: ScrollContainerProps['before']) => {\n if (!props) return null\n\n if (!isAfterBefore(props)) return <S.BeforeAfterContainer children={props} />\n\n const args = filterObject<AfterBefore, StyledAfterBefore>(\n props,\n ['fluid', 'background', 'spacing'],\n {\n $fluid: props.fluid,\n $background: props.background,\n $spacing: props.spacing,\n },\n )\n\n return <S.BeforeAfterContainer {...args} />\n}\n\nconst ScrollContainer = React.forwardRef<HTMLDivElement, ScrollContainerProps>(\n (props, ref) => {\n const { loading } = props\n\n const onScrollEnd = props.onScrollEnd || (() => {})\n\n const [, setLastPagination] = useState<Date>(new Date())\n\n const onScroll = (event: React.UIEvent<HTMLDivElement, UIEvent>) => {\n // preventing event bublling, can be removed if react is grather than 17\n if (event.target !== event.currentTarget) return\n\n const target = event.nativeEvent.target as HTMLDivElement | null\n\n if (!target) return\n\n const scrollTopMax =\n target.scrollHeight - target.getBoundingClientRect().height - 10 // -10 is a workaround to work with Chrome zoom\n const scrollTop = target.scrollTop\n\n if (scrollTopMax > 0 && scrollTop >= scrollTopMax) {\n setLastPagination((prev) => {\n const now = new Date()\n\n const diff = Math.abs((now.getTime() - prev.getTime()) / 1000)\n\n if (diff < 0.5) return prev\n\n onScrollEnd(event)\n return now\n })\n }\n }\n\n const _onScroll = props.onScroll || (() => {})\n\n const htmlProps = filterObject<\n ScrollContainerProps,\n OverflowContainerProps\n >(\n props,\n [\n 'onScrollEnd',\n 'before',\n 'after',\n 'loading',\n 'height',\n 'maxHeight',\n 'spacing',\n 'empty',\n ],\n {\n $height: props.height,\n $maxHeight: props.maxHeight,\n $spacing: props.spacing,\n },\n )\n\n return (\n <S.Container>\n {getBeforeAfter(props.before)}\n\n <S.RelativeContainer>\n {\n <S.OverflowContainer\n ref={ref}\n {...htmlProps}\n onScroll={(event: React.UIEvent<HTMLDivElement, UIEvent>) => {\n _onScroll(event)\n onScroll(event)\n }}\n {...(props.empty && props.empty.empty\n ? { children: props.empty.content }\n : {})}\n />\n }\n\n {loading && <Loader filled {...(loading === true ? {} : loading)} />}\n </S.RelativeContainer>\n\n {getBeforeAfter(props.after)}\n </S.Container>\n )\n },\n)\n\nScrollContainer.displayName = 'ScrollContainer'\n\nexport default ScrollContainer\n","import styled, { css } from 'styled-components'\nimport { isKeyOf } from '../../functions/common'\nimport { getBorder, getSpacings, keys } from '../../functions/formatters'\nimport AbsoluteContainer from '../AbsoluteContainer'\nimport { ContainerProps, StyledOptionProps } from './interfaces'\n\nexport const Option = styled.div<StyledOptionProps>`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n color: ${({ theme }) => theme.colors.darkBlue};\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > :nth-child(1) {\n display: flex;\n align-items: center;\n flex: 1;\n max-width: 100%;\n }\n\n ${({ $disabled: disabled }) => {\n if (!disabled) {\n return css`\n cursor: pointer;\n `\n }\n\n return css`\n pointer-events: none;\n opacity: 0.3;\n `\n }};\n\n ${({ $border: border, theme }) => {\n if (!border) return\n\n const config = getBorder(border)\n\n return keys(config)\n .filter((k) => config[k] !== undefined)\n .map((pos) => {\n const cfg = config[pos] as Exclude<typeof config[typeof pos], undefined>\n\n const width = cfg.width || '1px'\n const style = cfg.style || 'solid'\n const color = isKeyOf(theme.colors, cfg.color)\n ? theme.colors[cfg.color]\n : cfg.color\n\n return css`\n border-${pos}-width: ${width};\n border-${pos}-style: ${style};\n border-${pos}-color: ${color};\n `\n })\n }};\n\n :hover {\n background-color: ${({ theme }) => theme.getColor('blue', 15)};\n }\n\n ${({ $highlighted: highlighted }) => {\n if (!highlighted) return\n return css`\n background-color: ${({ theme }) => theme.getColor('blue', 15)};\n `\n }}\n`\n\nexport const Container = styled(AbsoluteContainer)<ContainerProps>`\n display: flex;\n\n > div {\n display: flex;\n width: 100%;\n\n > div:nth-child(1) {\n background-color: ${({ theme }) => theme.colors.white};\n border-radius: 4px;\n\n ${(props) => {\n if (!props.containerSpacing) return\n\n let spacing = getSpacings(props.containerSpacing)\n const tmp = spacing.split(' ')\n tmp[1] = `calc(${props.theme.spacings.s1} / 2)`\n spacing = tmp.join(' ')\n\n return css`\n padding: ${spacing};\n `\n }}\n }\n\n ${({ bordered }) => {\n if (!bordered) return\n\n return css`\n ${Option} {\n :not(:last-child) {\n border-bottom: 1px solid\n ${({ theme }) => theme.getColor('greyishBlue', 10)};\n }\n }\n `\n }}\n\n ${(props) => {\n const { theme } = props\n\n if (!props.itemSpacing) {\n return css`\n ${Delimiter} {\n margin: ${theme.spacings.s1} 0px ${theme.spacings.s1}\n ${theme.spacings.s1};\n }\n `\n }\n\n const spacing = getSpacings(props.itemSpacing, { right: '0' })\n\n return css`\n ${Option} {\n padding: ${spacing};\n }\n ${Delimiter} {\n margin: ${spacing};\n }\n `\n }}\n }\n`\n\nexport const Delimiter = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n\n border-bottom: 1px solid ${({ theme }) => theme.colors.greyishBlue};\n margin: 14px;\n width: calc(100% - 28px);\n`\n","import React, { useEffect, useState } from 'react'\nimport { Popup } from 'semantic-ui-react'\n\nimport { filterObject } from '../../functions/formatters'\nimport Icon from '../Icon'\nimport ScrollContainer from '../ScrollContainer'\n\nimport {\n MenuOptionLabelProps,\n ContainerProps,\n MenuInterface,\n} from './interfaces'\nimport * as S from './styles'\n\nconst isVisible = (elem: HTMLElement, bound: HTMLElement) => {\n const docViewTop = bound.scrollTop\n const docViewBottom = docViewTop + bound.offsetHeight\n\n const elemTop = elem.offsetTop\n const elemBottom = elemTop + elem.offsetHeight\n\n return elemBottom <= docViewBottom && elemTop >= docViewTop\n}\n\nconst MenuComponent: MenuInterface = (props, ref) => {\n const { close, options, children, highlight } = { ...props }\n\n const [scrollRef, setScrollRef] = useState<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!scrollRef || highlight === undefined) return\n\n const element = scrollRef.children[highlight] as HTMLElement | undefined\n if (!element) return\n\n if (isVisible(element, scrollRef)) return\n\n scrollRef.scrollTo(0, element.offsetTop)\n }, [highlight, scrollRef])\n\n const absoluteContainerProps = filterObject<\n typeof props,\n Omit<ContainerProps, 'transition'>\n >(\n props,\n [\n 'scrollSpacing',\n 'scrollTabIndex',\n 'onScrollEnd',\n 'before',\n 'after',\n 'close',\n 'options',\n 'loading',\n 'children',\n 'emptyContent',\n 'highlight',\n ],\n {\n itemSpacing: 's1',\n },\n )\n\n return (\n <S.Container {...absoluteContainerProps} ref={ref}>\n <React.Fragment>\n <ScrollContainer\n ref={setScrollRef}\n onScrollEnd={props.onScrollEnd}\n before={props.before}\n after={props.after}\n empty={\n props.emptyContent\n ? {\n empty: options.length === 0,\n content: props.emptyContent,\n }\n : undefined\n }\n spacing={props.scrollSpacing}\n loading={props.loading}\n tabIndex={props.scrollTabIndex}\n >\n {options.map((option, index) => {\n const { delimiter, keepOpen, caret, data } = { ...option }\n\n const closeMenu = keepOpen ? () => {} : close\n\n let onClick: React.MouseEventHandler<HTMLDivElement> | undefined\n let disabled = option.disabled\n\n let OptionContent: React.FunctionComponent<{\n children: JSX.Element\n }> = ({ children }) => children\n\n if (!disabled) {\n const rule = (option.rules || [])\n .map((rule) => {\n return rule(index, data)\n })\n .find((result) => result !== true)\n\n if (rule === true || rule === undefined) {\n const _onClick = option.onClick || (() => {})\n\n onClick = (e) => {\n _onClick(index, option, e)\n closeMenu()\n }\n } else {\n disabled = true\n if (rule !== false) {\n // eslint-disable-next-line react/display-name\n OptionContent = ({ children }) => (\n <Popup\n on='click'\n position='left center'\n inverted\n wide\n popperModifiers={[\n {\n name: 'preventOverflow',\n options: { boundariesElement: 'window' },\n },\n ]}\n {...rule}\n trigger={<div>{children}</div>}\n />\n )\n }\n }\n }\n\n OptionContent.displayName = 'OptionContent'\n\n const label = option.label\n\n const labelOptions = filterObject<\n typeof option,\n MenuOptionLabelProps\n >(option, ['onClick', 'label', 'rules'])\n labelOptions.disabled = disabled\n\n const LabelComponent =\n typeof label === 'function'\n ? label\n : () => <React.Fragment children={label} />\n\n return (\n <React.Fragment key={index}>\n <OptionContent>\n <S.Option\n onClick={onClick}\n $disabled={disabled}\n $border={option.border}\n $highlighted={index === highlight}\n >\n <div>\n <LabelComponent {...option} disabled={disabled} />\n </div>\n\n {caret ? (\n <Icon type='semantic' icon='caret right' width='14px' />\n ) : null}\n </S.Option>\n </OptionContent>\n\n {delimiter && <S.Delimiter />}\n </React.Fragment>\n )\n })}\n </ScrollContainer>\n\n {children}\n </React.Fragment>\n </S.Container>\n )\n}\n\nconst Menu = React.forwardRef(MenuComponent) as MenuInterface\n\nexport default Menu\n","import styled, { css } from 'styled-components'\n\nimport MwAbsoluteContainer from '../../../AbsoluteContainer'\n\nexport const Container = styled.div<{ $paddingless?: true }>`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n position: relative;\n\n ${({ theme, $paddingless: paddingless }) => {\n if (paddingless) return\n const { s3 } = theme.spacings\n return css`\n padding-top: ${s3};\n padding-bottom: ${s3};\n :first-child {\n padding-left: ${s3};\n }\n :last-child {\n padding-right: ${s3};\n }\n `\n }};\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const CalendarContainer = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n`\n\nexport const AbsoluteContainer = styled(MwAbsoluteContainer)`\n > ${Container} {\n padding: ${({ theme }) =>\n `${theme.spacings.s3} ${theme.spacings.s3} ${theme.spacings.s1} ${theme.spacings.s3}`};\n }\n`\n\nexport const MonthContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n > div {\n margin: ${({ theme }) => theme.spacings.s1} 0;\n flex: 1;\n position: relative;\n }\n`\n\nexport const MonthName = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n color: ${({ theme }) => theme.colors.darkBlue};\n text-align: center;\n`\n\nexport const MonthBtn = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n\nexport const NavBtn = styled.button`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n width: 32px;\n height: 32px;\n box-shadow: none;\n border: none;\n background-color: transparent;\n\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n :disabled {\n visibility: hidden;\n }\n :not(:disabled) {\n cursor: pointer;\n :hover {\n background-color: ${({ theme }) => theme.getColor('blue', 35)};\n }\n }\n\n transition-property: background-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n`\n","import React, { useEffect, useState } from 'react'\n\nimport Icon from '../../../../../Icon'\nimport Menu from '../../../../../Menu'\nimport { MenuProps } from '../../../../../Menu/interfaces'\nimport { months } from '../../../../constants'\nimport * as S from '../../styles'\n\nconst MonthPicker = (\n props: Omit<MenuProps, 'before' | 'options' | 'spacing'> & {\n year: number\n setValue: (year: number, month: number) => void\n min?: Date\n max?: Date\n },\n) => {\n const { setValue, close, min, max } = props\n\n const [year, setYear] = useState(props.year)\n\n useEffect(() => {\n setYear(props.year)\n }, [props.open, props.year])\n\n return (\n <Menu\n {...props}\n before={{\n fluid: true,\n children: (\n <S.MonthContainer>\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev - 1)}\n disabled={min !== undefined && min.getFullYear() >= year}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n\n <div>\n <S.MonthBtn>{year}</S.MonthBtn>\n </div>\n\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev + 1)}\n disabled={max !== undefined && max.getFullYear() <= year}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n </S.MonthContainer>\n ),\n }}\n options={months.map((label, index) => {\n return {\n label,\n onClick: () => {\n setValue(year, index)\n close()\n },\n rules: [\n () => {\n const disabled =\n (min !== undefined &&\n (min.getFullYear() > year ||\n (min.getFullYear() === year && min.getMonth() > index))) ||\n (max !== undefined &&\n (max.getFullYear() < year ||\n (max.getFullYear() === year && max.getMonth() < index)))\n\n return !disabled\n },\n ],\n data: {},\n }\n })}\n />\n )\n}\n\nexport default MonthPicker\n","import { colors } from '../../theme/constants'\nimport { Sizes, Types } from './interfaces'\n\nexport const sizes: { [key in Sizes]: string } = {\n medium: '15px',\n small: '6px',\n mini: '4px',\n} as const\n\nexport const types: { [key in Types]: keyof typeof colors } = {\n default: 'warningGray',\n info: 'blue',\n danger: 'warningRed',\n success: 'green',\n warning: 'warningYellow',\n} as const\n","import styled, { css } from 'styled-components'\nimport { sizes, types } from './constants'\nimport { IndicatorProps } from './interfaces'\n\nexport const Container = styled.div<IndicatorProps>`\n color: ${({ theme, labelColor }) => theme.getColor(labelColor)};\n display: flex;\n align-items: center;\n gap: ${({ theme: { spacings } }) => spacings.s1};\n\n :before {\n content: '';\n display: block;\n border-radius: 100%;\n\n ${({ size }) => css`\n width: ${sizes[size]};\n height: ${sizes[size]};\n `};\n\n background-color: ${({ theme: { colors }, type }) => colors[types[type]]};\n }\n`\n","import React from 'react'\nimport { IndicatorProps } from './interfaces'\nimport * as S from './styles'\n\nconst Indicator = (props: Partial<IndicatorProps>) => {\n return (\n <S.Container\n {...{\n size: 'small',\n type: 'default',\n labelColor: 'darkBlue',\n ...props,\n }}\n />\n )\n}\n\nexport default Indicator\n","import styled, { css } from 'styled-components'\nimport { ColorOptions } from '../../../../../../theme/interfaces'\nimport Indicator from '../../../../../Indicator'\nimport { sizes } from '../../../../../Indicator/constants'\nimport { DayAppearance } from '../../interfaces'\n\nexport * from '../../styles'\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n > button:last-child {\n margin-left: auto;\n }\n`\n\nexport const WeekContainer = styled.div`\n width: 100%;\n display: flex;\n\n :not(:first-child) {\n border-top: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n }\n\n > * {\n font-family: ${({ theme }) => theme.fonts.lato};\n font-size: ${({ theme }) => theme.spacings.s3};\n line-height: ${({ theme }) => theme.spacings.s3};\n width: 32px;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.darkBlue};\n box-shadow: none;\n\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n border: 1px solid transparent;\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.lightestGrey};\n }\n }\n`\n\nexport const Header = styled.div`\n width: 100%;\n\n background-color: ${({ theme }) => theme.getColor('lightestGrey', 40)};\n font-weight: bolder;\n\n > ${WeekContainer} {\n border-top: none;\n > * {\n border-right-color: transparent;\n }\n }\n`\n\ninterface DayContainerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n today: 1 | 0\n appearance?: DayAppearance\n activeColor: ColorOptions\n}\n\nexport const DayContainer = styled.button<DayContainerProps>`\n position: relative;\n overflow: hidden;\n\n ${({ theme, appearance, activeColor, onClick }) => {\n const hover = onClick\n ? (color: keyof typeof theme.colors) => css`\n :not(:disabled):hover {\n border-color: ${theme.colors[color]};\n color: ${theme.colors[color]};\n cursor: pointer;\n }\n `\n : () => null\n\n if (appearance === 'disabled') {\n return css`\n background-color: ${theme.getColor('greyishBlue', 10)};\n `\n } else if (appearance === 'highlight') {\n return css`\n background-color: ${theme.getColor('blue', 30)};\n ${hover('blue')}\n `\n } else if (appearance === 'active') {\n return css`\n background-color: ${theme.colors[activeColor]};\n color: ${theme.colors.white};\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors[activeColor]};\n }\n ${hover('white')}\n `\n }\n\n return css`\n background-color: ${theme.colors.white};\n ${hover('blue')}\n `\n }};\n\n :disabled {\n color: ${({ theme }) => theme.colors.silver};\n }\n\n &,\n :after {\n transition-property: background-color, color, border-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n }\n\n ${({ appearance, today, theme }) => {\n if (today !== 1) {\n return\n }\n\n return css`\n :after {\n content: '';\n position: absolute;\n top: -60%;\n right: -60%;\n width: 100%;\n height: 100%;\n background-color: ${theme.colors[\n appearance === 'active' ? 'white' : 'blue'\n ]};\n transform: rotate(45deg);\n }\n `\n }}\n`\n\n// 1px here is the border-width: 0 0 1 1\nexport const DayIndicator = styled(Indicator).attrs({\n size: 'mini',\n})`\n position: absolute;\n bottom: calc(${sizes.mini} - 1px);\n left: calc(50% - (${sizes.mini} / 2) + 1px);\n`\n","import { dateCompare, isValidTime } from '../../functions/validators'\nimport { CalendarInterface } from './components/Basic/interfaces'\n\nexport const getCalendar = (d: Date): CalendarInterface => {\n const date = new Date(d.getTime())\n date.setHours(0, 0, 0, 0)\n const month = date.getMonth()\n const year = date.getFullYear()\n\n const days: Date[] = []\n\n date.setDate(1)\n date.setDate(date.getDate() - 1)\n\n while (date.getDay() !== 6 || days.length === 0) {\n const copy = new Date(date.getTime())\n days.unshift(copy)\n date.setDate(date.getDate() - 1)\n }\n\n date.setDate(date.getDate() + days.length + 1)\n\n while (month === date.getMonth()) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n while (days.length < 42) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n const weeks: Date[][] = []\n let week: Date[] = [days[0]]\n\n for (let i = 1; i < days.length; i++) {\n if (week.length === 7) {\n weeks.push(week)\n week = []\n }\n week.push(days[i])\n }\n weeks.push(week)\n\n return { month, year, weeks }\n}\n\nexport const getMiddle = (min?: Date, max?: Date): Date => {\n const today = new Date()\n\n if (!max) {\n if (!min) return today\n\n // se nao tem maximo e tem minimo, se dia de hoje for maior que minimo, usa o dia de hoje, se nao usa o dia minimo\n return dateCompare(today, min, 'gte', false) ? today : min\n }\n\n if (!min) {\n if (!max) return today\n\n // se nao tem minimo e tem maximo, se dia de hoje for menor que maximo, usa o dia de hoje, se nao usa o dia maximo\n return dateCompare(today, max, 'lte', false) ? today : max\n }\n\n // se o dia atual esta entre o intervalo, usa o dia atual\n if (\n dateCompare(today, min, 'gte', false) &&\n dateCompare(today, max, 'lte', false)\n ) {\n return today\n }\n\n // se nao, usa o dia medio do intervalo\n const days = Math.ceil(\n Math.abs(max.getTime() - min.getTime()) / (1000 * 60 * 60 * 24) / 2,\n )\n const result = new Date(min)\n result.setDate(result.getDate() + days)\n\n return result\n}\n\nexport const getFullDate = (date: Date, time: string, end?: true): Date => {\n const v = new Date(date)\n\n const hours: [number, number, number, number] = end\n ? [23, 59, 59, 999]\n : [0, 0, 0, 0]\n\n time.split(':').forEach((v, i) => {\n const parsed = parseInt(v)\n if (isNaN(parsed)) return\n hours[i] = parsed\n })\n\n v.setHours(...hours)\n\n return v\n}\n\nexport const isDateBetween = (date: Date, min?: Date, max?: Date): boolean => {\n if (!max) {\n if (!min) return true\n return dateCompare(date, min, 'gte')\n }\n\n if (!min) {\n if (!max) return true\n return dateCompare(date, max, 'lte')\n }\n\n return dateCompare(date, min, 'gte') && dateCompare(date, max, 'lte')\n}\n\nexport const getTimeFromDate = (date: Date | null): string => {\n if (!date) return ''\n const h = date.getHours()\n const m = date.getMinutes()\n const s = date.getSeconds()\n\n return [h, m, s].map((v) => v.toString().padStart(2, '0')).join(':')\n}\n\nexport const isInvalid = (\n value: Date | null,\n time: string,\n timeOptions?: { required?: boolean; seconds?: boolean },\n min?: Date,\n max?: Date,\n): boolean => {\n if (!value) {\n return false\n }\n\n if (timeOptions) {\n if (time.length === 0) {\n if (timeOptions.required) {\n return true\n }\n } else if (\n !isValidTime(time, {\n h: 'required',\n m: 'required',\n s: timeOptions.seconds ? 'required' : 'optional',\n })\n ) {\n return true\n }\n }\n\n const date = getFullDate(value, time)\n\n return (\n (min !== undefined && dateCompare(date, min, 'lt')) ||\n (max !== undefined && dateCompare(date, max, 'gt'))\n )\n}\n\nexport const getInitialCalendar = (date?: Date, min?: Date, max?: Date) => {\n return getCalendar(\n date && !isNaN(date.getTime()) && isDateBetween(date, min, max)\n ? date\n : getMiddle(min, max),\n )\n}\n","import { Size } from './interfaces'\r\n\r\nexport const sizes: {\r\n [key in Size]: {\r\n fontSize: string\r\n lineHeight: string\r\n minWidth: string\r\n minHeight: string\r\n }\r\n} = {\r\n mini: {\r\n fontSize: '11px',\r\n lineHeight: '13px',\r\n minWidth: '51px',\r\n minHeight: '28px',\r\n },\r\n tiny: {\r\n fontSize: '13px',\r\n lineHeight: '16px',\r\n minWidth: '62px',\r\n minHeight: '34px',\r\n },\r\n small: {\r\n fontSize: '14px',\r\n lineHeight: '17px',\r\n minWidth: '74px',\r\n minHeight: '35px',\r\n },\r\n large: {\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n minWidth: '89px',\r\n minHeight: '43px',\r\n },\r\n big: {\r\n fontSize: '18px',\r\n lineHeight: '22px',\r\n minWidth: '79px',\r\n minHeight: '52px',\r\n },\r\n} as const\r\n","import { sizes } from './constants'\r\n\r\nconst theme = {\r\n sizes,\r\n} as const\r\n\r\nexport default theme\r\n","import button from './Button/theme'\n\nconst theme = {\n button,\n} as const\n\nexport default theme\n","import React from 'react'\nimport { createGlobalStyle } from 'styled-components'\n\nconst FontStyles = createGlobalStyle`\n`\n\nconst Globals = () => {\n return (\n <React.Fragment>\n <FontStyles />\n </React.Fragment>\n )\n}\n\nexport default Globals\n","import React from 'react'\r\nimport { ThemeProvider as Provider, css } from 'styled-components'\r\n\r\nimport { colors, opacities, typographies, spacings, fonts } from './constants'\r\nimport components from '../components/theme'\r\nimport Globals from './globals'\r\n\r\nimport {\r\n ColorOptions,\r\n OpacitiyOptions,\r\n ThemeInterface,\r\n useTypographyFunc,\r\n} from './interfaces'\r\n\r\nconst getColor = (\r\n color: ColorOptions,\r\n opacity: OpacitiyOptions = 100,\r\n): string => `${colors[color]}${opacities[opacity]}`\r\n\r\nconst useTypography: useTypographyFunc = (typography, options = {}) => {\r\n const { fontFamily, fontWeight, fontSize } = typographies[typography]\r\n\r\n return css`\r\n font-family: ${fontFamily};\r\n font-weight: ${options.fontWeight || fontWeight};\r\n font-size: ${fontSize};\r\n `\r\n}\r\n\r\nconst isDarkColor = (\r\n color: ColorOptions,\r\n ifDark: ColorOptions = 'white',\r\n ifLight: ColorOptions = 'black',\r\n): ColorOptions => {\r\n const hex = theme.colors[color].replace('#', '')\r\n\r\n const red = parseInt(hex.substring(0, 2), 16)\r\n const green = parseInt(hex.substring(2, 4), 16)\r\n const blue = parseInt(hex.substring(4, 6), 16)\r\n\r\n const luminosity = (red * 299 + green * 587 + blue * 114) / 1000\r\n\r\n return luminosity <= 128 ? ifDark : ifLight\r\n}\r\n\r\nexport const theme: ThemeInterface = {\r\n colors,\r\n fonts,\r\n spacings,\r\n typographies,\r\n getColor,\r\n useTypography,\r\n isDarkColor,\r\n components,\r\n}\r\n\r\nconst ThemeProvider = (props: {\r\n children: JSX.Element | string | (JSX.Element | string)[]\r\n}) => {\r\n return (\r\n <Provider theme={theme}>\r\n <Globals />\r\n {props.children}\r\n </Provider>\r\n )\r\n}\r\n\r\nexport default ThemeProvider\r\n","import React, { useEffect, useState } from 'react'\n\nimport useOnClickOut from '../../../../../../hooks/onClickOut'\n\nimport Icon from '../../../../../Icon'\n\nimport MonthPicker from '../../components/MonthPicker'\nimport { months } from '../../../../constants'\nimport * as S from './styles'\nimport { MainProps } from './interfaces'\nimport { getCalendar, getInitialCalendar } from '../../../../functions'\nimport { CalendarInterface } from '../../interfaces'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport Loader from '../../../../../Loader'\nimport { theme } from '../../../../../../theme'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { getDay, initialMonth } = props\n\n const [selectOpen, setSelectOpen] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n\n const onChangeMonth = (() => {\n const { onChangeMonth } = props\n\n if (!onChangeMonth) return async () => {}\n return (async (...args) => {\n setLoading(true)\n await onChangeMonth(...args)\n setLoading(false)\n }) as typeof onChangeMonth\n })()\n\n const min = props.min\n ? (() => {\n const date = new Date(props.min)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const max = props.max\n ? (() => {\n const date = new Date(props.max)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const [calendar, _setCalendar] =\n props.calendar ||\n useState<CalendarInterface>(getInitialCalendar(initialMonth, min, max))\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar: typeof _setCalendar = (value) => {\n _setCalendar((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const isControlled = props.calendar !== undefined\n\n useEffect(() => {\n if (isControlled) return\n // if client is controlling calendar state, it should not auto update\n setCalendar(getInitialCalendar(initialMonth, min, max))\n }, [\n isControlled,\n initialMonth?.toISOString(),\n min?.toISOString(),\n max?.toISOString(),\n ])\n\n useEffect(() => {\n const [first, last] = [\n calendar.weeks[0],\n calendar.weeks[calendar.weeks.length - 1],\n ]\n onChangeMonth({\n ...calendar,\n firstDay: first[0],\n lastDay: last[last.length - 1],\n })\n }, [calendar])\n\n const changeMonth = (add: 1 | -1) => {\n setCalendar((prev) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(prev.year)\n date.setMonth(prev.month + add)\n\n return getCalendar(date)\n })\n }\n\n const getPrev = () => {\n const [disabled, onClick] =\n min !== undefined &&\n (calendar.year < min.getFullYear() ||\n (calendar.year === min.getFullYear() &&\n calendar.month <= min.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(-1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n const getNext = () => {\n const [disabled, onClick] =\n max !== undefined &&\n (calendar.year > max.getFullYear() ||\n (calendar.year === max.getFullYear() &&\n calendar.month >= max.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n return (\n <S.Container ref={ref} $paddingless={props.paddingless}>\n {props.label && <S.LabelContainer>{props.label}</S.LabelContainer>}\n\n <S.CalendarContainer>\n <S.Header>\n <S.MonthContainer>\n {getPrev()}\n <div ref={useOnClickOut(() => setSelectOpen(false))}>\n {(() => {\n if (\n min !== undefined &&\n max !== undefined &&\n min.getFullYear() === max.getFullYear() &&\n min.getMonth() === max.getMonth()\n ) {\n return (\n <S.MonthName>\n {months[calendar.month]} {calendar.year}\n </S.MonthName>\n )\n }\n\n return (\n <S.MonthBtn onClick={() => setSelectOpen((prev) => !prev)}>\n <S.MonthName>\n {months[calendar.month]} {calendar.year}\n </S.MonthName>\n <Icon\n type='semantic'\n icon={selectOpen ? 'caret up' : 'caret down'}\n width='14px'\n />\n </S.MonthBtn>\n )\n })()}\n\n <MonthPicker\n open={selectOpen}\n close={() => setSelectOpen(false)}\n year={calendar.year}\n setValue={(year, month) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(year)\n date.setMonth(month)\n setCalendar(getCalendar(date))\n }}\n min={min}\n max={max}\n width='100%'\n maxHeight='180px'\n transition={{ properties: { 'max-height': {} } }}\n itemSpacing='s3'\n bordered\n />\n </div>\n {getNext()}\n </S.MonthContainer>\n\n <S.WeekContainer>\n <div>D</div>\n <div>S</div>\n <div>T</div>\n <div>Q</div>\n <div>Q</div>\n <div>S</div>\n <div>S</div>\n </S.WeekContainer>\n </S.Header>\n\n {calendar.weeks.map((week, index) => {\n return (\n <S.WeekContainer key={index}>\n {week.map((date, index) => {\n const details = getDay(date)\n\n const day = date.getDate()\n const month = date.getMonth()\n\n const appearance =\n month !== calendar.month ||\n (max && date > max) ||\n (min && date < min)\n ? 'disabled'\n : details.appearance\n\n const [disabled, onClick, onMouseOver, onMouseOut] =\n appearance === 'disabled'\n ? [true, undefined]\n : [\n undefined,\n details.onClick,\n details.onMouseOver,\n details.onMouseOut,\n ]\n\n return (\n <S.DayContainer\n key={index}\n type='button'\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n disabled={disabled}\n appearance={appearance}\n activeColor={details.activeColor || 'blue'}\n today={dateCompare(new Date(), date, 'eq', false) ? 1 : 0}\n >\n {day}\n {details.indicator && (\n <S.DayIndicator type={details.indicator} />\n )}\n </S.DayContainer>\n )\n })}\n </S.WeekContainer>\n )\n })}\n </S.CalendarContainer>\n\n {(() => {\n if (!props.children) {\n return null\n }\n if (Array.isArray(props.children) && !props.children.some((e) => e)) {\n return null\n }\n return <S.Footer>{props.children}</S.Footer>\n })()}\n\n {loading && <Loader filled={theme.getColor('white', 95)} />}\n </S.Container>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\n\nimport Main from './components/Main'\nimport { BasicCalendarProps } from './interfaces'\nimport * as S from './styles'\n\nconst BasicCalendar = React.forwardRef(\n (props: BasicCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n BasicCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'getDay',\n 'calendar',\n 'absolute',\n 'onChangeMonth',\n 'paddingless',\n ])\n\n return 'absolute' in props ? (\n <S.AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...props} />\n </S.AbsoluteContainer>\n ) : (\n <Main {...props} />\n )\n },\n)\n\nBasicCalendar.displayName = 'BasicCalendar'\n\nexport default BasicCalendar\n","import React from 'react'\nimport Input from '../Input'\nimport { TimeProps } from './interfaces'\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/[^0-9\\s]/g, '')\n\n while (v.length > 0 && parseInt(v[0]) > 2) {\n v = v.substring(1)\n }\n\n if (v.length > 1) {\n if (v[0] === '2') {\n while (v.length > 1 && parseInt(v[1]) > 3) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 5) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n if (v.length > 4) {\n while (v.length > 4 && parseInt(v[4]) > 5) {\n v = v.substring(0, 4) + v.substring(5)\n }\n }\n\n v = v.substring(0, seconds ? 6 : 4)\n\n if (v.length < 3) return v\n else if (v.length < 5) return v.substring(0, 2) + ':' + v.substring(2)\n else return v.substring(0, 2) + ':' + v.substring(2, 4) + ':' + v.substring(4)\n}\n\nconst Time = React.forwardRef(\n (props: TimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, seconds } = props\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const setValue = props.setValue || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const curH = todayDate.getHours()\n const curM = todayDate.getMinutes()\n const curS = todayDate.getSeconds()\n\n const value = target.value.replace(/[^0-9\\s]/g, '')\n\n let tmp = value.substring(0, 2)\n let h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(2, 4)\n let m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(4, 6)\n let s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, '0'))\n\n if (event.key === 'ArrowUp') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n } else if (event.key === 'ArrowDown') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? seconds\n ? '––:––:––'\n : '––:––'\n : props.placeholder\n\n return (\n <Input\n {...props}\n type='text'\n value={mask(value, seconds)}\n placeholder={placeholder}\n mask={(v: string) => mask(v, seconds)}\n onKeyDown={onKeyDown}\n ref={ref}\n />\n )\n },\n)\n\nTime.displayName = 'Time'\n\nexport default Time\n","import { dateCompare } from '../../../../../../functions/validators'\nimport { getCalendar, isDateBetween } from '../../../../functions'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { InputTimeProps, Value } from '../../interfaces'\nimport { MainProps } from './interfaces'\n\nexport const getValue = (dates: (Date | null)[], min?: Date, max?: Date) => {\n const n = [\n ...dates\n .filter((d) => d && !isNaN(d.getTime()) && isDateBetween(d, min, max))\n .sort((a, b) => {\n if (dateCompare(a as Date, b as Date, 'eq')) return 0\n return dateCompare(a as Date, b as Date, 'lt') ? -1 : 1\n }),\n null,\n null,\n ]\n return n.slice(0, 2) as Value\n}\n\nexport const getCalendar2 = (\n calendar1: CalendarInterface,\n): CalendarInterface => {\n const date = new Date()\n date.setFullYear(calendar1.year)\n date.setMonth(calendar1.month + 1)\n date.setDate(1)\n date.setHours(0, 0, 0, 0)\n return getCalendar(date)\n}\n\nexport const getTimeProps = (\n time: MainProps['time'],\n value: Value,\n): [InputTimeProps | undefined, InputTimeProps | undefined] => {\n if (time === true) return [{}, {}]\n if (!time) return [undefined, undefined]\n return time.map((e, i) => {\n return typeof e === 'function' ? e(value[i]) : e\n }) as [InputTimeProps | undefined, InputTimeProps | undefined]\n}\n","import styled, { css } from 'styled-components'\r\n\r\nimport { StyledButtonProps } from './interfaces'\r\n\r\nexport const Button = styled.button<StyledButtonProps>`\r\n padding: 0\r\n ${({ theme, appearance }) =>\r\n appearance === 'link' ? 0 : theme.spacings.s3};\r\n font-family: 'Lato', sans-serif;\r\n font-weight: ${({ appearance }) =>\r\n appearance === 'link' ? 'normal' : 'bold'};\r\n border-radius: 4px;\r\n position: relative;\r\n user-select: none;\r\n\r\n ${({ size, theme }) => {\r\n const { sizes } = theme.components.button\r\n return css`\r\n font-size: ${sizes[size].fontSize};\r\n line-height: ${sizes[size].lineHeight};\r\n min-width: ${sizes[size].minWidth};\r\n min-height: ${sizes[size].minHeight};\r\n `\r\n }};\r\n\r\n ${({ appearance, color, theme }) => {\r\n const bgColor = ['bordered', 'link', 'borderless'].includes(appearance)\r\n ? 'transparent'\r\n : theme.getColor(color || 'blue')\r\n\r\n const borderColor =\r\n appearance !== 'bordered' ? bgColor : theme.getColor(color || 'blue')\r\n\r\n return css`\r\n background-color: ${bgColor};\r\n border: 1px solid ${borderColor};\r\n `\r\n }};\r\n\r\n color: ${({ appearance, color, loading, theme }) => {\r\n if (loading) return 'transparent'\r\n\r\n if (['link', 'borderless'].includes(appearance)) {\r\n return color ? theme.colors[color] : theme.getColor('greyishBlue', 50)\r\n }\r\n\r\n if (appearance === 'bordered') {\r\n return theme.getColor(color || 'blue')\r\n }\r\n\r\n return theme.getColor('white')\r\n }};\r\n\r\n :disabled {\r\n opacity: 0.5;\r\n pointer-events: none;\r\n }\r\n\r\n :hover {\r\n cursor: ${({ loading, disabled }) =>\r\n loading || disabled ? 'default' : 'pointer'};\r\n\r\n ${({ appearance, color, theme }) => {\r\n if (appearance === 'bordered') {\r\n return css`\r\n color: ${theme.getColor(color || 'blue', 70)};\r\n border: 1px solid ${theme.getColor(color || 'blue', 70)};\r\n `\r\n } else if (['link', 'borderless'].includes(appearance)) {\r\n return css`\r\n color: ${theme.colors.blue};\r\n `\r\n }\r\n\r\n return css`\r\n background-color: ${theme.getColor(color || 'blue', 70)};\r\n border-color: ${theme.getColor(color || 'blue', 70)};\r\n `\r\n }}\r\n }\r\n\r\n :active {\r\n ${({ appearance, color, theme }) => {\r\n if (appearance === 'bordered') {\r\n return css`\r\n background-color: ${theme.getColor('iceWhite')};\r\n `\r\n }\r\n\r\n if (['link', 'borderless'].includes(appearance)) {\r\n return css`\r\n color: ${theme.getColor('blue', 50)};\r\n `\r\n }\r\n\r\n return css`\r\n color: ${theme.getColor(color || 'blue')};\r\n `\r\n }};\r\n }\r\n\r\n ${({ loading }) => {\r\n if (!loading) return\r\n\r\n return css`\r\n pointer-events: none;\r\n `\r\n }}\r\n`\r\n","import React from 'react'\r\n\r\nimport { filterObject } from '../../functions/formatters'\r\nimport Loader from '../Loader'\r\nimport { sizes } from './constants'\r\n\r\nimport { ButtonProps, StyledButtonProps } from './interfaces'\r\nimport * as S from './styles'\r\n\r\nconst Button = (props: ButtonProps) => {\r\n const { children, content, ...styled } = props\r\n\r\n const defaultValues: StyledButtonProps = {\r\n appearance: styled.appearance || 'solid',\r\n color: styled.color,\r\n loading: styled.loading ? +styled.loading : +false,\r\n size: styled.size || 'small',\r\n type: styled.type || 'button',\r\n }\r\n\r\n const htmlProps = filterObject<\r\n ButtonProps,\r\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'color'>\r\n >(props, ['size', 'appearance', 'color', 'loading', 'content'])\r\n\r\n const loaderSize = sizes[defaultValues.size].lineHeight\r\n\r\n return (\r\n <S.Button {...defaultValues} {...htmlProps}>\r\n {children || content}\r\n\r\n {props.loading && (\r\n <Loader\r\n color={\r\n defaultValues.appearance !== 'bordered' &&\r\n defaultValues.appearance !== 'link'\r\n ? 'white'\r\n : 'blue'\r\n }\r\n size={loaderSize}\r\n borderSize={`calc(${loaderSize} * 0.0757)`}\r\n />\r\n )}\r\n </S.Button>\r\n )\r\n}\r\n\r\nexport default Button\r\n","import styled from 'styled-components'\nimport Button from '../Button'\n\nexport const SubmitButton = styled(Button)`\n width: 105px;\n`\n","import styled from 'styled-components'\n\nexport * from '../../../../styles'\n\nexport const CalendarsContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n`\n\nexport const LabelContainer = styled.div`\n color: ${({ theme }) => theme.colors.darkestGrey};\n > b {\n color: ${({ theme }) => theme.colors.darkBlue};\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport {\n dateToIsoString,\n filterObject,\n} from '../../../../../../functions/formatters'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport Input from '../../../../../Input/components/Time'\nimport { inputTimeWidth } from '../../../../constants'\nimport {\n getCalendar,\n getFullDate,\n getInitialCalendar,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport BasicCalendar from '../../../Basic'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { BasicCalendarProps } from '../../../interfaces'\nimport { Value } from '../../interfaces'\nimport { getCalendar2, getTimeProps, getValue } from './functions'\nimport { MainProps } from './interfaces'\nimport * as S from './styles'\nimport { ButtonProps } from '../../../../../Button/interfaces'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialMonth, initialValue, min, max } = props\n\n const [value, setValue] =\n props.value || useState<Value>(getValue(initialValue || [], min, max))\n\n const [invalid, setInvalid] =\n props.invalid || useState<[boolean, boolean]>([false, false])\n\n const [time, setTime] = useState<[string, string]>(() => {\n return value.map(getTimeFromDate) as [string, string]\n })\n\n const [calendar1, _setCalendar1] = useState<CalendarInterface>(() => {\n const calendar1 = getInitialCalendar(value[0] || initialMonth, min, max)\n return calendar1\n })\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar1: typeof _setCalendar1 = (value) => {\n _setCalendar1((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const [calendar2, _setCalendar2] = useState<CalendarInterface>(() => {\n const calendar2 = getCalendar2(calendar1)\n return calendar2\n })\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar2: typeof _setCalendar2 = (value) => {\n _setCalendar2((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const [hoverDay, setHoverDay] = useState<Date | null>(null)\n\n useEffect(() => {\n // if client is controlling calendar state, it should not auto update\n const calendar1 = getInitialCalendar(value[0] || initialMonth, min, max)\n const calendar2 = getCalendar2(calendar1)\n setCalendar1(calendar1)\n setCalendar2(calendar2)\n }, [initialMonth?.toISOString(), min?.toISOString(), max?.toISOString()])\n\n useEffect(() => {\n const timeProps = getTimeProps(props.time, value)\n\n setHoverDay(null)\n\n if (value[0]) {\n const c1 = getCalendar(value[0])\n const c2 = (() => {\n const c2 = getCalendar2(c1)\n if (value[1]) {\n const c2 = getCalendar(value[1])\n if (\n c2.year > c1.year ||\n (c2.year === c1.year && c2.month > c1.month)\n ) {\n return c2\n }\n }\n\n return c2\n })()\n\n setCalendar1(c1)\n setCalendar2(c2)\n }\n\n setInvalid(\n value.map((v, i): boolean => {\n return isInvalid(v, time[i], timeProps[i], min, max)\n }) as [boolean, boolean],\n )\n }, [value, time, props.time])\n\n const _getDay: Exclude<typeof props.getDay, undefined> =\n props.getDay || (() => ({}))\n\n const getDay = (day: Date, side: 'left' | 'right') => {\n const dayProps = _getDay(day, side)\n\n const onClick = () => {\n const newValue: Value = [...value]\n if (!newValue[0]) {\n newValue[0] = new Date(day)\n } else if (newValue[1]) {\n newValue[0] = new Date(day)\n newValue[1] = null\n } else if (dateCompare(day, newValue[0], 'lt')) {\n newValue[1] = newValue[0]\n newValue[0] = new Date(day)\n } else {\n newValue[1] = new Date(day)\n }\n\n setValue(newValue)\n }\n\n const [onMouseOver, onMouseOut] =\n value[0] && !value[1]\n ? [() => setHoverDay(day), () => setHoverDay(null)]\n : [() => {}, () => {}]\n\n const appearance = (() => {\n if (value.some((v) => v && dateCompare(v, day, 'eq', false))) {\n return 'active'\n }\n\n if (\n (value[0] && value[1] && isDateBetween(day, value[0], value[1])) ||\n (value[0] &&\n hoverDay &&\n (isDateBetween(day, value[0], hoverDay) ||\n isDateBetween(day, hoverDay, value[0])))\n ) {\n return 'highlight'\n }\n\n return undefined\n })()\n\n const [_onClick, _onMouseOver, _onMouseOut] = (\n ['onClick', 'onMouseOver', 'onMouseOut'] as const\n ).map((c) => dayProps[c] || (() => {}))\n\n return {\n ...dayProps,\n appearance: appearance || dayProps.appearance,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n _onClick(e)\n onClick()\n },\n onMouseOver: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n _onMouseOver(e)\n onMouseOver()\n },\n onMouseOut: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n _onMouseOut(e)\n onMouseOut()\n },\n }\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'initialMonth',\n 'max',\n 'min',\n 'getDay',\n ])\n\n const timeInvalid = !time.some((t) => t.length > 0)\n ? [false, false]\n : time.map((t) => t.length === 0)\n\n const submitProps: ButtonProps | undefined = !props.onSubmit\n ? undefined\n : (() => {\n const disabled =\n props.onSubmit.disabled ||\n value.some((v) => v === null) ||\n invalid.some((v) => v) ||\n timeInvalid.some((v) => v)\n\n const { onClick } = props.onSubmit\n\n return {\n ...props.onSubmit,\n disabled,\n onClick: disabled\n ? undefined\n : () => {\n onClick([\n value[0] ? getFullDate(value[0], time[0]) : null,\n value[1] ? getFullDate(value[1], time[1], true) : null,\n ])\n },\n }\n })()\n\n const middle = [new Date(), new Date()] as const\n middle[0].setDate(1)\n middle[0].setFullYear(calendar2.year)\n middle[0].setMonth(calendar2.month)\n middle[0].setDate(0)\n middle[0].setHours(23, 59, 59, 999)\n\n middle[1].setDate(1)\n middle[1].setFullYear(calendar1.year)\n middle[1].setMonth(calendar1.month + 1)\n middle[1].setHours(0, 0, 0, 0)\n\n const inputs = getTimeProps(props.time, value).map((timeProps, index) => {\n if (!timeProps) return undefined\n\n const width = timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n\n return (\n <Input\n key={index}\n {...timeProps}\n type='time'\n value={time[index]}\n setValue={(v) =>\n setTime((prev) => {\n const n = [...prev]\n n[index] = v\n return n as [string, string]\n })\n }\n invalid={\n (value[index] !== null && invalid[index]) || timeInvalid[index]\n }\n width={inputTimeWidth[width]}\n />\n )\n })\n\n const onChangeMonth = props.onChangeMonth || (async () => {})\n\n return (\n <S.CalendarsContainer>\n <BasicCalendar\n {...calendarProps}\n getDay={(c) => getDay(c, 'left')}\n onChangeMonth={async (c) => await onChangeMonth(c, 'left')}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Inicio:</b>{' '}\n {value[0] ? dateToIsoString(value[0]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[\n calendar1,\n (v) => {\n setCalendar1((prev) => {\n const c1 = typeof v === 'function' ? v(prev) : v\n setCalendar2((prev) => {\n if (prev.year > c1.year) return prev\n if (prev.year === c1.year && prev.month > c1.month) {\n return prev\n }\n return getCalendar2(c1)\n })\n return c1\n })\n },\n ]}\n min={min}\n max={max && dateCompare(max, middle[0], 'lt') ? max : middle[0]}\n >\n {inputs[0]}\n </BasicCalendar>\n\n <BasicCalendar\n {...calendarProps}\n getDay={(c) => getDay(c, 'right')}\n onChangeMonth={async (c) => await onChangeMonth(c, 'right')}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Fim:</b> {value[1] ? dateToIsoString(value[1]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[calendar2, setCalendar2]}\n min={min && dateCompare(min, middle[1], 'gt') ? min : middle[1]}\n max={max}\n >\n {inputs[1]}\n\n {submitProps && (\n <S.SubmitButton content='Aplicar' {...submitProps} type='button' />\n )}\n </BasicCalendar>\n </S.CalendarsContainer>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { IntervalCalendarProps } from './interfaces'\n\nconst CalendarInterval = React.forwardRef(\n (props: IntervalCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n IntervalCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n 'getDay',\n 'onChangeMonth',\n ])\n\n const mainProps = filterObject<IntervalCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarInterval.displayName = 'CalendarInterval'\n\nexport default CalendarInterval\n","import React, { useEffect, useState } from 'react'\n\nimport { filterObject } from '../../../../../../functions/formatters'\n\nimport Input from '../../../../../Input/components/Time'\nimport BasicCalendar from '../../../Basic'\nimport { BasicCalendarProps } from '../../../Basic/interfaces'\n\nimport {\n getFullDate,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport { inputTimeWidth } from '../../../../constants'\nimport * as S from '../../../../styles'\nimport { MainProps } from './interfaces'\n\nconst SingleCalendar = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialValue, min, max } = props\n\n const [value, setValue] =\n props.value ||\n useState<Date | null>(\n initialValue &&\n !isNaN(initialValue.getTime()) &&\n isDateBetween(initialValue, min, max)\n ? initialValue\n : null,\n )\n\n const timeProps = (() => {\n if (props.time === true) return {}\n if (typeof props.time === 'function') return props.time(value)\n return props.time\n })()\n\n const [invalid, setInvalid] = props.invalid || useState<boolean>(false)\n\n const [time, setTime] = useState<string>(getTimeFromDate(value))\n\n useEffect(() => {\n setInvalid(isInvalid(value, time, timeProps, min, max))\n }, [value, time, timeProps])\n\n const _getDay: Exclude<typeof props.getDay, undefined> =\n props.getDay || (() => ({}))\n\n const getDay: BasicCalendarProps['getDay'] = (day: Date) => {\n const dayProps = _getDay(day)\n\n const active = value && dateCompare(value, day, 'eq', false)\n\n const _onClick = dayProps.onClick || (() => {})\n\n const onClick = active\n ? () => setValue(null)\n : () => setValue(new Date(day))\n\n return {\n ...dayProps,\n appearance: active ? 'active' : dayProps.appearance,\n onClick: (e) => {\n _onClick(e)\n onClick()\n },\n }\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'getDay',\n ])\n\n const onSubmit = {\n disabled: value === null || invalid,\n onClick: () => {},\n }\n\n if (props.onSubmit) {\n const { disabled, onClick } = props.onSubmit\n\n if (disabled) {\n onSubmit.disabled = true\n }\n\n onSubmit.onClick = () => {\n onClick(value ? getFullDate(value, time) : null)\n }\n }\n\n return (\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n initialMonth={props.initialValue || props.initialMonth}\n >\n {timeProps && (\n <Input\n {...timeProps}\n type='time'\n value={time}\n setValue={setTime}\n invalid={value !== null && invalid}\n width={\n inputTimeWidth[\n timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n ]\n }\n />\n )}\n\n {props.onSubmit && (\n <S.SubmitButton {...onSubmit} type='button' content='Aplicar' />\n )}\n </BasicCalendar>\n )\n },\n)\n\nSingleCalendar.displayName = 'SingleCalendar'\n\nexport default SingleCalendar\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { SingleCalendarProps } from './interfaces'\n\nconst CalendarSingle = React.forwardRef(\n (props: SingleCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n SingleCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n 'getDay',\n 'onChangeMonth',\n ])\n\n const mainProps = filterObject<SingleCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarSingle.displayName = 'CalendarSingle'\n\nexport default CalendarSingle\n","import React from 'react'\n\nimport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\nimport { CalendarProps } from './interfaces'\n\nconst Calendar = React.forwardRef(\n (props: CalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n switch (props.type) {\n case 'basic': {\n return <BasicCalendar {...props} ref={ref} />\n }\n case 'interval': {\n return <IntervalCalendar {...props} ref={ref} />\n }\n case 'single': {\n return <SingleCalendar {...props} ref={ref} />\n }\n }\n },\n)\n\nCalendar.displayName = 'Input'\n\nexport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\n\nexport default Calendar\n","export const JSDate = Date\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport { JSDate } from './functions'\nimport { DateProps } from './interfaces'\nimport * as S from './styles'\n\nconst isLeapYear = (year: number): boolean => {\n if (year % 4 !== 0) return false\n else if (year % 100 !== 0) return true\n else if (year % 400 !== 0) return false\n else return true\n}\n\nconst mask = (v: string) => {\n v = v.replace(/[^0-9\\s]/g, '')\n\n while (v.length > 0 && parseInt(v[0]) > 3) {\n v = v.substring(1)\n }\n\n if (v.length > 1) {\n if (v[0] === '3') {\n while (v.length > 1 && parseInt(v[1]) > 1) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 1) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n if (v.length > 3) {\n if (v[2] === '1') {\n while (v.length > 3 && parseInt(v[3]) > 2) {\n v = v.substring(0, 3) + v.substring(4)\n }\n }\n }\n\n v = v.substring(0, 8)\n\n const date = [v.substring(0, 2), v.substring(2, 4), v.substring(4)]\n\n if (date[1] === '02') {\n const d = parseInt(date[0])\n\n if (date[2].length < 4 || isLeapYear(parseInt(date[2]))) {\n // se for ano nao estiver setado, ou se for bissexto, o dia maximo de fevereiro deve ser 29\n if (d > 29) {\n date[0] = '29'\n }\n } else if (d > 28) {\n // se for ano estiver setado e nao for bissexto, o dia maximo de fevereiro deve ser 28\n date[0] = '28'\n }\n } else if (['04', '06', '09', '11'].includes(date[1]) && date[0] === '31') {\n // meses com 30 dias\n date[0] = '30'\n }\n\n v = date.join('')\n\n if (v.length < 3) return v\n else if (v.length < 5) return v.substring(0, 2) + '/' + v.substring(2)\n else return v.substring(0, 2) + '/' + v.substring(2, 4) + '/' + v.substring(4)\n}\n\nconst Date = React.forwardRef(\n (props: DateProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, min, max } = props\n\n const setValue = props.setValue || (() => {})\n\n const [open, setOpen] = useState<boolean>(false)\n\n const _onKeyDown = props.onKeyDown || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new JSDate()\n\n const curD = todayDate.getDate()\n const curM = todayDate.getMonth() + 1\n const curY = todayDate.getFullYear()\n\n const value = target.value.replace(/[^0-9\\s]/g, '')\n\n let tmp = value.substring(0, 2)\n const d = tmp.length === 0 ? curD : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(2, 4)\n const m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(4, 8)\n const y = tmp.length === 0 ? curY : parseInt(tmp.padEnd(2, '0'))\n\n if (event.key === 'ArrowUp') {\n const date = new JSDate(`${y}-${m}-${d} 00:00:00`)\n date.setDate(date.getDate() + 1)\n\n if (!max || date <= max) {\n setValue(dateToIsoString(date))\n }\n } else if (event.key === 'ArrowDown') {\n const date = new JSDate(`${y}-${m}-${d} 00:00:00`)\n date.setDate(date.getDate() - 1)\n\n if (!min || date >= min) {\n setValue(dateToIsoString(date))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined ? 'dd/mm/aaaa' : props.placeholder\n\n const icon: InputProps['icon'] = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n onClick: () => setOpen((prev) => !prev),\n },\n position: 'right',\n }\n : undefined\n\n const inputProps = filterObject<DateProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='text'\n placeholder={placeholder}\n mask={mask}\n onKeyDown={onKeyDown}\n icon={icon}\n ref={ref}\n />\n\n <Calendar\n {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n const newValue = dateToIsoString(date)\n setValue(newValue)\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDate.displayName = 'Date'\n\nexport default Date\n","import styled, { css } from 'styled-components'\nimport { SelectProps } from './'\n\nexport const RelativeContainer = styled.div<Pick<SelectProps, 'width'>>`\n position: relative;\n ${({ width }) => {\n return !width\n ? null\n : css`\n width: ${width};\n `\n }};\n`\n\nexport const EmptyContentContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const HiddenInput = styled.input`\n width: 0;\n height: 0;\n border-width: 0;\n padding: 0;\n position: absolute;\n outline: none;\n`\n","import { HTMLAttributes, useCallback } from 'react'\nimport { Option } from '../interfaces'\n\nexport const isAvailable = (index: number, option: Option) => {\n return (\n !option.disabled &&\n !(option.rules || []).some((rule) => rule(index, option.data) !== true)\n )\n}\n\nconst useNavigation = (props: {\n highlight: [number, React.Dispatch<React.SetStateAction<number>>]\n options: Option[]\n onSelectHighlight: (index: number, option: Option) => void\n}) => {\n const {\n highlight: [highlight, setHighlight],\n options,\n onSelectHighlight,\n } = props\n\n const onKeyDown = useCallback<\n Required<HTMLAttributes<HTMLInputElement>>['onKeyDown']\n >(\n (e) => {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n\n const getNext = (index: number, current: number): number => {\n const option = options[index]\n if (!option) return current\n if (isAvailable(index, option)) {\n return index\n }\n return getNext(index + 1, current)\n }\n\n setHighlight((prev) => {\n return getNext(prev + 1, prev)\n })\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n\n const getPrev = (index: number, current: number): number => {\n const option = options[index]\n if (!option) return current\n if (isAvailable(index, option)) {\n return index\n }\n return getPrev(index - 1, current)\n }\n\n setHighlight((prev) => {\n return getPrev(prev - 1, prev)\n })\n } else if (e.key === 'Enter') {\n e.preventDefault()\n\n const option = options[highlight]\n if (option) {\n onSelectHighlight(highlight, option)\n }\n }\n },\n [highlight, options],\n )\n\n const onFocus: HTMLAttributes<HTMLInputElement>['onFocus'] = () => {\n setHighlight(options.findIndex((e, i) => isAvailable(i, e)))\n }\n\n const onBlur: HTMLAttributes<HTMLInputElement>['onFocus'] = () => {\n setHighlight(-1)\n }\n\n return { onKeyDown, onFocus, onBlur }\n}\n\nexport default useNavigation\n","import React from 'react'\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({} as ContextInterface)\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import styled, { css } from 'styled-components'\n\nexport const HeaderContainer = styled.div`\n ${({ theme }) => css`\n padding: ${theme.spacings.s3} 0 ${theme.spacings.s1} ${theme.spacings.s3};\n `}\n`\n","import React from 'react'\n\nimport Input from '../../../../../Input'\n\nimport { useContext } from '../../context'\nimport * as S from './styles'\n\nconst Header = () => {\n const context = useContext()\n\n if (!context.props.search) {\n return <React.Fragment />\n }\n\n const {\n searchInput: [searchInput, setSearchInput],\n } = context\n\n return (\n <S.HeaderContainer>\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n }}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React from 'react'\n\nimport { Option as MenuOption } from '../../../../../Menu/interfaces'\nimport { HiddenInput } from '../../styles'\n\nimport * as Types from '../interfaces'\nimport useNavigation, { isAvailable } from '../Navigation'\n\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\n\nconst getOptions = (\n onSelect: (index: number, option: Option) => void,\n options: Option[],\n selected: Pick<Option, 'data' | 'value' | 'label'> | null,\n): MenuOption[] => {\n return options.map((option, index) => {\n const { value, onClick, rules, disabled } = option\n\n const isSelected = option.value === selected?.value\n\n const data = {\n ...option.data,\n selected: isSelected,\n value,\n }\n\n const LabelComponent = option.label\n\n const parsed: MenuOption = {\n label:\n typeof LabelComponent !== 'function'\n ? LabelComponent\n : ({ disabled }) => <LabelComponent {...{ value, data, disabled }} />,\n onClick:\n onClick ||\n (() => {\n onSelect(index, option)\n }),\n disabled,\n rules,\n border: {\n left: {\n color: isSelected ? 'blue' : 'transparent',\n },\n },\n data,\n keepOpen: true,\n }\n\n return parsed\n })\n}\n\nconst getSelected = (value: string, options: Option[]): Option | null => {\n const selectedIndex = options.findIndex((option) => option.value === value)\n if (selectedIndex === -1) return null\n const selected = options[selectedIndex]\n return selected\n}\n\nconst getInputContent = (\n props: SelectProps,\n selectedOption: Pick<Option, 'data' | 'value' | 'label'>,\n) => {\n if (typeof selectedOption.label !== 'function') return selectedOption.label\n const LabelComponent = selectedOption.label\n return (\n <LabelComponent\n data={{ ...selectedOption.data }}\n value={selectedOption.value}\n disabled={props.disabled || props.loading}\n mode='placeholder'\n />\n )\n}\n\nconst useSelect: Types.useSelect<SelectProps> = (\n props,\n [highlight, setHighlight],\n [options, setOptions],\n setOpen,\n) => {\n const [selectedOption, value] =\n typeof props.value === 'string'\n ? [getSelected(props.value, options), props.value]\n : [props.value, props.value.value]\n\n const onSelect = (index: number, option: Option) => {\n if (!isAvailable(index, option)) {\n return\n }\n\n const isSelected = option.value === selectedOption?.value\n props.setValue(isSelected ? '' : option.value, option.data)\n setOpen(false)\n }\n\n const parsedOptions = getOptions(onSelect, options, selectedOption)\n\n const onReset = () => {}\n\n const inputContent = selectedOption\n ? getInputContent(props, selectedOption)\n : (props.value as string)\n\n const parsed: Types.useSelectReturn = {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n inputContent,\n onReset,\n menu: {\n itemSpacing: 's3',\n before: (\n <React.Fragment>\n <Header />\n <HiddenInput\n {...useNavigation({\n highlight: [highlight, setHighlight],\n options,\n onSelectHighlight: onSelect,\n })}\n />\n </React.Fragment>\n ),\n maxHeight: props.maxHeight || props.search ? '238px' : '180px',\n },\n getContext: (base, children) => {\n return (\n <Provider.Provider value={{ ...base, props, options }}>\n {children}\n </Provider.Provider>\n )\n },\n }\n\n const { onClear, dirty } = props\n\n parsed.dirty = (() => {\n if (dirty === undefined || typeof dirty === 'function') return dirty\n\n if (value === dirty.value) return undefined\n\n return () => props.setValue(dirty.value, dirty.data)\n })()\n\n if (onClear) parsed.onClear = () => onClear('')\n\n return parsed\n}\n\nexport default useSelect\n","import React from 'react'\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({} as ContextInterface)\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import React from 'react'\n\nimport Button from '../../../../../../../Button'\n\nimport { useContext } from '../../context'\n\nconst Footer = () => {\n const context = useContext()\n\n const {\n props: { value, setValue },\n checked: [checked],\n setOpen,\n } = context\n\n const onClick = () => {\n const [value, data] = checked.reduce(\n (r, e) => [\n [...r[0], e.value],\n [...r[1], e.data],\n ],\n [[], []] as Parameters<typeof setValue>,\n )\n\n setValue(value, data)\n setOpen(false)\n }\n\n const isDirty =\n checked.length !== value.length ||\n checked.some((e) => !value.includes(e.value))\n\n return (\n <Button\n type='button'\n content='Aplicar'\n onClick={onClick}\n style={{ marginRight: '-3.5px' }}\n disabled={!isDirty}\n />\n )\n}\n\nexport default Footer\n","import styled, { css } from 'styled-components'\n\nimport { ColorOptions } from '../../theme/interfaces'\nimport { sizes } from '../Button/constants'\n\ntype Props = {\n size?: keyof typeof sizes\n colorSetting?:\n | ColorOptions\n | {\n normal?: ColorOptions\n hover?: ColorOptions\n }\n disabled?: boolean\n} & Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>\n\nconst Link = styled.div<Props>`\n ${({ size }) => {\n const { fontSize, lineHeight } = sizes[size || 'small']\n\n return css`\n font-size: ${fontSize};\n line-height: ${lineHeight};\n `\n }}\n\n color: ${({ colorSetting, theme }) => {\n const def = 'greyishBlue' as const\n\n if (!colorSetting) return theme.colors[def]\n if (typeof colorSetting === 'string') return theme.colors[colorSetting]\n\n return theme.colors[colorSetting.normal || def]\n }};\n\n ${({ onClick, disabled, theme, colorSetting }) => {\n return disabled\n ? css`\n opacity: 0.5;\n `\n : onClick\n ? css`\n cursor: pointer;\n :hover {\n color: ${theme.colors[\n {\n hover: 'blue' as const,\n ...(colorSetting && typeof colorSetting !== 'string'\n ? colorSetting\n : {}),\n }.hover\n ]};\n }\n `\n : null\n }}\n`\n\nexport default Link\n","import styled, { css } from 'styled-components'\n\nexport const HeaderContainer = styled.div`\n ${({ theme }) => css`\n padding: ${theme.spacings.s3} 0 ${theme.spacings.s1} ${theme.spacings.s3};\n `}\n`\n\nexport const SelectAllContainer = styled.div`\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n display: flex;\n justify-content: space-between;\n`\n","import React from 'react'\n\nimport Link from '../../../../../../../Link'\nimport Input from '../../../../../Input'\n\nimport { useContext } from '../../context'\nimport * as S from './styles'\n\nconst Header = () => {\n const context = useContext()\n\n if (!context.props.search) {\n return <React.Fragment />\n }\n\n const {\n checked: [checked, setChecked],\n searchInput: [searchInput, setSearchInput],\n options,\n } = context\n\n const onClick = () => {\n setChecked((prev) =>\n prev.length === options.length\n ? []\n : options.map((o) => ({ value: o.value, data: o.data })),\n )\n }\n\n return (\n <S.HeaderContainer>\n {context.props.selectAll && (\n <S.SelectAllContainer>\n <b>Selecionados ({checked.length})</b>\n\n <Link children='Selecionar todos' onClick={onClick} />\n </S.SelectAllContainer>\n )}\n\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n }}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React from 'react'\nimport Checkbox from '../../../../../Checkbox'\nimport { useContext } from '../../context'\nimport { SelectOptionLabelProps, Option } from '../../interfaces'\n\nconst Label = (props: {\n option: SelectOptionLabelProps\n label: Option['label']\n value: Pick<Option, 'data' | 'value'>[]\n}) => {\n const context = useContext()\n\n const {\n checked: [checked, setChecked],\n } = context\n\n const { disabled, value } = props.option\n\n const LabelComponent = props.label\n\n return (\n <Checkbox\n type='checkbox'\n checked={checked.findIndex((e) => e.value === value) !== -1}\n label={\n typeof LabelComponent !== 'function' ? (\n LabelComponent\n ) : (\n <LabelComponent {...props.option} />\n )\n }\n disabled={disabled}\n onChange={(event) => {\n const isChecked = event.target.checked\n\n setChecked((prev) => {\n const newState = prev.filter((v) => v.value !== value)\n if (isChecked) {\n const e = props.value.find((e) => e.value === value)\n newState.push(\n e || {\n data: props.option.data,\n value,\n },\n )\n }\n\n return newState\n })\n }}\n padding={{\n top: 's3',\n left: 's3',\n right: 's3',\n bottom: 's3',\n }}\n width='100%'\n tabIndex={-1}\n />\n )\n}\n\nexport default Label\n","import React, { useState } from 'react'\nimport { Option as MenuOption } from '../../../../../Menu/interfaces'\nimport * as Types from '../interfaces'\nimport Footer from './components/Footer'\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\nimport Label from './components/Label'\nimport { HiddenInput } from '../../styles'\nimport useNavigation, { isAvailable } from '../Navigation'\n\nconst getOptions = (\n options: Option[],\n value: Pick<Option, 'data' | 'value'>[],\n): MenuOption[] => {\n return options.map((option) => {\n const { label, onClick } = option\n\n const data = { data: option.data, value: option.value }\n\n const parsed: MenuOption = {\n label: (option) => (\n <Label\n option={{ ...data, disabled: option.disabled }}\n label={label}\n value={value}\n />\n ),\n onClick,\n data,\n disabled: option.disabled,\n rules: option.rules,\n keepOpen: true,\n }\n\n return parsed\n })\n}\n\nconst getInputContent = (value: unknown[]): string => {\n if (value.length < 1) return ''\n return value.length > 1\n ? `Há ${value.length} seleções`\n : `Há ${value.length} seleção`\n}\n\nconst parseValue = (\n value: SelectProps['value'],\n): Pick<Option, 'value' | 'data'>[] => {\n const parsed = value.map((value) =>\n typeof value === 'string' ? { value, data: {} } : value,\n )\n return parsed\n}\n\nconst useSelectMultiple: Types.useSelect<SelectProps> = (\n props,\n [highlight, setHighlight],\n [options, setOptions],\n) => {\n const initial = parseValue(props.value)\n const [checked, setChecked] = useState<Pick<Option, 'value' | 'data'>[]>([\n ...initial,\n ])\n\n const parsedOptions = getOptions(options, initial)\n\n const inputContent = getInputContent(props.value)\n\n const onReset = () => {\n setChecked([...initial])\n }\n const onSelectHighlight = (index: number, option: Option) => {\n if (!isAvailable(index, option)) {\n return\n }\n\n setChecked((prev) => {\n const index = prev.findIndex((e) => e.value === option.value)\n if (index < 0) {\n return [\n ...prev,\n {\n data: option.data,\n value: option.value,\n },\n ]\n }\n\n const news = [...prev]\n news.splice(index, 1)\n return news\n })\n }\n\n const returnData: Types.useSelectReturn = {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n inputContent,\n onReset,\n menu: {\n itemSpacing: undefined,\n before: (\n <React.Fragment>\n <Header />\n <HiddenInput\n {...useNavigation({\n highlight: [highlight, setHighlight],\n options,\n onSelectHighlight,\n })}\n />\n </React.Fragment>\n ),\n after: { fluid: true, children: <Footer /> },\n maxHeight: props.maxHeight || (props.selectAll ? '269px' : '224px'),\n },\n getContext: (base, children) => {\n return (\n <Provider.Provider\n value={{ ...base, props, options, checked: [checked, setChecked] }}\n >\n {children}\n </Provider.Provider>\n )\n },\n onClear: () => props.setValue([], []),\n }\n\n const { dirty } = props\n\n returnData.dirty = (() => {\n if (dirty === undefined || typeof dirty === 'function') return dirty\n\n const values = [initial, dirty].map((e) => e.map((e) => e.value).sort())\n\n if (values[0].join(',') === values[1].join(',')) {\n return undefined\n }\n\n const [value, data] = dirty.reduce(\n (r, e) => [\n [...r[0], e.value],\n [...r[1], e.data],\n ],\n [[], []] as Parameters<typeof props.setValue>,\n )\n\n return () => props.setValue(value, data)\n })()\n\n return returnData\n}\n\nexport default useSelectMultiple\n","import React, { useCallback, useEffect, useState } from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Menu from '../../../Menu'\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport useSelect from './hooks/Select'\nimport { Option } from './hooks/interfaces'\nimport { SelectProps as SingleSelectProps } from './hooks/Select/interfaces'\n\nimport useSelectMultiple from './hooks/SelectMultiple'\nimport { SelectProps as MultipleSelectProps } from './hooks/SelectMultiple/interfaces'\n\nimport * as S from './styles'\nimport { GenericObject } from '../../../../interfaces'\n\nexport type SelectProps<T extends GenericObject = GenericObject> =\n | SingleSelectProps<T>\n | MultipleSelectProps<T>\n\nconst Select = React.forwardRef(\n <T extends GenericObject = GenericObject>(\n props: SelectProps<T>,\n ref?: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const { position, loader, initialLoader } = props\n\n const [options, setOptions] = useState<Option[]>(initialLoader || [])\n const [highlight, setHighlight] = useState<number>(-1)\n const [open, setOpen] = useState<boolean>(false)\n\n const hook =\n props.type === 'select-multiple' ? useSelectMultiple : useSelect\n\n const {\n parsedOptions,\n inputContent,\n onReset,\n menu: menuProps,\n getContext,\n onClear,\n dirty,\n } = hook(\n props as never,\n [highlight, setHighlight],\n [options, setOptions],\n setOpen,\n )\n\n const [_loading, setLoading] = useState<boolean>(true)\n const [search, _setSearch] = useState<string>('')\n const [searchInput, setSearchInput] = useState<string>('')\n const [page, setPage] = useState<number>(1)\n const [lastPage, setLastPage] = useState<boolean>(false)\n\n const loading = props.loading || _loading\n\n const setSearch: React.Dispatch<React.SetStateAction<string>> = (value) => {\n _setSearch(value)\n setPage(1)\n }\n\n const inputProps = filterObject<SelectProps, InputProps>(props, [\n 'type',\n 'onScrollEnd',\n 'position',\n 'value',\n 'onClear' as keyof SelectProps,\n 'placeholder',\n 'initialLoader',\n 'onScrollEnd',\n 'position',\n 'center',\n 'maxHeight',\n 'emptyContent',\n ])\n\n const _onScrollEnd = props.onScrollEnd || (() => {})\n\n const onScrollEnd = (e: React.UIEvent<HTMLDivElement, UIEvent>) => {\n if (!lastPage && !loading) {\n setPage((prev) => prev + 1)\n }\n\n _onScrollEnd(e)\n }\n\n const onSubmit = useCallback(async () => {\n setLoading(true)\n\n const optionsResult = await loader(search, page)\n if (optionsResult === null) return\n\n const [options, lastPage] = Array.isArray(optionsResult)\n ? [optionsResult, true]\n : [optionsResult.options, optionsResult.lastPage]\n\n const initial = initialLoader ? initialLoader() : []\n\n const filtered = initialLoader\n ? options.filter((x) => !initial.some((y) => x.value === y.value))\n : options\n\n const getWithOptions = () => {\n return !search && initialLoader ? [...initial, ...filtered] : options\n }\n\n setOptions(\n page === 1 ? getWithOptions() : (prev) => prev.concat(filtered),\n )\n setLastPage(lastPage)\n\n setLoading(false)\n }, [loader, search, page, initialLoader])\n\n useEffect(() => {\n const timeoutId = setTimeout(() => onSubmit(), 250)\n return () => clearTimeout(timeoutId)\n }, [onSubmit])\n\n useEffect(() => {\n if (open) return\n setSearch('')\n onReset()\n }, [props.value, open])\n\n useEffect(() => {\n setSearchInput(search)\n }, [search])\n\n useEffect(() => {\n if (page === 1) setHighlight(-1)\n }, [page])\n\n useEffect(() => {\n const timeoutId = setTimeout(() => setSearch(searchInput), 1000)\n return () => clearTimeout(timeoutId)\n }, [searchInput])\n\n const onClick = () => {\n setOpen((prev) => !prev)\n }\n\n const isEmpty =\n (typeof props.value === 'string' || Array.isArray(props.value)) &&\n props.value.length === 0\n\n return getContext(\n {\n setOpen,\n searchInput: [searchInput, setSearchInput],\n },\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(false))}\n width={props.width}\n >\n <Input\n {...inputProps}\n type='search'\n htmlReadOnly\n onClick={onClick}\n loading={loading}\n onKeyDown={(e) => {\n if (e.key === ' ') {\n setOpen((prev) => !prev)\n } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n setOpen(true)\n }\n\n if (props.onKeyDown) props.onKeyDown(e)\n }}\n dirty={dirty}\n icon={{\n icon: {\n type: 'semantic',\n icon: open ? 'caret up' : 'caret down',\n width: '14px',\n onClick: () => {},\n },\n position: 'right',\n }}\n ref={ref}\n {...(isEmpty\n ? {\n placeholder: props.placeholder,\n }\n : {\n clearable: onClear,\n })}\n children={inputContent}\n />\n\n <Menu\n {...menuProps}\n highlight={highlight}\n open={open}\n close={() => setOpen(false)}\n options={parsedOptions}\n onScrollEnd={onScrollEnd}\n scrollTabIndex={-1}\n width={props.inputWidth || '100%'}\n bordered\n position={position}\n references={{ bottom: props.paddingless ? '21px' : '35px' }}\n loading={loading}\n center={props.center || { x: 50, y: 50 }}\n transition={{\n properties: { 'max-height': {} },\n }}\n emptyContent={\n <S.EmptyContentContainer\n children={props.emptyContent || 'Nenhuma opção encontrada'}\n />\n }\n />\n </S.RelativeContainer>,\n )\n },\n)\n\nSelect.displayName = 'Select'\n\nexport default Select\n","import React, { useState } from 'react'\nimport feather from '../../../../assets/icons/feather'\nimport { IconProps } from '../../../Icon/interfaces'\n\nimport Input from '../Input'\n\nimport { PasswordProps } from './interfaces'\n\nconst Password = React.forwardRef(\n (props: PasswordProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const [visibility, setVisibility] = useState<'visible' | 'hidden'>('hidden')\n\n const icons = {\n visible: {\n icon: 'eye_off' as keyof typeof feather,\n onClick: () => setVisibility('hidden'),\n },\n hidden: {\n icon: 'eye' as keyof typeof feather,\n onClick: () => setVisibility('visible'),\n },\n }\n\n const icon: IconProps = {\n type: 'feather',\n width: '19px',\n ...icons[visibility],\n }\n\n return (\n <Input\n {...props}\n type={visibility === 'visible' ? 'text' : 'PASSWORD'}\n icon={{\n icon,\n position: 'right',\n }}\n placeholder='••••••••'\n ref={ref}\n />\n )\n },\n)\n\nPassword.displayName = 'Password'\n\nexport default Password\n","export default 'data:image/png;base64,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'\n","import styled, { css } from 'styled-components'\nimport flags from './flags'\n\ninterface Coordinate {\n s1: string\n s2: string\n s3: string\n s4: string\n s5: string\n s6: string\n}\n\ninterface Coordinates {\n ar: Coordinate\n br: Coordinate\n cl: Coordinate\n es: Coordinate\n us: Coordinate\n mx: Coordinate\n py: Coordinate\n pt: Coordinate\n uy: Coordinate\n}\n\nexport const coordinates: Coordinates = {\n ar: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3607px 1px',\n s4: '5410px 1px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n br: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3300.3px 0px',\n s4: '4950px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n cl: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3084px 0px',\n s4: '4625px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n es: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '2717px 0px',\n s4: '4075px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n us: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '274.3px 1px',\n s4: '389px 2px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n mx: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '1383px 1px',\n s4: '2074px 1px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n py: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '963.5px 1.4px',\n s4: '1445px 2px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n pt: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '993px 0px',\n s4: '1489px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n uy: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3998px 0.3px',\n s4: '367px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n}\n\ninterface FlagProps {\n iso: keyof typeof coordinates\n width?: keyof Coordinate\n}\n\nconst Flag = styled.div<FlagProps>`\n background-image: url(${flags});\n background-size: auto 100%;\n\n ${({ iso, width, theme }) => {\n width = width || 's4'\n\n return css`\n background-position: ${coordinates[iso][width]};\n width: ${theme.spacings[width]};\n height: calc(${theme.spacings[width]} / 1.4);\n `\n }}\n`\n\nexport default Flag\n","import { Countries } from './interfaces'\n\nconst countries: Countries = {\n ar: {\n name: 'Argentina',\n iso: 'ar',\n ddi: 54,\n placeholder: '011 15-2345-678',\n validation: /^[0-9]{12}$/i,\n charLimit: 12,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{2})(\\d{4})(\\d{3})$/, '$1 $2-$3-$4')\n },\n },\n br: {\n name: 'Brasil',\n iso: 'br',\n ddi: 55,\n placeholder: '(11) 96123-4567',\n validation: /^[0-9]{2}(?:[2-8]|9[0-9])[0-9]{7}$/i,\n charLimit: 11,\n mask: (value: string) => {\n return value\n .replace(/(\\d{2})(\\d)/, '($1) $2')\n .replace(/(\\d{5})(\\d{4})$/, '$1-$2')\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\n },\n },\n cl: {\n name: 'Chile',\n iso: 'cl',\n ddi: 56,\n placeholder: '(2) 2123 4567',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{1})(\\d{4})(\\d{4})$/, '($1) $2 $3')\n },\n },\n es: {\n name: 'Espanha',\n iso: 'es',\n ddi: 34,\n placeholder: '612 34 56 78',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{2})(\\d{2})(\\d{2})$/, '$1 $2 $3 $4')\n },\n },\n us: {\n name: 'Estados Unidos',\n iso: 'us',\n ddi: 1,\n placeholder: '(201) 555-01',\n validation: /^[0-9]{8}$/i,\n charLimit: 8,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{2})$/, '($1) $2-$3')\n },\n },\n mx: {\n name: 'México',\n iso: 'mx',\n ddi: 52,\n placeholder: '044 222 123 45',\n validation: /^[0-9]{11}$/i,\n charLimit: 11,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/, '$1 $2 $3 $4')\n },\n },\n py: {\n name: 'Paraguai',\n iso: 'py',\n ddi: 595,\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{6})$/, '$1 $2')\n },\n },\n pt: {\n name: 'Portugal',\n iso: 'pt',\n ddi: 351,\n placeholder: '912 345 678',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})$/, '$1 $2 $3')\n },\n },\n uy: {\n name: 'Uruguai',\n iso: 'uy',\n ddi: 598,\n placeholder: '094 231 234',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})$/, '$1 $2 $3')\n },\n },\n}\n\nexport default countries\n","import styled from 'styled-components'\n\nexport const IconContainer = styled.div`\n display: flex;\n align-items: center;\n\n > i.icon {\n margin-top: -1px;\n }\n`\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n\nexport const Label = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n\n color: ${({ theme }) => theme.colors.greyishBlue};\n\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > span {\n color: ${({ theme }) => theme.colors.darkestGrey};\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport Flag from '../../../../assets/icons/flags'\n\nimport { notEmptyString } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\nimport Input from '../Input'\nimport Icon from '../../../Icon'\nimport { Option } from '../../../Menu/interfaces'\n\nimport countries from './countries'\nimport { Country, Details, IconProps, PhoneProps } from './interfaces'\nimport * as S from './styles'\nimport Menu from '../../../Menu'\n\nexport const getPhoneDetails = (phone: string): Details | null => {\n if (!notEmptyString(phone)) return null\n\n // mantendo apenas numeros e espacoes e separando por espacos\n const splitted = phone.replace(/[^0-9\\s]/g, '').split(' ')\n // se tem pelo menos 2 posicoes a primeira deve ser o ddi e a segunda o restante do numero\n if (splitted.length < 2) return null\n\n // pegando o ddi na primeira posicao\n const ddi = parseInt(splitted[0])\n splitted.shift()\n\n // verificando se existe algum pais com o ddi correspondente\n const iso = (Object.keys(countries) as (keyof typeof countries)[]).find(\n (k) => {\n return countries[k].ddi === ddi\n },\n )\n\n const country = !iso ? countries.br : countries[iso]\n\n // juntando o restante do numero do telefone e mantendo apenas digitos\n let masked = splitted.join(' ').replace(/\\D+/g, '')\n const value = masked\n // mantendo o limite de caracteres especificado pelo pais selecionado\n masked = masked.substring(0, country.charLimit)\n // se o pais selecionado possui mascara, aplica a mascara\n if (country.mask) masked = country.mask(masked)\n\n // se o pais selecionado nao tem validacao, considera valido\n let valid = true\n const validation = country.validation\n if (validation instanceof RegExp) {\n // se a validacao for do tipo regex, faz o teste\n valid = validation.test(value)\n } else if (typeof validation === 'function') {\n // se for do tipo funcao chama a funcao pra fazer o teste\n valid = validation(value)\n }\n\n return {\n country,\n masked,\n value,\n withDDI: `${country.ddi} ${value}`,\n valid,\n }\n}\n\nconst Button = (props: IconProps) => {\n const {\n country: [country],\n open: [open, setOpen],\n disabled,\n } = props\n\n return (\n <S.IconContainer\n {...(disabled ? {} : { onClick: () => setOpen((prev) => !prev) })}\n >\n <Flag iso={country.iso} />\n <Icon\n type='semantic'\n icon={open ? 'caret up' : 'caret down'}\n width='14px'\n color='lightGrey'\n />\n </S.IconContainer>\n )\n}\n\nconst Component = React.forwardRef(\n (props: PhoneProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, setValue } = props\n\n const [inputValue, setInputValue] = useState<string>(\n !value\n ? ''\n : () => {\n const details = getPhoneDetails(value)\n return details ? details.masked : value\n },\n )\n const [country, setCountry] = useState<Country>(countries.br)\n const [open, setOpen] = useState<boolean>(false)\n\n const options: Option[] = (\n Object.keys(countries) as (keyof typeof countries)[]\n ).map((iso) => ({\n label: (option) => {\n const country = option.data as Country\n return (\n <S.Label>\n <Flag iso={iso} />\n {country.name}\n <span>+{country.ddi}</span>\n </S.Label>\n )\n },\n onClick: () => {\n setCountry(countries[iso])\n },\n data: countries[iso],\n }))\n\n const mask = (value: string): string => {\n value = value.replace(/\\D+/g, '')\n value = value.substring(0, country.charLimit)\n if (country.mask) value = country.mask(value)\n return value\n }\n\n useEffect(() => {\n if (!value) {\n setInputValue('')\n return\n }\n\n const details = getPhoneDetails(value)\n if (details) {\n setCountry(details.country)\n setInputValue(details.masked)\n } else {\n setCountry(countries.br)\n setInputValue(value)\n }\n }, [value])\n\n useEffect(() => {\n setInputValue((prev) => mask(prev))\n }, [country])\n\n useEffect(() => {\n const v = inputValue.replace(/\\D+/g, '').substring(0, country.charLimit)\n setValue(v ? `${country.ddi} ${v}` : v)\n }, [inputValue])\n\n const placeholder =\n props.placeholder && props.placeholder[country.iso]\n ? props.placeholder[country.iso]\n : country.placeholder\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut<HTMLDivElement>(() => setOpen(false))}\n >\n <Input\n {...props}\n type='text'\n placeholder={placeholder}\n mask={mask}\n value={inputValue}\n setValue={setInputValue}\n icon={{\n icon: {\n icon: (\n <Button\n country={[country, setCountry]}\n open={[open, setOpen]}\n />\n ),\n type: 'jsx',\n width: '35px',\n },\n position: 'left',\n }}\n ref={ref}\n />\n\n <Menu\n open={open}\n close={() => setOpen(false)}\n options={options}\n width='100%'\n maxHeight='165px'\n bordered\n itemSpacing='s3'\n transition={{ properties: { 'max-height': {} } }}\n references={{ bottom: props.paddingless ? '21px' : '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'Phone'\n\nconst Phone = Object.assign(Component, {\n getPhoneDetails,\n})\n\nexport default Phone\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n\n input {\n color: transparent;\n }\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: ${({ theme }) => theme.spacings.s3};\n`\n\ninterface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n iconWidth: string\n invalid: 1 | 0\n disabled: 1 | 0\n paddingless: 1 | 0\n}\n\nexport const Container = styled.div<ContainerProps>`\n position: absolute;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 4px;\n\n ${({ theme, iconWidth, paddingless }) => {\n const borderwidth = 1\n\n if (paddingless) {\n return css`\n bottom: ${borderwidth}px;\n left: ${borderwidth}px;\n width: calc(100% - ${borderwidth * 2}px - ${iconWidth});\n height: calc(17px + ${borderwidth * 2}px);\n `\n }\n\n return css`\n bottom: ${borderwidth}px;\n left: ${borderwidth}px;\n width: calc(\n 100% - ${borderwidth * 2}px - ${iconWidth} - ${theme.spacings.s3}\n );\n height: calc(31px + ${borderwidth * 2}px);\n padding: ${theme.spacings.s2} 0 ${theme.spacings.s2} ${theme.spacings.s3};\n `\n }}\n\n ${({ invalid, theme }) => {\n if (!invalid) return\n\n return css`\n color: ${theme.colors.warningRed};\n `\n }}\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const Button = styled.button`\n display: flex;\n background-color: transparent;\n border: none;\n padding: 0;\n box-shadow: none;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\n","import React, { useEffect, useState } from 'react'\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\nimport Calendar from '../../../Calendar'\nimport { getMiddle } from '../../../Calendar/functions'\nimport Icon from '../../../Icon'\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\nimport { DatePickerProps } from './interfaces'\nimport * as S from './styles'\n\nconst DatePicker = React.forwardRef(\n (props: DatePickerProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, setValue, min, max } = props\n\n const disabled = props.disabled || props.loading\n\n const today = dateToIsoString(new Date())\n\n const [open, setOpen] = useState<boolean>(false)\n\n useEffect(() => {\n const date = isoStringToDate(value)\n if (!date) {\n setValue(dateToIsoString(getMiddle(min, max)))\n }\n }, [value])\n\n const onAdd = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() + 1)\n if (max && date > max) return\n setValue(dateToIsoString(date))\n }\n\n const onSub = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() - 1)\n if (min && date < min) return\n setValue(dateToIsoString(date))\n }\n\n const icon: InputProps['icon'] = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n width: '24px',\n onClick: () => setOpen((prev) => !prev),\n },\n position: 'right',\n }\n : undefined\n\n const inputProps = filterObject<DatePickerProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input {...inputProps} type='text' icon={icon} ref={ref} htmlDisabled />\n\n <S.Container\n iconWidth={picker ? '24px' : '0px'}\n invalid={props.invalid ? 1 : 0}\n disabled={props.disabled ? 1 : 0}\n paddingless={props.paddingless ? 1 : 0}\n >\n <S.Button\n type='button'\n onClick={disabled ? undefined : onSub}\n tabIndex={-1}\n disabled={\n disabled ||\n (() => {\n if (!min) return undefined\n const v = isoStringToDate(value)\n if (!v) return undefined\n\n return v <= min\n })()\n }\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n <S.LabelContainer>\n {today === value ? 'Hoje' : value}\n </S.LabelContainer>\n\n <S.Button\n type='button'\n onClick={disabled ? undefined : onAdd}\n tabIndex={-1}\n disabled={\n disabled ||\n (() => {\n if (!max) return undefined\n const v = isoStringToDate(value)\n if (!v) return undefined\n\n return v >= max\n })()\n }\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n </S.Container>\n\n <Calendar\n {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(dateToIsoString(date))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDatePicker.displayName = 'DatePicker'\n\nexport default DatePicker\n","import styled, { css } from 'styled-components'\nimport { LabelContainerProps, LabelProps } from './interfaces'\n\nexport const LabelContainer = styled.div<LabelContainerProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n display: flex;\n align-items: center;\n\n ${({ $required: required, $viewMode: viewMode }) => {\n if (!required || viewMode) return\n return css`\n :after {\n content: '*';\n }\n `\n }}\n\n ${({ $keepSpace: keepSpace, children }) => {\n if (!keepSpace || children) return\n return css`\n :before {\n content: '';\n white-space: pre;\n }\n `\n }}\n`\n\nexport const Label = styled.label<LabelProps>`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n position: relative;\n align-items: center;\n\n ${({ $disabled: disabled }) => {\n if (!disabled) {\n return css`\n > span {\n cursor: pointer;\n }\n `\n }\n return css`\n opacity: 0.5;\n `\n }}\n\n ${({ $invalid: invalid }) => {\n if (!invalid) {\n return css`\n > span:before {\n border-color: ${({ theme }) => theme.colors.lightGrey};\n }\n > input:checked + span {\n background-color: ${({ theme }) => theme.colors.blue};\n }\n `\n }\n return css`\n > span:before {\n border-color: ${({ theme }) => theme.colors.warningRed};\n }\n > input:checked + span {\n background-color: ${({ theme }) => theme.colors.warningRed};\n }\n `\n }}\n\n > input {\n position: absolute;\n height: 0%;\n width: 0%;\n opacity: 0;\n }\n\n > span {\n position: relative;\n width: 50px;\n height: calc(${({ theme }) => theme.spacings.s4} + 1px);\n background-color: ${({ theme }) => theme.colors.warningGray};\n border-radius: 20px;\n transition-property: background-color;\n transition-duration: 0.4s;\n transition-timing-function: ease-in-out;\n box-sizing: content-box;\n :before {\n content: '';\n transition-property: left;\n transition-duration: 0.4s;\n transition-timing-function: ease-in-out;\n position: absolute;\n border-width: 1px;\n border-style: solid;\n border-radius: 100%;\n left: 0;\n box-shadow: 0px 1px 3px ${({ theme }) => theme.getColor('black', 10)};\n width: calc(${({ theme }) => theme.spacings.s4} - 1px);\n height: calc(${({ theme }) => theme.spacings.s4} - 1px);\n background-color: ${({ theme }) => theme.colors.white};\n }\n }\n\n > input:checked + span {\n :before {\n left: calc(100% - ${({ theme }) => theme.spacings.s4} - 1px);\n }\n }\n`\n","import React from 'react'\nimport { isObject } from '../../../../functions/validators'\nimport { filterObject } from '../../../../functions/formatters'\nimport { SwitchProps } from './interfaces'\nimport * as S from './styles'\nimport { ReactNode } from '../../../../interfaces'\nimport Form from '../../../Form'\n\nconst Switch = (props: SwitchProps) => {\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const label = isObject<Exclude<typeof props.label, ReactNode | undefined>>(\n props.label,\n )\n ? props.label\n : { label: props.label }\n\n const htmlProps = filterObject<\n SwitchProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, [\n 'label',\n 'invalid',\n 'required',\n 'htmlDisabled',\n 'labelProps',\n 'viewMode',\n ])\n\n htmlProps.disabled = props.disabled || props.htmlDisabled\n\n return (\n <S.Label\n {...(props.labelProps || {})}\n $disabled={disabled}\n $invalid={invalid}\n >\n {label.label && (\n <S.LabelContainer $required={required} $viewMode={viewMode}>\n {label.label}\n </S.LabelContainer>\n )}\n\n {viewMode ? (\n <S.LabelContainer\n $keepSpace\n children={label[props.checked ? 'after' : 'before']}\n />\n ) : (\n <React.Fragment>\n {label.before && <S.LabelContainer children={label.before} />}\n\n <input {...htmlProps} type='checkbox' />\n <span></span>\n\n {label.after && <S.LabelContainer children={label.after} />}\n </React.Fragment>\n )}\n </S.Label>\n )\n}\n\nexport default Switch\n","import styled, { css } from 'styled-components'\n\ntype InputProps = { $activeBullet: boolean; $bulletSize: number }\ntype BulletProps = React.InputHTMLAttributes<HTMLInputElement> & InputProps\n\nconst bullet = css<BulletProps>`\n appearance: none;\n width: ${({ $bulletSize: bulletSize }) => bulletSize}px;\n height: ${({ $bulletSize: bulletSize }) => bulletSize}px;\n border-radius: 100%;\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme }) => theme.colors.lightestGrey};\n\n box-shadow: 0px 1px 3px ${({ theme }) => theme.getColor('black', 10)};\n box-sizing: border-box;\n\n background-color: ${({ theme, $activeBullet: activeBullet }) => {\n return theme.colors[activeBullet ? 'blue' : 'white']\n }};\n\n transition: background-color 0.2s ease-in-out;\n`\n\nconst Input = styled.input<InputProps>`\n appearance: none;\n width: 100%;\n height: 10px;\n background-color: transparent;\n outline: none;\n position: relative;\n z-index: 3;\n margin: 0;\n\n :not(:disabled) {\n cursor: pointer;\n }\n\n /** firefox */\n ::-moz-range-thumb {\n ${bullet}\n }\n /** ie */\n ::-ms-thumb {\n ${bullet}\n }\n /** chrome */\n ::-webkit-slider-thumb {\n ${bullet}\n }\n`\n\nexport default Input\n","import styled from 'styled-components'\n\ninterface SelectedAreaProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n percent: number\n}\n\nconst SelectedArea = styled.div<SelectedAreaProps>`\n background-color: ${({ theme }) => theme.getColor('greyishBlue', 10)};\n\n height: 3px;\n width: 100%;\n position: absolute;\n bottom: calc(50% - 2px);\n left: 0;\n display: flex;\n z-index: 1;\n\n > span {\n width: ${({ percent }) => percent}%;\n display: block;\n box-sizing: border-box;\n height: 100%;\n }\n`\n\nexport default SelectedArea\n","import styled, { css } from 'styled-components'\nimport Input from '../Input'\nimport SelectedArea from '../SelectedArea'\n\ninterface InputContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n}\n\nconst InputContainer = styled.div<InputContainerProps>`\n flex: 1;\n display: flex;\n gap: 6px;\n\n > div {\n position: relative;\n }\n\n ${({ theme, invalid }) => {\n if (!invalid) {\n return css`\n ${SelectedArea} > span {\n background-color: ${theme.colors.blue};\n }\n\n ${Input} {\n /** firefox */\n ::-moz-range-thumb {\n border-color: ${theme.colors.lightestGrey};\n }\n /** ie */\n ::-ms-thumb {\n border-color: ${theme.colors.lightestGrey};\n }\n /** chrome */\n ::-webkit-slider-thumb {\n border-color: ${theme.colors.lightestGrey};\n }\n }\n `\n }\n\n return css`\n ${SelectedArea} > span {\n background-color: ${theme.colors.warningRed};\n }\n\n ${Input} {\n /** firefox */\n ::-moz-range-thumb {\n border-color: ${theme.colors.warningRed};\n }\n /** ie */\n ::-ms-thumb {\n border-color: ${theme.colors.warningRed};\n }\n /** chrome */\n ::-webkit-slider-thumb {\n border-color: ${theme.colors.warningRed};\n }\n }\n `\n }}\n`\n\nexport default InputContainer\n","import styled from 'styled-components'\n\nconst LabelContainer = styled.div`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n`\n\nexport default LabelContainer\n","import styled, { css } from 'styled-components'\n\ntype NavBarProps = {\n $position: 'bottom' | 'top'\n $strict: boolean | undefined\n}\n\nconst NavBar = styled.div<NavBarProps>`\n position: absolute;\n z-index: 2;\n\n left: 0;\n width: 100%;\n height: calc(33px + ${({ theme }) => theme.spacings.s3});\n transition: height 0.25s ease-in-out;\n overflow: hidden;\n\n ${({ theme, $position: position, $strict: strict }) => {\n const distance = strict ? `calc(${theme.spacings.s1} / 2)` : '0px'\n\n return position === 'bottom'\n ? css`\n bottom: calc(100% + ${distance});\n > div:nth-child(1) {\n bottom: ${theme.spacings.s1};\n }\n\n > div:nth-child(2) {\n top: calc(100% - 7px);\n }\n `\n : css`\n top: calc(100% + ${distance});\n > div:nth-child(1) {\n top: ${theme.spacings.s1};\n }\n\n > div:nth-child(2) {\n bottom: calc(100% - 7px);\n transform: rotate(180deg);\n }\n `\n }}\n\n > div:nth-child(1) {\n position: absolute;\n z-index: 2;\n\n width: 93px;\n /* height: 30px; */\n padding: 9px 7px;\n font-size: 13px;\n line-height: 16px;\n border-radius: 1px;\n\n background-color: ${({ theme }) => theme.colors.blue};\n color: ${({ theme }) => theme.colors.white};\n padding: ${({ theme }) => theme.spacings.s1};\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n > div:nth-child(2) {\n position: absolute;\n width: 0px;\n height: 0px;\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-top: 5px solid ${({ theme }) => theme.colors.blue};\n }\n`\n\nexport default NavBar\n","import styled, { css } from 'styled-components'\nimport LabelContainer from '../LabelContainer'\nimport NavBar from '../NavBar'\n\ninterface StyledLabelProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n $disabled?: boolean\n $required?: boolean\n $viewMode?: boolean\n width?: string\n}\n\nconst Label = styled.label<StyledLabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n line-height: 17px;\n\n ${({ width, $viewMode: viewMode }) => {\n if (width) {\n return css`\n width: ${width};\n `\n }\n\n return (\n !viewMode &&\n css`\n width: 100%;\n `\n )\n }};\n box-sizing: border-box;\n display: block;\n position: relative;\n\n ${({ $disabled: disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > ${LabelContainer} {\n ${({ $required: required, $viewMode: viewMode }) => {\n return (\n required &&\n !viewMode &&\n css`\n :after {\n content: ' *';\n }\n `\n )\n }}\n }\n\n :not(:hover) ${NavBar} {\n height: 0;\n }\n`\n\nexport default Label\n","import styled, { css } from 'styled-components'\n\ninterface MarkerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n $left: string\n $bullet: boolean\n $firstChild: boolean\n $lastChild: boolean\n}\n\nconst Marker = styled.div<MarkerProps>`\n position: absolute;\n top: 0;\n width: 40px;\n text-align: center;\n left: ${({ $left: left }) => left};\n z-index: 2;\n\n ${({ $firstChild: firstChild }) =>\n firstChild &&\n css`\n :first-child {\n left: 0;\n text-align: left;\n\n :after {\n left: 0;\n }\n }\n `}\n\n ${({ $lastChild: lastChild }) =>\n lastChild &&\n css`\n :last-child {\n right: 0;\n left: unset;\n text-align: right;\n\n :after {\n right: 0;\n left: unset;\n }\n }\n `}\n\n ${({ $bullet: bullet, theme }) => {\n if (!bullet) return\n return css`\n :after {\n content: '';\n position: absolute;\n left: calc(50% - 5px);\n width: 10px;\n height: 10px;\n border-radius: 100%;\n border: 1px solid ${theme.colors.lightestGrey};\n background-color: ${theme.colors.white};\n box-shadow: 0px 1px 3px ${theme.getColor('black', 10)};\n }\n `\n }}\n`\n\nexport default Marker\n","import styled from 'styled-components'\n\nconst MinMaxLabelContainer = styled.div`\n display: flex;\n padding-bottom: 2px;\n`\n\nexport default MinMaxLabelContainer\n","import styled, { css } from 'styled-components'\nimport InputContainer from '../InputContainer'\nimport Marker from '../Marker'\nimport MinMaxLabelContainer from '../MinMaxLabelContainer'\n\ninterface LabelsContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n position: 'bottom' | 'top'\n}\n\nconst LabelsContainer = styled.div<LabelsContainerProps>`\n display: flex;\n gap: 7px;\n\n ${({ position }) => {\n if (position === 'bottom') {\n return css`\n ${InputContainer} {\n flex-direction: column-reverse;\n }\n\n ${Marker} {\n :after {\n bottom: calc(100% + 9px);\n }\n }\n\n ${MinMaxLabelContainer} {\n align-items: start;\n }\n `\n }\n\n return css`\n ${InputContainer} {\n flex-direction: column;\n }\n\n ${Marker} {\n :after {\n top: calc(100% + 10px);\n }\n }\n\n ${MinMaxLabelContainer} {\n align-items: end;\n }\n `\n }}\n`\n\nexport default LabelsContainer\n","import styled from 'styled-components'\n\nconst MarkersContainer = styled.div`\n height: 17px;\n`\n\nexport default MarkersContainer\n","import styled from 'styled-components'\n\nconst ViewModeContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`\n\nexport default ViewModeContainer\n","import React from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport { isObject } from '../../../../functions/validators'\nimport Form from '../../../Form'\n\nimport Icon from '../../../Icon'\n\nimport { Marker, RangeProps } from './interfaces'\nimport * as S from './styles'\n\nconst getMarkers = (\n props: RangeProps,\n): {\n min: number\n max: number\n step: number\n strict: boolean | undefined\n markers: Marker[]\n position: 'bottom' | 'top'\n value: number\n} => {\n if (props.markers && 'markers' in props.markers) {\n const { strict } = props.markers\n const position = props.markers.position || 'bottom'\n\n const markers = props.markers.markers.map((m): Marker => {\n return isObject<Marker>(m) ? m : { label: m.toString(), value: m }\n })\n\n markers.sort((a, b) => a.value - b.value)\n\n if (strict) {\n const min = 0\n const max = markers.length - 1\n const step = 1\n const value = markers.findIndex((m) => m.value === props.value)\n\n return {\n min,\n max,\n step,\n strict,\n markers,\n position,\n value,\n }\n }\n\n const min =\n 'min' in props.markers && props.markers.min !== undefined\n ? props.markers.min\n : markers[0].value\n const max =\n 'max' in props.markers && props.markers.max !== undefined\n ? props.markers.max\n : markers[markers.length - 1].value\n const step = props.step\n ? parseFloat(`${props.step}`)\n : markers[1].value - markers[0].value\n\n return {\n min,\n max,\n step,\n strict,\n markers,\n position,\n value: props.value,\n }\n }\n\n const markers = props.markers || {}\n const step = props.step ? parseFloat(`${props.step}`) : 1\n const min = markers.min || 0\n const max = markers.max || 100\n const strict = false\n\n return {\n min,\n max,\n step,\n strict,\n markers: [],\n position: 'bottom',\n value: props.value,\n }\n}\n\nconst getMarkerLeft = (\n markers: number,\n range: number,\n index: number,\n value: number,\n min: number,\n strict: boolean | undefined,\n) => {\n let z = markers - 2\n if (z < markers - 1) z = markers - 1\n const y = 20 / z\n const x = 20 - y * (z - index)\n\n const p = strict ? (index * 100) / range : ((value - min) * 100) / range\n\n const left = `calc(${p}% - 10px - ${x}px)`\n return left\n}\n\nconst getLeftCalc = (\n size: number,\n bullet: number,\n value: number,\n min: number,\n max: number,\n) => {\n const percent = ((value - min) * 100) / (max - min)\n const calc = `calc(${percent}% - ${(bullet * percent) / 100}px + ${\n (bullet - size) / 2\n }px)`\n\n return calc\n}\n\nconst getBarLeft = (size: number, calc: string) => {\n return `min(max(${calc}, 0%), calc(100% - ${size}px))`\n}\n\nconst getIndicatorLeft = (size: number, calc: string) => {\n return `min(max(${calc}, calc(0% - ${size}px)), calc(100% - ${size}px))`\n}\n\nconst Range = React.forwardRef(\n (props: RangeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { label, minLabel, maxLabel, width, setValue, hideNavbar } = props\n\n const { isRequired, isInvalid, isViewMode, isDisabled } = Form.useContext(\n props.name,\n )\n\n const invalid = isInvalid() || props.invalid\n const required = isRequired() || props.required\n const disabled = isDisabled() || props.disabled\n const viewMode = isViewMode() || props.viewMode\n\n const { min, max, strict, markers, step, position, value } =\n getMarkers(props)\n\n const range = max - min\n const percent = 100 / range\n const spans = value - min\n\n if (value < min || value > max) {\n throw new Error(\n `Value must be between \"${min}\" and \"${max}\". \"${value}\" given`,\n )\n }\n\n const getValue = strict\n ? (v: string | number) => {\n const index = typeof v === 'number' ? v : parseInt(v)\n const value = markers[index].value\n return value\n }\n : (v: string | number) => {\n const value = typeof v === 'number' ? v : parseFloat(v)\n return value\n }\n\n const currentValue = getValue(value)\n\n const _onChange = props.onChange || ((_event, value) => setValue(value))\n const onChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const value = getValue(event.target.value)\n _onChange(event, value)\n }\n\n const { increment, canIncrement, decrement, canDecrement } = strict\n ? {\n increment: () => {\n setValue((prev) => {\n const index = markers.findIndex((e) => e.value === prev)\n if (index < 0) return prev\n const x = index + 1\n return x < markers.length ? markers[x].value : prev\n })\n },\n canIncrement: value + 1 < markers.length,\n decrement: () => {\n setValue((prev) => {\n const index = markers.findIndex((e) => e.value === prev)\n if (index < 0) return prev\n const x = index - 1\n return x >= 0 ? markers[x].value : prev\n })\n },\n canDecrement: value - 1 >= 0,\n }\n : {\n increment: () => {\n setValue((prev) => {\n const x = prev + step\n return x > max ? prev : x\n })\n },\n canIncrement: value + step <= max,\n decrement: () => {\n setValue((prev) => {\n const x = prev - step\n return x < min ? prev : x\n })\n },\n canDecrement: value - step >= min,\n }\n\n const inputProps = filterObject<\n RangeProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(\n props,\n [\n 'label',\n 'minLabel',\n 'maxLabel',\n 'invalid',\n 'required',\n 'width',\n 'onChange',\n 'step',\n 'value',\n 'hideNavbar',\n ],\n {\n min,\n max,\n step,\n onChange,\n value,\n },\n )\n\n const bulletSize = strict === true ? 22 : 14\n\n return (\n <S.Label\n $required={required}\n $disabled={disabled}\n $viewMode={viewMode}\n width={width}\n >\n {label && <div children={label} />}\n\n {viewMode ? (\n <S.ViewModeContainer children={currentValue} />\n ) : (\n <S.LabelsContainer position={position}>\n {minLabel && (\n <S.MinMaxLabelContainer>{minLabel}</S.MinMaxLabelContainer>\n )}\n\n <S.InputContainer invalid={invalid ? 1 : 0}>\n {markers.length > 0 && (\n <S.MarkersContainer>\n {markers.map((marker, index) => {\n const firstChild = strict || min === markers[0].value\n const lastChild =\n strict || max === markers[markers.length - 1].value\n\n const left = getMarkerLeft(\n markers.length +\n (firstChild ? 0 : 1) +\n (lastChild ? 0 : 1),\n range,\n index + (firstChild ? 0 : 1),\n marker.value,\n min,\n strict,\n )\n\n const bullet =\n strict ||\n (marker.value > currentValue && marker.value < max)\n\n return (\n <S.Marker\n key={index}\n $left={left}\n $bullet={bullet}\n $firstChild={firstChild}\n $lastChild={lastChild}\n >\n {marker.label}\n </S.Marker>\n )\n })}\n </S.MarkersContainer>\n )}\n\n <div>\n <S.Input\n ref={ref}\n {...inputProps}\n $activeBullet={\n (strict === true ? markers[value].value : value) !== 0\n }\n $bulletSize={bulletSize}\n />\n\n {!hideNavbar && (\n <S.NavBar $position={position} $strict={strict}>\n <div\n style={{\n left: getBarLeft(\n 93,\n getLeftCalc(93, bulletSize, value, min, max),\n ),\n }}\n >\n <Icon\n type='feather'\n icon='minus_circle'\n color='white'\n onClick={canDecrement ? decrement : undefined}\n width='12px'\n height='12px'\n strokeWidth='2.5px'\n />\n\n {currentValue}\n\n <Icon\n type='feather'\n icon='plus_circle'\n color='white'\n onClick={canIncrement ? increment : undefined}\n width='12px'\n height='12px'\n strokeWidth='2.5px'\n />\n </div>\n\n <div\n style={{\n left: getIndicatorLeft(\n 14,\n getLeftCalc(14, bulletSize, value, min, max),\n ),\n }}\n ></div>\n </S.NavBar>\n )}\n\n <S.SelectedArea percent={percent}>\n {Array(spans)\n .fill(1)\n .map((_value, index) => (\n <span key={index} />\n ))}\n </S.SelectedArea>\n </div>\n </S.InputContainer>\n\n {maxLabel && (\n <S.MinMaxLabelContainer>{maxLabel}</S.MinMaxLabelContainer>\n )}\n </S.LabelsContainer>\n )}\n </S.Label>\n )\n },\n)\n\nRange.displayName = 'input'\n\nexport default Range\n","import styled, { css } from 'styled-components'\nimport { LabelProps } from './interfaces'\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n display: flex;\n align-items: center;\n`\n\nexport const Label = styled.label<LabelProps>`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n\n ${({ disabled }) => {\n if (!disabled) {\n return css`\n > span {\n cursor: pointer;\n }\n `\n }\n return css`\n opacity: 0.5;\n `\n }}\n\n ${({ required }) => {\n if (!required) return\n return css`\n > ${LabelContainer} {\n :after {\n content: ' *';\n }\n }\n `\n }}\n\n${({ invalid }) => {\n if (!invalid) {\n return css`\n > span {\n border-color: ${({ theme }) => theme.colors.lightestGrey};\n :before {\n background-color: ${({ theme }) => theme.colors.lightestGrey};\n }\n }\n > input:checked + span {\n border-color: ${({ theme }) => theme.colors.blue};\n :before {\n background-color: ${({ theme }) => theme.colors.blue};\n }\n }\n `\n }\n return css`\n > span {\n border-color: ${({ theme }) => theme.colors.warningRed};\n :before {\n background-color: ${({ theme }) => theme.colors.warningRed};\n }\n }\n `\n }}\n\n > input {\n position: absolute;\n top: 0;\n left: 0;\n height: 0;\n width: 0;\n /* Chrome, Safari, Edge, Opera */\n :-webkit-outer-spin-button,\n :-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n -moz-appearance: none;\n }\n\n > span {\n align-self: center;\n height: 17px;\n width: 17px;\n min-height: 17px;\n min-width: 17px;\n max-height: 17px;\n max-width: 17px;\n border-radius: 100%;\n border-width: 1px;\n border-style: solid;\n background-color: ${({ theme }) => theme.colors.white};\n position: relative;\n transition-property: border-color;\n transition-duration: 0.5s;\n transition-timing-function: ease-in-out;\n :before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n height: 0;\n width: 0;\n border-radius: 100%;\n transition-property: top, left, width, height, background-color;\n transition-duration: 0.5s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);\n }\n }\n > input:checked + span {\n :before {\n top: calc(50% - 4.5px);\n left: calc(50% - 4.5px);\n height: 9px;\n width: 9px;\n }\n }\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport { RadioButtonProps } from './interfaces'\nimport * as S from './styles'\n\nconst RadioButton = (props: RadioButtonProps) => {\n const { label, disabled, required, invalid } = props\n\n const htmlProps = filterObject<\n RadioButtonProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, ['label', 'invalid', 'required'])\n\n return (\n <S.Label\n disabled={disabled ? 1 : 0}\n required={required ? 1 : 0}\n invalid={invalid ? 1 : 0}\n >\n <input {...htmlProps} type='radio' />\n <span></span>\n\n {label && <S.LabelContainer>{label}</S.LabelContainer>}\n </S.Label>\n )\n}\n\nexport default RadioButton\n","import {\n dateToIsoString,\n getFirstWeek,\n getLastWeek,\n getMonthName,\n getWeekNumber,\n} from '../../../../functions/formatters'\nimport { dateCompare } from '../../../../functions/validators'\nimport { Value } from '../../../Calendar/components/Interval/interfaces'\n\nimport { IntervalType, IntervalTypes } from './interfaces'\n\nexport const validate: (value: Value, min?: Date, max?: Date) => boolean = (\n [start, end],\n min,\n max,\n) => {\n if (start === null || end === null) return true\n if (min && dateCompare(start, min, 'lt')) return false\n if (max && dateCompare(end, max, 'gt')) return false\n return true\n}\n\nexport const intervalTypes: IntervalTypes = {\n day: {\n label: (prev) => {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n if (dateCompare(today, prev[0], 'eq', false)) return 'Hoje'\n return dateToIsoString(prev[0], false, false)\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(base)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() + 1)\n return tmp\n }) as [Date, Date]\n },\n decrement: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() - 1)\n return tmp\n }) as [Date, Date]\n },\n },\n week: {\n label: (prev) => {\n const [weekNumber] = getWeekNumber(prev[0])\n return `${weekNumber}ª Semana`\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setDate(start.getDate() - start.getUTCDay())\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(start)\n end.setDate(start.getDate() + 6)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() + 7)\n return tmp\n }) as [Date, Date]\n },\n decrement: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() - 7)\n return tmp\n }) as [Date, Date]\n },\n getMinMax: (min, max) => {\n const firstWeek = getFirstWeek()\n const lastWeek = getLastWeek()\n\n if (!min || min < firstWeek) min = firstWeek\n if (!max || max > lastWeek) max = lastWeek\n\n return {\n min,\n max,\n }\n },\n },\n month: {\n label: (prev) => {\n const monthName = getMonthName(prev[0])\n const year = prev[0].getFullYear()\n\n return `${monthName}/${year}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setDate(1)\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n const start = new Date(prev[0])\n start.setDate(1)\n start.setMonth(start.getMonth() + 1)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n decrement: (prev) => {\n const start = new Date(prev[0])\n start.setDate(1)\n start.setMonth(start.getMonth() - 1)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n },\n custom: {\n label: (prev) => {\n const start = dateToIsoString(prev[0], true, false)\n .substring(0, 14)\n .split(' ')\n const end = dateToIsoString(prev[1], true, false)\n .substring(0, 14)\n .split(' ')\n\n if (start[1] === '00:00' && end[1] === '23:59') {\n start.pop()\n end.pop()\n } else {\n start[1] = `(${start[1]})`\n end[1] = `(${end[1]})`\n }\n\n return `${start.join(' ')} à ${end.join(' ')}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n return [base, base]\n },\n },\n}\n\nexport const identify = (value: Value): IntervalType => {\n const [start, end] = value\n\n if (start === null || end === null) return 'custom'\n\n if (dateCompare(start, end, 'eq', false)) {\n const [expectedStart, expectedEnd] = intervalTypes.day.initial(start)\n\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'day'\n }\n }\n\n if (start.getUTCDay() === 0) {\n const [expectedStart, expectedEnd] = intervalTypes.week.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'week'\n }\n }\n\n if (start.getDate() === 1) {\n const [expectedStart, expectedEnd] = intervalTypes.month.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'month'\n }\n }\n\n return 'custom'\n}\n\nexport const parse = (value: [string, string]): [Date | null, Date | null] =>\n value.map((v) => (v ? new Date(v) : null)) as [Date | null, Date | null]\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\ninterface RelativeContainerProps {\n invalid: boolean\n}\n\nexport const RelativeContainer = styled.div<RelativeContainerProps>`\n position: relative;\n user-select: none;\n min-width: 220px;\n\n > input,\n > label > input {\n color: transparent;\n background-color: transparent;\n width: 1px;\n height: 1px;\n position: absolute;\n left: 0;\n bottom: 0;\n border: 0;\n padding: 0;\n overflow: hidden;\n outline: none;\n box-shadow: none;\n }\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n flex: 1;\n\n :first-child {\n text-align: left;\n }\n :not(:first-child) {\n text-align: center;\n }\n\n ${({ children }) => {\n if (children) return\n return css`\n :after {\n content: '--/--/-- (--:--) à --/--/-- (--:--)';\n color: ${({ theme }) => theme.colors.darkGrey};\n }\n `\n }}\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\n\ninterface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n disabled: 1 | 0\n paddingless: 1 | 0\n borderless: 1 | 0\n}\n\nexport const Container = styled.div<ContainerProps>`\n display: flex;\n align-items: center;\n border-radius: 4px;\n white-space: nowrap;\n gap: ${({ theme }) => theme.spacings.s1};\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid, borderless }) => {\n if (borderless) return 'transparent'\n return invalid ? theme.colors.warningRed : theme.colors.lightGrey\n }};\n\n width: 100%;\n\n ${({ theme, invalid }) => {\n const [bgColor, color] = invalid\n ? [theme.getColor('warningRed', 5), theme.colors.warningRed]\n : [theme.colors.white, theme.colors.darkBlue]\n return css`\n color: ${color};\n background-color: ${bgColor};\n /** google chrome blue background */\n -webkit-box-shadow: 0 0 0px 1000px ${bgColor} inset !important;\n `\n }};\n\n ${({ theme, paddingless }) => {\n if (paddingless) return\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s1} ${theme.spacings.s2}\n ${theme.spacings.s3};\n `\n }}\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const Button = styled.button`\n display: flex;\n background-color: transparent;\n border: none;\n padding: 0;\n box-shadow: none;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\ninterface StyledLabelTextProps {\n required: 1 | 0\n}\n\nexport const LabelText = styled.label<StyledLabelTextProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React, { useEffect, useState } from 'react'\n\nimport { dateToIsoString, filterObject } from '../../../../functions/formatters'\nimport { isDateInstance } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\nimport { getMiddle } from '../../../Calendar/functions'\nimport Icon from '../../../Icon'\nimport Menu from '../../../Menu'\n\nimport { identify, intervalTypes, parse, validate } from './functions'\n\nimport { DateIntervalPickerProps, IntervalType } from './interfaces'\nimport * as S from './styles'\n\nconst Component = React.forwardRef(\n (\n props: DateIntervalPickerProps,\n ref?: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const center = props.center || { x: 50, y: 50 }\n const value = parse(props.value)\n\n const [open, setOpen] = useState<'menu' | 'calendar' | null>(null)\n const [intervalType, setIntervalType] = useState<IntervalType>(\n props.only || 'day',\n )\n\n const config = intervalTypes[intervalType]\n const { min, max } = config.getMinMax\n ? config.getMinMax(props.min, props.max)\n : props\n\n const setValue = (newValue: [Date, Date]) => {\n const parsed = newValue.map((v) =>\n dateToIsoString(v, true, true, 'us'),\n ) as [string, string]\n\n props.setValue(parsed)\n }\n\n useEffect(() => {\n if (props.min && props.max && props.min > props.max) {\n throw Error('Min prop must be less than Max')\n }\n\n if (props.only) {\n return\n }\n\n const value = parse(props.value)\n if (\n value.some((v) => !isDateInstance(v)) ||\n !validate(value, props.min, props.max)\n ) {\n return\n }\n\n const newIntervalType = identify(value)\n setIntervalType(newIntervalType)\n }, [props.value, props.min, props.max])\n\n const inputProps = filterObject<\n DateIntervalPickerProps,\n React.HtmlHTMLAttributes<HTMLInputElement>\n >(props, [\n 'label',\n 'invalid',\n 'required',\n 'disabled',\n 'width',\n 'borderless',\n 'paddingless',\n 'type',\n 'value',\n 'setValue',\n 'getLabel',\n 'max',\n 'min',\n 'only',\n 'calendar',\n ])\n\n const getArrowProps = (key: 'increment' | 'decrement') => {\n if (value.some((v) => !isDateInstance(v))) {\n return {\n disabled: true,\n }\n }\n\n const func = config[key]\n\n if (func === undefined) {\n return {\n disabled: true,\n }\n }\n const nextValue = func(value as [Date, Date])\n if (!validate(nextValue, min, max)) {\n return {\n disabled: true,\n }\n }\n return {\n onClick: () => setValue(nextValue),\n }\n }\n\n const invalid = props.invalid || !validate(value, min, max)\n\n const onClick = (() => {\n if (props.disabled || !['custom', undefined].includes(props.only)) {\n return undefined\n }\n\n const toOpen = props.only === 'custom' ? 'calendar' : 'menu'\n return () => setOpen((prev) => (prev === null ? toOpen : null))\n })()\n\n const input = <input {...inputProps} type='text' ref={ref} readOnly />\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(null))}\n invalid={invalid}\n >\n {props.label ? (\n <S.LabelText required={props.required ? 1 : 0}>\n {props.label}\n {input}\n </S.LabelText>\n ) : (\n input\n )}\n\n <S.Container\n invalid={props.invalid ? 1 : 0}\n disabled={props.disabled ? 1 : 0}\n paddingless={props.paddingless ? 1 : 0}\n borderless={props.borderless ? 1 : 0}\n >\n {(() => {\n const label = (\n <S.LabelContainer onClick={onClick}>\n {!value.some((v) => !isDateInstance(v)) &&\n config.label(value as [Date, Date])}\n </S.LabelContainer>\n )\n\n if (intervalType === 'custom') return label\n\n const incrementProps = getArrowProps('increment')\n const decrementProps = getArrowProps('decrement')\n\n return (\n <React.Fragment>\n <S.Button\n type='button'\n {...decrementProps}\n disabled={props.disabled || decrementProps.disabled}\n tabIndex={-1}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n {label}\n\n <S.Button\n type='button'\n {...incrementProps}\n disabled={props.disabled || incrementProps.disabled}\n tabIndex={-1}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n </React.Fragment>\n )\n })()}\n\n <S.Button type='button' onClick={onClick} tabIndex={-1}>\n <Icon\n type='feather'\n icon='calendar'\n color={props.invalid ? 'warningRed' : 'grey'}\n width='24px'\n />\n </S.Button>\n </S.Container>\n\n <Menu\n open={open === 'menu'}\n close={() => setOpen(null)}\n center={center}\n references={{ bottom: '35px' }}\n options={[\n {\n label: 'Hoje',\n onClick: () => setValue(intervalTypes.day.initial(props.min)),\n data: {},\n },\n {\n label: 'Semana',\n onClick: () => setValue(intervalTypes.week.initial(props.min)),\n data: {},\n },\n {\n label: 'Mês',\n onClick: () => setValue(intervalTypes.month.initial(props.min)),\n data: {},\n },\n {\n label: 'Personalizado',\n onClick: () => setOpen('calendar'),\n data: {},\n keepOpen: true,\n caret: true,\n },\n ]}\n width='165px'\n itemSpacing='s3'\n bordered\n />\n\n <Calendar\n {...(props.calendar || {})}\n center={center}\n type='interval'\n absolute\n open={open === 'calendar'}\n initialValue={value}\n onSubmit={{\n onClick: ([start, end]) => {\n if (start === null || end === null) return\n setValue([start, end])\n setOpen(null)\n },\n }}\n min={props.min}\n max={props.max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'DatePicker'\n\nconst useDefaultDateIntervalState = (min?: Date, max?: Date) => {\n const middle = getMiddle(min, max)\n\n const start = new Date(middle)\n start.setHours(0, 0, 0, 0)\n const end = new Date(middle)\n end.setHours(23, 59, 59, 999)\n\n return [start.toISOString(), end.toISOString()] as [string, string]\n}\n\nconst DatePicker = Object.assign(Component, {\n useDefaultDateIntervalState,\n})\n\nexport default DatePicker\n","import styled from 'styled-components'\n\nimport { StyledInputProps } from './interfaces'\n\nexport const Input = styled.input<StyledInputProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkBlue\n }};\n\n line-height: 17px;\n\n ::placeholder {\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkGrey\n }};\n\n line-height: 17px;\n ${({ theme }) => theme.useTypography('p')};\n opacity: 1;\n }\n\n display: block;\n box-sizing: border-box;\n flex: 1;\n min-width: ${({ minWidth }) => minWidth || '20%'};\n\n padding: calc(${({ theme }) => theme.spacings.s1} / 2) 0;\n\n box-shadow: none;\n outline: none;\n border: 1px solid transparent;\n`\n","import React from 'react'\nimport { filterObject } from '../../../../../../functions/formatters'\nimport { getMask } from '../../../../functions'\nimport { InputProps, StyledInputProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const [value, setValue] = props.value\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const onPressEnter = props.onPressEnter\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n _onKeyDown(e)\n if (e.key === 'Enter') {\n e.preventDefault()\n onPressEnter(e)\n }\n }\n\n const mask = getMask(props.mask)\n const _onChange = props.onChange || (() => {})\n const onChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.target.value = mask(e.target.value)\n _onChange(e)\n setValue(e.target.value)\n }\n\n const inputProps = filterObject<InputProps, StyledInputProps>(props, [\n 'value',\n 'onPressEnter',\n ])\n\n return (\n <S.Input\n ref={ref}\n {...inputProps}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={value}\n />\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport default Input\n","import styled, { css } from 'styled-components'\n\nimport { LabelProps } from './interfaces'\n\nexport const Label = styled.div<LabelProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React from 'react'\n\nimport { LabelProps } from './interfaces'\nimport * as S from './styles'\n\nconst Label = (props: LabelProps) => {\n return props.children ? <S.Label {...props} /> : null\n}\n\nexport default Label\n","import styled from 'styled-components'\nimport { TagProps } from './interfaces'\n\nexport const Tag = styled.div<TagProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.darkBlue};\n padding: calc(${({ theme }) => theme.spacings.s1} / 2);\n\n border-style: solid;\n border-width: 1px;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > div:last-child {\n cursor: pointer;\n }\n`\n","import React from 'react'\nimport Icon from '../../../../../Icon'\n\nimport { TagProps } from './interfaces'\nimport * as S from './styles'\n\nconst Tag = (props: TagProps) => {\n return (\n <S.Tag {...props}>\n {props.children}\n <div onClick={props.onClose}>\n <Icon\n type='feather'\n icon='x'\n width='10px'\n color={props.invalid ? 'warningRed' : undefined}\n strokeWidth='3px'\n />\n </div>\n </S.Tag>\n )\n}\n\nexport default Tag\n","import styled, { css } from 'styled-components'\nimport { LabelProps, TagContainerProps } from './interfaces'\n\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme }) => {\n return theme.colors.greyishBlue\n }};\n\n width: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n position: relative;\n display: block;\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const TagContainer = styled.div<TagContainerProps>`\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n border-radius: 4px;\n display: flex;\n flex-wrap: wrap;\n gap: calc(${({ theme }) => theme.spacings.s1} / 2);\n padding: ${({ theme }) => theme.spacings.s1};\n`\n","import React, { useState } from 'react'\nimport { strCmp } from '../../../../functions/validators'\nimport { Input, Label, Tag } from './components'\nimport { TagsProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Tags = React.forwardRef(\n (props: TagsProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, setValue } = props\n\n const [inputValue, setInputValue] =\n props.input && props.input.value\n ? props.input.value\n : useState<string>('')\n\n const validate = props.validate || (() => true)\n const onBeforeAdd = props.onBeforeAdd || ((v: string) => v)\n const validateUnique = props.unique\n ? (v: string) => (value.some((e) => strCmp(e, v)) ? '' : v)\n : (v: string) => v\n\n const add = (v: string) => {\n if (v === '') return\n\n v = validateUnique(v)\n if (v === '') return\n\n v = onBeforeAdd(v)\n if (v === '') return\n\n setValue([...value, v])\n setInputValue('')\n }\n\n const remove = (index: number) => {\n const prev = [...value]\n prev.splice(index, 1)\n setValue([...prev])\n }\n\n return (\n <S.Label disabled={props.disabled} width={props.width}>\n <Label required={props.required}>{props.label}</Label>\n\n <S.TagContainer invalid={props.invalid}>\n {value.map((v, index) => (\n <Tag\n key={index}\n onClose={() => remove(index)}\n invalid={!validate(v)}\n >\n {v}\n </Tag>\n ))}\n\n <Input\n ref={ref}\n disabled={props.disabled || props.loading}\n invalid={props.invalid}\n {...props.input}\n value={[inputValue, setInputValue]}\n onPressEnter={(e) => add((e.target as HTMLInputElement).value)}\n />\n </S.TagContainer>\n </S.Label>\n )\n },\n)\n\nTags.displayName = 'Tags'\n\nexport default Tags\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n keys,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport { DateTimeProps } from './interfaces'\nimport * as S from './styles'\n\nconst isLeapYear = (year: number): boolean => {\n if (year % 4 !== 0) return false\n else if (year % 100 !== 0) return true\n else if (year % 400 !== 0) return false\n else return true\n}\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/\\D+/g, '')\n\n // remove o primeiro digito enquanto ele for maior que 3, (nao existe dia maior que 31)\n while (v.length > 0 && parseInt(v[0]) > 3) {\n v = v.substring(1)\n }\n\n // se o primeiro digito for 3, remove o segundo digito enquanto ele for maior que 1, (nao existe dia maior que 31)\n if (v.length > 1) {\n if (v[0] === '3') {\n while (v.length > 1 && parseInt(v[1]) > 1) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n // remove o terceiro digito enquanto ele for maior que 1, (nao existe mes maior que 12)\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 1) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n // se o terceiro digito for 1, remove o quarto digito enquanto ele for maior que 2, (nao existe mes maior que 12)\n if (v.length > 3) {\n if (v[2] === '1') {\n while (v.length > 3 && parseInt(v[3]) > 2) {\n v = v.substring(0, 3) + v.substring(4)\n }\n }\n }\n\n // remove o nono digito enquanto ele for maior que 2, (nao existe hora maior que 23)\n if (v.length > 8) {\n while (v.length > 8 && parseInt(v[8]) > 2) {\n v = v.substring(0, 8) + v.substring(9)\n }\n }\n\n // se o nono digito for 2, remove o decimo digito enquanto ele for maior que 3, (nao existe hora maior que 23)\n if (v.length > 9) {\n if (v[8] === '2') {\n while (v.length > 9 && parseInt(v[9]) > 3) {\n v = v.substring(0, 9) + v.substring(10)\n }\n }\n }\n\n // remove o decimo primeiro digito enquanto ele for maior que 5, (nao existe minuto maior que 59)\n if (v.length > 10) {\n while (v.length > 10 && parseInt(v[10]) > 5) {\n v = v.substring(0, 10) + v.substring(11)\n }\n }\n\n // remove o decimo terceiro digito enquanto ele for maior que 5, (nao existe segundo maior que 59)\n if (v.length > 12) {\n while (v.length > 12 && parseInt(v[12]) > 5) {\n v = v.substring(0, 12) + v.substring(13)\n }\n }\n\n const date = [\n v.substring(0, 2),\n v.substring(2, 4),\n v.substring(4, 8),\n v.substring(8, 10),\n v.substring(10, 12),\n v.substring(12, 14),\n ]\n\n if (date[1] === '02') {\n const d = parseInt(date[0])\n\n if (date[2].length < 4 || isLeapYear(parseInt(date[2]))) {\n // se for ano nao estiver setado, ou se for bissexto, o dia maximo de fevereiro deve ser 29\n if (d > 29) {\n date[0] = '29'\n }\n } else if (d > 28) {\n // se for ano estiver setado e nao for bissexto, o dia maximo de fevereiro deve ser 28\n date[0] = '28'\n }\n } else if (['04', '06', '09', '11'].includes(date[1]) && date[0] === '31') {\n // meses com 30 dias\n date[0] = '30'\n }\n\n v = date.join('')\n\n v = v.replace(\n /^((\\d{0,2}))((\\d{0,2}))((\\d{0,4}))((\\d{0,2}))((\\d{0,2}))((\\d{0,2}))$/g,\n '$1/$3/$5 $7:$9:$11',\n )\n\n while (v.length > 0 && !v[v.length - 1].match(/^\\d$/g)) {\n v = v.substring(0, v.length - 1)\n }\n\n if (!seconds) {\n v = v.substring(0, 16)\n }\n\n return v\n}\n\nconst getValueThroughDate = (date: Date, seconds?: boolean) => {\n const newValue = dateToIsoString(date, true)\n return !seconds ? newValue.substring(0, newValue.length - 3) : newValue\n}\n\nconst steps = {\n year: {\n increment: (value: Date) => {\n value.setFullYear(value.getFullYear() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setFullYear(value.getFullYear() - 1)\n return value\n },\n },\n month: {\n increment: (value: Date) => {\n value.setMonth(value.getMonth() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMonth(value.getMonth() - 1)\n return value\n },\n },\n day: {\n increment: (value: Date) => {\n value.setDate(value.getDate() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setDate(value.getDate() - 1)\n return value\n },\n },\n hour: {\n increment: (value: Date) => {\n value.setHours(value.getHours() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setHours(value.getHours() - 1)\n return value\n },\n },\n minute: {\n increment: (value: Date) => {\n value.setMinutes(value.getMinutes() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMinutes(value.getMinutes() - 1)\n return value\n },\n },\n second: {\n increment: (value: Date) => {\n value.setSeconds(value.getSeconds() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setSeconds(value.getSeconds() - 1)\n return value\n },\n },\n}\n\nconst DateTime = React.forwardRef(\n (props: DateTimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, min, max } = props\n\n const step = steps[props.step || 'day']\n\n const setValue = props.setValue || (() => {})\n\n const [open, setOpen] = useState<boolean>(false)\n\n const _onKeyDown = props.onKeyDown || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const cur = {\n day: {\n start: 0,\n end: 2,\n value: todayDate.getDate(),\n },\n month: {\n start: 2,\n end: 4,\n value: todayDate.getMonth() + 1,\n },\n year: {\n start: 4,\n end: 8,\n value: todayDate.getFullYear(),\n },\n hours: {\n start: 8,\n end: 10,\n value: todayDate.getHours(),\n },\n minutes: {\n start: 10,\n end: 12,\n value: todayDate.getMinutes(),\n },\n seconds: {\n start: 12,\n end: 14,\n value: todayDate.getSeconds(),\n },\n }\n\n const value = target.value.replace(/\\D+/g, '')\n\n const v = keys(cur).reduce((prev, k) => {\n const { start, end, value: current } = cur[k]\n const len = end - start\n\n const tmp = value.substring(start, end)\n\n return {\n ...prev,\n [k]: tmp.length === 0 ? current : parseInt(tmp.padEnd(len, '0')),\n }\n }, {} as { [key in keyof typeof cur]: number })\n\n let date = new Date(\n `${v.year}-${v.month}-${v.day} ${v.hours}:${v.minutes}:${v.seconds}`,\n )\n\n if (event.key === 'ArrowUp') {\n date = step.increment(date)\n if (!max || date <= max) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n } else if (event.key === 'ArrowDown') {\n date = step.decrement(date)\n if (!min || date >= min) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? 'dd/mm/aaaa hh:mm:ss'\n : props.placeholder\n\n const icon: InputProps['icon'] = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n onClick: () => setOpen((prev) => !prev),\n },\n position: 'right',\n }\n : undefined\n\n const inputProps = filterObject<DateTimeProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='text'\n placeholder={placeholder}\n mask={(v) => mask(v, props.seconds)}\n onKeyDown={onKeyDown}\n icon={icon}\n ref={ref}\n />\n\n <Calendar\n time={{\n seconds: props.seconds,\n }}\n {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(getValueThroughDate(date, props.seconds))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDateTime.displayName = 'DateTime'\n\nexport default DateTime\n","import React from 'react'\n\nimport DefaultInput from './components/Input'\nimport { InputProps as DefaultInputProps } from './components/Input/interfaces'\n\nimport Checkbox from './components/Checkbox'\nimport { CheckboxProps } from './components/Checkbox/interfaces'\n\nimport Date from './components/Date'\nimport { DateProps } from './components/Date/interfaces'\n\nimport Time from './components/Time'\nimport { TimeProps } from './components/Time/interfaces'\n\nimport Select, { SelectProps } from './components/Select'\n\nimport Password from './components/Password'\nimport { PasswordProps } from './components/Password/interfaces'\n\nimport Phone from './components/Phone'\nimport { PhoneProps } from './components/Phone/interfaces'\n\nimport DatePicker from './components/DatePicker'\nimport { DatePickerProps } from './components/DatePicker/interfaces'\n\nimport { SwitchProps } from './components/Switch/interfaces'\nimport Switch from './components/Switch'\n\nimport Range from './components/Range'\nimport { RangeProps } from './components/Range/interfaces'\n\nimport { RadioButtonProps } from './components/RadioButton/interfaces'\nimport RadioButton from './components/RadioButton'\n\nimport { DateIntervalPickerProps } from './components/DateIntervalPicker/interfaces'\nimport DateIntervalPicker from './components/DateIntervalPicker'\n\nimport Tags from './components/Tags'\nimport { TagsProps } from './components/Tags/interfaces'\n\nimport DateTime from './components/DateTime'\nimport { DateTimeProps } from './components/DateTime/interfaces'\n\nexport type Props =\n | DateProps\n | TimeProps\n | CheckboxProps\n | SelectProps\n | PasswordProps\n | PhoneProps\n | DatePickerProps\n | RangeProps\n | DefaultInputProps\n | SwitchProps\n | RadioButtonProps\n | DateIntervalPickerProps\n | TagsProps\n | DateTimeProps\n\nconst Component = React.forwardRef(\n (props: Props, ref?: React.ForwardedRef<HTMLInputElement>) => {\n switch (props.type) {\n case 'date': {\n return <Date {...props} ref={ref} />\n }\n case 'time': {\n return <Time {...props} ref={ref} />\n }\n case 'checkbox': {\n return <Checkbox {...props} ref={ref} />\n }\n case 'select': {\n return <Select {...props} ref={ref} />\n }\n case 'select-multiple': {\n return <Select {...props} ref={ref} />\n }\n case 'password': {\n return <Password {...props} ref={ref} />\n }\n case 'phone': {\n return <Phone {...props} ref={ref} />\n }\n case 'datepicker': {\n return <DatePicker {...props} ref={ref} />\n }\n case 'range': {\n return <Range {...props} ref={ref} />\n }\n case 'switch': {\n return <Switch {...props} />\n }\n case 'radio': {\n return <RadioButton {...props} />\n }\n case 'date-interval-picker': {\n return <DateIntervalPicker {...props} ref={ref} />\n }\n case 'tags': {\n return <Tags {...props} ref={ref} />\n }\n case 'datetime': {\n return <DateTime {...props} ref={ref} />\n }\n default: {\n return <DefaultInput {...props} ref={ref} />\n }\n }\n },\n)\n\nComponent.displayName = 'Input'\n\nconst Input = Object.assign(Component, {\n useDefaultDateIntervalState: DateIntervalPicker.useDefaultDateIntervalState,\n getPhoneDetails: Phone.getPhoneDetails,\n})\n\nexport default Input\n","import styled from 'styled-components'\n\nimport AbsoluteContainer from '../../../../AbsoluteContainer'\n\nexport const Container = styled(AbsoluteContainer)`\n background-color: ${({ theme }) => theme.colors.white};\n\n > div {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n > div {\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `${s3} 0 ${s3} ${s3}`};\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n }\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({\n theme: {\n spacings: { s3 },\n },\n }) => s3};\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `0 ${s3} ${s3} 0`};\n > div {\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const Title = styled.div`\n ${({ theme: { useTypography } }) =>\n useTypography('p', { fontWeight: 'bold' })}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n`\n\nexport const Item = styled.div`\n padding: ${({\n theme: {\n spacings: { s1 },\n },\n }) => `${s1} ${s1} ${s1} 0`};\n display: flex;\n align-items: center;\n\n :not(:last-child) {\n border-bottom: 1px solid\n ${({ theme: { getColor } }) => getColor('greyishBlue', 25)};\n }\n\n > div:nth-child(1) {\n flex: 1;\n\n > div:nth-child(1) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n }\n > div:nth-child(2) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n }\n }\n > div:nth-child(2) {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport { strCmp } from '../../../../../functions/validators'\nimport Icon from '../../../../Icon'\nimport Input from '../../../../Input'\nimport Link from '../../../../Link'\nimport ScrollContainer from '../../../../ScrollContainer'\n\nimport { AppliedFiltersMenuProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst AppliedFiltersMenu = (props: AppliedFiltersMenuProps) => {\n const {\n open,\n close,\n appliedFilters: [appliedFilters, setAppliedFilters],\n } = props\n\n const [search, setSearch] = useState<string>('')\n const [searched, setSearched] = useState<string>('')\n\n useEffect(() => {\n setSearch('')\n setSearched('')\n }, [open])\n\n const onClear = () => {\n setAppliedFilters([])\n close()\n }\n\n const onSubmitSearch = () => {\n setSearched(search)\n }\n\n const onClearSearch = () => {\n setSearch('')\n setSearched('')\n }\n\n const onRemove = (name: string) => {\n setAppliedFilters((prev) => prev.filter((e) => e.name !== name))\n }\n\n return (\n <S.Container\n open={open}\n width='275px'\n height='261px'\n transition={{ properties: { height: {} } }}\n {...(props.containerProps || {})}\n >\n <div>\n <S.Header>\n <div>\n <S.Title>Filtros Aplicados</S.Title>\n\n <Link onClick={onClear} children='Limpar Todos' />\n </div>\n\n <Input\n type='search'\n placeholder='Pesquisar'\n setValue={setSearch}\n value={search}\n onPressEnter={onSubmitSearch}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n onClick: onSubmitSearch,\n },\n }}\n clearable={\n search !== '' && search === searched ? onClearSearch : undefined\n }\n />\n </S.Header>\n\n <ScrollContainer>\n {appliedFilters\n .filter(\n ({\n labels: {\n filter: { text: filter },\n option: { text: option },\n },\n }): boolean => {\n return (\n strCmp(filter, searched, { contain: true }) ||\n strCmp(option, searched, { contain: true })\n )\n },\n )\n .map(\n (\n {\n labels: {\n filter: { element: filter },\n option: { element: option },\n },\n name,\n },\n index,\n ) => {\n return (\n <S.Item key={index}>\n <div>\n <div>{filter}</div>\n <div>{option}</div>\n </div>\n <div>\n <Icon\n type='feather'\n icon='minus_circle'\n width='12px'\n height='12px'\n color='darkSilver'\n onClick={() => onRemove(name)}\n />\n </div>\n </S.Item>\n )\n },\n )}\n </ScrollContainer>\n </div>\n </S.Container>\n )\n}\n\nexport default AppliedFiltersMenu\n","import styled, { css } from 'styled-components'\nimport { SpacingOrZero } from '../../../interfaces'\n\nexport const Container = styled.div<{ $gap: SpacingOrZero }>`\n display: flex;\n gap: ${({ theme, $gap: gap }) => (gap === '0' ? '0' : theme.spacings[gap])};\n align-items: center;\n color: ${({ theme }) => theme.colors.darkestGrey};\n\n ${({ onClick }) => {\n if (!onClick) {\n return css`\n opacity: 0.3;\n pointer-events: none;\n `\n }\n\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React, { useState } from 'react'\nimport { filterObject } from '../../../functions/formatters'\n\nimport useOnClickOut from '../../../hooks/onClickOut'\nimport Icon from '../../Icon'\n\nimport { ButtonProps } from './interfaces'\nimport * as S from './styles'\n\nconst Button = (props: ButtonProps) => {\n const { getContent } = props\n\n const [open, setOpen] = useState<boolean>(false)\n\n const close = () => setOpen(false)\n\n const onClick = props.disabled ? undefined : () => setOpen((prev) => !prev)\n\n const buttonProps = filterObject<\n ButtonProps,\n Exclude<ButtonProps, 'getContent' | 'gap'>\n >(props, ['getContent', 'gap'])\n\n return (\n <div ref={useOnClickOut(close)}>\n <S.Container {...buttonProps} {...{ onClick }} $gap={props.gap}>\n {props.children}\n <Icon\n type='semantic'\n icon={open ? 'caret up' : 'caret down'}\n width='12px'\n />\n </S.Container>\n\n {getContent(open, close)}\n </div>\n )\n}\n\nexport default Button\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\n\nimport AppliedFiltersMenu from './components/Menu'\nimport { AppliedFiltersProps } from './interfaces'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nconst AppliedFilters = Object.assign(\n (props: AppliedFiltersProps) => {\n const { appliedFilters, containerProps } = props\n\n const buttonProps = filterObject<\n AppliedFiltersProps,\n Omit<ButtonProps, 'getContent' | 'gap'>\n >(props, ['appliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n gap='s1'\n getContent={(open, close) => (\n <AppliedFiltersMenu\n {...{ open, close, appliedFilters, containerProps }}\n />\n )}\n >\n Filtros Aplicados ({appliedFilters[0].length})\n </Button>\n )\n },\n { Menu: AppliedFiltersMenu },\n)\n\nexport default AppliedFilters\n","import styled, { css } from 'styled-components'\nimport { CardProps } from './interfaces'\nexport const Container = styled.div<CardProps>`\n width: 100%;\n background: #fff;\n border: 1px solid #d4d4d5;\n border-radius: 4px;\n border-left-width: 5px;\n padding: 14px;\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 394px;\n height: 99px;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 394px;\n height: 131px;\n `}\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 394px;\n `}\n ${(props) =>\n props.size === 'big' &&\n css`\n width: 414px;\n height: 324px;\n `}\n\n ${(props) =>\n props.borderType === 'info' &&\n css`\n border-left-color: #4d6dbe;\n `}\n ${(props) =>\n props.borderType === 'success' &&\n css`\n border-left-color: #66bb6a;\n `}\n ${(props) =>\n props.borderType === 'warning' &&\n css`\n border-left-color: #fbcb01;\n `}\n\n ${(props) =>\n props.borderType === 'danger' &&\n css`\n border-left-color: #e23851;\n `}\n ${(props) =>\n props.borderType === 'none' &&\n css`\n border: 1px solid #d4d4d5;\n `}\n`\n","import React from 'react'\nimport { CardProps } from './interfaces'\nimport * as S from './styled'\n\nconst Card = ({ children, ...rest }: CardProps) => {\n return <S.Container {...rest}>{children}</S.Container>\n}\n\nexport default Card\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: ${({\n theme: {\n spacings: { s1 },\n },\n }) => `0 0 ${s1} ${s1}`};\n\n display: flex;\n flex-direction: column;\n gap: ${({\n theme: {\n spacings: { s3 },\n },\n }) => s3};\n\n > div:nth-child(1) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n }\n`\n","import React, { useEffect, useState } from 'react'\n\nimport { isString } from '../../../../../../../functions/validators'\nimport EllipsisContainer from '../../../../../../EllipsisContainer'\n\nimport Input from '../../../../../../Input'\n\nimport { HeaderProps } from './interfaces'\nimport * as S from './styles'\n\nconst Header = (props: HeaderProps) => {\n const {\n title,\n search: [searched, _setSearched],\n allowEmptySearch,\n withSearch,\n } = props\n\n const [search, setSearch] = useState<string>('')\n\n const setSearched = allowEmptySearch\n ? _setSearched\n : (value: string) => {\n if (value === '') return\n _setSearched(value)\n }\n\n useEffect(() => {\n setSearch(searched)\n }, [searched])\n\n const onSubmit = () => {\n setSearched(search)\n }\n\n const onClear = () => {\n setSearch('')\n setSearched('')\n }\n\n return (\n <S.Container>\n <EllipsisContainer>\n {isString(title) ? title : title.element}\n </EllipsisContainer>\n\n {withSearch && (\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearch}\n value={search}\n onPressEnter={onSubmit}\n clearable={search !== '' && search === searched ? onClear : undefined}\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n onClick: onSubmit,\n },\n }}\n />\n )}\n </S.Container>\n )\n}\n\nexport default Header\n","import styled from 'styled-components'\n\nexport const EmptyMessage = styled.div`\n padding: 0 20px;\n color: ${({\n theme: {\n colors: { lightGrey },\n },\n }) => lightGrey};\n text-align: center;\n margin: auto;\n width: 100%;\n`\n","import React, { useCallback, useEffect, useState } from 'react'\n\nimport Menu from '../../../../Menu'\nimport { Option as MenuOption } from '../../../../Menu/interfaces'\nimport { isString, strCmp } from '../../../../../functions/validators'\n\nimport { Label, Option as FilterOption, OptionsReturn } from '../../interfaces'\n\nimport Header from './components/Header'\nimport { SubmenuProps } from './interfaces'\nimport * as S from './styles'\nimport { SpacingOrZero } from '../../../../../interfaces'\n\ninterface Instance {\n getOptions: (\n value: string,\n page: number | undefined,\n ) => Promise<OptionsReturn>\n open: boolean\n isDynamic: boolean\n itemSpacing: SpacingOrZero\n label: Label\n allowEmptySearch?: boolean\n}\n\nconst getInstance = (props: SubmenuProps): Instance => {\n const { item } = props\n\n if (!item) {\n return {\n open: false,\n isDynamic: false,\n itemSpacing: 's3',\n label: {\n element: '',\n text: '',\n },\n getOptions: async () => ({ options: [], lastPage: true }),\n }\n }\n\n const open = true\n const allowEmptySearch = item.allowEmptySearch\n const label = isString(item.label)\n ? {\n element: item.label,\n text: item.label,\n }\n : item.label\n\n if (Array.isArray(item.options)) {\n const intialOptions = [...item.options]\n\n const getOptions = async (value: string): Promise<OptionsReturn> => {\n const options = intialOptions.filter((option) => {\n const label = isString(option.label) ? option.label : option.label.text\n\n return strCmp(label, value, { contain: true })\n })\n\n return {\n options,\n lastPage: true,\n }\n }\n\n return {\n open,\n isDynamic: false,\n itemSpacing: item.optionSpacing || 's1',\n label,\n allowEmptySearch,\n getOptions,\n }\n }\n\n const loader = item.options\n\n const getOptions = async (\n value: string,\n page: number | undefined,\n ): Promise<OptionsReturn> => {\n const options = await loader(value, page)\n\n if (!Array.isArray(options)) return options\n\n return {\n options,\n lastPage: true,\n }\n }\n\n return {\n open,\n isDynamic: true,\n itemSpacing: item.optionSpacing || 's3',\n label,\n allowEmptySearch,\n getOptions,\n }\n}\n\nconst Submenu = (props: SubmenuProps) => {\n const { item, close, setAppliedFilters, closeParent } = props\n\n const { open, isDynamic, itemSpacing, label, allowEmptySearch, getOptions } =\n getInstance(props)\n\n const [options, setOptions] = useState<FilterOption[]>([])\n const [page, setPage] = useState<number>(1)\n const [search, _setSearch] = useState<string>('')\n const [lastPage, setLastPage] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n const [, setFirstRender] = useState<boolean>(true)\n\n const onSearch = useCallback(async () => {\n const { options: newOptions, lastPage } = await getOptions(search, page)\n\n setLastPage(lastPage)\n\n setOptions([...newOptions])\n setLoading(false)\n }, [item, search, page])\n\n const setSearch = (value: string, force = true) => {\n const changed = search !== value || page !== 1\n\n _setSearch(value)\n setPage(1)\n\n if (force && changed === false) {\n setLoading(true)\n onSearch()\n }\n }\n\n useEffect(() => {\n setOptions([])\n setSearch('', false)\n setFirstRender(true)\n }, [item])\n\n useEffect(() => {\n setFirstRender((firstRender) => {\n if (!item || (isDynamic && firstRender)) {\n setLoading(false)\n } else {\n setLoading(true)\n onSearch()\n }\n\n return false\n })\n }, [onSearch])\n\n const onClickOption = item\n ? (index: number) => {\n const option = options[index]\n\n setAppliedFilters((prev) => {\n const newState = [...prev]\n\n const index = newState.findIndex(\n (filter) => filter.name === item.name,\n )\n\n if (index !== -1) {\n if (newState[index].value === option.value) return prev\n newState[index].value = option.value\n return [...newState]\n }\n\n newState.push({\n name: item.name,\n labels: {\n filter: label,\n option: isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label,\n },\n value: option.value,\n })\n\n return newState\n })\n\n !item.keepOpen && closeParent()\n }\n : undefined\n\n const optionsParser = (option: FilterOption): MenuOption => {\n return {\n label:\n typeof option.label === 'string' ? option.label : option.label.element,\n onClick: onClickOption,\n data: {},\n }\n }\n\n const onScrollEnd = () => {\n if (lastPage) return\n setPage((prev) => prev + 1)\n }\n\n return (\n <Menu\n open={open}\n axis='x'\n options={options.map(optionsParser)}\n close={close}\n width={isDynamic ? '275px' : '160px'}\n height='261px'\n containerSpacing={{\n top: 's3',\n left: 's1',\n bottom: isDynamic ? 's3' : 's1',\n }}\n onScrollEnd={onScrollEnd}\n itemSpacing={{\n top: itemSpacing,\n left: 's1',\n bottom: itemSpacing,\n }}\n bordered={isDynamic}\n before={\n <Header\n title={label}\n search={[search, setSearch]}\n allowEmptySearch={allowEmptySearch}\n withSearch={isDynamic}\n />\n }\n loading={loading}\n emptyContent={\n isDynamic && options.length === 0 ? (\n <S.EmptyMessage>\n {(() => {\n if (search !== '') {\n return (\n <React.Fragment>\n Nenhum resultado foi encontrado\n </React.Fragment>\n )\n }\n return (\n <React.Fragment>\n Utilize a busca para pesquisar por <br />\n {label.text}\n </React.Fragment>\n )\n })()}\n </S.EmptyMessage>\n ) : undefined\n }\n transition={{\n properties: {\n width: {},\n },\n }}\n {...(props.containerProps || {})}\n />\n )\n}\n\nexport default Submenu\n","import React, { useEffect, useState } from 'react'\n\nimport Menu from '../../../../Menu'\nimport { Option } from '../../../../Menu/interfaces'\nimport Submenu from '../Submenu'\n\nimport { FiltersMenuProps } from './interfaces'\n\nconst FiltersMenu = (props: FiltersMenuProps) => {\n const { open, close } = props\n\n const [active, setActive] = useState<number>(-1)\n\n const items: Option[] = props.items.map((item): Option => {\n return {\n label: typeof item.label === 'string' ? item.label : item.label.element,\n delimiter: item.delimiter,\n keepOpen: true,\n caret: true,\n onClick: (index: number) => {\n setActive((prev) => (prev === index ? -1 : index))\n },\n data: {},\n }\n })\n\n const selected =\n active >= 0 && active < props.items.length ? props.items[active] : undefined\n\n useEffect(() => {\n if (open) return\n setActive(-1)\n }, [open])\n\n return (\n <Menu\n open={open}\n options={items}\n close={close}\n width='160px'\n maxHeight='261px'\n containerSpacing={{\n top: 's1',\n left: 's1',\n bottom: 's1',\n }}\n itemSpacing={{\n top: 's1',\n left: 's1',\n bottom: 's1',\n }}\n transition={{\n properties: {\n width: {},\n },\n }}\n {...(props.containerProps || {})}\n >\n <Submenu\n item={selected}\n close={() => setActive(-1)}\n closeParent={close}\n setAppliedFilters={props.setAppliedFilters}\n containerProps={props.subContainerProps}\n />\n </Menu>\n )\n}\n\nexport default FiltersMenu\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nimport FiltersMenu from './components/Menu'\nimport { FiltersProps } from './interfaces'\n\nconst Filters = Object.assign(\n (props: FiltersProps) => {\n const { items, setAppliedFilters, containerProps, subContainerProps } =\n props\n\n const buttonProps = filterObject<\n FiltersProps,\n Omit<ButtonProps, 'getContent' | 'gap'>\n >(props, ['items', 'setAppliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n gap='s4'\n getContent={(open, close) => (\n <FiltersMenu\n {...{\n open,\n close,\n setAppliedFilters,\n items,\n containerProps,\n subContainerProps,\n }}\n />\n )}\n >\n Filtros\n </Button>\n )\n },\n { Menu: FiltersMenu },\n)\n\nexport default Filters\n","import React from 'react'\n\nimport { BaseColProps } from '../Col/interfaces'\n\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({\n cols: {} as BaseColProps,\n})\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import styled, { css, FlattenSimpleInterpolation } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { ColorOptions, OpacitiyOptions } from '../../../../theme/interfaces'\nimport { StyledColProps } from './interfaces'\n\nconst aligns = {\n self: {\n horizontal: {\n center: 'center',\n left: 'flex-start',\n right: 'flex-end',\n },\n vertical: {\n center: 'center',\n top: 'flex-start',\n bottom: 'flex-end',\n },\n },\n content: {\n horizontal: {\n around: 'space-around',\n between: 'space-between',\n center: 'center',\n left: 'flex-start',\n right: 'flex-end',\n },\n vertical: {\n center: 'center',\n top: 'flex-start',\n bottom: 'flex-end',\n },\n },\n}\n\nexport const Col = styled.div<StyledColProps>`\n display: flex;\n flex-wrap: wrap;\n position: relative;\n\n ${({ width }) => {\n if (width === undefined) {\n return css`\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n width: 100%;\n `\n } else if (width === 'auto') {\n return css`\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n `\n }\n\n const w = (parseFloat(width) * 100) / 12\n\n return css`\n flex: 0 0 ${w}%;\n max-width: ${w}%;\n width: 100%;\n `\n }}\n\n padding: ${({ spacing }) => {\n const padding = getSpacings(spacing === undefined ? 's1' : spacing)\n return padding\n }};\n\n ${({ spacingAround }) => {\n if (spacingAround) return\n\n return css`\n :first-child {\n padding-left: 0;\n }\n :last-child {\n padding-right: 0;\n }\n `\n }}\n\n ${({ align }) => {\n if (align === undefined) return\n\n const styles: FlattenSimpleInterpolation[] = []\n\n if (align.self !== undefined) {\n if (align.self.horizontal !== undefined) {\n const v = align.self.horizontal\n const a = aligns.self.horizontal\n\n styles.push(css`\n justify-self: ${a[v]};\n `)\n }\n\n if (align.self.vertical !== undefined) {\n const v = align.self.vertical\n const a = aligns.self.vertical\n\n styles.push(css`\n align-self: ${a[v]};\n `)\n }\n }\n\n if (align.content !== undefined) {\n if (align.content.horizontal !== undefined) {\n const v = align.content.horizontal\n const a = aligns.content.horizontal\n\n styles.push(css`\n justify-content: ${a[v]};\n `)\n }\n\n if (align.content.vertical !== undefined) {\n const v = align.content.vertical\n const a = aligns.content.vertical\n\n styles.push(css`\n align-items: ${a[v]};\n `)\n }\n }\n\n if (align.text !== undefined) {\n const v = align.text\n\n styles.push(css`\n text-align: ${v};\n `)\n }\n\n return styles\n }}\n\n ${({\n bordered,\n theme: {\n colors: { lightestGrey },\n },\n }) => {\n if (!bordered) return\n\n return css`\n :not(:last-child) {\n border-right: 1px solid ${lightestGrey};\n }\n `\n }}\n\n ${({ fontColor, theme }) => {\n if (fontColor === undefined) return\n\n const c = Array.isArray(fontColor)\n ? theme.getColor(...fontColor)\n : theme.colors[fontColor]\n\n return css`\n color: ${c};\n `\n }};\n\n ${({ backgroundColor, theme }) => {\n if (backgroundColor === undefined) return\n\n const c = Array.isArray(backgroundColor)\n ? theme.getColor(...backgroundColor)\n : theme.colors[backgroundColor]\n\n return css`\n background-color: ${c};\n `\n }};\n\n ${({ hover, theme }) => {\n if (!hover) return\n\n const h: ColorOptions | [ColorOptions, OpacitiyOptions] =\n hover === true ? ['lightGrey', 50] : hover\n\n const c = Array.isArray(h) ? theme.getColor(...h) : theme.colors[h]\n\n return css`\n :hover {\n background-color: ${c};\n }\n `\n }}\n\n ${({ pointer }) => {\n if (!pointer) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport EllipsisContainer from '../../../EllipsisContainer'\n\nimport { useContext } from '../Row/context'\n\nimport { ColProps, StyledColProps } from './interfaces'\nimport * as S from './styles'\n\nconst Col = React.forwardRef<HTMLDivElement, ColProps>((props, ref) => {\n const context = useContext()\n\n const _props = { ...context.cols, ...props }\n\n const colProps = filterObject<ColProps, StyledColProps>(_props, [\n 'ellipsis',\n 'children',\n ])\n\n return (\n <S.Col ref={ref} {...colProps}>\n {_props.ellipsis ? (\n <EllipsisContainer>{_props.children}</EllipsisContainer>\n ) : (\n _props.children\n )}\n </S.Col>\n )\n})\n\nCol.displayName = 'Col'\n\nexport default Col\n","import React from 'react'\n\nimport { BaseColProps } from '../Col/interfaces'\nimport { BaseRowProps } from '../Row/interfaces'\nimport { ContextInterface } from './interfaces'\n\nconst Provider = React.createContext<ContextInterface>({\n rows: {} as BaseRowProps,\n cols: {} as BaseColProps,\n})\n\nexport const useContext = () => React.useContext(Provider)\n\nexport default Provider\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\n\nimport { StyledGridProps } from './interfaces'\n\nexport const Grid = styled.div<StyledGridProps>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n\n ${({ spacing }) => {\n if (spacing === undefined) return\n const padding = getSpacings(spacing)\n return css`\n padding: ${padding};\n `\n }}\n\n ${({\n borderless,\n theme: {\n colors: { lightestGrey },\n },\n }) => {\n if (borderless) return\n\n return css`\n border: 1px solid ${lightestGrey};\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\n\nimport Provider from './context'\nimport { GridProps, StyledGridProps } from './interfaces'\nimport * as S from './styles'\n\nconst Grid = React.forwardRef<HTMLDivElement, GridProps>((props, ref) => {\n const cols = props.cols || {}\n const rows = props.rows || {}\n\n const gridProps = filterObject<GridProps, StyledGridProps>(props, [\n 'cols',\n 'rows',\n ])\n\n return (\n <Provider.Provider value={{ rows, cols }}>\n <S.Grid ref={ref} {...gridProps} />\n </Provider.Provider>\n )\n})\n\nGrid.displayName = 'Grid'\n\nexport default Grid\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../../../functions/formatters'\nimport { ColorOptions, OpacitiyOptions } from '../../../../theme/interfaces'\nimport { HorizontalAligns, VerticalAligns } from '../../interfaces'\n\nimport { Striped, StyledRowProps } from './interfaces'\n\nconst horizontalAligns: { [key in HorizontalAligns]: string } = {\n around: 'space-around',\n between: 'space-between',\n center: 'center',\n left: 'start',\n right: 'end',\n}\n\nconst verticalAligns: { [key in VerticalAligns]: string } = {\n center: 'center',\n top: 'start',\n bottom: 'end',\n}\n\nexport const Row = styled.div<StyledRowProps>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n\n ${({ spacing }) => {\n if (spacing === undefined) return\n const padding = getSpacings(spacing)\n return css`\n padding: ${padding};\n `\n }}\n\n ${({ spacingAround }) => {\n if (spacingAround) return\n\n return css`\n :first-child {\n padding-top: 0;\n }\n :last-child {\n padding-bottom: 0;\n }\n `\n }}\n\n ${({ horizontalAlign }) => {\n if (horizontalAlign === undefined) return\n return css`\n justify-content: ${horizontalAligns[horizontalAlign]};\n `\n }}\n\n ${({ verticalAlign }) => {\n if (verticalAlign === undefined) return\n return css`\n align-items: ${verticalAligns[verticalAlign]};\n `\n }}\n\n ${({ striped, backgroundColor, theme }) => {\n if (backgroundColor !== undefined) {\n const c = Array.isArray(backgroundColor)\n ? theme.getColor(...backgroundColor)\n : theme.colors[backgroundColor]\n\n return css`\n background-color: ${c};\n `\n }\n\n if (striped === undefined) {\n return css`\n background-color: ${theme.colors.white};\n `\n }\n\n const config: Partial<Striped> =\n striped === true ? { even: ['ghostWhite', 50] } : striped\n\n const colors: { [key in keyof Striped]: string } = (\n Object.keys(config) as (keyof Striped)[]\n ).reduce(\n (prev, key) => {\n const c = config[key]\n\n if (c === undefined) return prev\n\n return {\n ...prev,\n [key]: Array.isArray(c) ? theme.getColor(...c) : theme.colors[c],\n }\n },\n {\n even: theme.colors.white,\n odd: theme.colors.white,\n },\n )\n\n return css`\n :nth-child(even) {\n background-color: ${colors.even};\n }\n :nth-child(odd) {\n background-color: ${colors.odd};\n }\n `\n }}\n\n color: ${({ fontColor, theme }) => {\n if (fontColor === undefined) return theme.getColor('black', 80)\n\n const c = Array.isArray(fontColor)\n ? theme.getColor(...fontColor)\n : theme.colors[fontColor]\n\n return c\n }};\n\n ${({\n borderless,\n theme: {\n colors: { lightestGrey },\n },\n }) => {\n if (borderless) return\n\n return css`\n border-bottom: 1px solid ${lightestGrey};\n :last-child {\n border-bottom: 1px solid transparent;\n }\n `\n }}\n\n ${({ hover, theme }) => {\n if (!hover) return\n\n const h: ColorOptions | [ColorOptions, OpacitiyOptions] =\n hover === true ? ['lightGrey', 50] : hover\n\n const c = Array.isArray(h) ? theme.getColor(...h) : theme.colors[h]\n\n return css`\n :hover {\n background-color: ${c};\n }\n `\n }}\n`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { useContext } from '../Grid/context'\n\nimport Provider from './context'\nimport { RowProps, StyledRowProps } from './interfaces'\nimport * as S from './styles'\n\nconst Row = React.forwardRef<HTMLDivElement, RowProps>((props, ref) => {\n const context = useContext()\n\n const cols = { ...context.cols, ...(props.cols || {}) }\n\n const rowProps = filterObject<RowProps, StyledRowProps>(props, ['cols'], {\n ...context.rows,\n })\n\n return (\n <Provider.Provider value={{ cols }}>\n <S.Row ref={ref} {...rowProps} />\n </Provider.Provider>\n )\n})\n\nRow.displayName = 'Row'\n\nexport default Row\n","import Col from './components/Col'\nimport GridComponent from './components/Grid'\nimport Row from './components/Row'\n\nconst Grid = Object.assign(GridComponent, {\n Row,\n Col,\n})\n\nexport default Grid\n","import { useEffect } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { PortalProps } from './interfaces'\n\nconst Portal = (props: PortalProps) => {\n const { id, opened, children } = props\n\n const portalRoot = document.createElement('div')\n\n useEffect(() => {\n if (opened) {\n portalRoot.id = id + '-root'\n\n document.body.appendChild(portalRoot)\n\n return () => {\n document.body.removeChild(portalRoot)\n }\n }\n }, [opened])\n\n return opened ? createPortal(children, portalRoot) : null\n}\n\nexport default Portal\n","export const heights = {\n small: '356.4px' as string | number,\n medium: '549px' as string | number,\n large: '600px' as string | number,\n custom: '100%' as string | number,\n default: '356.4px' as string | number,\n} as const\n\nexport const widths = {\n small: '642.5px' as string | number,\n medium: '1010px' as string | number,\n large: '1095px' as string | number,\n custom: '100%' as string | number,\n default: '642.5px' as string | number,\n} as const\n","import styled, { css } from 'styled-components'\n\nimport { StyledModalProps } from './interfaces'\nimport { heights, widths } from './contants'\n\nexport const Background = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n backdrop-filter: blur(3px);\n background-color: ${({ theme }) => theme.getColor('black', 25)};\n`\n\nexport const Content = styled.div`\n flex: 1;\n position: relative;\n`\n\nexport const Header = styled.div`\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n ${({ theme: { colors, spacings, useTypography } }) => css`\n border-bottom: 1px solid ${colors.lightestGrey};\n padding: ${spacings.s4};\n\n ${useTypography('h1')}\n `}\n`\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n ${({ theme: { spacings, colors } }) => css`\n border-top: 1px solid ${colors.lightestGrey};\n padding: ${spacings.s3};\n `}\n`\n\nexport const FooterMessage = styled.div`\n max-width: 75%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n span {\n font-size: 14px;\n color: ${({ theme }) => theme.getColor('darkBlue', 75)};\n }\n`\n\nexport const FooterButtons = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const Container = styled.div<StyledModalProps>`\n display: flex;\n flex-direction: column;\n\n ${({ theme, size, customSize, color, inverted }) => css`\n background-color: ${theme.colors.white};\n box-shadow: 0 0 21px 7px ${theme.getColor('black', 15)};\n\n width: ${size === 'custom' && customSize\n ? customSize.width || 'auto'\n : widths[size]};\n\n height: ${size === 'custom' && customSize\n ? customSize.height || 'auto'\n : heights[size]};\n\n ${Header} {\n background-color: ${inverted\n ? theme.isDarkColor(color)\n : theme.colors[color]};\n color: ${inverted ? theme.colors[color] : theme.isDarkColor(color)};\n }\n `}\n`\n","import React, { useEffect } from 'react'\n\nimport Portal from '../../addons/Portal'\nimport Button from '../Button'\nimport Loader from '../Loader'\n\nimport { ModalProps } from './interfaces'\nimport { heights } from './contants'\nimport * as S from './styles'\n\nconst Modal = (props: ModalProps) => {\n const {\n openState,\n title,\n size,\n color,\n inverted,\n children,\n content,\n footer,\n footerMessage,\n loading,\n closeOnEsc,\n closeOnClickOutside,\n customSize,\n } = props\n\n const [open, setOpen] = openState\n\n const onClickOutside = (\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (\n closeOnClickOutside &&\n (event.target as HTMLDivElement).parentElement?.id\n ) {\n setOpen(false)\n }\n }\n\n useEffect(() => {\n const onEscDown = (event: KeyboardEvent) => {\n if (closeOnEsc && event.key === 'Escape') {\n event.preventDefault()\n\n setOpen(false)\n }\n }\n\n document.addEventListener('keydown', onEscDown)\n\n return () => {\n document.removeEventListener('keydown', onEscDown)\n }\n }, [])\n\n const _size = size ? heights[size] : heights.default\n\n return (\n <Portal opened={open || false} id='modal'>\n <S.Background onClick={onClickOutside}>\n <S.Container\n size={size || 'small'}\n color={color || 'blue'}\n inverted={+(inverted || false)}\n customSize={customSize}\n >\n <S.Header>{title}</S.Header>\n\n <S.Content>\n {loading ? (\n <Loader\n color='blue'\n size={`calc(${_size} * 0.1454)`}\n borderSize='3px'\n />\n ) : (\n children || content\n )}\n </S.Content>\n\n <S.Footer>\n <S.FooterMessage>\n {footerMessage &&\n (typeof footerMessage === 'string' ? (\n <span>{footerMessage}</span>\n ) : (\n footerMessage\n ))}\n </S.FooterMessage>\n\n <S.FooterButtons>\n {footer ? (\n footer.map(({ children, ...buttonProps }, index) => (\n <Button key={index} {...buttonProps}>\n {children}\n </Button>\n ))\n ) : (\n <Button\n content='OK'\n color={color || 'blue'}\n onClick={() => setOpen(false)}\n />\n )}\n </S.FooterButtons>\n </S.Footer>\n </S.Container>\n </S.Background>\n </Portal>\n )\n}\n\nexport default Modal\n","import styled from 'styled-components'\n\nexport const Content = styled.div`\n padding: ${({ theme }) => `${theme.spacings.s5} ${theme.spacings.s4}`};\n`\n","import React from 'react'\nimport Modal from '../../component'\n\nimport { ConfirmDeleteProps } from './interfaces'\nimport * as S from './styles'\n\nconst ConfirmDelete = (props: ConfirmDeleteProps) => {\n const {\n cancelAction,\n confirmAction,\n openState,\n content,\n children,\n title,\n closeOnClickOutside,\n closeOnEsc,\n } = props\n\n return (\n <Modal\n title={'Deletar ' + title}\n closeOnClickOutside={closeOnClickOutside}\n closeOnEsc={closeOnEsc}\n openState={openState}\n size='custom'\n customSize={{ width: '500px' }}\n color='greyishBlue'\n inverted\n footer={[\n {\n appearance: 'borderless',\n content: 'Cancelar',\n onClick: cancelAction,\n },\n {\n color: 'pink',\n content: 'Deletar',\n onClick: confirmAction,\n },\n ]}\n >\n <S.Content>{children || content}</S.Content>\n </Modal>\n )\n}\n\nexport default ConfirmDelete\n","import styled from 'styled-components'\n\nexport const Content = styled.div`\n padding: ${({ theme }) => `${theme.spacings.s5} ${theme.spacings.s4}`};\n`\n","import React from 'react'\nimport Modal from '../../component'\n\nimport { ConfirmSuccessProps } from './interfaces'\nimport * as S from './styles'\n\nconst ConfirmSuccess = (props: ConfirmSuccessProps) => {\n const {\n homeAction,\n cancelAction,\n confirmAction,\n openState,\n content,\n children,\n closeOnClickOutside,\n closeOnEsc,\n } = props\n\n return (\n <Modal\n title='Confirmação!'\n closeOnClickOutside={closeOnClickOutside}\n closeOnEsc={closeOnEsc}\n openState={openState}\n size='custom'\n customSize={{ width: '630px' }}\n color='greyishBlue'\n inverted\n footer={[\n {\n appearance: 'bordered',\n content: 'Ir para Home',\n onClick: homeAction,\n },\n {\n appearance: 'bordered',\n content: 'Continuar edição',\n onClick: cancelAction,\n },\n {\n content: 'Novo Cadastro',\n onClick: confirmAction,\n },\n ]}\n >\n <S.Content>{children || content}</S.Content>\n </Modal>\n )\n}\n\nexport default ConfirmSuccess\n","import styled from 'styled-components'\n\nexport const Content = styled.div`\n padding: ${({ theme }) => `${theme.spacings.s5} ${theme.spacings.s4}`};\n`\n","import React from 'react'\nimport Modal from '../../component'\n\nimport { AuditProps } from './interfaces'\nimport * as S from './styles'\n\nconst Audit = (props: AuditProps) => {\n const {\n cancelAction,\n confirmAction,\n openState,\n content,\n children,\n closeOnClickOutside,\n closeOnEsc,\n } = props\n\n return (\n <Modal\n title='Auditoria'\n closeOnClickOutside={closeOnClickOutside}\n closeOnEsc={closeOnEsc}\n openState={openState}\n size='custom'\n customSize={{ width: '500px' }}\n color='greyishBlue'\n inverted\n footer={[\n {\n appearance: 'borderless',\n content: 'Cancelar',\n onClick: cancelAction,\n },\n {\n content: 'Enviar',\n onClick: confirmAction,\n },\n ]}\n >\n <S.Content>{children || content}</S.Content>\n </Modal>\n )\n}\n\nexport default Audit\n","import Component from './component'\nimport { ConfirmDelete, ConfirmEdit, Audit } from './templates'\n\nconst Modal = Object.assign(Component, {\n ConfirmDelete,\n ConfirmEdit,\n Audit,\n})\n\nexport default Modal\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\n\nexport const Container = styled.div`\n width: 100%;\n height: 300px;\n position: absolute;\n padding: 14px;\n`\n\nexport const Header = styled.div`\n display: flex;\n`\n\nexport const HeaderImage = styled.div`\n width: 43px;\n height: 44px;\n background-color: #ebebeb;\n`\n\nexport const HeaderContent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex: 1;\n`\n\nexport const MainContent = styled.div`\n margin-top: 8px;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const MainLine = styled(HeaderLine)<HeaderLineProps>`\n margin-bottom: 14px;\n margin-left: 0;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template1 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.HeaderImage />\n <S.HeaderContent>\n <S.HeaderLine size='medium' height='9px' color='#E6E6E6' />\n <S.HeaderLine size='small' height='9px' color='#E6E6E6' />\n </S.HeaderContent>\n </S.Header>\n <S.MainContent>\n <S.MainLine size='medium' height='9px' color='#E6E6E6' />\n <S.MainLine size='small' height='9px' color='#E6E6E6' />\n <S.MainLine size='mini' height='9px' color='#E6E6E6' />\n <S.MainLine size='medium' height='9px' color='#E6E6E6' />\n <S.MainLine size='small' height='9px' color='#E6E6E6' />\n </S.MainContent>\n </S.Container>\n )\n}\n\nexport default Template1\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from './interfaces'\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n","import styled from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nimport { HeaderLine as HeaderLineStyle } from '../../styles'\n\nexport const Container = styled.div`\n width: 100%;\n max-height: 100%;\n position: absolute;\n padding: 14px;\n`\n\nexport const Template2Container = styled(Container)`\n background: #fff;\n border: 2px solid #ebebeb;\n`\n\nexport const Header = styled.div`\n display: flex;\n`\n\nexport const HeaderImage = styled.div`\n width: 43px;\n height: 44px;\n background-color: #ebebeb;\n`\n\nexport const HeaderContent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex: 1;\n`\n\nexport const MainContent = styled.div`\n margin-top: 8px;\n`\n\nexport const MainLine = styled(HeaderLineStyle)<HeaderLineProps>`\n margin-bottom: 14px;\n margin-left: 0;\n`\n\nexport const HeaderLine = styled(HeaderLineStyle)``\n","import React from 'react'\nimport * as S from './styles'\n\nimport { PlaceholderProps } from '../../interfaces'\n\nconst Template2 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Template2Container>\n <S.Header>\n <S.HeaderImage />\n <S.HeaderContent>\n <S.HeaderLine size='mini' height='9px' color='#E6E6E6' />\n <S.HeaderLine size='mini' height='9px' color='#E6E6E6' />\n </S.HeaderContent>\n </S.Header>\n <S.MainContent>\n <S.MainLine size='mini' height='9px' color='#E6E6E6' />\n <S.MainLine size='mini' height='9px' color='#E6E6E6' />\n </S.MainContent>\n </S.Template2Container>\n )\n}\n\nexport default Template2\n","import styled from 'styled-components'\nimport { HeaderLine } from '../../styles'\n\nexport const Container = styled.div`\n width: 100%;\n max-height: 100%;\n position: absolute;\n padding: 14px;\n`\n\nexport const Template3Container = styled(Container)``\nexport const Template3Line = styled(HeaderLine)`\n background-color: #dadada;\n height: ${(props) => props.height};\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template3 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Template3Container>\n <S.Template3Line size='large' height='7px' color='#DADADA' />\n <S.Template3Line size='small' height='7px' color='#DADADA' />\n <S.Template3Line size='medium' height='7px' color='#DADADA' />\n <S.Template3Line size='small' height='7px' color='#DADADA' />\n <S.Template3Line size='mini' height='7px' color='#DADADA' />\n </S.Template3Container>\n )\n}\n\nexport default Template3\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\n\nexport const Container = styled.div`\n width: 100%;\n max-height: 100%;\n position: absolute;\n padding: 14px;\n`\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\nexport const Template4Container = styled(Container)`\n border: 1px solid #e6e6e7;\n border-radius: 4px;\n`\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\nconst Template4 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Template4Container>\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='594px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='572px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='624px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='544px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width=' 607px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='581px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='601px' />\n <S.CustomLine size='large' height='12px' color='#DDDEDF' width='251px' />\n </S.Template4Container>\n )\n}\n\nexport default Template4\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n position: absolute;\n width: 746px;\n height: 169px;\n border: 1px solid #e6e6e7;\n border-radius: 4px;\n padding: 14px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const Circle = styled.div`\n width: 141px;\n height: 141px;\n background-color: #dddedf;\n border-radius: 50%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n`\n\nexport const MainContent = styled.div`\n flex: 1;\n margin-left: 35px;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template5 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Circle />\n <S.MainContent>\n <S.CustomLine\n width='406px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n <S.CustomLine\n width='387px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n <S.CustomLine\n width='426px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n <S.CustomLine\n width='189px'\n height='16px'\n color='#DDDEDF'\n size='large'\n />\n </S.MainContent>\n </S.Container>\n )\n}\n\nexport default Template5\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: #f5f5f5;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n`\n\nexport const Footer = styled.div`\n width: 100%;\n border-top: 1px solid #b1b1b3;\n height: 50px;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template6 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine\n width='274px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n <S.CustomLine\n width='274px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n <S.CustomLine\n width='274px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n </S.Header>\n </S.Container>\n )\n}\n\nexport default Template6\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 110px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const Main = styled.div`\n margin: 10px 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-evenly;\n`\nexport const Circle = styled.div`\n width: 30px;\n height: 30px;\n background-color: #ebebeb;\n border-radius: 50%;\n margin: 0 16px;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template7 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.Circle />\n <S.Circle />\n <S.Circle />\n <S.Circle />\n <S.Circle />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template7\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 110px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 14px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const Main = styled.div`\n padding: 14px;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template8 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.CustomLine\n width='217px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n <S.CustomLine\n width='217px'\n height='10px'\n color='#EBEBEB'\n size='large'\n />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template8\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 245px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 7px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const Main = styled.div`\n padding: 14px;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nexport const Circle = styled.div`\n width: 128px;\n height: 128px;\n background-color: #ebebeb;\n border-radius: 50%;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template8 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n <S.CustomLine width='50px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.Circle />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template8\n","import styled, { css } from 'styled-components'\nimport { HeaderLineProps } from '../../interfaces'\nexport const Container = styled.div`\n width: 395px;\n height: 245px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: #f5f5f5 0% 0% no-repeat padding-box;\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 14px;\n width: 100%;\n`\n\nexport const HeaderLine = styled.div<HeaderLineProps>`\n height: ${(props) => props.height};\n background-color: #ebebeb;\n margin-left: 7px;\n\n & + div {\n margin-top: 7px;\n }\n\n ${(props) =>\n props.size === 'mini' &&\n css`\n width: 15%;\n `}\n ${(props) =>\n props.size === 'small' &&\n css`\n width: 25%;\n `}\n\n ${(props) =>\n props.size === 'medium' &&\n css`\n width: 45%;\n `}\n\n ${(props) =>\n props.size === 'large' &&\n css`\n width: 75%;\n `}\n`\n\nexport const CustomLine = styled(HeaderLine)`\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n background-color: ${(props) => props.color};\n border: 1px solid #dedede5e;\n`\n\nexport const GraphLine = styled(CustomLine)`\n margin: 0 7px;\n`\n\nexport const Main = styled.div`\n flex: 1;\n padding: 0 7px 72px 7px;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: flex-end;\n justify-content: center;\n`\n\nexport const Circle = styled.div`\n width: 128px;\n height: 128px;\n background-color: #ebebeb;\n border-radius: 50%;\n`\n","import React from 'react'\nimport { PlaceholderProps } from '../../interfaces'\nimport * as S from './styles'\n\nconst Template10 = (props: PlaceholderProps) => {\n if (!props.loading) return <React.Fragment />\n return (\n <S.Container>\n <S.Header>\n <S.CustomLine width='89px' height='10px' color='#EBEBEB' size='large' />\n <S.CustomLine width='50px' height='10px' color='#EBEBEB' size='large' />\n </S.Header>\n <S.Main>\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='73px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='61px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='73px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='61px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='27px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='90px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n <S.GraphLine width='27px' height='56px' color='#EBEBEB' size='large' />\n </S.Main>\n </S.Container>\n )\n}\n\nexport default Template10\n","import React from 'react'\n\nimport Template1 from './components/Template1'\nimport Template2 from './components/Template2'\nimport Template3 from './components/Template3'\nimport Template4 from './components/Template4'\nimport Template5 from './components/Template5'\nimport Template6 from './components/Template6'\nimport Template7 from './components/Template7'\nimport Template8 from './components/Template8'\nimport Template9 from './components/Template9'\nimport Template10 from './components/Template10'\n\nimport { PlaceholderProps } from './interfaces'\n\nconst Placeholder = (props: PlaceholderProps) => {\n switch (props.type) {\n case 'template1': {\n return <Template1 {...props} />\n }\n\n case 'template2': {\n return <Template2 {...props} />\n }\n case 'template3': {\n return <Template3 {...props} />\n }\n case 'template4': {\n return <Template4 {...props} />\n }\n\n case 'template5': {\n return <Template5 {...props} />\n }\n\n case 'template6': {\n return <Template6 {...props} />\n }\n case 'template7': {\n return <Template7 {...props} />\n }\n\n case 'template8': {\n return <Template8 {...props} />\n }\n case 'template9': {\n return <Template9 {...props} />\n }\n\n case 'template10': {\n return <Template10 {...props} />\n }\n }\n}\n\nexport default Placeholder\n","import styled, { css } from 'styled-components'\nimport { ProgressBarProps } from './interfaces'\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n span {\n display: inline-block;\n margin-left: 7px;\n color: #000000cc;\n }\n`\n\nexport const Progress = styled.div<ProgressBarProps>`\n width: 64px;\n height: 12px;\n border: 1px solid #e4e4e4;\n div {\n width: ${(props) => `${props.value}%`};\n max-width: 64px;\n height: 100%;\n ${(props) =>\n props.type === 'default' &&\n css`\n background-color: ${({ theme }) => theme.colors.warningGray};\n `}\n\n ${(props) =>\n props.type === 'info' &&\n css`\n background-color: ${({ theme }) => theme.colors.blue};\n `}\n ${(props) =>\n props.type === 'danger' &&\n css`\n background-color: ${({ theme }) => theme.colors.warningRed};\n `}\n ${(props) =>\n props.type === 'success' &&\n css`\n background-color: ${({ theme }) => theme.colors.green};\n `}\n ${(props) =>\n props.type === 'warning' &&\n css`\n background-color: ${({ theme }) => theme.colors.warningYellow};\n `}\n }\n`\n","import React from 'react'\nimport { ProgressBarProps } from './interfaces'\nimport * as S from './styles'\n\nconst ProgressBar = (props: ProgressBarProps) => {\n return (\n <S.Container>\n <S.Progress {...props}>\n <div />\n </S.Progress>\n <span> {props.value || '0'}%</span>\n </S.Container>\n )\n}\n\nexport default ProgressBar\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n position: absolute;\n top: 0;\n height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n background-color: #ecedef;\n opacity: 0.8;\n\n cursor: pointer;\n color: ${({ theme }) => theme.colors.darkBlue};\n\n transition-property: left, right;\n transition-timing-function: linear;\n transition-duration: 0.25s;\n\n z-index: 3;\n`\n","import React, { useCallback } from 'react'\nimport Icon from '../../../Icon'\nimport * as S from './styled'\n\nconst ScrollButton = (props: {\n mode: 'left' | 'right'\n visible: boolean\n scrollRef: HTMLDivElement | null\n}) => {\n const { mode, visible, scrollRef } = props\n\n const icon = `chevron_${mode}` as 'chevron_left' | 'chevron_right'\n\n const onClick = useCallback(() => {\n if (!scrollRef) return\n\n scrollRef.scrollBy({\n left:\n mode === 'left' ? -(scrollRef.scrollWidth + 1) : scrollRef.scrollWidth,\n behavior: 'smooth',\n })\n }, [scrollRef, mode])\n\n return (\n <S.Container\n className={['scroll-arrow', ...(visible ? ['visible'] : [])].join(' ')}\n onClick={onClick}\n >\n <Icon type='feather' icon={icon} width={16} height={16} color='black' />\n </S.Container>\n )\n}\n\nexport default ScrollButton\n","import styled, { css } from 'styled-components'\n\nexport const Container = styled.div<{ $internal?: boolean }>`\n overflow-x: auto;\n scrollbar-width: thin;\n scroll-behavior: smooth;\n display: flex;\n width: 100%;\n\n scrollbar-gutter: stable;\n\n -ms-overflow-style: none; /* IE / Edge antigos */\n scrollbar-width: none; /* Firefox */\n &::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n }\n\n ${({ theme, $internal: internal }) =>\n internal &&\n css`\n gap: ${theme.spacings.s6};\n `}\n`\n","import React, { useCallback, useEffect, useState } from 'react'\n\nimport ScrollButton from '../ScrollButton'\nimport * as S from './styled'\n\ntype IScrollButton = React.PropsWithChildren<{\n activeTabIndex: number\n tabsLength: number\n internal: boolean | undefined\n}>\n\nconst ScrollButtons = (props: IScrollButton) => {\n const { activeTabIndex, tabsLength } = props\n\n const [ref, setRef] = useState<HTMLDivElement | null>(null)\n\n const [showLeftArrow, setShowLeftArrow] = useState(false)\n const [showRightArrow, setShowRightArrow] = useState(false)\n\n const checkScrollPosition = useCallback(() => {\n if (!ref) return\n if (ref.scrollWidth > ref.offsetWidth) {\n const { scrollLeft, scrollWidth, clientWidth } = ref\n\n setShowLeftArrow(scrollLeft > 10)\n setShowRightArrow(scrollWidth - clientWidth - scrollLeft > 10)\n } else {\n setShowLeftArrow(false)\n setShowRightArrow(false)\n }\n }, [ref])\n\n useEffect(() => {\n checkScrollPosition()\n\n window.addEventListener('resize', checkScrollPosition)\n return () => window.removeEventListener('resize', checkScrollPosition)\n }, [checkScrollPosition, tabsLength])\n\n // Faz o scroll para o item ativo\n useEffect(() => {\n if (!ref) return\n\n if (ref.scrollWidth <= ref.offsetWidth) return\n\n const element = ref.children[activeTabIndex] as HTMLElement | undefined\n if (!element) return\n\n element.scrollIntoView({\n behavior: 'smooth',\n inline: 'nearest',\n })\n }, [activeTabIndex, ref])\n\n return (\n <React.Fragment>\n <ScrollButton scrollRef={ref} mode='left' visible={showLeftArrow} />\n\n <S.Container\n ref={setRef}\n onWheel={(e) => {\n if (!ref) return\n\n const x = (ref.offsetWidth * 100) / ref.scrollWidth\n ref.scrollLeft += x * (e.deltaY > 0 ? 1 : -1) * 2\n\n e.preventDefault()\n }}\n onScroll={checkScrollPosition}\n $internal={props.internal}\n children={props.children}\n />\n\n <ScrollButton scrollRef={ref} mode='right' visible={showRightArrow} />\n </React.Fragment>\n )\n}\n\nexport default ScrollButtons\n","import { Tab, TabComponent, TabComponents, TabProvider } from './interfaces'\n\nexport const sortTabs = (\n tabs: (Tab & { index: number })[],\n sorted: (Tab & { index: number })[] = [],\n): (Tab & { index: number })[] => {\n if (tabs.length < 1) return sorted\n\n const tab = tabs[0]\n const { group } = tab\n\n // se a aba não possui grupo, apenas adicione-a na lista e siga a iteração\n if (!group) {\n return sortTabs(\n // remove a aba da iteração\n tabs.slice(1),\n // adiciona ela à lista ordenada\n [...sorted, tab],\n )\n }\n\n // se aba possui um grupo, devemos remover as abas do mesmo grupo da lista de iteração (tabs)\n // e adiciona-las na lista de forma ordenada (sorted)\n\n const res = tabs.reduce<{\n tabs: typeof tabs\n sorted: typeof sorted\n }>(\n ({ tabs, sorted }, t) => {\n // se ela não pertence ao grupo, mantem na lista de iteração (tabs)\n if (t.group !== group) {\n return {\n tabs: [...tabs, t],\n sorted,\n }\n }\n\n // se ela pertence ao grupo ela deve ser adicionada à lista ordenada (sorted)\n // se aba for primaria adiciona no inicio, se nao, no final\n return t.primary\n ? { tabs, sorted: [t, ...sorted] }\n : { tabs, sorted: [...sorted, t] }\n },\n {\n tabs: [],\n sorted: [],\n },\n )\n\n // continua a iteração\n return sortTabs(\n // lista de iteração sem as abas do grupo recém processado\n res.tabs,\n // abas já ordenadas, mais o grupo recém processado\n [...sorted, ...res.sorted],\n )\n}\n\nexport const hasChildren = (tabs: Tab[], group: string | undefined) => {\n return group ? tabs.some((tab) => tab.group === group && !tab.primary) : false\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const mapComponents = <C extends string, T = {}>(obj: {\n [K in C]: TabComponent<T>\n}): TabComponents<T, C> => {\n return obj\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const buildComponent = <T = {}>(\n component: TabComponent<T>,\n provider?: TabProvider<T>,\n): TabComponent<T> => {\n return provider ? Object.assign(component, { provider }) : component\n}\n","import styled from 'styled-components'\nexport const Close = styled.div`\n position: relative;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n background-color: var(--bgColor);\n color: var(--color);\n padding: 4px 8px;\n\n transition: --color 0.5s, --bgColor 0.5s;\n\n svg {\n width: 14px;\n height: 14px;\n\n * {\n transition: --color 0.5s;\n stroke: var(--color);\n }\n }\n`\n","import React, { useCallback } from 'react'\n\nimport Icon from '../../../../../Icon'\nimport { TabProps, TabsProps } from '../../../../interfaces'\n\nimport * as S from './styles'\n\nconst Close = (\n props: Pick<TabsProps, 'onClose'> & {\n index: number\n active: Exclude<TabsProps['active'], number>\n options: [TabProps[], React.Dispatch<React.SetStateAction<TabProps[]>>]\n },\n) => {\n const {\n index,\n active: [active, setActive],\n options: [options, setOptions],\n } = props\n const onClose = props.onClose || (() => true)\n\n const onClickClose = useCallback(\n async (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (options.length === 1) return\n\n const newOptions = [...options]\n newOptions.splice(index, 1)\n\n if (!(await onClose(index, options[index], event))) {\n return\n }\n\n const newactive = (() => {\n if (index < active) return active - 1\n return active > 0 ? active - 1 : active\n })()\n setActive(newactive, newOptions[newactive].data)\n\n setOptions(newOptions)\n },\n [options, active, index, onClose],\n )\n\n return (\n <S.Close>\n <Icon\n type='feather'\n icon='x'\n onClick={onClickClose}\n width='14px'\n height='14px'\n strokeWidth='3px'\n />\n </S.Close>\n )\n}\n\nexport default Close\n","import styled, { css } from 'styled-components'\nimport { TabsProps } from '../../../../interfaces'\n\nexport const StyledTab = styled.div<{\n $primary?: boolean\n $hasSiblings?: boolean\n $internal?: TabsProps['internal']\n}>`\n position: relative;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n cursor: ${({ onClick }) => (onClick ? 'pointer' : 'default')};\n\n background-color: var(--bgColor);\n color: var(--color);\n\n padding: ${({ theme }) => `${theme.spacings.s1} ${theme.spacings.s3}`};\n box-shadow: ${({ $internal, theme }) =>\n $internal ? 'none' : `0px 3px 6px ${theme.getColor('black', 15)}`};\n transition: --color 0.5s, --bgColor 0.5s;\n\n border-radius: ${({ $internal }) => ($internal ? '4px 4px 0 0' : 'none')};\n\n /* Pseudo-element para o degradê */\n &.overflow::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n width: 34px;\n height: 100%;\n\n background-image: linear-gradient(\n to right,\n transparent,\n var(--bgColor) 80%\n );\n transition: --color 0.5s, --bgColor 0.5s;\n }\n\n ${({ $primary, $hasSiblings, $internal }) =>\n $primary &&\n $hasSiblings &&\n !$internal &&\n css`\n &::before {\n content: '';\n position: absolute;\n left: 4px;\n top: 4px;\n bottom: 4px;\n width: 3px;\n background-color: var(--colorBefore);\n transition: --colorBefore 0.5s;\n border-radius: 2px;\n }\n `}\n`\n","import React, { useState } from 'react'\nimport { useEllipsis } from '../../../../../EllipsisContainer/functions'\nimport { TabsProps } from '../../../../interfaces'\nimport * as S from './styled'\n\ntype LabelItemProps = React.PropsWithChildren<{\n onClick?: () => void\n /** se a aba é primária do grupo */\n primary?: boolean\n /** se a aba primária possui mais de uma aba nesse grupo */\n hasSiblings?: boolean\n internal?: TabsProps['internal']\n}>\n\nconst LabelItem = (props: LabelItemProps) => {\n const { children, onClick, primary, hasSiblings, internal } = props\n\n const [ref, setRef] = useState<HTMLDivElement | null>(null)\n\n return (\n <S.StyledTab\n ref={setRef}\n $primary={primary}\n $hasSiblings={hasSiblings}\n $internal={internal}\n onClick={onClick}\n {...useEllipsis()}\n {...(ref && ref.scrollWidth > ref.offsetWidth\n ? {\n className: 'overflow',\n }\n : {})}\n children={children}\n />\n )\n}\n\nexport default LabelItem\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n @property --bgColor {\n syntax: '<color>';\n initial-value: #ffffff;\n inherits: false;\n }\n\n @property --color {\n syntax: '<color>';\n initial-value: #000000;\n inherits: false;\n }\n\n @property --colorBefore {\n syntax: '<color>';\n initial-value: #3455ab;\n inherits: false;\n }\n\n &.active *,\n &.active ::before,\n &.active ::after {\n --bgColor: #3455ab;\n --color: #ffffff;\n --colorBefore: #ffffff;\n }\n\n display: flex;\n\n max-width: 176px;\n position: relative;\n`\n","import React from 'react'\nimport { hasChildren } from '../../functions'\nimport { Tab, TabProps, TabsProps } from '../../interfaces'\nimport * as Component from './components'\nimport * as S from './styled'\n\ntype TabItemProps = {\n active: Exclude<TabsProps['active'], number>\n tabs: [Tab[], React.Dispatch<React.SetStateAction<TabProps[]>>]\n sortedTabs: (Tab & { index: number })[]\n} & Pick<TabsProps, 'onClose' | 'alwaysOpen' | 'internal'>\n\nconst VoidClose: typeof Component.Close = () => <React.Fragment />\n\nconst TabItem = (props: TabItemProps) => {\n const {\n active: [active, setActive],\n tabs: [tabs, setTabs],\n sortedTabs,\n onClose,\n alwaysOpen,\n } = props\n\n const CloseComponent =\n alwaysOpen || tabs.length < 2 ? VoidClose : Component.Close\n\n return (\n <React.Fragment>\n {sortedTabs.map(({ index, ...tab }) => {\n const isActive = index === active\n const hasSiblings = hasChildren(tabs, tab.group)\n const canClose = !props.internal && (!tab.primary || !hasSiblings)\n\n return (\n <S.Container\n key={index}\n {...(isActive ? { className: 'active' } : {})}\n >\n <Component.LabelItem\n children={tab.label}\n primary={tab.primary}\n hasSiblings={hasSiblings}\n onClick={isActive ? undefined : () => setActive(index, tab.data)}\n internal={props.internal}\n />\n\n {canClose && (\n <CloseComponent\n index={index}\n active={[active, setActive]}\n options={[tabs, setTabs]}\n onClose={onClose as TabsProps['onClose']}\n />\n )}\n </S.Container>\n )\n })}\n </React.Fragment>\n )\n}\n\nexport default TabItem\n","import styled, { css } from 'styled-components'\nimport { getSpacings } from '../../functions/formatters'\nimport { ThemeInterface } from '../../interfaces'\nimport { TabsProps } from './interfaces'\n\ntype TabsContainerProps = {\n $internal?: TabsProps['internal']\n $delimiter?: TabsProps['delimiter']\n $spacing?: TabsProps['spacing']\n}\n\nconst delimiters: {\n [K in Exclude<TabsProps['delimiter'], undefined | 'none'>]: Parameters<\n ThemeInterface['getColor']\n >\n} = {\n blue: ['blue'],\n grey: ['warningGray'],\n}\n\nexport const ComponentContainer = styled.div``\n\nexport const Tabs = styled.div<TabsContainerProps>`\n position: relative;\n overflow: hidden;\n\n display: flex;\n width: 100%;\n white-space: nowrap;\n\n ${({ $spacing: spacing }) => {\n const [top, right, bottom, left] = getSpacings(spacing || {}, {\n top: '0',\n right: '0',\n bottom: 's4',\n left: '0',\n }).split(' ')\n return css`\n margin: ${top} 0 ${bottom} 0;\n padding: 0 ${right} 0 ${left};\n `\n }}\n\n ${({ theme, $internal: internal, $delimiter: delimiter }) => {\n const border =\n delimiter === 'none'\n ? 'none'\n : internal\n ? `1px solid ${theme.getColor(...delimiters[delimiter || 'grey'])}`\n : `2px solid ${theme.getColor(...delimiters[delimiter || 'blue'])}`\n\n return css`\n border-bottom: ${border};\n + ${ComponentContainer} {\n border: 1px solid ${theme.getColor(...delimiters.grey)};\n border-top-width: 0px;\n border-radius: 0px 0px 2px 2px;\n padding: ${theme.spacings.s3};\n }\n `\n }}\n\n\n /* exibe as setas de navegação visíveis ao passar o mouse sobre o container */\n &:hover .scroll-arrow.visible:nth-child(1) {\n left: 0;\n }\n & .scroll-arrow:nth-child(1) {\n left: -16px;\n }\n\n &:hover .scroll-arrow.visible:nth-last-child(1) {\n right: 0;\n }\n & .scroll-arrow:nth-last-child(1) {\n right: -16px;\n }\n`\n","import React, { useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport * as Components from './components'\n\nimport { buildComponent, mapComponents, sortTabs } from './functions'\nimport {\n TabComponent,\n TabComponents,\n TabProps,\n TabProvider,\n TabsComponent,\n TabsProps,\n} from './interfaces'\nimport * as S from './styled'\n\nconst VoidProvider: TabProvider = (props) => (\n <React.Fragment children={props.children} />\n)\n\nconst Component: TabsComponent = (props) => {\n const components = (props.components || {}) as TabComponents\n\n const [options, setOptions] = (typeof props.options[1] === 'function'\n ? props.options\n : useState(props.options)) as never as [\n TabProps[],\n React.Dispatch<React.SetStateAction<TabProps[]>>,\n ]\n\n const [active, setActive] = (\n Array.isArray(props.active) ? props.active : useState(props.active)\n ) as Exclude<TabsProps['active'], number>\n\n const sortedTabs = sortTabs(options.map((tab, index) => ({ ...tab, index })))\n\n const activeTabIndex = sortedTabs.findIndex((tab) => tab.index === active)\n\n const divProps = filterObject<\n typeof props,\n React.HTMLAttributes<HTMLDivElement>\n >(props, [\n 'options',\n 'active',\n 'internal',\n 'maxTabs',\n 'onMaxTabsExceeded',\n 'onClose',\n 'alwaysOpen',\n 'delimiter',\n 'spacing',\n ])\n\n return (\n <React.Fragment>\n <S.Tabs\n {...divProps}\n $internal={props.internal}\n $delimiter={props.delimiter}\n $spacing={props.spacing}\n >\n <Components.ScrollButtons\n {...{\n activeTabIndex,\n tabsLength: options.length,\n internal: props.internal,\n }}\n >\n <Components.TabItem\n active={[active, setActive]}\n tabs={[options, setOptions]}\n sortedTabs={sortedTabs}\n onClose={props.onClose as TabsProps['onClose']}\n alwaysOpen={props.alwaysOpen}\n internal={props.internal}\n />\n </Components.ScrollButtons>\n </S.Tabs>\n\n {options.map((tab, index) => {\n if (tab.component === undefined) {\n return <React.Fragment key={index} />\n }\n\n const Component = components[tab.component] as TabComponent\n const Provider = Component.provider || VoidProvider\n\n const setTab: Parameters<TabProvider>[0]['setTab'] = (s) => {\n setOptions((prev) => {\n if (prev[index] !== tab) return prev\n const newTab = typeof s === 'function' ? s(prev[index]) : s\n if (prev[index] === newTab) return prev\n const newTabs = [...prev]\n newTabs[index] = { ...prev[index], ...newTab }\n return newTabs\n })\n }\n\n const setLabel: Parameters<TabProvider>[0]['setLabel'] = (s) => {\n setTab((prev) => {\n const label = typeof s === 'function' ? s(prev.label) : s\n return s === label ? prev : { ...prev, label }\n })\n }\n\n return (\n <Provider\n key={tab.key !== undefined ? tab.key : index}\n label={tab.label}\n data={tab.data}\n setTab={setTab}\n setLabel={setLabel}\n {...(index === active\n ? {\n active: true,\n children: (\n <S.ComponentContainer>\n <Component\n data={tab.data}\n label={tab.label}\n setLabel={setLabel}\n />\n </S.ComponentContainer>\n ),\n }\n : { active: false })}\n />\n )\n })}\n </React.Fragment>\n )\n}\n\nconst Tabs = Object.assign(Component, {\n mapComponents,\n buildComponent,\n})\n\nexport default Tabs\n","import styled from 'styled-components'\nimport { MwTextAreaProps } from './interfaces'\n\nexport const Container = styled.textarea<MwTextAreaProps>`\n width: ${(props) => `${props.width}`};\n height: ${(props) => `${props.height}`};\n resize: none;\n outline: 0;\n border: 1px solid #c8c8c8;\n padding: 14px;\n border-radius: 4px;\n color: #192338;\n`\n","import React from 'react'\nimport { MwTextAreaProps } from './interfaces'\nimport * as S from './styles'\n\nconst TextArea = (props: MwTextAreaProps): JSX.Element => {\n return <S.Container {...props} />\n}\n\nexport default TextArea\n","import styled, { css } from 'styled-components'\nimport { ToasterTypes } from './interfaces'\n\nexport const Container = styled.div<ToasterTypes>`\n border-radius: 4px;\n width: ${(props) => (props.size === 'large' ? '837px' : '460px')};\n height: 88px;\n border: 1px solid transparent;\n position: relative;\n\n ${(props) =>\n props.color === 'success' &&\n css`\n background-color: #fcfff5;\n opacity: 1;\n border-color: #a8c599;\n h4 {\n color: #1e561f;\n }\n p {\n color: #1e561fcc;\n }\n `}\n\n ${(props) =>\n props.color === 'error' &&\n css`\n background-color: #fff6f6;\n opacity: 1;\n border-color: #973937;\n h4 {\n color: #973937;\n }\n p {\n color: #973937;\n }\n `}\n\n ${(props) =>\n props.color === 'warning' &&\n css`\n background-color: #fffaf3;\n opacity: 1;\n border-color: #ccbea0;\n h4 {\n color: #7a4d05;\n }\n p {\n color: #7a4d05cc;\n }\n `}\n\n svg {\n cursor: pointer;\n position: absolute;\n top: 14px;\n right: 14px;\n width: 13px;\n height: 13px;\n }\n`\n\nexport const IconContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 14px 14px 0 0;\n margin: 0;\n`\n\nexport const IconContent = styled.div`\n width: 100%;\n padding: 13px 0 21px 28px;\n display: flex;\n flex: 1;\n flex-direction: column;\n\n h4 {\n margin-bottom: 7px;\n font-size: 18p;\n }\n p {\n margin: 0;\n font-size: 14px;\n max-width: 380px;\n }\n`\n","import React from 'react'\nimport { ToasterTypes } from './interfaces'\nimport MwIcon from '../../components/Icon'\nimport * as S from './styles'\n\nconst Toast = (props: ToasterTypes) => {\n return (\n <S.Container {...props}>\n <S.IconContainer>\n <MwIcon type='feather' icon='x' onClick={() => props.handlClose()} />\n </S.IconContainer>\n <S.IconContent>\n <h4>{props.title}</h4>\n <p> {props.description}</p>\n </S.IconContent>\n </S.Container>\n )\n}\n\nexport default Toast\n","import styled from 'styled-components'\n\nimport MwButton from '../Button'\nimport { StyledZoomProps } from './interfaces'\n\nexport const Image = styled.img`\n max-width: 100%;\n max-height: 100%;\n`\n\nexport const Container = styled.div<StyledZoomProps>`\n position: relative;\n display: inline-flex;\n\n &,\n ${Image} {\n width: ${({ width }) => {\n switch (typeof width) {\n case 'string':\n return width\n case 'number':\n return `${width}px`\n default:\n return 'auto'\n }\n }};\n\n height: ${({ height }) => {\n switch (typeof height) {\n case 'string':\n return height\n case 'number':\n return `${height}px`\n default:\n return 'auto'\n }\n }};\n }\n`\n\nexport const Dimmer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${({ theme }) => theme.getColor('greyishBlue', 50)};\n opacity: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: opacity 0.5s;\n cursor: pointer;\n\n :hover {\n opacity: 1;\n }\n`\n\nexport const Button = styled(MwButton)`\n background-color: ${({ theme }) => theme.getColor('white', 50)};\n`\n\nexport const ModalContent = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n\n img {\n max-height: 100%;\n max-width: 100%;\n }\n`\n","import React, { useState } from 'react'\nimport Modal from '../Modal'\n\nimport { ZoomProps } from './interfaces'\nimport * as S from './styles'\n\nconst Zoom = (props: ZoomProps) => {\n const { src, defaultClickOptions, ...imgProps } = props\n const [modalOpened, setModalOpened] = useState<boolean>(false)\n\n return (\n <React.Fragment>\n <S.Container {...imgProps} onClick={() => setModalOpened(true)}>\n <S.Image src={src} alt='zoom' />\n\n <S.Dimmer>\n <S.Button\n content='Zoom'\n color='white'\n onClick={() => setModalOpened(true)}\n />\n </S.Dimmer>\n </S.Container>\n\n <Modal\n openState={[modalOpened, setModalOpened]}\n size='large'\n title='Zoom'\n closeOnClickOutside\n // {...defaultClickOptions}\n >\n <S.ModalContent>\n <img src={src} alt='zoom' />\n </S.ModalContent>\n </Modal>\n </React.Fragment>\n )\n}\n\nexport default Zoom\n"],"names":["colors","black","blue","bronze","brown","darkBlue","darkestBlue","darkestGreen","darkestGrey","darkGreen","darkGrey","darkSilver","floralWhite","ghostWhite","green","grey","greyishBlue","iceWhite","lightBlue","lightestGrey","lightGreen","lightGrey","milkWhite","orange","pink","purple","red","silver","snowWhite","vanilla","warningGray","warningRed","warningYellow","white","yellow","opacities","spacings","s1","s2","s3","s4","s5","s6","fonts","lato","typographies","h1","fontFamily","fontWeight","fontSize","h2","h3","h4","h5","h6","p","stripAccents","value","normalize","replace","isKeyOf","object","key","Object","prototype","hasOwnProperty","call","isObject","toString","dateToIsoString","date","time","fullYear","pattern","dateData","getDate","padStart","getMonth","getFullYear","substring","dateStr","join","tmp","timeStr","getHours","getMinutes","getSeconds","keys","notEmptyString","trim","isBoolean","isString","isDateInstance","Date","isNaN","valueOf","dateCompare","a","b","operation","h","m","s","operations","eq","getTime","gt","gte","lt","lte","setHours","methods","ms","forEach","k","method","isValidTime","format","c","sep","conditions","map","f","content","re","RegExp","match","strCmp","x","y","options","ignoreAccents","ignoreCase","contain","toUpperCase","includes","filterObject","remove","inital","r","filter","reduce","prev","isoStringToDate","split","d","t","reverse","slice","padEnd","getWeekNumber","weekSunday","setDate","getUTCDay","yearStart","UTC","getUTCFullYear","weekNumber","Math","ceil","getMonthName","months","monthName","getFirstWeek","year","today","undefined","setFullYear","week","weekYear","getLastWeek","getSpacings","defaults","top","left","bottom","right","spacing","values","getBorder","config","Transition","props","active","mountDuration","element","useState","render","setRender","useEffect","timeoutId","setTimeout","clearTimeout","useTransition","animation","enabled","css","disabled","properties","durations","functions","push","duration","function","concat","length","positions","pointerSize","pointerPositions","distance","size","Container","styled","div","theme","useTypography","getColor","bgColor","zIndex","width","height","maxWidth","maxHeight","position","references","pointer","transition","color","AbsoluteContainer","React","forwardRef","fowardedRef","open","boundRef","center","axis","ref","setRef","getPosition","useCallback","rect","getBoundingClientRect","offsetTop","offsetLeft","offsetWidth","offsetHeight","window","innerWidth","innerHeight","xDirection","yDirection","newPosition","setPosition","useImperativeHandle","htmlProps","cssKeys","propsTransition","S","children","displayName","icons","activity","activity_icon","airplay","airplay_icon","alert_circle","alert_circle_icon","alert_octagon","alert_octagon_icon","alert_triangle","alert_triangle_icon","align_center","align_center_icon","align_justify","align_justify_icon","align_left","align_left_icon","align_right","align_right_icon","anchor","anchor_icon","aperture","aperture_icon","archive","archive_icon","arrow_down","arrow_down_icon","arrow_down_circle","arrow_down_circle_icon","arrow_down_left","arrow_down_left_icon","arrow_down_right","arrow_down_right_icon","arrow_left","arrow_left_icon","arrow_left_circle","arrow_left_circle_icon","arrow_right","arrow_right_icon","arrow_right_circle","arrow_right_circle_icon","arrow_up","arrow_up_icon","arrow_up_circle","arrow_up_circle_icon","arrow_up_left","arrow_up_left_icon","arrow_up_right","arrow_up_right_icon","at_sign","at_sign_icon","award","award_icon","bar_chart","bar_chart_icon","bar_chart_2","bar_chart_2_icon","battery","battery_icon","battery_charging","battery_charging_icon","bell","bell_icon","bell_off","bell_off_icon","bluetooth","bluetooth_icon","bold","bold_icon","book","book_icon","book_open","book_open_icon","bookmark","bookmark_icon","box","box_icon","briefcase","briefcase_icon","calendar","calendar_icon","camera","camera_icon","camera_off","camera_off_icon","cast","cast_icon","check","check_icon","check_circle","check_circle_icon","check_square","check_square_icon","chevron_down","chevron_down_icon","chevron_left","chevron_left_icon","chevron_right","chevron_right_icon","chevron_up","chevron_up_icon","chevrons_down","chevrons_down_icon","chevrons_left","chevrons_left_icon","chevrons_right","chevrons_right_icon","chevrons_up","chevrons_up_icon","chrome","chrome_icon","circle","circle_icon","clipboard","clipboard_icon","clock","clock_icon","cloud","cloud_icon","cloud_drizzle","cloud_drizzle_icon","cloud_lightning","cloud_lightning_icon","cloud_off","cloud_off_icon","cloud_rain","cloud_rain_icon","cloud_snow","cloud_snow_icon","code","code_icon","codepen","codepen_icon","codesandbox","codesandbox_icon","coffee","coffee_icon","columns","columns_icon","command","command_icon","compass","compass_icon","copy","copy_icon","corner_down_left","corner_down_left_icon","corner_down_right","corner_down_right_icon","corner_left_down","corner_left_down_icon","corner_left_up","corner_left_up_icon","corner_right_down","corner_right_down_icon","corner_right_up","corner_right_up_icon","corner_up_left","corner_up_left_icon","corner_up_right","corner_up_right_icon","cpu","cpu_icon","credit_card","credit_card_icon","crop","crop_icon","crosshair","crosshair_icon","database","database_icon","delete","delete_icon","disc","disc_icon","divide","divide_icon","divide_circle","divide_circle_icon","divide_square","divide_square_icon","dollar_sign","dollar_sign_icon","download","download_icon","download_cloud","download_cloud_icon","dribbble","dribbble_icon","droplet","droplet_icon","edit","edit_icon","edit_2","edit_2_icon","edit_3","edit_3_icon","external_link","external_link_icon","eye","eye_icon","eye_off","eye_off_icon","facebook","facebook_icon","fast_forward","fast_forward_icon","feather","feather_icon","figma","figma_icon","file","file_icon","file_minus","file_minus_icon","file_plus","file_plus_icon","file_text","file_text_icon","film","film_icon","filter_icon","flag","flag_icon","folder","folder_icon","folder_minus","folder_minus_icon","folder_plus","folder_plus_icon","framer","framer_icon","frown","frown_icon","gift","gift_icon","git_branch","git_branch_icon","git_commit","git_commit_icon","git_merge","git_merge_icon","git_pull_request","git_pull_request_icon","github","github_icon","gitlab","gitlab_icon","globe","globe_icon","grid","grid_icon","hard_drive","hard_drive_icon","hash","hash_icon","headphones","headphones_icon","heart","heart_icon","help_circle","help_circle_icon","hexagon","hexagon_icon","home","home_icon","image","image_icon","inbox","inbox_icon","info","info_icon","instagram","instagram_icon","italic","italic_icon","key_icon","layers","layers_icon","layout","layout_icon","life_buoy","life_buoy_icon","link","link_icon","link_2","link_2_icon","linkedin","linkedin_icon","list","list_icon","loader","loader_icon","lock","lock_icon","log_in","log_in_icon","log_out","log_out_icon","mail","mail_icon","map_icon","map_pin","map_pin_icon","maximize","maximize_icon","maximize_2","maximize_2_icon","meh","meh_icon","menu","menu_icon","message_circle","message_circle_icon","message_square","message_square_icon","mic","mic_icon","mic_off","mic_off_icon","minimize","minimize_icon","minimize_2","minimize_2_icon","minus","minus_icon","minus_circle","minus_circle_icon","minus_square","minus_square_icon","monitor","monitor_icon","moon","moon_icon","more_horizontal","more_horizontal_icon","more_vertical","more_vertical_icon","mouse_pointer","mouse_pointer_icon","move","move_icon","music","music_icon","navigation","navigation_icon","navigation_2","navigation_2_icon","octagon","octagon_icon","package","package_icon","paperclip","paperclip_icon","pause","pause_icon","pause_circle","pause_circle_icon","pen_tool","pen_tool_icon","percent","percent_icon","phone","phone_icon","phone_call","phone_call_icon","phone_forwarded","phone_forwarded_icon","phone_incoming","phone_incoming_icon","phone_missed","phone_missed_icon","phone_off","phone_off_icon","phone_outgoing","phone_outgoing_icon","pie_chart","pie_chart_icon","play","play_icon","play_circle","play_circle_icon","plus","plus_icon","plus_circle","plus_circle_icon","plus_square","plus_square_icon","pocket","pocket_icon","power","power_icon","printer","printer_icon","radio","radio_icon","refresh_ccw","refresh_ccw_icon","refresh_cw","refresh_cw_icon","repeat","repeat_icon","rewind","rewind_icon","rotate_ccw","rotate_ccw_icon","rotate_cw","rotate_cw_icon","rss","rss_icon","save","save_icon","scissors","scissors_icon","search","search_icon","send","send_icon","server","server_icon","settings","settings_icon","share","share_icon","share_2","share_2_icon","shield","shield_icon","shield_off","shield_off_icon","shopping_bag","shopping_bag_icon","shopping_cart","shopping_cart_icon","shuffle","shuffle_icon","sidebar","sidebar_icon","skip_back","skip_back_icon","skip_forward","skip_forward_icon","slack","slack_icon","slash","slash_icon","sliders","sliders_icon","smartphone","smartphone_icon","smile","smile_icon","speaker","speaker_icon","square","square_icon","star","star_icon","stop_circle","stop_circle_icon","sun","sun_icon","sunrise","sunrise_icon","sunset","sunset_icon","table","table_icon","tablet","tablet_icon","tag","tag_icon","target","target_icon","terminal","terminal_icon","thermometer","thermometer_icon","thumbs_down","thumbs_down_icon","thumbs_up","thumbs_up_icon","toggle_left","toggle_left_icon","toggle_right","toggle_right_icon","tool","tool_icon","trash","trash_icon","trash_2","trash_2_icon","trello","trello_icon","trending_down","trending_down_icon","trending_up","trending_up_icon","triangle","triangle_icon","truck","truck_icon","tv","tv_icon","twitch","twitch_icon","twitter","twitter_icon","type","type_icon","umbrella","umbrella_icon","underline","underline_icon","unlock","unlock_icon","upload","upload_icon","upload_cloud","upload_cloud_icon","user","user_icon","user_check","user_check_icon","user_minus","user_minus_icon","user_plus","user_plus_icon","user_x","user_x_icon","users","users_icon","video","video_icon","video_off","video_off_icon","voicemail","voicemail_icon","volume","volume_icon","volume_1","volume_1_icon","volume_2","volume_2_icon","volume_x","volume_x_icon","watch","watch_icon","wifi","wifi_icon","wifi_off","wifi_off_icon","wind","wind_icon","x_icon","x_circle","x_circle_icon","x_octagon","x_octagon_icon","x_square","x_square_icon","youtube","youtube_icon","zap","zap_icon","zap_off","zap_off_icon","zoom_in","zoom_in_icon","zoom_out","zoom_out_icon","SemanticIcon","Icon","fontcolor","onClick","SVGContainer","strokeWidth","getCommonProps","commonProps","Component","icon","name","Error","keyframes","Loader","borderSize","filled","beforeColor","afterColor","fill","fillColor","isMaskFunction","isMaskReplace","Array","isArray","isMaskReplaceArray","getMask","mask","find","newValue","e","updateTitle","event","dataset","parentElement","scrollWidth","scrollHeight","title","innerText","removeAttribute","voidF","useEllipsis","onMouseOver","originalHandler","handler","EllipsisContainer","lines","IconContainer","ChildrenContainer","Input","input","invalid","$invalid","placeholder","paddingless","$paddingless","borderless","$borderless","arrows","$arrows","readOnly","InputContainer","Label","label","$width","$disabled","viewMode","$viewMode","$readOnly","loading","$loading","iconWidths","$iconWidths","$iconPosition","padding","LabelText","required","$required","ViewModeContainer","defaultValue","isRequired","isInvalid","isViewMode","isDisabled","Context","createContext","useContext","context","Provider","Form","assign","formProps","clearable","onPressEnter","masked","setValue","inputProps","onChange","selectionStart","selectionEnd","start","end","setSelectionRange","onKeyDown","_onPressEnter","preventDefault","onKeyUp","v","onKeyDownCapture","onKeyUpCapture","callback","dirty","onDirty","htmlDisabled","htmlReadOnly","inputWidth","Fragment","Checkmark","$padding","_padding","bordered","$bordered","LabelContent","Checkbox","LabelComponent","useOnClickOut","listener","contains","document","addEventListener","removeEventListener","inputTimeWidth","withSeconds","withoutSeconds","BeforeAfterContainer","fluid","$fluid","$spacing","background","$background","args","OverflowContainer","$height","$maxHeight","RelativeContainer","isAfterBefore","isValidElement","getBeforeAfter","ScrollContainer","onScrollEnd","setLastPagination","onScroll","currentTarget","nativeEvent","scrollTopMax","scrollTop","now","diff","abs","_onScroll","before","empty","after","Option","border","$border","pos","cfg","style","highlighted","$highlighted","containerSpacing","itemSpacing","Delimiter","isVisible","elem","bound","docViewTop","docViewBottom","elemTop","elemBottom","MenuComponent","close","highlight","scrollRef","setScrollRef","scrollTo","absoluteContainerProps","emptyContent","scrollSpacing","tabIndex","scrollTabIndex","option","index","delimiter","keepOpen","caret","data","closeMenu","OptionContent","rule","rules","result","_onClick","Popup","on","inverted","wide","popperModifiers","boundariesElement","trigger","labelOptions","Menu","LabelContainer","CalendarContainer","MwAbsoluteContainer","MonthContainer","MonthName","MonthBtn","NavBtn","button","MonthPicker","min","max","setYear","sizes","medium","small","mini","types","default","danger","success","warning","labelColor","Indicator","Footer","WeekContainer","Header","DayContainer","appearance","activeColor","hover","DayIndicator","attrs","getCalendar","month","days","getDay","unshift","weeks","i","getMiddle","getFullDate","hours","parsed","parseInt","isDateBetween","getTimeFromDate","timeOptions","seconds","getInitialCalendar","lineHeight","minWidth","minHeight","tiny","large","big","FontStyles","createGlobalStyle","Globals","opacity","typography","isDarkColor","ifDark","ifLight","hex","luminosity","components","ThemeProvider","Main","initialMonth","selectOpen","setSelectOpen","setLoading","onChangeMonth","_setCalendar","setCalendar","newv","isControlled","toISOString","first","last","firstDay","lastDay","changeMonth","add","setMonth","getPrev","getNext","details","day","onMouseOut","indicator","some","BasicCalendar","containerProps","Time","_onKeyDown","todayDate","curH","curM","curS","setMinutes","setSeconds","getValue","dates","n","sort","getCalendar2","calendar1","getTimeProps","Button","borderColor","defaultValues","loaderSize","SubmitButton","CalendarsContainer","initialValue","setInvalid","setTime","_setCalendar1","setCalendar1","calendar2","_setCalendar2","setCalendar2","hoverDay","setHoverDay","timeProps","c1","c2","_getDay","side","dayProps","_onMouseOver","_onMouseOut","calendarProps","timeInvalid","submitProps","onSubmit","middle","inputs","CalendarInterval","mainProps","absolute","SingleCalendar","CalendarSingle","Calendar","IntervalCalendar","JSDate","isLeapYear","picker","setOpen","curD","curY","EmptyContentContainer","HiddenInput","isAvailable","useNavigation","setHighlight","onSelectHighlight","current","onFocus","findIndex","onBlur","HeaderContainer","searchInput","setSearchInput","getOptions","onSelect","selected","isSelected","getSelected","selectedIndex","getInputContent","selectedOption","mode","useSelect","setOptions","parsedOptions","onReset","inputContent","getContext","base","onClear","checked","isDirty","marginRight","Link","colorSetting","def","normal","SelectAllContainer","setChecked","o","selectAll","isChecked","newState","parseValue","useSelectMultiple","initial","news","splice","returnData","Select","initialLoader","hook","menuProps","_loading","_setSearch","page","setPage","lastPage","setLastPage","setSearch","_onScrollEnd","optionsResult","filtered","getWithOptions","isEmpty","Password","visibility","setVisibility","visible","hidden","coordinates","ar","br","cl","es","us","mx","py","pt","uy","Flag","flags","iso","countries","ddi","validation","charLimit","getPhoneDetails","splitted","shift","country","valid","test","withDDI","inputValue","setInputValue","setCountry","Phone","iconWidth","borderwidth","DatePicker","onAdd","onSub","keepSpace","$keepSpace","Switch","labelProps","bullet","bulletSize","$bulletSize","activeBullet","$activeBullet","SelectedArea","NavBar","$position","strict","$strict","Marker","$left","firstChild","$firstChild","lastChild","$lastChild","$bullet","MinMaxLabelContainer","LabelsContainer","MarkersContainer","getMarkers","markers","step","parseFloat","getMarkerLeft","range","z","getLeftCalc","calc","getBarLeft","getIndicatorLeft","Range","minLabel","maxLabel","hideNavbar","spans","currentValue","_onChange","_event","increment","canIncrement","decrement","canDecrement","marker","_value","RadioButton","validate","intervalTypes","getMinMax","firstWeek","lastWeek","custom","pop","identify","expectedStart","expectedEnd","parse","only","intervalType","setIntervalType","newIntervalType","getArrowProps","func","nextValue","toOpen","incrementProps","decrementProps","useDefaultDateIntervalState","Tag","onClose","TagContainer","Tags","onBeforeAdd","validateUnique","unique","getValueThroughDate","steps","hour","minute","second","DateTime","cur","minutes","len","DateIntervalPicker","DefaultInput","Title","Item","AppliedFiltersMenu","appliedFilters","setAppliedFilters","searched","setSearched","onSubmitSearch","onClearSearch","onRemove","labels","text","gap","$gap","getContent","buttonProps","AppliedFilters","borderType","Card","rest","_setSearched","allowEmptySearch","withSearch","EmptyMessage","getInstance","item","isDynamic","intialOptions","optionSpacing","Submenu","closeParent","setFirstRender","onSearch","newOptions","force","changed","firstRender","onClickOption","optionsParser","FiltersMenu","setActive","items","subContainerProps","Filters","cols","aligns","self","horizontal","vertical","around","between","Col","w","spacingAround","align","styles","fontColor","backgroundColor","_props","colProps","ellipsis","rows","Grid","gridProps","horizontalAligns","verticalAligns","Row","horizontalAlign","verticalAlign","striped","even","odd","rowProps","GridComponent","Portal","id","opened","portalRoot","createElement","body","appendChild","removeChild","createPortal","heights","widths","Background","Content","FooterMessage","FooterButtons","customSize","Modal","openState","footer","footerMessage","closeOnEsc","closeOnClickOutside","onClickOutside","onEscDown","_size","ConfirmDelete","cancelAction","confirmAction","ConfirmSuccess","homeAction","Audit","ConfirmEdit","HeaderImage","HeaderContent","MainContent","HeaderLine","MainLine","Template1","Template2Container","HeaderLineStyle","Template2","Template3Container","Template3Line","Template3","Template4Container","CustomLine","Template4","Circle","Template5","Template6","Template7","Template8","GraphLine","Template10","Placeholder","Template9","Progress","ProgressBar","ScrollButton","scrollBy","behavior","className","internal","$internal","ScrollButtons","activeTabIndex","tabsLength","showLeftArrow","setShowLeftArrow","showRightArrow","setShowRightArrow","checkScrollPosition","scrollLeft","clientWidth","scrollIntoView","inline","onWheel","deltaY","sortTabs","tabs","sorted","tab","group","res","primary","hasChildren","mapComponents","obj","buildComponent","component","provider","Close","onClickClose","newactive","StyledTab","$primary","$hasSiblings","LabelItem","hasSiblings","VoidClose","TabItem","setTabs","sortedTabs","alwaysOpen","CloseComponent","isActive","canClose","delimiters","ComponentContainer","Tabs","$delimiter","VoidProvider","divProps","Components","setTab","newTab","newTabs","setLabel","textarea","TextArea","IconContent","Toast","MwIcon","handlClose","description","Image","img","Dimmer","MwButton","ModalContent","Zoom","src","defaultClickOptions","imgProps","modalOpened","setModalOpened","alt"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|