@mw-kit/mw-ui 1.6.12 → 1.6.13
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 +17 -16
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +17 -16
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/theme/constants.ts","../src/functions/common.ts","../src/functions/validators.ts","../src/functions/formatters.ts","../src/components/Loader/index.ts","../src/components/Button/constants.ts","../src/components/Button/styles.ts","../src/components/Button/index.tsx","../src/assets/icons/feather/index.ts","../src/components/Icon/styled.ts","../src/components/Icon/index.tsx","../src/components/TextArea/styles.ts","../src/components/TextArea/index.tsx","../src/components/EllipsisContainer/styled.tsx","../src/components/EllipsisContainer/index.tsx","../src/components/ScrollContainer/index.tsx","../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/components/Menu/styles.ts","../src/components/Menu/index.tsx","../src/components/Indicator/styles.ts","../src/components/Indicator/index.tsx","../src/components/ProgressBar/styles.ts","../src/components/ProgressBar/index.tsx","../src/components/Tabs/styles.ts","../src/components/Tabs/index.tsx","../src/components/Input/components/Input/functions.ts","../src/components/Input/components/Input/styles.ts","../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/Input/components/Time/index.tsx","../src/components/Calendar/styles.ts","../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/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/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/index.tsx","../src/components/Input/components/Select/styles.ts","../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.ts","../src/components/Input/components/Range/index.tsx","../src/components/Input/components/RadioButton/styles.ts","../src/components/Input/components/RadioButton/index.tsx","../src/components/CalendarInterval/styles.ts","../src/components/CalendarInterval/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/index.tsx","../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/Card/styled.ts","../src/components/Card/index.tsx","../src/components/Toast/styles.ts","../src/components/Toast/index.tsx","../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/Zoom/styles.ts","../src/components/Zoom/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/index.tsx","../src/components/Filters/AppliedFilters/styles.ts","../src/components/Filters/AppliedFilters/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/components/Button/theme.ts","../src/components/theme.ts","../src/theme/globals.tsx","../src/theme/index.tsx"],"sourcesContent":["import { Typographies } from './interfaces'\r\n\r\nexport const colors = {\r\n white: '#FFFFFF',\r\n iceWhite: '#F9F8F8',\r\n black: '#000000',\r\n blue: '#3455AB',\r\n lightBlue: '#2D9AFF',\r\n darkestBlue: '#121B2E',\r\n darkBlue: '#192338',\r\n greyishBlue: '#263046',\r\n darkSilver: '#525A6A',\r\n silver: '#B2B2B2',\r\n darkestGrey: '#989898',\r\n darkGrey: '#949494',\r\n grey: '#ADADAD',\r\n lightGrey: '#C8C8C8',\r\n lightestGrey: '#E2E2E3',\r\n purple: '#8E66BB',\r\n orange: '#FB8702',\r\n yellow: '#FBCB01',\r\n red: '#C31717',\r\n darkestGreen: '#1E561F',\r\n darkGreen: '#129105',\r\n green: '#76B100',\r\n lightGreen: '#66BB6A',\r\n pink: '#E23851',\r\n brown: '#9F3A38',\r\n vanilla: '#CCBEA0',\r\n bronze: '#7A4D05',\r\n warningGray: '#E6E6E6',\r\n warningYellow: '#FBCF30',\r\n warningRed: '#EF5350',\r\n floralWhite: '#FFFAF3',\r\n snowWhite: '#FFF6F6',\r\n milkWhite: '#FCFFF5',\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","export 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","import { dateToIsoString, stripAccents } 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\nexport const isDateEquals = (x: Date, y: Date, time = true): boolean => {\n const xStr = dateToIsoString(x, time, true, 'us')\n const yStr = dateToIsoString(y, time, true, 'us')\n return xStr === yStr\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 { SpacingOrZero, Spacings } from '../interfaces'\nimport { spacings } from '../theme/constants'\nimport {\n isBoolean,\n isNumber,\n isNumericString,\n notEmptyString,\n} from './validators'\nimport { isKeyOf, isObject } from './common'\n\nexport const filterObject = <T = unknown, R = unknown>(\n object: T,\n keys: (keyof T)[],\n inital = {} as Partial<R>,\n): R => {\n const r = (Object.keys(object) as (keyof T)[])\n .filter((key) => !keys.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 keys = Object.keys(labels) as (keyof typeof labels)[]\n keys.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 date = new Date(value.split('/').reverse().join('-') + ' 00:00:00')\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 } 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 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(value)) {\n const r = (Object.keys(value) as (keyof T)[]).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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype EmptyObject = Record<string | number | symbol, any>\n\nexport const keys = <T extends EmptyObject>(value: T): (keyof T)[] => {\n return Object.keys(value) as (keyof T)[]\n}\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 size = size || theme.spacings.s4\n borderSize = borderSize || `calc(${size} * 0.0757)`\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","export const sizes = {\r\n tiny: '21px' as string | number,\r\n mini: '31px' as string | number,\r\n small: '33px' as string | number,\r\n large: '41px' as string | number,\r\n big: '46px' as string | number,\r\n default: '33px' as string | number,\r\n} as const\r\n\r\nexport const fontSizes: typeof sizes = {\r\n tiny: '10px',\r\n mini: '12px',\r\n small: '14px',\r\n large: '16px',\r\n big: '18px',\r\n default: '14px',\r\n} as const\r\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 font-size: ${({ size, theme }) => {\r\n const { fontSizes } = theme.components.button\r\n\r\n return size ? fontSizes[size] : fontSizes.default\r\n }};\r\n\r\n height: ${({ size, theme, appearance }) => {\r\n if (appearance === 'link') return 'auto'\r\n\r\n const { sizes } = theme.components.button\r\n\r\n return size ? sizes[size] : sizes.default\r\n }};\r\n\r\n background-color: ${({ appearance, color, theme }) => {\r\n if (['bordered', 'link', 'bordeless'].includes(appearance)) {\r\n return 'transparent'\r\n }\r\n\r\n return theme.getColor(color || 'blue')\r\n }};\r\n\r\n border: ${({ appearance, color, theme }) => {\r\n if (appearance !== 'bordered') {\r\n return 'none'\r\n }\r\n\r\n return `1px solid ${theme.getColor(color || 'blue')}`\r\n }};\r\n\r\n color: ${({ appearance, color, loading, theme }) => {\r\n if (loading) return 'transparent'\r\n\r\n if (['link', 'bordeless'].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 ${({ appearance, loading, theme }) => {\r\n if (['bordered', 'link', 'bordeless'].includes(appearance)) {\r\n return css`\r\n opacity: 0.3;\r\n pointer-events: none;\r\n `\r\n }\r\n\r\n return css`\r\n background-color: ${theme.getColor('greyishBlue', 10)};\r\n color: ${loading ? 'transparent' : theme.getColor('greyishBlue', 30)};\r\n pointer-events: none;\r\n `\r\n }}\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', 'bordeless'].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 `\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', 'bordeless'].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 _size = defaultValues.size ? sizes[defaultValues.size] : sizes.default\r\n\r\n return (\r\n <S.Button {...defaultValues} {...htmlProps}>\r\n <span>{children || content}</span>\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={`calc(${_size} * 0.5454)`}\r\n borderSize={`calc(${_size} * 0.0757)`}\r\n />\r\n )}\r\n </S.Button>\r\n )\r\n}\r\n\r\nexport default Button\r\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\ninterface SVGContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n color: string\n strokeWidth?: string\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","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 color={color} strokeWidth={props.strokeWidth}>\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 color={color} strokeWidth={props.strokeWidth}>\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 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 from 'styled-components'\n\nexport const EllipsisContainer = styled.div`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`\n","import React from 'react'\n\nimport * as S from './styled'\n\nconst EllipsisContainer = (props: React.HTMLAttributes<HTMLDivElement>) => {\n const myProps: React.HTMLAttributes<HTMLDivElement> = { ...props }\n\n const _onMouseOver = myProps.onMouseOver || (() => {})\n\n myProps.onMouseOver = (event) => {\n _onMouseOver(event)\n\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 (target.scrollWidth > target.offsetWidth) {\n target.title = target.innerText\n } else target.removeAttribute('title')\n }\n\n return <S.EllipsisContainer {...myProps} data-ellipsis='' />\n}\n\nexport default EllipsisContainer\n","import React, { useState } from 'react'\nimport styled, { css } from 'styled-components'\nimport { filterObject, getSpacings } from '../../functions/formatters'\nimport Loader from '../Loader'\n\nimport { OverflowContainerProps, ScrollContainerProps } from './interfaces'\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\nconst OverflowContainer = styled.div<OverflowContainerProps>`\n overflow-y: scroll;\n overflow-y: overlay;\n width: 100%;\n\n max-height: ${({ height }) => height || '100%'};\n\n scrollbar-color: ${({ theme }) =>\n `${theme.colors.grey} ${theme.colors.white}`};\n scrollbar-width: auto;\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, 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\nconst RelativeContainer = styled.div`\n position: relative;\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n`\n\nconst ScrollContainer = (props: ScrollContainerProps) => {\n const { before, after, loading, inner } = 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 = target.scrollHeight - target.clientHeight\n const scrollTop = target.scrollTop\n\n if (scrollTopMax !== 0 && scrollTopMax === scrollTop) {\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 React.HTMLAttributes<HTMLDivElement>\n >(props, ['onScrollEnd', 'before', 'after', 'loading'])\n\n return (\n <Container>\n {before}\n <RelativeContainer>\n {inner || (\n <OverflowContainer\n {...htmlProps}\n onScroll={(event: React.UIEvent<HTMLDivElement, UIEvent>) => {\n _onScroll(event)\n onScroll(event)\n }}\n />\n )}\n\n {loading && <Loader filled size='43px' borderSize='2px' />}\n </RelativeContainer>\n {after}\n </Container>\n )\n}\n\nexport default ScrollContainer\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 { useTransition } from '../Transition'\n\nimport { ContainerProps, Position, References } from './interfaces'\n\nconst positions: {\n [key in Position]: (reference: References) => FlattenSimpleInterpolation\n} = {\n 'top right': ({ bottom, left }) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n left: ${left || '100%'};\n `,\n 'top left': ({ bottom, right }) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n right: ${right || '100%'};\n `,\n 'bottom right': ({ top, left }) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n left: ${left || '100%'};\n `,\n 'bottom left': ({ top, right }) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n right: ${right || '100%'};\n `,\n 'right top': ({ bottom }) => css`\n bottom: ${bottom || '100%'};\n right: 0;\n `,\n 'right bottom': ({ top }) => css`\n top: ${top || '100%'};\n right: 0;\n `,\n 'left top': ({ bottom }) => css`\n bottom: ${bottom || '100%'};\n left: 0;\n `,\n 'left bottom': ({ top }) => css`\n top: ${top || '100%'};\n left: 0;\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 }\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 ${({ position, references }) => {\n if (!position) {\n return css`\n visibility: collapse;\n `\n }\n return positions[position](references || {})\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","import React, { useEffect, useImperativeHandle, useState } 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 } = 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 = (): Position | null => {\n if (!ref) return null\n\n const width = window.innerWidth\n const height = window.innerHeight\n const { top, left } = ref.getBoundingClientRect()\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 }\n\n const [position, setPosition] = useState<Position | null>(\n props.position || getPosition,\n )\n\n useImperativeHandle(fowardedRef, () => ref as HTMLDivElement)\n\n useEffect(() => {\n if (props.position) return\n setPosition(getPosition)\n }, [ref])\n\n const htmlProps = filterObject<\n AbsoluteContainerProps,\n React.HTMLAttributes<HTMLDivElement>\n >(props, ['center', 'position', 'children'])\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>{props.children}</div>\n </S.Container>\n )}\n />\n )\n },\n)\n\nAbsoluteContainer.displayName = 'AbsoluteContainer'\n\nexport default AbsoluteContainer\n","import styled, { css } from 'styled-components'\nimport { getSpacings } 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 display: flex;\n\n > :nth-child(1) {\n flex: 1;\n }\n\n ${({ 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 :hover {\n background-color: ${({ theme }) => theme.colors.iceWhite};\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 from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport { isString } from '../../functions/validators'\nimport EllipsisContainer from '../EllipsisContainer'\nimport Icon from '../Icon'\nimport ScrollContainer from '../ScrollContainer'\n\nimport { ContainerProps, MenuInterface } from './interfaces'\nimport * as S from './styles'\n\nconst MenuComponent: MenuInterface = (props, ref) => {\n const {\n close,\n options,\n onScrollEnd,\n before,\n after,\n scrollSpacing,\n children,\n loading,\n innerContent,\n } = { ...props }\n\n const absoluteContainerProps = filterObject<\n typeof props,\n Omit<ContainerProps, 'transition'>\n >(\n props,\n [\n 'scrollSpacing',\n 'onScrollEnd',\n 'before',\n 'after',\n 'close',\n 'options',\n 'loading',\n 'children',\n ],\n {\n itemSpacing: 's1',\n },\n )\n\n return (\n <S.Container {...absoluteContainerProps} ref={ref}>\n <React.Fragment>\n <ScrollContainer\n onScrollEnd={onScrollEnd}\n before={before}\n after={after}\n inner={innerContent}\n spacing={scrollSpacing}\n loading={loading}\n >\n {options.map((option, index) => {\n const { delimiter, keepOpen, caret } = { ...option }\n\n const label = isString(option.label)\n ? { text: option.label, element: option.label }\n : option.label\n\n const closeMenu = keepOpen ? () => {} : close\n\n let onClick: React.MouseEventHandler<HTMLDivElement> | undefined\n let disabled: boolean | undefined\n\n const rules = option.rules || []\n const rule = rules.find((rule) => {\n return !rule.rule(index)\n })\n\n if (rule === undefined) {\n const _onClick = option.onClick || (() => {})\n\n onClick = () => {\n _onClick(index)\n closeMenu()\n }\n } else {\n // TODO: exibir popup com a mensagem da regra\n disabled = true\n }\n\n return (\n <React.Fragment key={index}>\n <S.Option onClick={onClick} disabled={disabled}>\n {isString(label.element) ? (\n <EllipsisContainer>{label.element}</EllipsisContainer>\n ) : (\n label.element\n )}\n\n {caret ? (\n <Icon type='semantic' icon='caret right' width='14px' />\n ) : null}\n </S.Option>\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'\nimport { IndicatorProps } from './interfaces'\n\ninterface ContainerProps {\n props: IndicatorProps\n}\n\nexport const Container = styled.div<ContainerProps>`\n display: flex;\n align-items: center;\n div {\n border-radius: 50%;\n width: ${({ props }) => (props.size === 'medium' ? '15px' : '6px')};\n height: ${({ props }) => (props.size === 'medium' ? '15px' : '6px')};\n\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 span {\n display: inline-block;\n margin-left: 8px;\n color: ${(props) => props.props.labelColor};\n }\n`\n","import React from 'react'\nimport { IndicatorProps } from './interfaces'\nimport * as S from './styles'\n\nconst Indicator = (props: IndicatorProps) => {\n return (\n <S.Container props={props}>\n <div></div>\n <span> {props.description} </span>\n </S.Container>\n )\n}\n\nexport default Indicator\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, { css } from 'styled-components'\n\nimport { StyledTabsProps } from './interfaces'\n\nexport const Container = styled.div<StyledTabsProps>`\n display: block;\n border-bottom-style: solid;\n\n ${({ theme, internal }) => css`\n margin-bottom: ${theme.spacings.s2};\n border-bottom-width: ${internal ? '1px' : '2px'};\n border-bottom-color: ${internal\n ? theme.getColor('lightestGrey', 50)\n : theme.colors.blue};\n `}\n`\n\nexport const Tabs = styled.ul<StyledTabsProps>`\n user-select: none;\n list-style: none;\n display: inline-flex;\n gap: 1px;\n padding: 0;\n margin: 0;\n\n ${({ theme, internal }) => css`\n height: ${internal ? '41px' : '49px'};\n box-shadow: 0 0 10px 0 ${theme.getColor('black', 10)};\n `}\n`\n\nexport const Tab = styled.li<StyledTabsProps>`\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px 4px 0 0;\n\n svg {\n transform: scale(calc(18 / 24));\n stroke-width: 2px;\n }\n\n ${({ theme, active }) => css`\n background-color: ${theme.colors[active ? 'blue' : 'white']};\n padding: 0 ${theme.spacings.s2};\n gap: ${theme.spacings.s2};\n\n span {\n font-family: ${theme.typographies.h2.fontFamily};\n font-size: ${theme.typographies.h2.fontSize};\n font-weight: ${theme.typographies.h2.fontWeight};\n\n color: ${theme.colors[active ? 'white' : 'darkBlue']};\n }\n\n svg {\n stroke: ${theme.colors[active ? 'white' : 'darkBlue']};\n\n &:hover {\n stroke: ${theme.colors.red};\n }\n }\n `}\n`\n","import React, { useState } from 'react'\n\nimport { ReactComponent as CloseIcon } from '../../assets/icons/close.svg'\nimport { TabProps, TabsProps } from './interfaces'\nimport * as S from './styles'\n\nconst Tabs = (props: TabsProps) => {\n const { options, activeState, internal } = props\n\n const [tabs, setTabs] = useState<TabProps[]>(options)\n const [active, setActive] = activeState\n\n const updateActiveTab = (\n index: number,\n event: React.MouseEvent<HTMLLIElement, MouseEvent>,\n ) => {\n const element = event.target as HTMLElement\n if (element.tagName === 'svg') return\n\n setActive(index)\n }\n\n const removeTab = (index: number) => {\n setTabs((prevState) => {\n const aux = [...prevState]\n\n if (index === active) {\n setActive(index > 0 ? index - 1 : 1)\n }\n\n aux.splice(index, 1)\n\n return aux\n })\n }\n\n return (\n <S.Container>\n <S.Tabs internal={+(internal || false)}>\n {tabs.map((tab, index) => (\n <S.Tab\n key={index}\n active={+(active === index)}\n onClick={(event) => updateActiveTab(index, event)}\n >\n <span>{tab.label}</span>\n <CloseIcon onClick={() => removeTab(index)} />\n </S.Tab>\n ))}\n </S.Tabs>\n </S.Container>\n )\n}\n\nexport default Tabs\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","import styled, { css } from 'styled-components'\nimport {\n StyledInputProps,\n StyledLabelProps,\n StyledLabelTextProps,\n} from './interfaces'\n\nexport const IconContainer = styled.button`\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 17px;\n\n background-color: transparent;\n border: none;\n box-shadow: none;\n padding: 0;\n\n ${({ onClick, disabled }) => {\n if (!onClick || disabled) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\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\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: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n\n ${({ theme, paddingless }) => {\n if (paddingless) return\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n `\n }};\n\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 border-radius: 4px;\n\n background-color: ${({ theme, invalid }) =>\n invalid ? theme.getColor('warningRed', 5) : theme.colors.white};\n\n box-shadow: none;\n outline: none;\n\n ${({ 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) return\n\n return css`\n cursor: ${!onClick || disabled ? 'unset' : 'pointer'};\n `\n }}\n`\n\nexport const Label = styled.label<StyledLabelProps>`\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 > ${IconContainer} {\n bottom: ${({ theme, paddingless }) => {\n return paddingless ? '2px' : `calc(${theme.spacings.s2} + 1px)`\n }};\n }\n\n ${({ theme, icon, paddingless }) => {\n if (!icon) return\n\n const { width, position } = icon\n\n const padding = paddingless ? '0px' : theme.spacings.s3\n\n if (position === 'right') {\n return css`\n > ${IconContainer} {\n width: ${width};\n right: calc(${padding} / 2);\n }\n\n > ${Input} {\n padding-right: calc(${padding} + ${width});\n }\n `\n }\n\n return css`\n > ${IconContainer} {\n width: ${width};\n left: calc(${padding} / 2);\n }\n\n > ${Input} {\n padding-left: calc(${padding} + ${width});\n }\n `\n }}\n`\nexport const LabelText = styled.div<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 from 'react'\n\nimport MwIcon from '../../../Icon'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport { IconProps } from '../../../Icon/interfaces'\nimport Loader from '../../../Loader'\nimport { getMask } from './functions'\n\nimport { InputProps, StyledInputProps } from './interfaces'\nimport * as S from './styles'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref: React.ForwardedRef<HTMLInputElement>) => {\n const {\n label,\n required,\n invalid,\n disabled,\n loading,\n clearable,\n onPressEnter,\n htmlDisabled,\n width,\n arrows,\n borderless,\n paddingless,\n } = {\n ...props,\n }\n\n const mask = getMask(props.mask)\n\n const intInvalid = invalid ? 1 : 0\n const intRequired = required ? 1 : 0\n const intDisabled = disabled ? 1 : 0\n const intArrows = arrows ? 1 : 0\n const intBorderless = borderless ? 1 : 0\n const intPaddingless = paddingless ? 1 : 0\n\n let position\n let iconWidth\n let iconSubmit\n let iconOnClick\n let icon: IconProps | undefined\n\n if (props.icon) {\n icon = { ...props.icon.icon }\n\n position = props.icon.position || 'right'\n\n if (intInvalid) icon.color = 'warningRed'\n\n iconWidth = icon.width\n iconSubmit = props.icon.submit\n iconOnClick = props.icon.onClick\n }\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 'width',\n 'inputWidth',\n 'arrows',\n 'borderless',\n 'paddingless',\n ],\n {\n invalid: intInvalid,\n type: 'text',\n arrows: intArrows,\n borderless: intBorderless,\n paddingless: intPaddingless,\n width: props.inputWidth,\n },\n )\n\n const onChange = inputProps.onChange || (() => {})\n const setValue = props.setValue || (() => {})\n\n inputProps.onChange = (event) => {\n event.target.value = mask(event.target.value)\n onChange(event)\n setValue(event.target.value)\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 const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyDown(event)\n\n if (v !== target.value) setValue(target.value)\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 if (loading) {\n position = position || 'right'\n icon = {\n type: 'jsx',\n icon: <Loader size='14px' />,\n width: '14px',\n }\n inputProps.disabled = true\n } else if (clearable) {\n position = position || 'right'\n\n iconOnClick =\n typeof clearable === 'function' ? clearable : () => setValue('')\n\n icon = {\n type: 'feather',\n icon: 'x',\n width: '14px',\n }\n }\n\n const iconProps = position\n ? {\n position: position as 'left' | 'right',\n width: iconWidth || '24px',\n }\n : undefined\n\n if (htmlDisabled) inputProps.disabled = true\n\n return (\n <S.Label\n disabled={intDisabled}\n invalid={intInvalid}\n paddingless={intPaddingless}\n icon={iconProps}\n width={width}\n >\n {label && <S.LabelText required={intRequired}>{label}</S.LabelText>}\n\n <S.Input {...inputProps} ref={ref} />\n\n {icon && (\n <S.IconContainer\n type={iconSubmit ? 'submit' : 'button'}\n onClick={iconOnClick}\n disabled={props.disabled}\n >\n <MwIcon {...icon} />\n </S.IconContainer>\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 { LabelProps } from './interfaces'\n\nconst width = '17px'\n\nexport const Checkmark = styled.span`\n position: absolute;\n top: 0px;\n left: 0;\n height: ${width};\n width: ${width};\n background-color: ${({ theme }) => theme.colors.white};\n\n border-style: solid;\n border-color: ${({ theme }) => theme.colors.lightGrey};\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\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n\n display: block;\n\n ${({ 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 }) => {\n if (!disabled) {\n return css`\n cursor: pointer;\n `\n }\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > div {\n display: flex;\n align-items: center;\n position: relative;\n\n padding-left: calc(${width} + ${({ theme }) => theme.spacings.s1});\n user-select: none;\n min-height: 17px;\n\n > div:first-child {\n display: inline-block;\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n }\n\n > input {\n position: absolute;\n opacity: 0;\n height: 0;\n width: 0;\n }\n\n :hover ${Checkmark} {\n background-color: ${({ theme }) => theme.colors.iceWhite};\n }\n\n > input:checked ~ ${Checkmark} {\n border-color: ${({ theme }) => theme.colors.blue};\n\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 }) => {\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`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { CheckboxProps } from './interfaces'\nimport * as S from './styles'\n\nconst Checkbox = React.forwardRef(\n (props: CheckboxProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { label, disabled, required, invalid, padding } = props\n\n const htmlProps = filterObject<\n CheckboxProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, ['label', 'invalid', 'required', 'padding'])\n\n return (\n <S.Label\n disabled={disabled ? 1 : 0}\n required={required ? 1 : 0}\n invalid={invalid ? 1 : 0}\n padding={padding}\n >\n <div>\n <div>{label}</div>\n <input {...htmlProps} type='checkbox' ref={ref} />\n <S.Checkmark />\n </div>\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","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\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 target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':')\n } else {\n date.setMinutes(m + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n ].join(':')\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 target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':')\n } else {\n date.setMinutes(m - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n ].join(':')\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 styled, { css } from 'styled-components'\nimport MwAbsoluteContainer from '../AbsoluteContainer'\n\nexport const Container = styled.div`\n display: inline-block;\n background-color: ${({ theme }) => theme.colors.white};\n padding: ${({ theme }) => theme.spacings.s1};\n\n > div:nth-child(1) {\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n }\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 Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`\n\nexport const MonthContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n > div {\n margin: ${({ theme }) => theme.spacings.s1} 0;\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: 0.5px solid transparent;\n background-color: transparent;\n cursor: pointer;\n border: none;\n\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n :disabled {\n visibility: hidden;\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 active: 1 | 0\n color?: 'grey' | 'blue'\n}\n\nexport const DayContainer = styled.button<DayContainerProps>`\n ${({ theme, color }) => {\n if (color === 'grey') {\n return css`\n background-color: ${theme.getColor('greyishBlue', 10)};\n `\n } else if (color === 'blue') {\n return css`\n background-color: ${theme.colors.white};\n\n :not(:disabled) {\n background-color: ${theme.getColor('blue', 30)};\n }\n `\n }\n\n return css`\n background-color: ${theme.colors.white};\n `\n }};\n\n :disabled {\n color: ${({ theme }) => theme.colors.silver};\n }\n\n transition-property: background-color color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n\n :not(:disabled) {\n cursor: pointer;\n }\n\n ${({ active, theme }) => {\n if (active !== 1) {\n return css`\n :not(:disabled) {\n :hover {\n border-color: ${({ theme }) => theme.colors.blue};\n color: ${({ theme }) => theme.colors.blue};\n }\n }\n `\n }\n return css`\n color: ${theme.colors.white};\n background-color: ${theme.colors.blue};\n\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.blue};\n }\n `\n }}\n`\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport { AbsoluteContainerProps } from '../AbsoluteContainer/interfaces'\nimport Button from '../Button'\nimport Icon from '../Icon'\nimport Input from '../Input/components/Time'\n\nimport { CalendarProps } from './interfaces'\nimport * as S from './styles'\n\ninterface Calendar {\n month: number\n year: number\n weeks: Date[][]\n}\n\nconst 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\nconst getCalendar = (d: Date): Calendar => {\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\nconst Calendar = (props: CalendarProps) => {\n const { overlay, time: timeProps, notAbsolute, initalValue } = props\n\n const [value, _setValue] =\n props.value ||\n useState<Date | null>(\n initalValue && !isNaN(initalValue.getTime()) ? initalValue : null,\n )\n\n const withoutTime: { min?: Date; max?: Date } = {}\n\n let max: Date | undefined\n if (props.max) {\n max = new Date(props.max.getTime())\n withoutTime.max = new Date(props.max.getTime())\n withoutTime.max.setHours(0, 0, 0, 0)\n }\n\n let min: Date | undefined\n if (props.min) {\n min = new Date(props.min.getTime())\n withoutTime.min = new Date(props.min.getTime())\n withoutTime.min.setHours(0, 0, 0, 0)\n }\n\n const [invalid, setInvalid] = props.invalid || useState<boolean>(false)\n\n const [calendar, setCalendar] = useState<Calendar>(\n getCalendar(value || max || min || new Date()),\n )\n const [time, setTime] = useState<string>(() => {\n if (!value) return ''\n const h = value.getHours()\n const m = value.getMinutes()\n const s = value.getSeconds()\n\n return [h, m, s].map((v) => v.toString().padStart(2, '0')).join(':')\n })\n\n useEffect(() => {\n if (!value) return\n setValue(value)\n }, [time])\n\n const updateInvalid = useCallback(\n (value: Date | null) => {\n if (timeProps) {\n if (timeProps.seconds) {\n setInvalid(\n value === null ||\n (timeProps && timeProps.seconds && time.length < 8) ||\n (max !== undefined && value > max) ||\n (min !== undefined && value < min),\n )\n } else {\n setInvalid(\n value === null ||\n time.length < 5 ||\n (max !== undefined && value > max) ||\n (min !== undefined && value < min),\n )\n }\n } else {\n setInvalid(\n value === null ||\n (max !== undefined && value > max) ||\n (min !== undefined && value < min),\n )\n }\n },\n [time, value, max, min],\n )\n\n useEffect(() => {\n updateInvalid(value)\n }, [updateInvalid, value])\n\n const setValue = timeProps\n ? (date: Date | null) => {\n if (date === null) {\n _setValue(date)\n return\n }\n\n const splitted = time.split(':').map((v) => parseInt(v.padEnd(2, '0')))\n\n const copy = new Date(date.getTime())\n copy.setHours(\n splitted[0] || 0,\n splitted[1] || 0,\n splitted[2] || 0,\n splitted[3] || 0,\n )\n\n _setValue(copy)\n updateInvalid(copy)\n }\n : _setValue\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 =\n min !== undefined &&\n (calendar.year < min.getFullYear() ||\n (calendar.year === min.getFullYear() &&\n calendar.month <= min.getMonth()))\n\n return (\n <S.NavBtn\n type='button'\n onClick={() => changeMonth(-1)}\n disabled={disabled}\n >\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 =\n max !== undefined &&\n (calendar.year > max.getFullYear() ||\n (calendar.year === max.getFullYear() &&\n calendar.month >= max.getMonth()))\n\n return (\n <S.NavBtn\n type='button'\n onClick={() => changeMonth(1)}\n disabled={disabled}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n let hasHighlight: (date: Date) => boolean = () => false\n\n if (value && overlay && overlay.value !== null) {\n const d = new Date(overlay.value.getTime())\n d.setHours(0, 0, 0, 0)\n\n const withoutTimeValue = new Date(value.getTime())\n withoutTimeValue.setHours(0, 0, 0, 0)\n\n hasHighlight =\n overlay.type === 'after'\n ? (date: Date) => {\n return date > withoutTimeValue && date <= d\n }\n : (date: Date) => {\n return date < withoutTimeValue && date >= d\n }\n }\n\n const _onSubmit = props.onSubmit || {}\n const onSubmit = {\n disabled: invalid,\n onClick: () => {},\n ..._onSubmit,\n }\n\n const content = (\n <S.Container>\n <div>\n <S.Header>\n <S.MonthContainer>\n {getPrev()}\n <div>\n {months[calendar.month]} {calendar.year}\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 day = date.getDate()\n const month = date.getMonth()\n\n let disabled: boolean | undefined\n let color: 'grey' | 'blue' | undefined\n\n if (month !== calendar.month) disabled = true\n if (\n (withoutTime.max && date > withoutTime.max) ||\n (withoutTime.min && date < withoutTime.min)\n ) {\n disabled = true\n color = 'grey'\n } else if (hasHighlight(date)) {\n color = 'blue'\n }\n\n const active =\n value &&\n date.toLocaleDateString() === value.toLocaleDateString()\n ? 1\n : 0\n\n const onClick =\n active === 0 ? () => setValue(date) : () => setValue(null)\n\n return (\n <S.DayContainer\n key={index}\n type='button'\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n active={active}\n color={color}\n >\n {day}\n </S.DayContainer>\n )\n })}\n </S.WeekContainer>\n )\n })}\n </div>\n\n {timeProps !== undefined || props.onSubmit !== undefined ? (\n <S.Footer>\n {timeProps ? (\n <Input\n {...timeProps}\n type='time'\n value={time}\n setValue={setTime}\n invalid={\n time.length !== 0 &&\n ((value !== null && invalid) || time.length < 5)\n }\n width={timeProps.seconds ? '86px' : '66px'}\n />\n ) : (\n <div />\n )}\n\n {props.onSubmit && (\n <Button\n onClick={() => onSubmit.onClick(value)}\n disabled={onSubmit.disabled}\n type='button'\n content='Aplicar'\n />\n )}\n </S.Footer>\n ) : undefined}\n </S.Container>\n )\n\n const absoluteContainerProps = filterObject<\n CalendarProps,\n Omit<AbsoluteContainerProps, 'onSubmit'>\n >(props, [\n 'value',\n 'initalValue',\n 'max',\n 'min',\n 'overlay',\n 'time',\n 'onSubmit',\n 'invalid',\n 'notAbsolute',\n 'references',\n ])\n\n return notAbsolute ? (\n content\n ) : (\n <S.AbsoluteContainer axis='y' maxHeight='322px' {...absoluteContainerProps}>\n {content}\n </S.AbsoluteContainer>\n )\n}\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'\nimport { IconProps } from '../../../Icon/interfaces'\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 target.value = 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 target.value = 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 = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n } as IconProps,\n position: 'right' as 'right' | 'left',\n onClick: () => setOpen((prev) => !prev),\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 open={open}\n initalValue={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 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} calc(${theme.spacings.s3} * 0.75)\n ${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 search: [search],\n searchInput: [searchInput, setSearchInput],\n onClearSearch,\n onSearch,\n loading,\n } = context\n\n return (\n <S.HeaderContainer>\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n onPressEnter={onSearch}\n clearable={\n searchInput !== '' && searchInput === search\n ? onClearSearch\n : undefined\n }\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n onClick: onSearch,\n }}\n loading={loading}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React, { useState } from 'react'\nimport { isString } from '../../../../../../functions/validators'\nimport { ParsedOption, useSelectReturn } from '../interfaces'\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\n\nconst getOptions = (props: SelectProps, options: Option[]): ParsedOption[] => {\n return options.map((option, index) => {\n const label = isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label\n\n const { value, onClick } = option\n\n return {\n label,\n onClick: onClick\n ? () => {\n onClick(index, { label, value })\n }\n : () => {\n props.setValue(value)\n },\n }\n })\n}\n\nconst getInputValue = (\n value: string,\n options: Option[],\n parsedOptions: ParsedOption[],\n): string => {\n const selectedIndex = options.findIndex((option) => option.value === value)\n const selected = parsedOptions[selectedIndex]\n\n return selected ? selected.label.text : ''\n}\n\nconst useSelect = (props: SelectProps): useSelectReturn => {\n const [options, setOptions] = useState<Option[]>([])\n\n const parsedOptions = getOptions(props, options)\n\n const inputValue = getInputValue(props.value, options, parsedOptions)\n\n const onReset = () => {}\n\n return {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n input: {\n value: inputValue,\n },\n onReset,\n menu: {\n itemSpacing: 's3',\n before: <Header />,\n maxHeight: '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\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: { setValue },\n checked: [checked],\n setOpen,\n } = context\n\n const onClick = () => {\n setValue([...checked])\n setOpen(false)\n }\n\n return (\n <Button\n type='button'\n content='Aplicar'\n onClick={onClick}\n style={{ marginRight: '-3.5px' }}\n />\n )\n}\n\nexport default Footer\n","import styled, { css } from 'styled-components'\n\nexport const HeaderContainer = styled.div`\n ${({ theme }) => css`\n padding: ${theme.spacings.s3} calc(${theme.spacings.s3} * 0.75)\n ${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 Button from '../../../../../../../Button'\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 search: [search],\n searchInput: [searchInput, setSearchInput],\n onSearch,\n onClearSearch,\n loading,\n options,\n } = context\n\n const onClick = () => {\n setChecked((prev) =>\n prev.length === options.length\n ? []\n : options.map((option) => option.value),\n )\n }\n\n return (\n <S.HeaderContainer>\n {context.props.selectAll && (\n <S.SelectAllContainer>\n <b>Selecionados ({checked.length})</b>\n\n <Button\n type='button'\n content='Selecionar todos'\n appearance='link'\n onClick={onClick}\n color='darkBlue'\n />\n </S.SelectAllContainer>\n )}\n\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n onPressEnter={onSearch}\n clearable={\n searchInput !== '' && searchInput === search\n ? onClearSearch\n : undefined\n }\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n onClick: onSearch,\n }}\n loading={loading}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React, { useState } from 'react'\nimport { Popup } from 'semantic-ui-react'\nimport { isString } from '../../../../../../functions/validators'\nimport Checkbox from '../../../Checkbox'\nimport { ParsedOption, useSelectReturn } from '../interfaces'\nimport Footer from './components/Footer'\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\n\nconst getOptions = (\n options: Option[],\n checked: string[],\n setChecked: React.Dispatch<React.SetStateAction<string[]>>,\n): ParsedOption[] => {\n return options.map((option) => {\n const label = isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label\n\n return {\n label: {\n text: label.text,\n element: (\n <Checkbox\n type='checkbox'\n checked={checked.includes(option.value)}\n label={\n option.disabled && option.disabledText ? (\n <Popup\n on='click'\n trigger={<div>{label.element}</div>}\n content={option.disabledText}\n position='left center'\n inverted\n wide\n />\n ) : (\n label.element\n )\n }\n disabled={option.disabled}\n onChange={(event) => {\n const isChecked = event.target.checked\n\n setChecked((prev) => {\n const newState = prev.filter((v) => v !== option.value)\n\n if (isChecked) newState.push(option.value)\n\n return newState\n })\n }}\n padding={{\n top: 's3',\n left: 's3',\n right: 's3',\n bottom: 's3',\n }}\n />\n ),\n },\n keepOpen: true,\n }\n })\n}\n\nconst getInputValue = (value: string[]): 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 useSelectMultiple = (props: SelectProps): useSelectReturn => {\n const [options, setOptions] = useState<Option[]>([])\n const [checked, setChecked] = useState<string[]>([...props.value])\n\n const parsedOptions = getOptions(options, checked, setChecked)\n\n const inputValue = getInputValue(props.value)\n\n const onReset = () => {\n setChecked([...props.value])\n }\n\n const returnData: useSelectReturn = {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n input: {\n value: inputValue,\n },\n onReset,\n menu: {\n itemSpacing: undefined,\n before: <Header />,\n after: <Footer />,\n 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 }\n\n return returnData\n}\n\nexport default useSelectMultiple\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\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 { 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'\n\nexport type SelectProps = SingleSelectProps | MultipleSelectProps\n\nconst Select = React.forwardRef(\n (props: SelectProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { position, loader } = props\n\n const {\n parsedOptions,\n input: { value: inputValue },\n options: [, setOptions],\n onReset,\n menu: menuProps,\n getContext,\n } = props.type === 'select-multiple'\n ? useSelectMultiple(props)\n : useSelect(props)\n\n const [_loading, setLoading] = useState<boolean>(false)\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 const [open, setOpen] = 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>(\n props,\n ['type', 'onScrollEnd', 'position', 'value'],\n { value: inputValue },\n )\n\n const _onScrollEnd = props.onScrollEnd || (() => {})\n\n const onScrollEnd = () => {\n if (!lastPage && !loading) {\n setPage((prev) => prev + 1)\n }\n\n _onScrollEnd()\n }\n\n const onSubmit = useCallback(async () => {\n setLoading(true)\n\n const optionsResult = await loader(search, page)\n\n if (Array.isArray(optionsResult)) {\n setOptions(\n page === 1 ? optionsResult : (prev) => prev.concat(optionsResult),\n )\n setLastPage(true)\n } else {\n setOptions(\n page === 1\n ? optionsResult.options\n : (prev) => prev.concat(optionsResult.options),\n )\n setLastPage(optionsResult.lastPage)\n }\n\n setLoading(false)\n }, [loader, search, page])\n\n useEffect(() => {\n setSearch('')\n }, [loader])\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 const onSearch = () => {\n setSearch(searchInput)\n }\n\n const onClearSearch = () => {\n setSearchInput('')\n setSearch('')\n }\n\n return getContext(\n {\n setOpen,\n search: [search, setSearch],\n searchInput: [searchInput, setSearchInput],\n onSearch,\n onClearSearch,\n loading,\n },\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='search'\n readOnly\n onClick={() => {\n setOpen((prev) => !prev)\n }}\n loading={loading}\n icon={{\n position: 'right',\n icon: {\n type: 'semantic',\n icon: open ? 'caret up' : 'caret down',\n width: '14px',\n },\n }}\n ref={ref}\n />\n\n <Menu\n {...menuProps}\n open={open}\n close={() => setOpen(false)}\n options={parsedOptions}\n onScrollEnd={onScrollEnd}\n width='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 />\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<'none' | 'visible' | 'hidden'>(\n 'none',\n )\n\n const icons = {\n none: {\n icon: 'edit' as keyof typeof feather,\n onClick: () => setVisibility('hidden'),\n },\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 icon: icons[visibility].icon,\n width: '19px',\n }\n\n const _onBlur = props.onBlur || (() => {})\n\n const onBlur: React.FocusEventHandler<HTMLInputElement> = (event) => {\n if (!event.target.value) setVisibility('none')\n _onBlur(event)\n }\n\n return (\n <Input\n {...props}\n type={visibility === 'visible' ? 'text' : 'PASSWORD'}\n icon={{\n icon,\n position: 'right',\n onClick: icons[visibility].onClick,\n }}\n onBlur={onBlur}\n placeholder='••••••••'\n htmlDisabled={visibility === 'none'}\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],\n } = props\n\n return (\n <S.IconContainer>\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 const [country, setCountry] = useState<Country>(countries.br)\n const [open, setOpen] = useState<boolean>(false)\n\n useEffect(() => {\n const details = getPhoneDetails(value || '')\n\n setCountry(details ? details.country : countries.br)\n }, [value])\n\n const options: Option[] = (\n Object.keys(countries) as (keyof typeof countries)[]\n ).map((iso) => ({\n label: {\n text: countries[iso].name,\n element: (\n <S.Label>\n <Flag iso={iso} />\n {countries[iso].name}\n <span>+{countries[iso].ddi}</span>\n </S.Label>\n ),\n },\n onClick: () => {\n setCountry(countries[iso])\n },\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 const details = getPhoneDetails(value || '')\n setCountry(details ? details.country : countries.br)\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\n setValue(`${country.ddi} ${v}`)\n }, [inputValue])\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut<HTMLDivElement>(() => setOpen(false))}\n >\n <Input\n {...props}\n type='text'\n placeholder={country.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 onClick: () => setOpen((prev) => !prev),\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 bottom: 1px;\n left: 1px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 4px;\n\n ${({ theme, iconWidth, paddingless }) => {\n if (paddingless) {\n return css`\n width: calc(100% - 2px - ${iconWidth});\n height: 19px;\n `\n }\n\n return css`\n width: calc(100% - 2px - ${iconWidth} - ${theme.spacings.s3});\n height: 33px;\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 Icon from '../../../Icon'\nimport { IconProps } from '../../../Icon/interfaces'\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(new Date()))\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 = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n width: '24px',\n } as IconProps,\n position: 'right' as 'right' | 'left',\n onClick: () => setOpen((prev) => !prev),\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 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 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 open={open}\n initalValue={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 { LabelProps } from './interfaces'\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\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 position: relative;\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: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 { filterObject } from '../../../../functions/formatters'\nimport { SwitchProps } from './interfaces'\nimport * as S from './styles'\n\nconst Switch = (props: SwitchProps) => {\n const { label, disabled, required, invalid } = props\n\n const htmlProps = filterObject<\n SwitchProps,\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='checkbox' />\n <span></span>\n\n {label && <S.LabelContainer>{label}</S.LabelContainer>}\n </S.Label>\n )\n}\n\nexport default Switch\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\nconst bullet = css`\n appearance: none;\n width: ${({ theme }) => theme.spacings.s4};\n height: ${({ theme }) => theme.spacings.s4};\n border-radius: 100%;\n border-width: 1px;\n border-style: solid;\n background-color: ${({ theme }) => theme.colors.white};\n box-shadow: 0px 1px 3px ${({ theme }) => theme.getColor('black', 10)};\n`\n\nexport const Input = styled.input`\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\ninterface StyledLabelProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n disabled: 1 | 0\n required: 1 | 0\n width?: string\n}\n\nexport const Label = styled.label<StyledLabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n width: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n display: block;\n position: relative;\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > div:first-child {\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`\n\ninterface InputContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n}\n\nexport const 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 const MinMaxLabelContainer = styled.div`\n display: flex;\n padding-bottom: 2px;\n`\n\ninterface LabelsContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n position: 'bottom' | 'top'\n}\n\nexport const 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% + 10.5px);\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% + 8px);\n }\n }\n\n ${MinMaxLabelContainer} {\n align-items: end;\n }\n `\n }}\n`\n\ninterface SelectedAreaProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n percent: number\n}\n\nexport const 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 const MarkersContainer = styled.div`\n height: 17px;\n`\n\ninterface MarkerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n left: string\n bullet: 1 | 0\n}\n\nexport const Marker = styled.div<MarkerProps>`\n position: absolute;\n top: 0;\n width: 40px;\n text-align: center;\n left: ${({ left }) => left};\n z-index: 2;\n\n :first-child {\n left: 0;\n text-align: left;\n\n :after {\n left: 0;\n }\n }\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 ${({ 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","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport { isObject } from '../../../../functions/validators'\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 = markers[0].value\n const max = 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 Range = React.forwardRef(\n (props: RangeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { label, minLabel, maxLabel, invalid, disabled, required, width } =\n props\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('Invalid value')\n }\n\n const _onChange = props.onChange || (() => {})\n const onChange: React.ChangeEventHandler<HTMLInputElement> = strict\n ? (event) => {\n const index = parseInt(event.target.value)\n const value = markers[index].value\n _onChange(event, value)\n }\n : (event) => {\n const value = parseFloat(event.target.value)\n _onChange(event, value)\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 ],\n {\n min,\n max,\n step,\n onChange,\n value,\n },\n )\n\n return (\n <S.Label\n required={required ? 1 : 0}\n disabled={disabled ? 1 : 0}\n width={width}\n >\n <div>{label}</div>\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 let z = markers.length - 2\n if (z < markers.length - 1) z = markers.length - 1\n const y = 20 / z\n const x = 20 - y * (z - index)\n const p = index * percent\n const left = `calc(${p}% - 10px - ${x}px)`\n\n const bullet = marker.value > value ? 1 : 0\n\n return (\n <S.Marker key={marker.value} left={left} bullet={bullet}>\n {marker.label}\n </S.Marker>\n )\n })}\n </S.MarkersContainer>\n )}\n\n <div>\n <S.Input ref={ref} {...inputProps} />\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 </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.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 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 height: 17px;\n 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 styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: ${({ theme }) =>\n `${theme.spacings.s1} ${theme.spacings.s1} 0px ${theme.spacings.s1}`};\n background-color: ${({ theme }) => theme.colors.white};\n display: flex;\n width: min-content;\n`\n","import React, { useEffect, useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport AbsoluteContainer from '../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../AbsoluteContainer/interfaces'\nimport Calendar from '../Calendar'\nimport { CalendarIntervalProps } from './interfaces'\nimport * as S from './styles'\n\nconst CalendarInterval = (props: CalendarIntervalProps) => {\n const { time } = props\n\n const [start, setStart] =\n props.value && Array.isArray(props.value.start)\n ? props.value.start\n : useState<Date | null>(null)\n\n const [end, setEnd] =\n props.value && Array.isArray(props.value.end)\n ? props.value.end\n : useState<Date | null>(null)\n\n useEffect(() => {\n if (!props.value) return\n\n if (!Array.isArray(props.value.start)) {\n setStart(props.value.start)\n }\n\n if (!Array.isArray(props.value.end)) {\n setEnd(props.value.end)\n }\n }, [props.value])\n\n const [startInvalid, setStartInvalid] = useState<boolean>(false)\n const [endInvalid, setEndInvalid] = useState<boolean>(false)\n\n let min: Date | undefined\n if (props.min) {\n min = new Date(props.min.getTime())\n }\n\n let max: Date | undefined\n if (props.max) {\n max = new Date(props.max.getTime())\n }\n\n let minEnd: Date | undefined\n if (start) {\n minEnd = start\n if (min) {\n minEnd = start >= min ? start : min\n }\n } else if (min) {\n minEnd = min\n }\n\n let maxStart: Date | undefined\n if (end) {\n maxStart = end\n if (max) {\n maxStart = end <= max ? end : max\n }\n } else if (max) {\n maxStart = max\n }\n\n const _onSubmit = props.onSubmit || {}\n const onSubmit = {\n disabled: startInvalid || endInvalid,\n onClick: () => {},\n ..._onSubmit,\n }\n\n const absoluteContainerProps = filterObject<\n CalendarIntervalProps,\n Omit<AbsoluteContainerProps, 'onSubmit'>\n >(props, ['max', 'min', 'value', 'time', 'onSubmit'])\n\n return (\n <AbsoluteContainer axis='y' maxHeight='329px' {...absoluteContainerProps}>\n <S.Container>\n <Calendar\n open\n value={[start, setStart]}\n min={min}\n max={maxStart}\n overlay={{\n type: 'after',\n value: end,\n }}\n time={time}\n invalid={[startInvalid, setStartInvalid]}\n notAbsolute\n />\n <Calendar\n open\n value={[end, setEnd]}\n min={minEnd}\n max={max}\n overlay={{\n type: 'before',\n value: start,\n }}\n time={time}\n invalid={[endInvalid, setEndInvalid]}\n notAbsolute\n onSubmit={{\n onClick: () => onSubmit.onClick(start, end),\n disabled: onSubmit.disabled,\n }}\n />\n </S.Container>\n </AbsoluteContainer>\n )\n}\n\nexport default CalendarInterval\n","import {\n dateToIsoString,\n getFirstWeek,\n getLastWeek,\n getMonthName,\n getWeekNumber,\n} from '../../../../functions/formatters'\nimport { isDateEquals } from '../../../../functions/validators'\n\nimport { IntervalType, IntervalTypes } from './interfaces'\n\nexport const validate: (\n value: [Date, Date],\n min?: Date,\n max?: Date,\n) => boolean = ([start, end], min, max) => {\n if (min && start < min) return false\n if (max && end > max) 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 (isDateEquals(today, prev[0])) 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, 0)\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, 0)\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, 0)\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, 0)\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, 0)\n\n return [start, end]\n },\n },\n custom: {\n label: (prev) => {\n const start = dateToIsoString(prev[0], false, false)\n const end = dateToIsoString(prev[1], false, false)\n\n return `${start} - ${end}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n return [base, base]\n },\n },\n}\n\nexport const identify = (value: [Date, Date]): IntervalType => {\n const [start, end] = value\n\n const isoStart = dateToIsoString(start)\n const isoEnd = dateToIsoString(end)\n\n if (isoStart === isoEnd) {\n const [expectedStart, expectedEnd] = intervalTypes.day.initial(start)\n if (isDateEquals(start, expectedStart) && isDateEquals(end, expectedEnd)) {\n return 'day'\n }\n }\n\n if (start.getUTCDay() === 0) {\n const [expectedStart, expectedEnd] = intervalTypes.week.initial(start)\n if (isDateEquals(start, expectedStart) && isDateEquals(end, expectedEnd)) {\n return 'week'\n }\n }\n\n if (start.getDate() === 1) {\n const [expectedStart, expectedEnd] = intervalTypes.month.initial(start)\n if (isDateEquals(start, expectedStart) && isDateEquals(end, expectedEnd)) {\n return 'month'\n }\n }\n\n return 'custom'\n}\n\nexport const parse = (value: [string, string]): [Date, Date] =>\n value.map((v) => new Date(v)) as [Date, Date]\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 border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid }) =>\n invalid ? theme.colors.warningRed : theme.colors.lightGrey};\n border-radius: 4px;\n\n > :nth-child(1) 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 bottom: 1px;\n left: 1px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 4px;\n white-space: nowrap;\n\n ${({ theme, iconWidth, paddingless }) => {\n if (paddingless) {\n return css`\n width: calc(100% - 2px - ${iconWidth});\n height: 19px;\n `\n }\n\n return css`\n width: calc(100% - 2px - ${iconWidth} - ${theme.spacings.s3});\n height: 33px;\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 ${({ 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'\n\nimport { dateToIsoString, filterObject } from '../../../../functions/formatters'\nimport { isDateInstance } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport CalendarInterval from '../../../CalendarInterval'\nimport Icon from '../../../Icon'\nimport Menu from '../../../Menu'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\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 value = parse(props.value)\n\n const disabled = props.disabled || props.loading\n\n const [open, setOpen] = useState<'menu' | 'calendar' | null>(null)\n const [intervalType, setIntervalType] = useState<IntervalType>('day')\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.value.some((v) => v === '')) {\n setValue(intervalTypes.day.initial(props.min))\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 setValue(intervalTypes.day.initial(props.min))\n return\n }\n\n const newIntervalType = identify(value)\n setIntervalType(newIntervalType)\n }, [props.value, props.min, props.max])\n\n const inputProps = filterObject<DateIntervalPickerProps, InputProps>(\n props,\n ['min', 'max'],\n )\n\n const getArrowProps = (key: 'increment' | 'decrement') => {\n const func = config[key]\n\n if (func === undefined) {\n return {\n disabled: true,\n }\n }\n const nextValue = func(value)\n if (!validate(nextValue, min, max)) {\n return {\n disabled: true,\n }\n }\n return {\n onClick: () => setValue(nextValue),\n }\n }\n\n const incrementProps = getArrowProps('increment')\n const decrementProps = getArrowProps('decrement')\n\n const invalid = props.invalid || !validate(value, min, max)\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(null))}\n invalid={invalid}\n >\n <Input\n {...inputProps}\n style={{ width: 0 }}\n type='text'\n ref={ref}\n icon={{\n icon: {\n type: 'feather',\n icon: 'calendar',\n width: '24px',\n },\n position: 'right' as 'right' | 'left',\n onClick: () => setOpen((prev) => (prev === null ? 'menu' : null)),\n }}\n borderless\n htmlDisabled\n />\n\n <S.Container\n iconWidth='24px'\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 {...decrementProps}\n disabled={disabled || decrementProps.disabled}\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 <div>\n {value.some((v) => !isDateInstance(v)) ? '' : config.label(value)}\n </div>\n\n <S.Button\n type='button'\n {...incrementProps}\n disabled={disabled || incrementProps.disabled}\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 <Menu\n open={open === 'menu'}\n close={() => setOpen(null)}\n options={[\n {\n label: 'Hoje',\n onClick: () => setValue(intervalTypes.day.initial(props.min)),\n },\n {\n label: 'Semana',\n onClick: () => setValue(intervalTypes.week.initial(props.min)),\n },\n {\n label: 'Mês',\n onClick: () => setValue(intervalTypes.month.initial(props.min)),\n },\n {\n label: 'Personalizado',\n onClick: () => setOpen('calendar'),\n keepOpen: true,\n caret: true,\n },\n ]}\n width='165px'\n itemSpacing='s3'\n bordered\n />\n\n <CalendarInterval\n open={open === 'calendar'}\n value={{ start: value[0], end: value[1] }}\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 time={{}}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'DatePicker'\n\nconst useDefaultDateIntervalState = () => {\n const start = new Date()\n start.setHours(0, 0, 0, 0)\n const end = new Date()\n end.setHours(23, 59, 59, 0)\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 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\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\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 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 { 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: 'bordeless',\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: 'bordeless',\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 { 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, { 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, { 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 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","import styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: ${({\n theme: {\n spacings: { s1, s3 },\n },\n }) => `0 calc(${s3} * .75) ${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'\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 <div>{isString(title) ? title : title.element}</div>\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 },\n onClick: onSubmit,\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 } = 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) onSearch()\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 : undefined\n\n const optionsParser = (option: FilterOption): MenuOption => {\n return {\n label: option.label,\n onClick: onClickOption,\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 innerContent={\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 />\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 './components/Submenu'\n\nimport { FiltersProps } from './interfaces'\n\nconst Filters = (props: FiltersProps) => {\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: item.label,\n delimiter: item.delimiter,\n keepOpen: true,\n caret: true,\n onClick: (index: number) => {\n setActive((prev) => (prev === index ? -1 : index))\n },\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 height='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 >\n <Submenu\n item={selected}\n close={() => setActive(-1)}\n setAppliedFilters={props.setAppliedFilters}\n />\n </Menu>\n )\n}\n\nexport default Filters\n","import styled from 'styled-components'\n\nimport AbsoluteContainer from '../../AbsoluteContainer'\n\nexport const Container = styled(AbsoluteContainer)`\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 Button from '../../Button'\nimport Icon from '../../Icon'\nimport Input from '../../Input'\nimport ScrollContainer from '../../ScrollContainer'\nimport { AppliedFiltersProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst AppliedFilters = (props: AppliedFiltersProps) => {\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 >\n <div>\n <S.Header>\n <div>\n <S.Title>Filtros Aplicados</S.Title>\n\n <Button type='button' onClick={onClear} appearance='link'>\n Limpar Todos\n </Button>\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 },\n onClick: onSubmitSearch,\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 AppliedFilters\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 = (props: ColProps) => {\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 {...colProps}>\n {_props.ellipsis ? (\n <EllipsisContainer>{_props.children}</EllipsisContainer>\n ) : (\n _props.children\n )}\n </S.Col>\n )\n}\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 = (props: GridProps) => {\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 {...gridProps} />\n </Provider.Provider>\n )\n}\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: ['lightestGrey', 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 :not(:last-child) {\n border-bottom: 1px solid ${lightestGrey};\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 = (props: RowProps) => {\n const context = useContext()\n\n const cols = { ...(props.cols || {}), ...context.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 {...rowProps} />\n </Provider.Provider>\n )\n}\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 { fontSizes, sizes } from './constants'\r\n\r\nconst theme = {\r\n sizes,\r\n fontSizes,\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"],"names":["colors","white","iceWhite","black","blue","lightBlue","darkestBlue","darkBlue","greyishBlue","darkSilver","silver","darkestGrey","darkGrey","grey","lightGrey","lightestGrey","purple","orange","yellow","red","darkestGreen","darkGreen","green","lightGreen","pink","brown","vanilla","bronze","warningGray","warningYellow","warningRed","floralWhite","snowWhite","milkWhite","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","notEmptyString","trim","isBoolean","isString","isDateInstance","Date","isNaN","valueOf","isDateEquals","x","y","xStr","yStr","strCmp","options","ignoreAccents","ignoreCase","contain","toUpperCase","includes","filterObject","keys","inital","r","filter","reduce","prev","isoStringToDate","split","reverse","getTime","getWeekNumber","weekSunday","setHours","setDate","getUTCDay","yearStart","UTC","getUTCFullYear","weekNumber","Math","ceil","getMonthName","months","monthName","getFirstWeek","year","today","undefined","setFullYear","week","weekYear","getLastWeek","getSpacings","defaults","d","top","left","bottom","right","spacing","values","loader","keyframes","Loader","styled","div","size","borderSize","bgColor","color","theme","filled","zIndex","beforeColor","getColor","afterColor","fill","css","fillColor","sizes","tiny","mini","small","large","big","default","fontSizes","Button","button","appearance","components","loading","disabled","props","children","content","defaultValues","type","htmlProps","_size","React","S","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_icon","lock","lock_icon","log_in","log_in_icon","log_out","log_out_icon","mail","mail_icon","map","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_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","width","height","SVGContainer","strokeWidth","c","getCommonProps","commonProps","Component","icon","name","Error","Container","textarea","TextArea","EllipsisContainer","myProps","_onMouseOver","onMouseOver","event","dataset","parentElement","scrollWidth","offsetWidth","title","innerText","removeAttribute","useTypography","OverflowContainer","RelativeContainer","ScrollContainer","before","after","inner","onScrollEnd","useState","setLastPagination","onScroll","currentTarget","nativeEvent","scrollTopMax","scrollHeight","clientHeight","scrollTop","now","diff","abs","_onScroll","Transition","active","mountDuration","element","render","setRender","useEffect","timeoutId","setTimeout","clearTimeout","useTransition","animation","enabled","properties","durations","functions","forEach","k","config","push","duration","function","concat","length","positions","maxWidth","maxHeight","position","references","transition","AbsoluteContainer","forwardRef","fowardedRef","open","center","axis","ref","setRef","getPosition","window","innerWidth","innerHeight","getBoundingClientRect","xDirection","yDirection","newPosition","setPosition","useImperativeHandle","cssKeys","propsTransition","displayName","Option","containerSpacing","bordered","itemSpacing","Delimiter","MenuComponent","close","scrollSpacing","innerContent","absoluteContainerProps","Fragment","option","index","delimiter","keepOpen","caret","label","text","closeMenu","onClick","rules","rule","find","_onClick","Menu","labelColor","Indicator","description","Progress","ProgressBar","internal","Tabs","ul","Tab","li","activeState","tabs","setTabs","setActive","updateActiveTab","tagName","removeTab","prevState","aux","splice","tab","CloseIcon","isMaskFunction","isMaskReplace","Array","isArray","RegExp","isMaskReplaceArray","getMask","mask","newValue","e","IconContainer","Input","input","invalid","placeholder","paddingless","borderless","arrows","readOnly","Label","padding","LabelText","required","clearable","onPressEnter","htmlDisabled","intInvalid","intRequired","intDisabled","intArrows","intBorderless","intPaddingless","iconWidth","iconSubmit","iconOnClick","submit","inputProps","inputWidth","onChange","setValue","onKeyDown","_onPressEnter","preventDefault","v","onKeyUp","onKeyDownCapture","onKeyUpCapture","iconProps","MwIcon","Checkmark","span","_padding","Checkbox","useOnClickOut","callback","listener","contains","document","addEventListener","removeEventListener","seconds","parseInt","Time","_onKeyDown","todayDate","curH","curM","curS","h","padEnd","m","s","setMinutes","setSeconds","MwAbsoluteContainer","Footer","MonthContainer","NavBtn","WeekContainer","Header","DayContainer","getCalendar","month","days","getDay","unshift","weeks","i","Calendar","overlay","timeProps","notAbsolute","initalValue","_setValue","withoutTime","max","min","setInvalid","setCalendar","setTime","updateInvalid","useCallback","splitted","changeMonth","add","setMonth","getPrev","getNext","hasHighlight","withoutTimeValue","_onSubmit","onSubmit","day","toLocaleDateString","JSDate","isLeapYear","picker","setOpen","curD","curY","Provider","createContext","useContext","HeaderContainer","context","searchInput","setSearchInput","onClearSearch","onSearch","getOptions","getInputValue","parsedOptions","selectedIndex","findIndex","selected","useSelect","setOptions","inputValue","onReset","getContext","base","checked","style","marginRight","SelectAllContainer","setChecked","selectAll","disabledText","Popup","on","trigger","inverted","wide","isChecked","newState","useSelectMultiple","returnData","Select","menuProps","_loading","setLoading","_setSearch","page","setPage","lastPage","setLastPage","setSearch","_onScrollEnd","optionsResult","Password","visibility","setVisibility","none","visible","hidden","_onBlur","onBlur","coordinates","ar","br","cl","es","us","mx","py","pt","uy","Flag","flags","iso","countries","ddi","validation","charLimit","getPhoneDetails","shift","country","masked","valid","test","withDDI","setInputValue","setCountry","details","Phone","assign","LabelContainer","DatePicker","onAdd","onSub","Switch","bullet","InputContainer","SelectedArea","MinMaxLabelContainer","LabelsContainer","Marker","MarkersContainer","getMarkers","markers","strict","sort","a","b","step","parseFloat","Range","minLabel","maxLabel","range","spans","_onChange","marker","z","_value","RadioButton","CalendarInterval","start","setStart","end","setEnd","startInvalid","setStartInvalid","endInvalid","setEndInvalid","minEnd","maxStart","validate","intervalTypes","initial","increment","decrement","getMinMax","firstWeek","lastWeek","custom","identify","isoStart","isoEnd","expectedStart","expectedEnd","parse","intervalType","setIntervalType","parsed","some","newIntervalType","getArrowProps","func","nextValue","incrementProps","decrementProps","useDefaultDateIntervalState","toISOString","DateIntervalPicker","DefaultInput","Portal","id","opened","portalRoot","createElement","body","appendChild","removeChild","createPortal","heights","medium","widths","Background","Content","FooterMessage","FooterButtons","customSize","isDarkColor","Modal","openState","footer","footerMessage","closeOnEsc","closeOnClickOutside","onClickOutside","onEscDown","buttonProps","ConfirmDelete","cancelAction","confirmAction","ConfirmSuccess","homeAction","Audit","ConfirmEdit","borderType","Card","rest","IconContent","Toast","handlClose","HeaderImage","HeaderContent","MainContent","HeaderLine","MainLine","Template1","Template2Container","HeaderLineStyle","Template2","Template3Container","Template3Line","Template3","Template4Container","CustomLine","Template4","Circle","Template5","Template6","Main","Template7","Template8","GraphLine","Template10","Placeholder","Template9","Image","img","Dimmer","MwButton","ModalContent","Zoom","src","defaultClickOptions","imgProps","modalOpened","setModalOpened","alt","searched","_setSearched","allowEmptySearch","withSearch","setSearched","onClear","EmptyMessage","getInstance","item","isDynamic","intialOptions","optionSpacing","Submenu","setAppliedFilters","setFirstRender","newOptions","force","changed","firstRender","onClickOption","labels","optionsParser","Filters","items","Title","Item","AppliedFilters","appliedFilters","onSubmitSearch","onRemove","cols","aligns","self","horizontal","vertical","around","between","Col","w","spacingAround","align","styles","fontColor","backgroundColor","hover","pointer","_props","colProps","ellipsis","rows","Grid","gridProps","horizontalAligns","verticalAligns","Row","horizontalAlign","verticalAlign","striped","even","odd","rowProps","GridComponent","FontStyles","createGlobalStyle","Globals","opacity","typography","ifDark","ifLight","hex","luminosity","ThemeProvider"],"mappings":"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AAU,YAAUgC,KAAV;GARZ,CAHJ,CADF;AAiBD,CAnCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/theme/constants.ts","../src/functions/common.ts","../src/functions/validators.ts","../src/functions/formatters.ts","../src/components/Loader/index.ts","../src/components/Button/constants.ts","../src/components/Button/styles.ts","../src/components/Button/index.tsx","../src/assets/icons/feather/index.ts","../src/components/Icon/styled.ts","../src/components/Icon/index.tsx","../src/components/TextArea/styles.ts","../src/components/TextArea/index.tsx","../src/components/EllipsisContainer/styled.tsx","../src/components/EllipsisContainer/index.tsx","../src/components/ScrollContainer/index.tsx","../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/components/Menu/styles.ts","../src/components/Menu/index.tsx","../src/components/Indicator/styles.ts","../src/components/Indicator/index.tsx","../src/components/ProgressBar/styles.ts","../src/components/ProgressBar/index.tsx","../src/components/Tabs/styles.ts","../src/components/Tabs/index.tsx","../src/components/Input/components/Input/functions.ts","../src/components/Input/components/Input/styles.ts","../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/Input/components/Time/index.tsx","../src/components/Calendar/styles.ts","../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/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/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/index.tsx","../src/components/Input/components/Select/styles.ts","../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.ts","../src/components/Input/components/Range/index.tsx","../src/components/Input/components/RadioButton/styles.ts","../src/components/Input/components/RadioButton/index.tsx","../src/components/CalendarInterval/styles.ts","../src/components/CalendarInterval/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/index.tsx","../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/Card/styled.ts","../src/components/Card/index.tsx","../src/components/Toast/styles.ts","../src/components/Toast/index.tsx","../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/Zoom/styles.ts","../src/components/Zoom/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/index.tsx","../src/components/Filters/AppliedFilters/styles.ts","../src/components/Filters/AppliedFilters/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/components/Button/theme.ts","../src/components/theme.ts","../src/theme/globals.tsx","../src/theme/index.tsx"],"sourcesContent":["import { Typographies } from './interfaces'\r\n\r\nexport const colors = {\r\n white: '#FFFFFF',\r\n iceWhite: '#F9F8F8',\r\n black: '#000000',\r\n blue: '#3455AB',\r\n lightBlue: '#2D9AFF',\r\n darkestBlue: '#121B2E',\r\n darkBlue: '#192338',\r\n greyishBlue: '#263046',\r\n darkSilver: '#525A6A',\r\n silver: '#B2B2B2',\r\n darkestGrey: '#989898',\r\n darkGrey: '#949494',\r\n grey: '#ADADAD',\r\n lightGrey: '#C8C8C8',\r\n lightestGrey: '#E2E2E3',\r\n purple: '#8E66BB',\r\n orange: '#FB8702',\r\n yellow: '#FBCB01',\r\n red: '#C31717',\r\n darkestGreen: '#1E561F',\r\n darkGreen: '#129105',\r\n green: '#76B100',\r\n lightGreen: '#66BB6A',\r\n pink: '#E23851',\r\n brown: '#9F3A38',\r\n vanilla: '#CCBEA0',\r\n bronze: '#7A4D05',\r\n warningGray: '#E6E6E6',\r\n warningYellow: '#FBCF30',\r\n warningRed: '#EF5350',\r\n floralWhite: '#FFFAF3',\r\n snowWhite: '#FFF6F6',\r\n milkWhite: '#FCFFF5',\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","export 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","import { dateToIsoString, stripAccents } 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\nexport const isDateEquals = (x: Date, y: Date, time = true): boolean => {\n const xStr = dateToIsoString(x, time, true, 'us')\n const yStr = dateToIsoString(y, time, true, 'us')\n return xStr === yStr\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 { SpacingOrZero, Spacings } from '../interfaces'\nimport { spacings } from '../theme/constants'\nimport {\n isBoolean,\n isNumber,\n isNumericString,\n notEmptyString,\n} from './validators'\nimport { isKeyOf, isObject } from './common'\n\nexport const filterObject = <T = unknown, R = unknown>(\n object: T,\n keys: (keyof T)[],\n inital = {} as Partial<R>,\n): R => {\n const r = (Object.keys(object) as (keyof T)[])\n .filter((key) => !keys.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 keys = Object.keys(labels) as (keyof typeof labels)[]\n keys.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 date = new Date(value.split('/').reverse().join('-') + ' 00:00:00')\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 } 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 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(value)) {\n const r = (Object.keys(value) as (keyof T)[]).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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype EmptyObject = Record<string | number | symbol, any>\n\nexport const keys = <T extends EmptyObject>(value: T): (keyof T)[] => {\n return Object.keys(value) as (keyof T)[]\n}\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 size = size || theme.spacings.s4\n borderSize = borderSize || `calc(${size} * 0.0757)`\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","export const sizes = {\r\n tiny: '21px' as string | number,\r\n mini: '31px' as string | number,\r\n small: '33px' as string | number,\r\n large: '41px' as string | number,\r\n big: '46px' as string | number,\r\n default: '33px' as string | number,\r\n} as const\r\n\r\nexport const fontSizes: typeof sizes = {\r\n tiny: '10px',\r\n mini: '12px',\r\n small: '14px',\r\n large: '16px',\r\n big: '18px',\r\n default: '14px',\r\n} as const\r\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 font-size: ${({ size, theme }) => {\r\n const { fontSizes } = theme.components.button\r\n\r\n return size ? fontSizes[size] : fontSizes.default\r\n }};\r\n\r\n height: ${({ size, theme, appearance }) => {\r\n if (appearance === 'link') return 'auto'\r\n\r\n const { sizes } = theme.components.button\r\n\r\n return size ? sizes[size] : sizes.default\r\n }};\r\n\r\n background-color: ${({ appearance, color, theme }) => {\r\n if (['bordered', 'link', 'bordeless'].includes(appearance)) {\r\n return 'transparent'\r\n }\r\n\r\n return theme.getColor(color || 'blue')\r\n }};\r\n\r\n border: ${({ appearance, color, theme }) => {\r\n if (appearance !== 'bordered') {\r\n return 'none'\r\n }\r\n\r\n return `1px solid ${theme.getColor(color || 'blue')}`\r\n }};\r\n\r\n color: ${({ appearance, color, loading, theme }) => {\r\n if (loading) return 'transparent'\r\n\r\n if (['link', 'bordeless'].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 ${({ appearance, loading, theme }) => {\r\n if (['bordered', 'link', 'bordeless'].includes(appearance)) {\r\n return css`\r\n opacity: 0.3;\r\n pointer-events: none;\r\n `\r\n }\r\n\r\n return css`\r\n background-color: ${theme.getColor('greyishBlue', 10)};\r\n color: ${loading ? 'transparent' : theme.getColor('greyishBlue', 30)};\r\n pointer-events: none;\r\n `\r\n }}\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', 'bordeless'].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 `\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', 'bordeless'].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 _size = defaultValues.size ? sizes[defaultValues.size] : sizes.default\r\n\r\n return (\r\n <S.Button {...defaultValues} {...htmlProps}>\r\n <span>{children || content}</span>\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={`calc(${_size} * 0.5454)`}\r\n borderSize={`calc(${_size} * 0.0757)`}\r\n />\r\n )}\r\n </S.Button>\r\n )\r\n}\r\n\r\nexport default Button\r\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\ninterface SVGContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n color: string\n strokeWidth?: string\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","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 color={color} strokeWidth={props.strokeWidth}>\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 color={color} strokeWidth={props.strokeWidth}>\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 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 from 'styled-components'\n\nexport const EllipsisContainer = styled.div`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`\n","import React from 'react'\n\nimport * as S from './styled'\n\nconst EllipsisContainer = (props: React.HTMLAttributes<HTMLDivElement>) => {\n const myProps: React.HTMLAttributes<HTMLDivElement> = { ...props }\n\n const _onMouseOver = myProps.onMouseOver || (() => {})\n\n myProps.onMouseOver = (event) => {\n _onMouseOver(event)\n\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 (target.scrollWidth > target.offsetWidth) {\n target.title = target.innerText\n } else target.removeAttribute('title')\n }\n\n return <S.EllipsisContainer {...myProps} data-ellipsis='' />\n}\n\nexport default EllipsisContainer\n","import React, { useState } from 'react'\nimport styled, { css } from 'styled-components'\nimport { filterObject, getSpacings } from '../../functions/formatters'\nimport Loader from '../Loader'\n\nimport { OverflowContainerProps, ScrollContainerProps } from './interfaces'\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\nconst OverflowContainer = styled.div<OverflowContainerProps>`\n overflow-y: scroll;\n overflow-y: overlay;\n width: 100%;\n\n max-height: ${({ height }) => height || '100%'};\n\n scrollbar-color: ${({ theme }) =>\n `${theme.colors.grey} ${theme.colors.white}`};\n scrollbar-width: auto;\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, 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\nconst RelativeContainer = styled.div`\n position: relative;\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n`\n\nconst ScrollContainer = (props: ScrollContainerProps) => {\n const { before, after, loading, inner } = 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 = target.scrollHeight - target.clientHeight\n const scrollTop = target.scrollTop\n\n if (scrollTopMax !== 0 && scrollTopMax === scrollTop) {\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 React.HTMLAttributes<HTMLDivElement>\n >(props, ['onScrollEnd', 'before', 'after', 'loading'])\n\n return (\n <Container>\n {before}\n <RelativeContainer>\n {inner || (\n <OverflowContainer\n {...htmlProps}\n onScroll={(event: React.UIEvent<HTMLDivElement, UIEvent>) => {\n _onScroll(event)\n onScroll(event)\n }}\n />\n )}\n\n {loading && <Loader filled size='43px' borderSize='2px' />}\n </RelativeContainer>\n {after}\n </Container>\n )\n}\n\nexport default ScrollContainer\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 { useTransition } from '../Transition'\n\nimport { ContainerProps, Position, References } from './interfaces'\n\nconst positions: {\n [key in Position]: (reference: References) => FlattenSimpleInterpolation\n} = {\n 'top right': ({ bottom, left }) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n left: ${left || '100%'};\n `,\n 'top left': ({ bottom, right }) => css`\n top: ${bottom ? `calc(100% - ${bottom})` : 0};\n right: ${right || '100%'};\n `,\n 'bottom right': ({ top, left }) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n left: ${left || '100%'};\n `,\n 'bottom left': ({ top, right }) => css`\n bottom: ${top ? `calc(100% - ${top})` : 0};\n right: ${right || '100%'};\n `,\n 'right top': ({ bottom }) => css`\n bottom: ${bottom || '100%'};\n right: 0;\n `,\n 'right bottom': ({ top }) => css`\n top: ${top || '100%'};\n right: 0;\n `,\n 'left top': ({ bottom }) => css`\n bottom: ${bottom || '100%'};\n left: 0;\n `,\n 'left bottom': ({ top }) => css`\n top: ${top || '100%'};\n left: 0;\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 }\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 ${({ position, references }) => {\n if (!position) {\n return css`\n visibility: collapse;\n `\n }\n return positions[position](references || {})\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","import React, { useEffect, useImperativeHandle, useState } 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 } = 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 = (): Position | null => {\n if (!ref) return null\n\n const width = window.innerWidth\n const height = window.innerHeight\n const { top, left } = ref.getBoundingClientRect()\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 }\n\n const [position, setPosition] = useState<Position | null>(\n props.position || getPosition,\n )\n\n useImperativeHandle(fowardedRef, () => ref as HTMLDivElement)\n\n useEffect(() => {\n if (props.position) return\n setPosition(getPosition)\n }, [ref])\n\n const htmlProps = filterObject<\n AbsoluteContainerProps,\n React.HTMLAttributes<HTMLDivElement>\n >(props, ['center', 'position', 'children'])\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>{props.children}</div>\n </S.Container>\n )}\n />\n )\n },\n)\n\nAbsoluteContainer.displayName = 'AbsoluteContainer'\n\nexport default AbsoluteContainer\n","import styled, { css } from 'styled-components'\nimport { getSpacings } 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 display: flex;\n\n > :nth-child(1) {\n flex: 1;\n }\n\n ${({ 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 :hover {\n background-color: ${({ theme }) => theme.colors.iceWhite};\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 from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport { isString } from '../../functions/validators'\nimport EllipsisContainer from '../EllipsisContainer'\nimport Icon from '../Icon'\nimport ScrollContainer from '../ScrollContainer'\n\nimport { ContainerProps, MenuInterface } from './interfaces'\nimport * as S from './styles'\n\nconst MenuComponent: MenuInterface = (props, ref) => {\n const {\n close,\n options,\n onScrollEnd,\n before,\n after,\n scrollSpacing,\n children,\n loading,\n innerContent,\n } = { ...props }\n\n const absoluteContainerProps = filterObject<\n typeof props,\n Omit<ContainerProps, 'transition'>\n >(\n props,\n [\n 'scrollSpacing',\n 'onScrollEnd',\n 'before',\n 'after',\n 'close',\n 'options',\n 'loading',\n 'children',\n ],\n {\n itemSpacing: 's1',\n },\n )\n\n return (\n <S.Container {...absoluteContainerProps} ref={ref}>\n <React.Fragment>\n <ScrollContainer\n onScrollEnd={onScrollEnd}\n before={before}\n after={after}\n inner={innerContent}\n spacing={scrollSpacing}\n loading={loading}\n >\n {options.map((option, index) => {\n const { delimiter, keepOpen, caret } = { ...option }\n\n const label = isString(option.label)\n ? { text: option.label, element: option.label }\n : option.label\n\n const closeMenu = keepOpen ? () => {} : close\n\n let onClick: React.MouseEventHandler<HTMLDivElement> | undefined\n let disabled: boolean | undefined\n\n const rules = option.rules || []\n const rule = rules.find((rule) => {\n return !rule.rule(index)\n })\n\n if (rule === undefined) {\n const _onClick = option.onClick || (() => {})\n\n onClick = () => {\n _onClick(index)\n closeMenu()\n }\n } else {\n // TODO: exibir popup com a mensagem da regra\n disabled = true\n }\n\n return (\n <React.Fragment key={index}>\n <S.Option onClick={onClick} disabled={disabled}>\n {isString(label.element) ? (\n <EllipsisContainer>{label.element}</EllipsisContainer>\n ) : (\n label.element\n )}\n\n {caret ? (\n <Icon type='semantic' icon='caret right' width='14px' />\n ) : null}\n </S.Option>\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'\nimport { IndicatorProps } from './interfaces'\n\ninterface ContainerProps {\n props: IndicatorProps\n}\n\nexport const Container = styled.div<ContainerProps>`\n display: flex;\n align-items: center;\n div {\n border-radius: 50%;\n width: ${({ props }) => (props.size === 'medium' ? '15px' : '6px')};\n height: ${({ props }) => (props.size === 'medium' ? '15px' : '6px')};\n\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 span {\n display: inline-block;\n margin-left: 8px;\n color: ${(props) => props.props.labelColor};\n }\n`\n","import React from 'react'\nimport { IndicatorProps } from './interfaces'\nimport * as S from './styles'\n\nconst Indicator = (props: IndicatorProps) => {\n return (\n <S.Container props={props}>\n <div></div>\n <span> {props.description} </span>\n </S.Container>\n )\n}\n\nexport default Indicator\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, { css } from 'styled-components'\n\nimport { StyledTabsProps } from './interfaces'\n\nexport const Container = styled.div<StyledTabsProps>`\n display: block;\n border-bottom-style: solid;\n\n ${({ theme, internal }) => css`\n margin-bottom: ${theme.spacings.s2};\n border-bottom-width: ${internal ? '1px' : '2px'};\n border-bottom-color: ${internal\n ? theme.getColor('lightestGrey', 50)\n : theme.colors.blue};\n `}\n`\n\nexport const Tabs = styled.ul<StyledTabsProps>`\n user-select: none;\n list-style: none;\n display: inline-flex;\n gap: 1px;\n padding: 0;\n margin: 0;\n\n ${({ theme, internal }) => css`\n height: ${internal ? '41px' : '49px'};\n box-shadow: 0 0 10px 0 ${theme.getColor('black', 10)};\n `}\n`\n\nexport const Tab = styled.li<StyledTabsProps>`\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 4px 4px 0 0;\n\n svg {\n transform: scale(calc(18 / 24));\n stroke-width: 2px;\n }\n\n ${({ theme, active }) => css`\n background-color: ${theme.colors[active ? 'blue' : 'white']};\n padding: 0 ${theme.spacings.s2};\n gap: ${theme.spacings.s2};\n\n span {\n font-family: ${theme.typographies.h2.fontFamily};\n font-size: ${theme.typographies.h2.fontSize};\n font-weight: ${theme.typographies.h2.fontWeight};\n\n color: ${theme.colors[active ? 'white' : 'darkBlue']};\n }\n\n svg {\n stroke: ${theme.colors[active ? 'white' : 'darkBlue']};\n\n &:hover {\n stroke: ${theme.colors.red};\n }\n }\n `}\n`\n","import React, { useState } from 'react'\n\nimport { ReactComponent as CloseIcon } from '../../assets/icons/close.svg'\nimport { TabProps, TabsProps } from './interfaces'\nimport * as S from './styles'\n\nconst Tabs = (props: TabsProps) => {\n const { options, activeState, internal } = props\n\n const [tabs, setTabs] = useState<TabProps[]>(options)\n const [active, setActive] = activeState\n\n const updateActiveTab = (\n index: number,\n event: React.MouseEvent<HTMLLIElement, MouseEvent>,\n ) => {\n const element = event.target as HTMLElement\n if (element.tagName === 'svg') return\n\n setActive(index)\n }\n\n const removeTab = (index: number) => {\n setTabs((prevState) => {\n const aux = [...prevState]\n\n if (index === active) {\n setActive(index > 0 ? index - 1 : 1)\n }\n\n aux.splice(index, 1)\n\n return aux\n })\n }\n\n return (\n <S.Container>\n <S.Tabs internal={+(internal || false)}>\n {tabs.map((tab, index) => (\n <S.Tab\n key={index}\n active={+(active === index)}\n onClick={(event) => updateActiveTab(index, event)}\n >\n <span>{tab.label}</span>\n <CloseIcon onClick={() => removeTab(index)} />\n </S.Tab>\n ))}\n </S.Tabs>\n </S.Container>\n )\n}\n\nexport default Tabs\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","import styled, { css } from 'styled-components'\nimport {\n StyledInputProps,\n StyledLabelProps,\n StyledLabelTextProps,\n} from './interfaces'\n\nexport const IconContainer = styled.button`\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 17px;\n\n background-color: transparent;\n border: none;\n box-shadow: none;\n padding: 0;\n\n ${({ onClick, disabled }) => {\n if (!onClick || disabled) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\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\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: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n\n ${({ theme, paddingless }) => {\n if (paddingless) return\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s3};\n `\n }};\n\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 border-radius: 4px;\n\n ${({ theme, 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 }) => {\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) return\n\n return css`\n cursor: ${!onClick || disabled ? 'unset' : 'pointer'};\n `\n }}\n`\n\nexport const Label = styled.label<StyledLabelProps>`\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 > ${IconContainer} {\n bottom: ${({ theme, paddingless }) => {\n return paddingless ? '2px' : `calc(${theme.spacings.s2} + 1px)`\n }};\n }\n\n ${({ theme, icon, paddingless }) => {\n if (!icon) return\n\n const { width, position } = icon\n\n const padding = paddingless ? '0px' : theme.spacings.s3\n\n if (position === 'right') {\n return css`\n > ${IconContainer} {\n width: ${width};\n right: calc(${padding} / 2);\n }\n\n > ${Input} {\n padding-right: calc(${padding} + ${width});\n }\n `\n }\n\n return css`\n > ${IconContainer} {\n width: ${width};\n left: calc(${padding} / 2);\n }\n\n > ${Input} {\n padding-left: calc(${padding} + ${width});\n }\n `\n }}\n`\nexport const LabelText = styled.div<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 from 'react'\n\nimport MwIcon from '../../../Icon'\n\nimport { filterObject } from '../../../../functions/formatters'\nimport { IconProps } from '../../../Icon/interfaces'\nimport Loader from '../../../Loader'\nimport { getMask } from './functions'\n\nimport { InputProps, StyledInputProps } from './interfaces'\nimport * as S from './styles'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref: React.ForwardedRef<HTMLInputElement>) => {\n const {\n label,\n required,\n invalid,\n disabled,\n loading,\n clearable,\n onPressEnter,\n htmlDisabled,\n width,\n arrows,\n borderless,\n paddingless,\n } = {\n ...props,\n }\n\n const mask = getMask(props.mask)\n\n const intInvalid = invalid ? 1 : 0\n const intRequired = required ? 1 : 0\n const intDisabled = disabled ? 1 : 0\n const intArrows = arrows ? 1 : 0\n const intBorderless = borderless ? 1 : 0\n const intPaddingless = paddingless ? 1 : 0\n\n let position\n let iconWidth\n let iconSubmit\n let iconOnClick\n let icon: IconProps | undefined\n\n if (props.icon) {\n icon = { ...props.icon.icon }\n\n position = props.icon.position || 'right'\n\n if (intInvalid) icon.color = 'warningRed'\n\n iconWidth = icon.width\n iconSubmit = props.icon.submit\n iconOnClick = props.icon.onClick\n }\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 'width',\n 'inputWidth',\n 'arrows',\n 'borderless',\n 'paddingless',\n ],\n {\n invalid: intInvalid,\n type: 'text',\n arrows: intArrows,\n borderless: intBorderless,\n paddingless: intPaddingless,\n width: props.inputWidth,\n },\n )\n\n const onChange = inputProps.onChange || (() => {})\n const setValue = props.setValue || (() => {})\n\n inputProps.onChange = (event) => {\n event.target.value = mask(event.target.value)\n onChange(event)\n setValue(event.target.value)\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 const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyDown(event)\n\n if (v !== target.value) setValue(target.value)\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 if (loading) {\n position = position || 'right'\n icon = {\n type: 'jsx',\n icon: <Loader size='14px' />,\n width: '14px',\n }\n inputProps.disabled = true\n } else if (clearable) {\n position = position || 'right'\n\n iconOnClick =\n typeof clearable === 'function' ? clearable : () => setValue('')\n\n icon = {\n type: 'feather',\n icon: 'x',\n width: '14px',\n }\n }\n\n const iconProps = position\n ? {\n position: position as 'left' | 'right',\n width: iconWidth || '24px',\n }\n : undefined\n\n if (htmlDisabled) inputProps.disabled = true\n\n return (\n <S.Label\n disabled={intDisabled}\n invalid={intInvalid}\n paddingless={intPaddingless}\n icon={iconProps}\n width={width}\n >\n {label && <S.LabelText required={intRequired}>{label}</S.LabelText>}\n\n <S.Input {...inputProps} ref={ref} />\n\n {icon && (\n <S.IconContainer\n type={iconSubmit ? 'submit' : 'button'}\n onClick={iconOnClick}\n disabled={props.disabled}\n >\n <MwIcon {...icon} />\n </S.IconContainer>\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 { LabelProps } from './interfaces'\n\nconst width = '17px'\n\nexport const Checkmark = styled.span`\n position: absolute;\n top: 0px;\n left: 0;\n height: ${width};\n width: ${width};\n background-color: ${({ theme }) => theme.colors.white};\n\n border-style: solid;\n border-color: ${({ theme }) => theme.colors.lightGrey};\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\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n\n display: block;\n\n ${({ 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 }) => {\n if (!disabled) {\n return css`\n cursor: pointer;\n `\n }\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > div {\n display: flex;\n align-items: center;\n position: relative;\n\n padding-left: calc(${width} + ${({ theme }) => theme.spacings.s1});\n user-select: none;\n min-height: 17px;\n\n > div:first-child {\n display: inline-block;\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n }\n\n > input {\n position: absolute;\n opacity: 0;\n height: 0;\n width: 0;\n }\n\n :hover ${Checkmark} {\n background-color: ${({ theme }) => theme.colors.iceWhite};\n }\n\n > input:checked ~ ${Checkmark} {\n border-color: ${({ theme }) => theme.colors.blue};\n\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 }) => {\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`\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { CheckboxProps } from './interfaces'\nimport * as S from './styles'\n\nconst Checkbox = React.forwardRef(\n (props: CheckboxProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { label, disabled, required, invalid, padding } = props\n\n const htmlProps = filterObject<\n CheckboxProps,\n React.InputHTMLAttributes<HTMLInputElement>\n >(props, ['label', 'invalid', 'required', 'padding'])\n\n return (\n <S.Label\n disabled={disabled ? 1 : 0}\n required={required ? 1 : 0}\n invalid={invalid ? 1 : 0}\n padding={padding}\n >\n <div>\n <div>{label}</div>\n <input {...htmlProps} type='checkbox' ref={ref} />\n <S.Checkmark />\n </div>\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","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\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 target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':')\n } else {\n date.setMinutes(m + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n ].join(':')\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 target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':')\n } else {\n date.setMinutes(m - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n target.value = [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n ].join(':')\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 styled, { css } from 'styled-components'\nimport MwAbsoluteContainer from '../AbsoluteContainer'\n\nexport const Container = styled.div`\n display: inline-block;\n background-color: ${({ theme }) => theme.colors.white};\n padding: ${({ theme }) => theme.spacings.s1};\n\n > div:nth-child(1) {\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n }\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 Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`\n\nexport const MonthContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n > div {\n margin: ${({ theme }) => theme.spacings.s1} 0;\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: 0.5px solid transparent;\n background-color: transparent;\n cursor: pointer;\n border: none;\n\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n :disabled {\n visibility: hidden;\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 active: 1 | 0\n color?: 'grey' | 'blue'\n}\n\nexport const DayContainer = styled.button<DayContainerProps>`\n ${({ theme, color }) => {\n if (color === 'grey') {\n return css`\n background-color: ${theme.getColor('greyishBlue', 10)};\n `\n } else if (color === 'blue') {\n return css`\n background-color: ${theme.colors.white};\n\n :not(:disabled) {\n background-color: ${theme.getColor('blue', 30)};\n }\n `\n }\n\n return css`\n background-color: ${theme.colors.white};\n `\n }};\n\n :disabled {\n color: ${({ theme }) => theme.colors.silver};\n }\n\n transition-property: background-color color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n\n :not(:disabled) {\n cursor: pointer;\n }\n\n ${({ active, theme }) => {\n if (active !== 1) {\n return css`\n :not(:disabled) {\n :hover {\n border-color: ${({ theme }) => theme.colors.blue};\n color: ${({ theme }) => theme.colors.blue};\n }\n }\n `\n }\n return css`\n color: ${theme.colors.white};\n background-color: ${theme.colors.blue};\n\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.blue};\n }\n `\n }}\n`\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport { AbsoluteContainerProps } from '../AbsoluteContainer/interfaces'\nimport Button from '../Button'\nimport Icon from '../Icon'\nimport Input from '../Input/components/Time'\n\nimport { CalendarProps } from './interfaces'\nimport * as S from './styles'\n\ninterface Calendar {\n month: number\n year: number\n weeks: Date[][]\n}\n\nconst 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\nconst getCalendar = (d: Date): Calendar => {\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\nconst Calendar = (props: CalendarProps) => {\n const { overlay, time: timeProps, notAbsolute, initalValue } = props\n\n const [value, _setValue] =\n props.value ||\n useState<Date | null>(\n initalValue && !isNaN(initalValue.getTime()) ? initalValue : null,\n )\n\n const withoutTime: { min?: Date; max?: Date } = {}\n\n let max: Date | undefined\n if (props.max) {\n max = new Date(props.max.getTime())\n withoutTime.max = new Date(props.max.getTime())\n withoutTime.max.setHours(0, 0, 0, 0)\n }\n\n let min: Date | undefined\n if (props.min) {\n min = new Date(props.min.getTime())\n withoutTime.min = new Date(props.min.getTime())\n withoutTime.min.setHours(0, 0, 0, 0)\n }\n\n const [invalid, setInvalid] = props.invalid || useState<boolean>(false)\n\n const [calendar, setCalendar] = useState<Calendar>(\n getCalendar(value || max || min || new Date()),\n )\n const [time, setTime] = useState<string>(() => {\n if (!value) return ''\n const h = value.getHours()\n const m = value.getMinutes()\n const s = value.getSeconds()\n\n return [h, m, s].map((v) => v.toString().padStart(2, '0')).join(':')\n })\n\n useEffect(() => {\n if (!value) return\n setValue(value)\n }, [time])\n\n const updateInvalid = useCallback(\n (value: Date | null) => {\n if (timeProps) {\n if (timeProps.seconds) {\n setInvalid(\n value === null ||\n (timeProps && timeProps.seconds && time.length < 8) ||\n (max !== undefined && value > max) ||\n (min !== undefined && value < min),\n )\n } else {\n setInvalid(\n value === null ||\n time.length < 5 ||\n (max !== undefined && value > max) ||\n (min !== undefined && value < min),\n )\n }\n } else {\n setInvalid(\n value === null ||\n (max !== undefined && value > max) ||\n (min !== undefined && value < min),\n )\n }\n },\n [time, value, max, min],\n )\n\n useEffect(() => {\n updateInvalid(value)\n }, [updateInvalid, value])\n\n const setValue = timeProps\n ? (date: Date | null) => {\n if (date === null) {\n _setValue(date)\n return\n }\n\n const splitted = time.split(':').map((v) => parseInt(v.padEnd(2, '0')))\n\n const copy = new Date(date.getTime())\n copy.setHours(\n splitted[0] || 0,\n splitted[1] || 0,\n splitted[2] || 0,\n splitted[3] || 0,\n )\n\n _setValue(copy)\n updateInvalid(copy)\n }\n : _setValue\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 =\n min !== undefined &&\n (calendar.year < min.getFullYear() ||\n (calendar.year === min.getFullYear() &&\n calendar.month <= min.getMonth()))\n\n return (\n <S.NavBtn\n type='button'\n onClick={() => changeMonth(-1)}\n disabled={disabled}\n >\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 =\n max !== undefined &&\n (calendar.year > max.getFullYear() ||\n (calendar.year === max.getFullYear() &&\n calendar.month >= max.getMonth()))\n\n return (\n <S.NavBtn\n type='button'\n onClick={() => changeMonth(1)}\n disabled={disabled}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n let hasHighlight: (date: Date) => boolean = () => false\n\n if (value && overlay && overlay.value !== null) {\n const d = new Date(overlay.value.getTime())\n d.setHours(0, 0, 0, 0)\n\n const withoutTimeValue = new Date(value.getTime())\n withoutTimeValue.setHours(0, 0, 0, 0)\n\n hasHighlight =\n overlay.type === 'after'\n ? (date: Date) => {\n return date > withoutTimeValue && date <= d\n }\n : (date: Date) => {\n return date < withoutTimeValue && date >= d\n }\n }\n\n const _onSubmit = props.onSubmit || {}\n const onSubmit = {\n disabled: invalid,\n onClick: () => {},\n ..._onSubmit,\n }\n\n const content = (\n <S.Container>\n <div>\n <S.Header>\n <S.MonthContainer>\n {getPrev()}\n <div>\n {months[calendar.month]} {calendar.year}\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 day = date.getDate()\n const month = date.getMonth()\n\n let disabled: boolean | undefined\n let color: 'grey' | 'blue' | undefined\n\n if (month !== calendar.month) disabled = true\n if (\n (withoutTime.max && date > withoutTime.max) ||\n (withoutTime.min && date < withoutTime.min)\n ) {\n disabled = true\n color = 'grey'\n } else if (hasHighlight(date)) {\n color = 'blue'\n }\n\n const active =\n value &&\n date.toLocaleDateString() === value.toLocaleDateString()\n ? 1\n : 0\n\n const onClick =\n active === 0 ? () => setValue(date) : () => setValue(null)\n\n return (\n <S.DayContainer\n key={index}\n type='button'\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n active={active}\n color={color}\n >\n {day}\n </S.DayContainer>\n )\n })}\n </S.WeekContainer>\n )\n })}\n </div>\n\n {timeProps !== undefined || props.onSubmit !== undefined ? (\n <S.Footer>\n {timeProps ? (\n <Input\n {...timeProps}\n type='time'\n value={time}\n setValue={setTime}\n invalid={\n time.length !== 0 &&\n ((value !== null && invalid) || time.length < 5)\n }\n width={timeProps.seconds ? '86px' : '66px'}\n />\n ) : (\n <div />\n )}\n\n {props.onSubmit && (\n <Button\n onClick={() => onSubmit.onClick(value)}\n disabled={onSubmit.disabled}\n type='button'\n content='Aplicar'\n />\n )}\n </S.Footer>\n ) : undefined}\n </S.Container>\n )\n\n const absoluteContainerProps = filterObject<\n CalendarProps,\n Omit<AbsoluteContainerProps, 'onSubmit'>\n >(props, [\n 'value',\n 'initalValue',\n 'max',\n 'min',\n 'overlay',\n 'time',\n 'onSubmit',\n 'invalid',\n 'notAbsolute',\n 'references',\n ])\n\n return notAbsolute ? (\n content\n ) : (\n <S.AbsoluteContainer axis='y' maxHeight='322px' {...absoluteContainerProps}>\n {content}\n </S.AbsoluteContainer>\n )\n}\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'\nimport { IconProps } from '../../../Icon/interfaces'\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 target.value = 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 target.value = 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 = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n } as IconProps,\n position: 'right' as 'right' | 'left',\n onClick: () => setOpen((prev) => !prev),\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 open={open}\n initalValue={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 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} calc(${theme.spacings.s3} * 0.75)\n ${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 search: [search],\n searchInput: [searchInput, setSearchInput],\n onClearSearch,\n onSearch,\n loading,\n } = context\n\n return (\n <S.HeaderContainer>\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n onPressEnter={onSearch}\n clearable={\n searchInput !== '' && searchInput === search\n ? onClearSearch\n : undefined\n }\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n onClick: onSearch,\n }}\n loading={loading}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React, { useState } from 'react'\nimport { isString } from '../../../../../../functions/validators'\nimport { ParsedOption, useSelectReturn } from '../interfaces'\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\n\nconst getOptions = (props: SelectProps, options: Option[]): ParsedOption[] => {\n return options.map((option, index) => {\n const label = isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label\n\n const { value, onClick } = option\n\n return {\n label,\n onClick: onClick\n ? () => {\n onClick(index, { label, value })\n }\n : () => {\n props.setValue(value)\n },\n }\n })\n}\n\nconst getInputValue = (\n value: string,\n options: Option[],\n parsedOptions: ParsedOption[],\n): string => {\n const selectedIndex = options.findIndex((option) => option.value === value)\n const selected = parsedOptions[selectedIndex]\n\n return selected ? selected.label.text : ''\n}\n\nconst useSelect = (props: SelectProps): useSelectReturn => {\n const [options, setOptions] = useState<Option[]>([])\n\n const parsedOptions = getOptions(props, options)\n\n const inputValue = getInputValue(props.value, options, parsedOptions)\n\n const onReset = () => {}\n\n return {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n input: {\n value: inputValue,\n },\n onReset,\n menu: {\n itemSpacing: 's3',\n before: <Header />,\n maxHeight: '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\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: { setValue },\n checked: [checked],\n setOpen,\n } = context\n\n const onClick = () => {\n setValue([...checked])\n setOpen(false)\n }\n\n return (\n <Button\n type='button'\n content='Aplicar'\n onClick={onClick}\n style={{ marginRight: '-3.5px' }}\n />\n )\n}\n\nexport default Footer\n","import styled, { css } from 'styled-components'\n\nexport const HeaderContainer = styled.div`\n ${({ theme }) => css`\n padding: ${theme.spacings.s3} calc(${theme.spacings.s3} * 0.75)\n ${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 Button from '../../../../../../../Button'\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 search: [search],\n searchInput: [searchInput, setSearchInput],\n onSearch,\n onClearSearch,\n loading,\n options,\n } = context\n\n const onClick = () => {\n setChecked((prev) =>\n prev.length === options.length\n ? []\n : options.map((option) => option.value),\n )\n }\n\n return (\n <S.HeaderContainer>\n {context.props.selectAll && (\n <S.SelectAllContainer>\n <b>Selecionados ({checked.length})</b>\n\n <Button\n type='button'\n content='Selecionar todos'\n appearance='link'\n onClick={onClick}\n color='darkBlue'\n />\n </S.SelectAllContainer>\n )}\n\n <Input\n type='search'\n placeholder='Pesquisa'\n setValue={setSearchInput}\n value={searchInput}\n onPressEnter={onSearch}\n clearable={\n searchInput !== '' && searchInput === search\n ? onClearSearch\n : undefined\n }\n icon={{\n icon: {\n type: 'feather',\n icon: 'search',\n },\n onClick: onSearch,\n }}\n loading={loading}\n />\n </S.HeaderContainer>\n )\n}\n\nexport default Header\n","import React, { useState } from 'react'\nimport { Popup } from 'semantic-ui-react'\nimport { isString } from '../../../../../../functions/validators'\nimport Checkbox from '../../../Checkbox'\nimport { ParsedOption, useSelectReturn } from '../interfaces'\nimport Footer from './components/Footer'\nimport Header from './components/Header'\nimport Provider from './context'\nimport { Option, SelectProps } from './interfaces'\n\nconst getOptions = (\n options: Option[],\n checked: string[],\n setChecked: React.Dispatch<React.SetStateAction<string[]>>,\n): ParsedOption[] => {\n return options.map((option) => {\n const label = isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label\n\n return {\n label: {\n text: label.text,\n element: (\n <Checkbox\n type='checkbox'\n checked={checked.includes(option.value)}\n label={\n option.disabled && option.disabledText ? (\n <Popup\n on='click'\n trigger={<div>{label.element}</div>}\n content={option.disabledText}\n position='left center'\n inverted\n wide\n />\n ) : (\n label.element\n )\n }\n disabled={option.disabled}\n onChange={(event) => {\n const isChecked = event.target.checked\n\n setChecked((prev) => {\n const newState = prev.filter((v) => v !== option.value)\n\n if (isChecked) newState.push(option.value)\n\n return newState\n })\n }}\n padding={{\n top: 's3',\n left: 's3',\n right: 's3',\n bottom: 's3',\n }}\n />\n ),\n },\n keepOpen: true,\n }\n })\n}\n\nconst getInputValue = (value: string[]): 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 useSelectMultiple = (props: SelectProps): useSelectReturn => {\n const [options, setOptions] = useState<Option[]>([])\n const [checked, setChecked] = useState<string[]>([...props.value])\n\n const parsedOptions = getOptions(options, checked, setChecked)\n\n const inputValue = getInputValue(props.value)\n\n const onReset = () => {\n setChecked([...props.value])\n }\n\n const returnData: useSelectReturn = {\n parsedOptions: parsedOptions,\n options: [options, setOptions],\n input: {\n value: inputValue,\n },\n onReset,\n menu: {\n itemSpacing: undefined,\n before: <Header />,\n after: <Footer />,\n 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 }\n\n return returnData\n}\n\nexport default useSelectMultiple\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\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 { 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'\n\nexport type SelectProps = SingleSelectProps | MultipleSelectProps\n\nconst Select = React.forwardRef(\n (props: SelectProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { position, loader } = props\n\n const {\n parsedOptions,\n input: { value: inputValue },\n options: [, setOptions],\n onReset,\n menu: menuProps,\n getContext,\n } = props.type === 'select-multiple'\n ? useSelectMultiple(props)\n : useSelect(props)\n\n const [_loading, setLoading] = useState<boolean>(false)\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 const [open, setOpen] = 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>(\n props,\n ['type', 'onScrollEnd', 'position', 'value'],\n { value: inputValue },\n )\n\n const _onScrollEnd = props.onScrollEnd || (() => {})\n\n const onScrollEnd = () => {\n if (!lastPage && !loading) {\n setPage((prev) => prev + 1)\n }\n\n _onScrollEnd()\n }\n\n const onSubmit = useCallback(async () => {\n setLoading(true)\n\n const optionsResult = await loader(search, page)\n\n if (Array.isArray(optionsResult)) {\n setOptions(\n page === 1 ? optionsResult : (prev) => prev.concat(optionsResult),\n )\n setLastPage(true)\n } else {\n setOptions(\n page === 1\n ? optionsResult.options\n : (prev) => prev.concat(optionsResult.options),\n )\n setLastPage(optionsResult.lastPage)\n }\n\n setLoading(false)\n }, [loader, search, page])\n\n useEffect(() => {\n setSearch('')\n }, [loader])\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 const onSearch = () => {\n setSearch(searchInput)\n }\n\n const onClearSearch = () => {\n setSearchInput('')\n setSearch('')\n }\n\n return getContext(\n {\n setOpen,\n search: [search, setSearch],\n searchInput: [searchInput, setSearchInput],\n onSearch,\n onClearSearch,\n loading,\n },\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='search'\n readOnly\n onClick={() => {\n setOpen((prev) => !prev)\n }}\n loading={loading}\n icon={{\n position: 'right',\n icon: {\n type: 'semantic',\n icon: open ? 'caret up' : 'caret down',\n width: '14px',\n },\n }}\n ref={ref}\n />\n\n <Menu\n {...menuProps}\n open={open}\n close={() => setOpen(false)}\n options={parsedOptions}\n onScrollEnd={onScrollEnd}\n width='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 />\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<'none' | 'visible' | 'hidden'>(\n 'none',\n )\n\n const icons = {\n none: {\n icon: 'edit' as keyof typeof feather,\n onClick: () => setVisibility('hidden'),\n },\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 icon: icons[visibility].icon,\n width: '19px',\n }\n\n const _onBlur = props.onBlur || (() => {})\n\n const onBlur: React.FocusEventHandler<HTMLInputElement> = (event) => {\n if (!event.target.value) setVisibility('none')\n _onBlur(event)\n }\n\n return (\n <Input\n {...props}\n type={visibility === 'visible' ? 'text' : 'PASSWORD'}\n icon={{\n icon,\n position: 'right',\n onClick: icons[visibility].onClick,\n }}\n onBlur={onBlur}\n placeholder='••••••••'\n htmlDisabled={visibility === 'none'}\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],\n } = props\n\n return (\n <S.IconContainer>\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 const [country, setCountry] = useState<Country>(countries.br)\n const [open, setOpen] = useState<boolean>(false)\n\n useEffect(() => {\n const details = getPhoneDetails(value || '')\n\n setCountry(details ? details.country : countries.br)\n }, [value])\n\n const options: Option[] = (\n Object.keys(countries) as (keyof typeof countries)[]\n ).map((iso) => ({\n label: {\n text: countries[iso].name,\n element: (\n <S.Label>\n <Flag iso={iso} />\n {countries[iso].name}\n <span>+{countries[iso].ddi}</span>\n </S.Label>\n ),\n },\n onClick: () => {\n setCountry(countries[iso])\n },\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 const details = getPhoneDetails(value || '')\n setCountry(details ? details.country : countries.br)\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\n setValue(`${country.ddi} ${v}`)\n }, [inputValue])\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut<HTMLDivElement>(() => setOpen(false))}\n >\n <Input\n {...props}\n type='text'\n placeholder={country.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 onClick: () => setOpen((prev) => !prev),\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 bottom: 1px;\n left: 1px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 4px;\n\n ${({ theme, iconWidth, paddingless }) => {\n if (paddingless) {\n return css`\n width: calc(100% - 2px - ${iconWidth});\n height: 19px;\n `\n }\n\n return css`\n width: calc(100% - 2px - ${iconWidth} - ${theme.spacings.s3});\n height: 33px;\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 Icon from '../../../Icon'\nimport { IconProps } from '../../../Icon/interfaces'\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(new Date()))\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 = picker\n ? {\n icon: {\n type: 'feather',\n icon: 'calendar',\n width: '24px',\n } as IconProps,\n position: 'right' as 'right' | 'left',\n onClick: () => setOpen((prev) => !prev),\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 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 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 open={open}\n initalValue={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 { LabelProps } from './interfaces'\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\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 position: relative;\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: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 { filterObject } from '../../../../functions/formatters'\nimport { SwitchProps } from './interfaces'\nimport * as S from './styles'\n\nconst Switch = (props: SwitchProps) => {\n const { label, disabled, required, invalid } = props\n\n const htmlProps = filterObject<\n SwitchProps,\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='checkbox' />\n <span></span>\n\n {label && <S.LabelContainer>{label}</S.LabelContainer>}\n </S.Label>\n )\n}\n\nexport default Switch\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\nconst bullet = css`\n appearance: none;\n width: ${({ theme }) => theme.spacings.s4};\n height: ${({ theme }) => theme.spacings.s4};\n border-radius: 100%;\n border-width: 1px;\n border-style: solid;\n background-color: ${({ theme }) => theme.colors.white};\n box-shadow: 0px 1px 3px ${({ theme }) => theme.getColor('black', 10)};\n`\n\nexport const Input = styled.input`\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\ninterface StyledLabelProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n disabled: 1 | 0\n required: 1 | 0\n width?: string\n}\n\nexport const Label = styled.label<StyledLabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n line-height: 19px;\n\n width: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n display: block;\n position: relative;\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n\n > div:first-child {\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`\n\ninterface InputContainerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n}\n\nexport const 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 const MinMaxLabelContainer = styled.div`\n display: flex;\n padding-bottom: 2px;\n`\n\ninterface LabelsContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n position: 'bottom' | 'top'\n}\n\nexport const 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% + 10.5px);\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% + 8px);\n }\n }\n\n ${MinMaxLabelContainer} {\n align-items: end;\n }\n `\n }}\n`\n\ninterface SelectedAreaProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n percent: number\n}\n\nexport const 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 const MarkersContainer = styled.div`\n height: 17px;\n`\n\ninterface MarkerProps extends React.HtmlHTMLAttributes<HTMLDivElement> {\n left: string\n bullet: 1 | 0\n}\n\nexport const Marker = styled.div<MarkerProps>`\n position: absolute;\n top: 0;\n width: 40px;\n text-align: center;\n left: ${({ left }) => left};\n z-index: 2;\n\n :first-child {\n left: 0;\n text-align: left;\n\n :after {\n left: 0;\n }\n }\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 ${({ 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","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport { isObject } from '../../../../functions/validators'\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 = markers[0].value\n const max = 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 Range = React.forwardRef(\n (props: RangeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { label, minLabel, maxLabel, invalid, disabled, required, width } =\n props\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('Invalid value')\n }\n\n const _onChange = props.onChange || (() => {})\n const onChange: React.ChangeEventHandler<HTMLInputElement> = strict\n ? (event) => {\n const index = parseInt(event.target.value)\n const value = markers[index].value\n _onChange(event, value)\n }\n : (event) => {\n const value = parseFloat(event.target.value)\n _onChange(event, value)\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 ],\n {\n min,\n max,\n step,\n onChange,\n value,\n },\n )\n\n return (\n <S.Label\n required={required ? 1 : 0}\n disabled={disabled ? 1 : 0}\n width={width}\n >\n <div>{label}</div>\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 let z = markers.length - 2\n if (z < markers.length - 1) z = markers.length - 1\n const y = 20 / z\n const x = 20 - y * (z - index)\n const p = index * percent\n const left = `calc(${p}% - 10px - ${x}px)`\n\n const bullet = marker.value > value ? 1 : 0\n\n return (\n <S.Marker key={marker.value} left={left} bullet={bullet}>\n {marker.label}\n </S.Marker>\n )\n })}\n </S.MarkersContainer>\n )}\n\n <div>\n <S.Input ref={ref} {...inputProps} />\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 </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.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 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 height: 17px;\n 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 styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: ${({ theme }) =>\n `${theme.spacings.s1} ${theme.spacings.s1} 0px ${theme.spacings.s1}`};\n background-color: ${({ theme }) => theme.colors.white};\n display: flex;\n width: min-content;\n`\n","import React, { useEffect, useState } from 'react'\nimport { filterObject } from '../../functions/formatters'\nimport AbsoluteContainer from '../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../AbsoluteContainer/interfaces'\nimport Calendar from '../Calendar'\nimport { CalendarIntervalProps } from './interfaces'\nimport * as S from './styles'\n\nconst CalendarInterval = (props: CalendarIntervalProps) => {\n const { time } = props\n\n const [start, setStart] =\n props.value && Array.isArray(props.value.start)\n ? props.value.start\n : useState<Date | null>(null)\n\n const [end, setEnd] =\n props.value && Array.isArray(props.value.end)\n ? props.value.end\n : useState<Date | null>(null)\n\n useEffect(() => {\n if (!props.value) return\n\n if (!Array.isArray(props.value.start)) {\n setStart(props.value.start)\n }\n\n if (!Array.isArray(props.value.end)) {\n setEnd(props.value.end)\n }\n }, [props.value])\n\n const [startInvalid, setStartInvalid] = useState<boolean>(false)\n const [endInvalid, setEndInvalid] = useState<boolean>(false)\n\n let min: Date | undefined\n if (props.min) {\n min = new Date(props.min.getTime())\n }\n\n let max: Date | undefined\n if (props.max) {\n max = new Date(props.max.getTime())\n }\n\n let minEnd: Date | undefined\n if (start) {\n minEnd = start\n if (min) {\n minEnd = start >= min ? start : min\n }\n } else if (min) {\n minEnd = min\n }\n\n let maxStart: Date | undefined\n if (end) {\n maxStart = end\n if (max) {\n maxStart = end <= max ? end : max\n }\n } else if (max) {\n maxStart = max\n }\n\n const _onSubmit = props.onSubmit || {}\n const onSubmit = {\n disabled: startInvalid || endInvalid,\n onClick: () => {},\n ..._onSubmit,\n }\n\n const absoluteContainerProps = filterObject<\n CalendarIntervalProps,\n Omit<AbsoluteContainerProps, 'onSubmit'>\n >(props, ['max', 'min', 'value', 'time', 'onSubmit'])\n\n return (\n <AbsoluteContainer axis='y' maxHeight='329px' {...absoluteContainerProps}>\n <S.Container>\n <Calendar\n open\n value={[start, setStart]}\n min={min}\n max={maxStart}\n overlay={{\n type: 'after',\n value: end,\n }}\n time={time}\n invalid={[startInvalid, setStartInvalid]}\n notAbsolute\n />\n <Calendar\n open\n value={[end, setEnd]}\n min={minEnd}\n max={max}\n overlay={{\n type: 'before',\n value: start,\n }}\n time={time}\n invalid={[endInvalid, setEndInvalid]}\n notAbsolute\n onSubmit={{\n onClick: () => onSubmit.onClick(start, end),\n disabled: onSubmit.disabled,\n }}\n />\n </S.Container>\n </AbsoluteContainer>\n )\n}\n\nexport default CalendarInterval\n","import {\n dateToIsoString,\n getFirstWeek,\n getLastWeek,\n getMonthName,\n getWeekNumber,\n} from '../../../../functions/formatters'\nimport { isDateEquals } from '../../../../functions/validators'\n\nimport { IntervalType, IntervalTypes } from './interfaces'\n\nexport const validate: (\n value: [Date, Date],\n min?: Date,\n max?: Date,\n) => boolean = ([start, end], min, max) => {\n if (min && start < min) return false\n if (max && end > max) 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 (isDateEquals(today, prev[0])) 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, 0)\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, 0)\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, 0)\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, 0)\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, 0)\n\n return [start, end]\n },\n },\n custom: {\n label: (prev) => {\n const start = dateToIsoString(prev[0], false, false)\n const end = dateToIsoString(prev[1], false, false)\n\n return `${start} - ${end}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n return [base, base]\n },\n },\n}\n\nexport const identify = (value: [Date, Date]): IntervalType => {\n const [start, end] = value\n\n const isoStart = dateToIsoString(start)\n const isoEnd = dateToIsoString(end)\n\n if (isoStart === isoEnd) {\n const [expectedStart, expectedEnd] = intervalTypes.day.initial(start)\n if (isDateEquals(start, expectedStart) && isDateEquals(end, expectedEnd)) {\n return 'day'\n }\n }\n\n if (start.getUTCDay() === 0) {\n const [expectedStart, expectedEnd] = intervalTypes.week.initial(start)\n if (isDateEquals(start, expectedStart) && isDateEquals(end, expectedEnd)) {\n return 'week'\n }\n }\n\n if (start.getDate() === 1) {\n const [expectedStart, expectedEnd] = intervalTypes.month.initial(start)\n if (isDateEquals(start, expectedStart) && isDateEquals(end, expectedEnd)) {\n return 'month'\n }\n }\n\n return 'custom'\n}\n\nexport const parse = (value: [string, string]): [Date, Date] =>\n value.map((v) => new Date(v)) as [Date, Date]\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 border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid }) =>\n invalid ? theme.colors.warningRed : theme.colors.lightGrey};\n border-radius: 4px;\n\n > :nth-child(1) 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 bottom: 1px;\n left: 1px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 4px;\n white-space: nowrap;\n\n ${({ theme, iconWidth, paddingless }) => {\n if (paddingless) {\n return css`\n width: calc(100% - 2px - ${iconWidth});\n height: 19px;\n `\n }\n\n return css`\n width: calc(100% - 2px - ${iconWidth} - ${theme.spacings.s3});\n height: 33px;\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 ${({ 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'\n\nimport { dateToIsoString, filterObject } from '../../../../functions/formatters'\nimport { isDateInstance } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport CalendarInterval from '../../../CalendarInterval'\nimport Icon from '../../../Icon'\nimport Menu from '../../../Menu'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\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 value = parse(props.value)\n\n const disabled = props.disabled || props.loading\n\n const [open, setOpen] = useState<'menu' | 'calendar' | null>(null)\n const [intervalType, setIntervalType] = useState<IntervalType>('day')\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.value.some((v) => v === '')) {\n setValue(intervalTypes.day.initial(props.min))\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 setValue(intervalTypes.day.initial(props.min))\n return\n }\n\n const newIntervalType = identify(value)\n setIntervalType(newIntervalType)\n }, [props.value, props.min, props.max])\n\n const inputProps = filterObject<DateIntervalPickerProps, InputProps>(\n props,\n ['min', 'max'],\n )\n\n const getArrowProps = (key: 'increment' | 'decrement') => {\n const func = config[key]\n\n if (func === undefined) {\n return {\n disabled: true,\n }\n }\n const nextValue = func(value)\n if (!validate(nextValue, min, max)) {\n return {\n disabled: true,\n }\n }\n return {\n onClick: () => setValue(nextValue),\n }\n }\n\n const incrementProps = getArrowProps('increment')\n const decrementProps = getArrowProps('decrement')\n\n const invalid = props.invalid || !validate(value, min, max)\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(null))}\n invalid={invalid}\n >\n <Input\n {...inputProps}\n style={{ width: 0 }}\n type='text'\n ref={ref}\n icon={{\n icon: {\n type: 'feather',\n icon: 'calendar',\n width: '24px',\n },\n position: 'right' as 'right' | 'left',\n onClick: () => setOpen((prev) => (prev === null ? 'menu' : null)),\n }}\n borderless\n htmlDisabled\n />\n\n <S.Container\n iconWidth='24px'\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 {...decrementProps}\n disabled={disabled || decrementProps.disabled}\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 <div>\n {value.some((v) => !isDateInstance(v)) ? '' : config.label(value)}\n </div>\n\n <S.Button\n type='button'\n {...incrementProps}\n disabled={disabled || incrementProps.disabled}\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 <Menu\n open={open === 'menu'}\n close={() => setOpen(null)}\n options={[\n {\n label: 'Hoje',\n onClick: () => setValue(intervalTypes.day.initial(props.min)),\n },\n {\n label: 'Semana',\n onClick: () => setValue(intervalTypes.week.initial(props.min)),\n },\n {\n label: 'Mês',\n onClick: () => setValue(intervalTypes.month.initial(props.min)),\n },\n {\n label: 'Personalizado',\n onClick: () => setOpen('calendar'),\n keepOpen: true,\n caret: true,\n },\n ]}\n width='165px'\n itemSpacing='s3'\n bordered\n />\n\n <CalendarInterval\n open={open === 'calendar'}\n value={{ start: value[0], end: value[1] }}\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 time={{}}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'DatePicker'\n\nconst useDefaultDateIntervalState = () => {\n const start = new Date()\n start.setHours(0, 0, 0, 0)\n const end = new Date()\n end.setHours(23, 59, 59, 0)\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 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\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\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 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 { 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: 'bordeless',\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: 'bordeless',\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 { 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, { 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, { 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 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","import styled from 'styled-components'\n\nexport const Container = styled.div`\n padding: ${({\n theme: {\n spacings: { s1, s3 },\n },\n }) => `0 calc(${s3} * .75) ${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'\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 <div>{isString(title) ? title : title.element}</div>\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 },\n onClick: onSubmit,\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 } = 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) onSearch()\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 : undefined\n\n const optionsParser = (option: FilterOption): MenuOption => {\n return {\n label: option.label,\n onClick: onClickOption,\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 innerContent={\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 />\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 './components/Submenu'\n\nimport { FiltersProps } from './interfaces'\n\nconst Filters = (props: FiltersProps) => {\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: item.label,\n delimiter: item.delimiter,\n keepOpen: true,\n caret: true,\n onClick: (index: number) => {\n setActive((prev) => (prev === index ? -1 : index))\n },\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 height='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 >\n <Submenu\n item={selected}\n close={() => setActive(-1)}\n setAppliedFilters={props.setAppliedFilters}\n />\n </Menu>\n )\n}\n\nexport default Filters\n","import styled from 'styled-components'\n\nimport AbsoluteContainer from '../../AbsoluteContainer'\n\nexport const Container = styled(AbsoluteContainer)`\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 Button from '../../Button'\nimport Icon from '../../Icon'\nimport Input from '../../Input'\nimport ScrollContainer from '../../ScrollContainer'\nimport { AppliedFiltersProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst AppliedFilters = (props: AppliedFiltersProps) => {\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 >\n <div>\n <S.Header>\n <div>\n <S.Title>Filtros Aplicados</S.Title>\n\n <Button type='button' onClick={onClear} appearance='link'>\n Limpar Todos\n </Button>\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 },\n onClick: onSubmitSearch,\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 AppliedFilters\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 = (props: ColProps) => {\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 {...colProps}>\n {_props.ellipsis ? (\n <EllipsisContainer>{_props.children}</EllipsisContainer>\n ) : (\n _props.children\n )}\n </S.Col>\n )\n}\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 = (props: GridProps) => {\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 {...gridProps} />\n </Provider.Provider>\n )\n}\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: ['lightestGrey', 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 :not(:last-child) {\n border-bottom: 1px solid ${lightestGrey};\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 = (props: RowProps) => {\n const context = useContext()\n\n const cols = { ...(props.cols || {}), ...context.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 {...rowProps} />\n </Provider.Provider>\n )\n}\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 { fontSizes, sizes } from './constants'\r\n\r\nconst theme = {\r\n sizes,\r\n fontSizes,\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"],"names":["colors","white","iceWhite","black","blue","lightBlue","darkestBlue","darkBlue","greyishBlue","darkSilver","silver","darkestGrey","darkGrey","grey","lightGrey","lightestGrey","purple","orange","yellow","red","darkestGreen","darkGreen","green","lightGreen","pink","brown","vanilla","bronze","warningGray","warningYellow","warningRed","floralWhite","snowWhite","milkWhite","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","notEmptyString","trim","isBoolean","isString","isDateInstance","Date","isNaN","valueOf","isDateEquals","x","y","xStr","yStr","strCmp","options","ignoreAccents","ignoreCase","contain","toUpperCase","includes","filterObject","keys","inital","r","filter","reduce","prev","isoStringToDate","split","reverse","getTime","getWeekNumber","weekSunday","setHours","setDate","getUTCDay","yearStart","UTC","getUTCFullYear","weekNumber","Math","ceil","getMonthName","months","monthName","getFirstWeek","year","today","undefined","setFullYear","week","weekYear","getLastWeek","getSpacings","defaults","d","top","left","bottom","right","spacing","values","loader","keyframes","Loader","styled","div","size","borderSize","bgColor","color","theme","filled","zIndex","beforeColor","getColor","afterColor","fill","css","fillColor","sizes","tiny","mini","small","large","big","default","fontSizes","Button","button","appearance","components","loading","disabled","props","children","content","defaultValues","type","htmlProps","_size","React","S","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_icon","lock","lock_icon","log_in","log_in_icon","log_out","log_out_icon","mail","mail_icon","map","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_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","width","height","SVGContainer","strokeWidth","c","getCommonProps","commonProps","Component","icon","name","Error","Container","textarea","TextArea","EllipsisContainer","myProps","_onMouseOver","onMouseOver","event","dataset","parentElement","scrollWidth","offsetWidth","title","innerText","removeAttribute","useTypography","OverflowContainer","RelativeContainer","ScrollContainer","before","after","inner","onScrollEnd","useState","setLastPagination","onScroll","currentTarget","nativeEvent","scrollTopMax","scrollHeight","clientHeight","scrollTop","now","diff","abs","_onScroll","Transition","active","mountDuration","element","render","setRender","useEffect","timeoutId","setTimeout","clearTimeout","useTransition","animation","enabled","properties","durations","functions","forEach","k","config","push","duration","function","concat","length","positions","maxWidth","maxHeight","position","references","transition","AbsoluteContainer","forwardRef","fowardedRef","open","center","axis","ref","setRef","getPosition","window","innerWidth","innerHeight","getBoundingClientRect","xDirection","yDirection","newPosition","setPosition","useImperativeHandle","cssKeys","propsTransition","displayName","Option","containerSpacing","bordered","itemSpacing","Delimiter","MenuComponent","close","scrollSpacing","innerContent","absoluteContainerProps","Fragment","option","index","delimiter","keepOpen","caret","label","text","closeMenu","onClick","rules","rule","find","_onClick","Menu","labelColor","Indicator","description","Progress","ProgressBar","internal","Tabs","ul","Tab","li","activeState","tabs","setTabs","setActive","updateActiveTab","tagName","removeTab","prevState","aux","splice","tab","CloseIcon","isMaskFunction","isMaskReplace","Array","isArray","RegExp","isMaskReplaceArray","getMask","mask","newValue","e","IconContainer","Input","input","invalid","placeholder","paddingless","borderless","arrows","readOnly","Label","padding","LabelText","required","clearable","onPressEnter","htmlDisabled","intInvalid","intRequired","intDisabled","intArrows","intBorderless","intPaddingless","iconWidth","iconSubmit","iconOnClick","submit","inputProps","inputWidth","onChange","setValue","onKeyDown","_onPressEnter","preventDefault","v","onKeyUp","onKeyDownCapture","onKeyUpCapture","iconProps","MwIcon","Checkmark","span","_padding","Checkbox","useOnClickOut","callback","listener","contains","document","addEventListener","removeEventListener","seconds","parseInt","Time","_onKeyDown","todayDate","curH","curM","curS","h","padEnd","m","s","setMinutes","setSeconds","MwAbsoluteContainer","Footer","MonthContainer","NavBtn","WeekContainer","Header","DayContainer","getCalendar","month","days","getDay","unshift","weeks","i","Calendar","overlay","timeProps","notAbsolute","initalValue","_setValue","withoutTime","max","min","setInvalid","setCalendar","setTime","updateInvalid","useCallback","splitted","changeMonth","add","setMonth","getPrev","getNext","hasHighlight","withoutTimeValue","_onSubmit","onSubmit","day","toLocaleDateString","JSDate","isLeapYear","picker","setOpen","curD","curY","Provider","createContext","useContext","HeaderContainer","context","searchInput","setSearchInput","onClearSearch","onSearch","getOptions","getInputValue","parsedOptions","selectedIndex","findIndex","selected","useSelect","setOptions","inputValue","onReset","getContext","base","checked","style","marginRight","SelectAllContainer","setChecked","selectAll","disabledText","Popup","on","trigger","inverted","wide","isChecked","newState","useSelectMultiple","returnData","Select","menuProps","_loading","setLoading","_setSearch","page","setPage","lastPage","setLastPage","setSearch","_onScrollEnd","optionsResult","Password","visibility","setVisibility","none","visible","hidden","_onBlur","onBlur","coordinates","ar","br","cl","es","us","mx","py","pt","uy","Flag","flags","iso","countries","ddi","validation","charLimit","getPhoneDetails","shift","country","masked","valid","test","withDDI","setInputValue","setCountry","details","Phone","assign","LabelContainer","DatePicker","onAdd","onSub","Switch","bullet","InputContainer","SelectedArea","MinMaxLabelContainer","LabelsContainer","Marker","MarkersContainer","getMarkers","markers","strict","sort","a","b","step","parseFloat","Range","minLabel","maxLabel","range","spans","_onChange","marker","z","_value","RadioButton","CalendarInterval","start","setStart","end","setEnd","startInvalid","setStartInvalid","endInvalid","setEndInvalid","minEnd","maxStart","validate","intervalTypes","initial","increment","decrement","getMinMax","firstWeek","lastWeek","custom","identify","isoStart","isoEnd","expectedStart","expectedEnd","parse","intervalType","setIntervalType","parsed","some","newIntervalType","getArrowProps","func","nextValue","incrementProps","decrementProps","useDefaultDateIntervalState","toISOString","DateIntervalPicker","DefaultInput","Portal","id","opened","portalRoot","createElement","body","appendChild","removeChild","createPortal","heights","medium","widths","Background","Content","FooterMessage","FooterButtons","customSize","isDarkColor","Modal","openState","footer","footerMessage","closeOnEsc","closeOnClickOutside","onClickOutside","onEscDown","buttonProps","ConfirmDelete","cancelAction","confirmAction","ConfirmSuccess","homeAction","Audit","ConfirmEdit","borderType","Card","rest","IconContent","Toast","handlClose","HeaderImage","HeaderContent","MainContent","HeaderLine","MainLine","Template1","Template2Container","HeaderLineStyle","Template2","Template3Container","Template3Line","Template3","Template4Container","CustomLine","Template4","Circle","Template5","Template6","Main","Template7","Template8","GraphLine","Template10","Placeholder","Template9","Image","img","Dimmer","MwButton","ModalContent","Zoom","src","defaultClickOptions","imgProps","modalOpened","setModalOpened","alt","searched","_setSearched","allowEmptySearch","withSearch","setSearched","onClear","EmptyMessage","getInstance","item","isDynamic","intialOptions","optionSpacing","Submenu","setAppliedFilters","setFirstRender","newOptions","force","changed","firstRender","onClickOption","labels","optionsParser","Filters","items","Title","Item","AppliedFilters","appliedFilters","onSubmitSearch","onRemove","cols","aligns","self","horizontal","vertical","around","between","Col","w","spacingAround","align","styles","fontColor","backgroundColor","hover","pointer","_props","colProps","ellipsis","rows","Grid","gridProps","horizontalAligns","verticalAligns","Row","horizontalAlign","verticalAlign","striped","even","odd","rowProps","GridComponent","FontStyles","createGlobalStyle","Globals","opacity","typography","ifDark","ifLight","hex","luminosity","ThemeProvider"],"mappings":"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AAU,YAAUgC,KAAV;GARZ,CAHJ,CADF;AAiBD,CAnCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|