@mw-kit/mw-ui 1.7.7 → 1.7.9
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/components/Calendar/components/Basic/components/Main/styles.d.ts +3 -0
- package/dist/components/Calendar/components/Basic/index.d.ts +1 -1
- package/dist/components/Calendar/components/Basic/interfaces.d.ts +6 -0
- package/dist/components/Calendar/components/Interval/index.d.ts +1 -1
- package/dist/components/Calendar/components/Interval/interfaces.d.ts +2 -1
- package/dist/components/Calendar/components/Single/index.d.ts +1 -1
- package/dist/components/Calendar/components/Single/interfaces.d.ts +2 -1
- package/dist/components/Calendar/functions.d.ts +1 -1
- package/dist/components/Calendar/index.d.ts +3 -3
- package/dist/components/Indicator/constants.d.ts +8 -0
- package/dist/components/Indicator/index.d.ts +1 -1
- package/dist/components/Indicator/interfaces.d.ts +8 -5
- package/dist/components/Indicator/styles.d.ts +1 -5
- package/dist/components/Input/components/Date/interfaces.d.ts +2 -1
- package/dist/components/Input/components/DateIntervalPicker/functions.d.ts +3 -2
- package/dist/components/Input/components/DateIntervalPicker/interfaces.d.ts +6 -4
- package/dist/components/Input/components/DatePicker/interfaces.d.ts +2 -1
- package/dist/components/Input/components/DateTime/interfaces.d.ts +2 -1
- package/dist/functions/common.d.ts +1 -0
- package/dist/functions/formatters.d.ts +1 -2
- package/dist/functions/validators.d.ts +6 -1
- package/dist/index.js +537 -428
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +537 -428
- 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/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/Calendar/constants.ts","../src/components/Calendar/components/Basic/styles.ts","../src/components/Calendar/components/Basic/components/MonthPicker/index.tsx","../src/components/Calendar/components/Basic/components/Main/styles.ts","../src/components/Calendar/functions.ts","../src/components/Calendar/components/Basic/components/Main/index.tsx","../src/components/Calendar/components/Basic/index.tsx","../src/components/Input/components/Time/index.tsx","../src/components/Calendar/components/Interval/components/Main/functions.ts","../src/components/Calendar/styles.ts","../src/components/Calendar/components/Interval/components/Main/styles.ts","../src/components/Calendar/components/Interval/components/Main/index.tsx","../src/components/Calendar/components/Interval/index.tsx","../src/components/Calendar/components/Single/components/Main/index.tsx","../src/components/Calendar/components/Single/index.tsx","../src/components/Calendar/index.tsx","../src/components/Input/components/Date/functions.ts","../src/components/Input/components/Date/styles.ts","../src/components/Input/components/Date/index.tsx","../src/components/Input/components/Select/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/Input/components/DateIntervalPicker/functions.ts","../src/components/Input/components/DateIntervalPicker/styles.ts","../src/components/Input/components/DateIntervalPicker/index.tsx","../src/components/Input/components/Tags/components/Input/styles.ts","../src/components/Input/components/Tags/components/Input/index.tsx","../src/components/Input/components/Tags/components/Label/styles.ts","../src/components/Input/components/Tags/components/Label/index.tsx","../src/components/Input/components/Tags/components/Tag/styles.ts","../src/components/Input/components/Tags/components/Tag/index.tsx","../src/components/Input/components/Tags/styles.ts","../src/components/Input/components/Tags/index.tsx","../src/components/Input/components/DateTime/styles.ts","../src/components/Input/components/DateTime/index.tsx","../src/components/Input/index.tsx","../src/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/Button/styles.ts","../src/components/Filters/Button/index.tsx","../src/components/Filters/Filters/components/Submenu/components/Header/styles.ts","../src/components/Filters/Filters/components/Submenu/components/Header/index.tsx","../src/components/Filters/Filters/components/Submenu/styles.ts","../src/components/Filters/Filters/components/Submenu/index.tsx","../src/components/Filters/Filters/components/Menu/index.tsx","../src/components/Filters/Filters/index.tsx","../src/components/Filters/AppliedFilters/components/Menu/styles.ts","../src/components/Filters/AppliedFilters/components/Menu/index.tsx","../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 black: '#000000',\r\n blue: '#3455AB',\r\n bronze: '#7A4D05',\r\n brown: '#9F3A38',\r\n darkBlue: '#192338',\r\n darkestBlue: '#121B2E',\r\n darkestGreen: '#1E561F',\r\n darkestGrey: '#989898',\r\n darkGreen: '#129105',\r\n darkGrey: '#949494',\r\n darkSilver: '#525A6A',\r\n floralWhite: '#FFFAF3',\r\n green: '#76B100',\r\n grey: '#ADADAD',\r\n greyishBlue: '#263046',\r\n iceWhite: '#F9F8F8',\r\n lightBlue: '#2D9AFF',\r\n lightestGrey: '#E2E2E3',\r\n lightGreen: '#66BB6A',\r\n lightGrey: '#C8C8C8',\r\n milkWhite: '#FCFFF5',\r\n orange: '#FB8702',\r\n pink: '#E23851',\r\n purple: '#8E66BB',\r\n red: '#C31717',\r\n silver: '#B2B2B2',\r\n snowWhite: '#FFF6F6',\r\n vanilla: '#CCBEA0',\r\n warningGray: '#E6E6E6',\r\n warningRed: '#EF5350',\r\n warningYellow: '#FBCF30',\r\n white: '#FFFFFF',\r\n yellow: '#FBCB01',\r\n} as const\r\n\r\nexport const opacities = {\r\n 100: 'FF',\r\n 95: 'F2',\r\n 90: 'E6',\r\n 85: 'D9',\r\n 80: 'CC',\r\n 75: 'BF',\r\n 70: 'B3',\r\n 65: 'A6',\r\n 60: '99',\r\n 55: '8C',\r\n 50: '80',\r\n 45: '73',\r\n 40: '66',\r\n 35: '59',\r\n 30: '4D',\r\n 25: '40',\r\n 20: '33',\r\n 15: '26',\r\n 10: '1A',\r\n 5: '0D',\r\n 0: '00',\r\n} as const\r\n\r\nexport const spacings = {\r\n s1: '7px',\r\n s2: '8px',\r\n s3: '14px',\r\n s4: '21px',\r\n s5: '28px',\r\n s6: '35px',\r\n} as const\r\n\r\nexport const fonts = {\r\n lato: '\"Lato\", sans-serif',\r\n} as const\r\n\r\nexport const typographies: Typographies = {\r\n h1: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '18px',\r\n },\r\n h2: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '16px',\r\n },\r\n h3: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '16px',\r\n },\r\n h4: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '14px',\r\n },\r\n h5: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n h6: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '13px',\r\n },\r\n p: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n} as const\r\n","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 { 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\ntype Operations = 'eq' | 'gt' | 'gte' | 'lt' | 'lte'\n\nexport const dateCompare = (\n a: Date,\n b: Date,\n operation: Operations,\n time = true,\n): boolean => {\n const operations: { [key in Operations]: (a: Date, b: Date) => boolean } = {\n eq: (a, b) => a.getTime() === b.getTime(),\n gt: (a, b) => a > b,\n gte(a, b) {\n return this.gt(a, b) || this.eq(a, b)\n },\n lt: (a, b) => a < b,\n lte(a, b) {\n return this.lt(a, b) || this.eq(a, b)\n },\n }\n\n if (time === false) {\n a = new Date(a)\n a.setHours(0, 0, 0, 0)\n b = new Date(b)\n b.setHours(0, 0, 0, 0)\n }\n\n return operations[operation](a, b)\n}\n\ntype Formats = 'h' | 'm' | 's'\ntype Mode = 'required' | 'optional'\n\nexport const isValidTime = (\n time: string,\n format: Partial<{ [key in Formats]: Mode }> = {\n h: 'required',\n m: 'required',\n },\n): boolean => {\n const c = {\n h: '(([0-1][0-9])|(2[0-3]))',\n m: '([0-5][0-9])',\n s: '([0-5][0-9])',\n }\n\n let sep = ''\n\n const conditions = (Object.keys(format) as Formats[])\n .map((f) => {\n const content = `(${sep}${c[f]})`\n sep = ':'\n return format[f] === 'required' ? content : `${content}?`\n })\n .join('')\n\n // /(([0-1][0-9])|(2[0-3])):([0-5][0-9])(:([0-5][0-9]))?$/\n const re = new RegExp(`${conditions}$`)\n\n return time.match(re) !== null\n}\n\nexport const strCmp = (\n x: string,\n y: string,\n options: {\n ignoreAccents?: boolean\n ignoreCase?: boolean\n trim?: boolean\n contain?: boolean\n } = {},\n): boolean => {\n options = {\n ignoreAccents: true,\n ignoreCase: true,\n trim: true,\n contain: false,\n ...options,\n }\n\n if (options.trim) {\n x = x.trim()\n y = y.trim()\n }\n\n if (options.ignoreCase) {\n x = x.toUpperCase()\n y = y.toUpperCase()\n }\n\n if (options.ignoreAccents) {\n x = stripAccents(x)\n y = stripAccents(y)\n }\n\n return options.contain ? x.includes(y) : x === y\n}\n\nexport const isValidEmail = (value: string): boolean => {\n const emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i\n\n return emailRegex.test(value)\n}\n\nexport { isObject, isKeyOf } from './common'\n","import { GenericObject, 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 keys = <T extends GenericObject>(value: T): (keyof T)[] => {\n return Object.keys(value) as (keyof T)[]\n}\n\nexport const filterObject = <T extends GenericObject, R extends GenericObject>(\n object: T,\n remove: (keyof T)[],\n inital = {} as Partial<R>,\n): R => {\n const r = keys(object)\n .filter((key) => !remove.includes(key))\n .reduce(\n (prev, key) => ({\n ...prev,\n [key]: object[key],\n }),\n inital as R,\n )\n\n return r\n}\n\nexport const phone = (value: string) => {\n let masked = value\n\n if (value.startsWith('+55')) {\n masked = value\n .replace(/\\D/g, '')\n .replace(/(\\d{2})(\\d{2})(\\d)/, '+$1 ($2) $3')\n .replace(/(\\d{5})(\\d{4})$/, '$1-$2')\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\n }\n\n return masked\n}\n\nexport const cnpj = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 14)\n .replace(/^(\\d{2})(\\d{3})?(\\d{3})?(\\d{4})?(\\d{2})?/, '$1.$2.$3/$4-$5')\n}\n\nexport const cpf = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .replace(/^(\\d{3})(\\d{3})?(\\d{3})?(\\d{2})?/, '$1.$2.$3-$4')\n}\n\nexport const cep = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 8)\n .replace(/^(\\d{5})(\\d{3})/, '$1-$2')\n}\n\ninterface TimeLabels {\n hour?: string\n minute?: string\n join?: string\n}\n\nexport const time = (value: number, labels?: TimeLabels): string => {\n const l: TimeLabels = {\n hour: 'h',\n minute: 'm',\n join: 'e',\n }\n\n if (labels) {\n const k = keys(labels)\n k.forEach((key) => (l[key] = labels[key]))\n }\n\n const hours = Math.floor(value / 60)\n const minutes = value % 60\n\n const result = []\n if (hours > 0) result.push(`${hours}${l.hour}`)\n result.push(`${minutes}${l.minute}`)\n\n return result.join(l.join)\n}\n\nexport const simpleTime = (value: number) => {\n return [Math.floor(value / 60), value % 60]\n .map((num) => num.toString().padStart(2, '0'))\n .join(':')\n}\n\nexport const reverseSimpleTime = (value: string) => {\n const t = value.replace(/\\D/g, '')\n\n if (t.length === 0) return 0\n\n const h = parseInt(t.substring(0, 2).padEnd(2, '0'))\n\n if (t.length < 3) return h * 60\n\n const m = parseInt(t.substring(2, 4).padEnd(2, '0'))\n\n return h * 60 + m\n}\n\nexport const intToBool = (value: 1 | 0): boolean => {\n const values = {\n 1: true,\n 0: false,\n }\n\n return values[value]\n}\n\nexport const boolToInt = (value: boolean): 1 | 0 => {\n return value ? 1 : 0\n}\n\nexport const numberOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): number | T => {\n if (isNumber(value)) return value\n if (isNumericString(value)) return parseFloat(value)\n return defaultValue\n}\n\nexport const booleanOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): boolean | T => {\n if (isBoolean(value)) return value\n\n if (isNumber(value)) return value > 0\n if (isNumericString(value)) return parseInt(value) > 0\n\n return defaultValue\n}\n\nexport const notEmptyStringOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): string | T => {\n if (notEmptyString(value)) return value.trim()\n return defaultValue\n}\n\nexport const capitalize = (value: string): string => {\n return value\n .split(' ')\n .map((word) => `${word[0].toUpperCase()}${word.slice(1).toLowerCase()}`)\n .join(' ')\n}\n\nexport const isoStringToDate = (value: string): Date | null => {\n const [d, t = '00:00:00'] = value.split(' ')\n\n const date = new Date(\n d.split('/').reverse().join('-') +\n ' ' +\n [...t.split(':'), '0', '0', '0']\n .slice(0, 3)\n .map((s) => s.padEnd(2, '0'))\n .join(':'),\n )\n return isNaN(date.getTime()) ? null : date\n}\n\nexport const getWeekNumber = (value: Date): [number, number] => {\n // cloning date\n const weekSunday = new Date(value)\n // reset time\n weekSunday.setHours(0, 0, 0, 0)\n // set date to week sunday\n weekSunday.setDate(weekSunday.getDate() - weekSunday.getUTCDay())\n // get first day of year\n const yearStart = new Date(Date.UTC(weekSunday.getUTCFullYear(), 0, 1))\n // calculate full weeks to the target week\n const weekNumber = Math.ceil(\n ((weekSunday.getTime() - yearStart.getTime()) / 86400000 + 1) / 7,\n )\n // return array of year and week number\n return [weekNumber, weekSunday.getUTCFullYear()]\n}\n\nexport const getMonthName = (value: Date): string => {\n const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n ]\n\n const monthName = months[value.getMonth()]\n return monthName\n}\n\nexport const getFirstWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-01-01 00:00:00`)\n // jumping to week sunday\n week.setDate(week.getDate() - week.getUTCDay() - 7)\n week.setHours(0, 0, 0, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to next sunday\n week.setDate(week.getDate() + 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport const getLastWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-12-31 00:00:00`)\n // jumping to week saturday\n week.setDate(week.getDate() - week.getUTCDay() + 6)\n week.setHours(23, 59, 59, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to previous saturday\n week.setDate(week.getDate() - 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport { stripAccents, dateToIsoString } 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<GenericObject>(value)) {\n const r = keys(value).reduce((prev, key) => {\n const v = clone(value[key])\n return { ...prev, [key]: v }\n }, {} as T)\n return r\n }\n\n return value\n}\n\nexport const unique = <T>(\n value: T[],\n callback: (item: T, arr: T[]) => boolean = (item, arr) => arr.includes(item),\n): T[] => {\n return value.filter((v, _i, self) => callback(v, self))\n}\n","import { 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 color: ${({ theme }) => theme.colors.darkBlue};\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 = (e) => {\n _onClick(index, option, e)\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, { useEffect } 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'\nimport { isString } from '../../../../functions/validators'\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 useEffect(() => {\n if (!isString(props.value)) return\n const masked = mask(props.value)\n if (masked !== props.value) setValue(masked)\n }, [props.value])\n\n const 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 onKeyDown(event)\n\n if (event.key === 'Enter') {\n _onPressEnter(event)\n }\n }\n }\n\n if (inputProps.onKeyUp) {\n const onKeyUp = inputProps.onKeyUp\n\n inputProps.onKeyUp = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUp(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyDownCapture) {\n const onKeyDownCapture = inputProps.onKeyDownCapture\n\n inputProps.onKeyDownCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyDownCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyUpCapture) {\n const onKeyUpCapture = inputProps.onKeyUpCapture\n\n inputProps.onKeyUpCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUpCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n 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={props.disabled ? undefined : iconOnClick}\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","export const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n] as const\n\nexport const maxHeight = '378px'\n\nexport const inputTimeWidth = {\n withSeconds: '86px',\n withoutSeconds: '66px',\n}\n","import styled, { css } from 'styled-components'\n\nimport MwAbsoluteContainer from '../../../AbsoluteContainer'\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n\n ${({ theme }) => {\n const { s3 } = theme.spacings\n\n return css`\n padding-top: ${s3};\n padding-bottom: ${s3};\n :first-child {\n padding-left: ${s3};\n }\n :last-child {\n padding-right: ${s3};\n }\n `\n }};\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const CalendarContainer = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n`\n\nexport const AbsoluteContainer = styled(MwAbsoluteContainer)`\n > ${Container} {\n padding: ${({ theme }) =>\n `${theme.spacings.s3} ${theme.spacings.s3} ${theme.spacings.s1} ${theme.spacings.s3}`};\n }\n`\n\nexport const MonthContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n > div {\n margin: ${({ theme }) => theme.spacings.s1} 0;\n flex: 1;\n position: relative;\n }\n`\n\nexport const MonthBtn = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n color: ${({ theme }) => theme.colors.darkBlue};\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n\nexport const NavBtn = styled.button`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n width: 32px;\n height: 32px;\n box-shadow: none;\n border: none;\n background-color: transparent;\n\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n :disabled {\n visibility: hidden;\n }\n :not(:disabled) {\n cursor: pointer;\n :hover {\n background-color: ${({ theme }) => theme.getColor('blue', 35)};\n }\n }\n\n transition-property: background-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n`\n","import React, { useEffect, useState } from 'react'\n\nimport Icon from '../../../../../Icon'\nimport Menu from '../../../../../Menu'\nimport { MenuProps } from '../../../../../Menu/interfaces'\nimport { months } from '../../../../constants'\nimport * as S from '../../styles'\n\nconst MonthPicker = (\n props: Omit<MenuProps, 'before' | 'options' | 'spacing'> & {\n year: number\n setValue: (year: number, month: number) => void\n min?: Date\n max?: Date\n },\n) => {\n const { setValue, close, min, max } = props\n\n const [year, setYear] = useState(props.year)\n\n useEffect(() => {\n setYear(props.year)\n }, [props.open, props.year])\n\n return (\n <Menu\n {...props}\n before={\n <S.MonthContainer>\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev - 1)}\n disabled={min !== undefined && min.getFullYear() >= year}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n\n <div>\n <S.MonthBtn>{year}</S.MonthBtn>\n </div>\n\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev + 1)}\n disabled={max !== undefined && max.getFullYear() <= year}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n </S.MonthContainer>\n }\n options={months.map((label, index) => {\n return {\n label,\n onClick: () => {\n setValue(year, index)\n close()\n },\n rules: [\n {\n rule: () => {\n const disabled =\n (min !== undefined &&\n (min.getFullYear() > year ||\n (min.getFullYear() === year &&\n min.getMonth() > index))) ||\n (max !== undefined &&\n (max.getFullYear() < year ||\n (max.getFullYear() === year && max.getMonth() < index)))\n\n return !disabled\n },\n },\n ],\n }\n })}\n />\n )\n}\n\nexport default MonthPicker\n","import styled, { css } from 'styled-components'\n\nexport * from '../../styles'\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n > button:last-child {\n margin-left: auto;\n }\n`\n\nexport const WeekContainer = styled.div`\n width: 100%;\n display: flex;\n\n :not(:first-child) {\n border-top: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n }\n\n > * {\n font-family: ${({ theme }) => theme.fonts.lato};\n font-size: ${({ theme }) => theme.spacings.s3};\n line-height: ${({ theme }) => theme.spacings.s3};\n width: 32px;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.darkBlue};\n box-shadow: none;\n\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n border: 1px solid transparent;\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.lightestGrey};\n }\n }\n`\n\nexport const Header = styled.div`\n width: 100%;\n\n background-color: ${({ theme }) => theme.getColor('lightestGrey', 40)};\n font-weight: bolder;\n\n > ${WeekContainer} {\n border-top: none;\n > * {\n border-right-color: transparent;\n }\n }\n`\n\ninterface DayContainerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n today: 1 | 0\n appearance?: 'active' | 'highlight' | 'disabled'\n}\n\nexport const DayContainer = styled.button<DayContainerProps>`\n position: relative;\n overflow: hidden;\n\n ${({ theme, appearance }) => {\n const hover = (color: keyof typeof theme.colors) => css`\n :not(:disabled):hover {\n border-color: ${theme.colors[color]};\n color: ${theme.colors[color]};\n }\n `\n\n if (appearance === 'disabled') {\n return css`\n background-color: ${theme.getColor('greyishBlue', 10)};\n `\n } else if (appearance === 'highlight') {\n return css`\n background-color: ${theme.getColor('blue', 30)};\n ${hover('blue')}\n `\n } else if (appearance === 'active') {\n return css`\n background-color: ${theme.colors.blue};\n color: ${theme.colors.white};\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.blue};\n }\n ${hover('white')}\n `\n }\n\n return css`\n background-color: ${theme.colors.white};\n ${hover('blue')}\n `\n }};\n\n :disabled {\n color: ${({ theme }) => theme.colors.silver};\n }\n\n :not(:disabled) {\n cursor: pointer;\n }\n\n &,\n :after {\n transition-property: background-color, color, border-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n }\n\n ${({ appearance, today, theme }) => {\n if (today !== 1) {\n return\n }\n\n return css`\n :after {\n content: '';\n position: absolute;\n top: -60%;\n right: -60%;\n width: 100%;\n height: 100%;\n background-color: ${theme.colors[\n appearance === 'active' ? 'white' : 'blue'\n ]};\n transform: rotate(45deg);\n }\n `\n }}\n`\n","import { dateCompare, isValidTime } from '../../functions/validators'\nimport { CalendarInterface } from './components/Basic/interfaces'\n\nexport const getCalendar = (d: Date): CalendarInterface => {\n const date = new Date(d.getTime())\n date.setHours(0, 0, 0, 0)\n const month = date.getMonth()\n const year = date.getFullYear()\n\n const days: Date[] = []\n\n date.setDate(1)\n date.setDate(date.getDate() - 1)\n\n while (date.getDay() !== 6 || days.length === 0) {\n const copy = new Date(date.getTime())\n days.unshift(copy)\n date.setDate(date.getDate() - 1)\n }\n\n date.setDate(date.getDate() + days.length + 1)\n\n while (month === date.getMonth()) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n while (days.length < 42) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n const weeks: Date[][] = []\n let week: Date[] = [days[0]]\n\n for (let i = 1; i < days.length; i++) {\n if (week.length === 7) {\n weeks.push(week)\n week = []\n }\n week.push(days[i])\n }\n weeks.push(week)\n\n return { month, year, weeks }\n}\n\nexport const getMiddle = (min?: Date, max?: Date): Date => {\n const today = new Date()\n\n if (!max) {\n if (!min) return today\n\n // se nao tem maximo e tem minimo, se dia de hoje for maior que minimo, usa o dia de hoje, se nao usa o dia minimo\n return dateCompare(today, min, 'gte', false) ? today : min\n }\n\n if (!min) {\n if (!max) return today\n\n // se nao tem minimo e tem maximo, se dia de hoje for menor que maximo, usa o dia de hoje, se nao usa o dia maximo\n return dateCompare(today, max, 'lte', false) ? today : max\n }\n\n // se o dia atual esta entre o intervalo, usa o dia atual\n if (\n dateCompare(today, min, 'gte', false) &&\n dateCompare(today, max, 'lte', false)\n ) {\n return today\n }\n\n // se nao, usa o dia medio do intervalo\n const days = Math.ceil(\n Math.abs(max.getTime() - min.getTime()) / (1000 * 60 * 60 * 24) / 2,\n )\n const result = new Date(min)\n result.setDate(result.getDate() + days)\n\n return result\n}\n\nexport const getFullDate = (date: Date, time: string, end?: true): Date => {\n const v = new Date(date)\n\n const hours: [number, number, number, number] = end\n ? [23, 59, 59, 999]\n : [0, 0, 0, 0]\n\n time.split(':').forEach((v, i) => {\n const parsed = parseInt(v)\n if (isNaN(parsed)) return\n hours[i] = parsed\n })\n\n v.setHours(...hours)\n\n return v\n}\n\nexport const isDateBetween = (\n date: Date,\n min?: Date,\n max?: Date,\n time = false,\n): boolean => {\n if (!max) {\n if (!min) return true\n return dateCompare(date, min, 'gte', time)\n }\n\n if (!min) {\n if (!max) return true\n return dateCompare(date, max, 'lte', time)\n }\n\n return (\n dateCompare(date, min, 'gte', time) && dateCompare(date, max, 'lte', time)\n )\n}\n\nexport const getTimeFromDate = (date: Date | null): string => {\n if (!date) return ''\n const h = date.getHours()\n const m = date.getMinutes()\n const s = date.getSeconds()\n\n return [h, m, s].map((v) => v.toString().padStart(2, '0')).join(':')\n}\n\nexport const isInvalid = (\n value: Date | null,\n time: string,\n timeOptions?: { required?: boolean; seconds?: boolean },\n min?: Date,\n max?: Date,\n): boolean => {\n if (!value) {\n return true\n }\n\n if (timeOptions) {\n if (time.length === 0) {\n if (timeOptions.required) {\n return true\n }\n } else if (\n !isValidTime(time, {\n h: 'required',\n m: 'required',\n s: timeOptions.seconds ? 'required' : 'optional',\n })\n ) {\n return true\n }\n }\n\n const date = getFullDate(value, time)\n\n return (\n (min !== undefined && dateCompare(date, min, 'lt')) ||\n (max !== undefined && dateCompare(date, max, 'gt'))\n )\n}\n\nexport const getInitialCalendar = (date?: Date, min?: Date, max?: Date) => {\n return getCalendar(\n date && !isNaN(date.getTime()) && isDateBetween(date, min, max)\n ? date\n : getMiddle(min, max),\n )\n}\n","import React, { useState } from 'react'\n\nimport useOnClickOut from '../../../../../../hooks/onClickOut'\n\nimport Icon from '../../../../../Icon'\n\nimport MonthPicker from '../../components/MonthPicker'\nimport { months } from '../../../../constants'\nimport * as S from './styles'\nimport { MainProps } from './interfaces'\nimport { getCalendar, getInitialCalendar } from '../../../../functions'\nimport { CalendarInterface } from '../../interfaces'\nimport { dateCompare } from '../../../../../../functions/validators'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { getDay, initialMonth } = props\n\n const [selectOpen, setSelectOpen] = useState<boolean>(false)\n\n const min = props.min\n ? (() => {\n const date = new Date(props.min)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const max = props.max\n ? (() => {\n const date = new Date(props.max)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const [calendar, setCalendar] =\n props.calendar ||\n useState<CalendarInterface>(getInitialCalendar(initialMonth, min, max))\n\n const changeMonth = (add: 1 | -1) => {\n setCalendar((prev) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(prev.year)\n date.setMonth(prev.month + add)\n\n return getCalendar(date)\n })\n }\n\n const getPrev = () => {\n const [disabled, onClick] =\n min !== undefined &&\n (calendar.year < min.getFullYear() ||\n (calendar.year === min.getFullYear() &&\n calendar.month <= min.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(-1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n const getNext = () => {\n const [disabled, onClick] =\n max !== undefined &&\n (calendar.year > max.getFullYear() ||\n (calendar.year === max.getFullYear() &&\n calendar.month >= max.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n return (\n <S.Container ref={ref}>\n {props.label && <S.LabelContainer>{props.label}</S.LabelContainer>}\n\n <S.CalendarContainer>\n <S.Header>\n <S.MonthContainer>\n {getPrev()}\n <div ref={useOnClickOut(() => setSelectOpen(false))}>\n <S.MonthBtn onClick={() => setSelectOpen((prev) => !prev)}>\n {months[calendar.month]} {calendar.year}\n <Icon\n type='semantic'\n icon={selectOpen ? 'caret up' : 'caret down'}\n width='14px'\n />\n </S.MonthBtn>\n\n <MonthPicker\n open={selectOpen}\n close={() => setSelectOpen(false)}\n year={calendar.year}\n setValue={(year, month) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(year)\n date.setMonth(month)\n setCalendar(getCalendar(date))\n }}\n min={min}\n max={max}\n width='100%'\n maxHeight='180px'\n transition={{ properties: { 'max-height': {} } }}\n itemSpacing='s3'\n bordered\n />\n </div>\n {getNext()}\n </S.MonthContainer>\n\n <S.WeekContainer>\n <div>D</div>\n <div>S</div>\n <div>T</div>\n <div>Q</div>\n <div>Q</div>\n <div>S</div>\n <div>S</div>\n </S.WeekContainer>\n </S.Header>\n\n {calendar.weeks.map((week, index) => {\n return (\n <S.WeekContainer key={index}>\n {week.map((date, index) => {\n const details = getDay(date)\n\n const day = date.getDate()\n const month = date.getMonth()\n\n const appearance =\n month !== calendar.month ||\n (max && date > max) ||\n (min && date < min)\n ? 'disabled'\n : details.appearance\n\n const [disabled, onClick, onMouseOver, onMouseOut] =\n appearance === 'disabled'\n ? [true, undefined]\n : [\n undefined,\n details.onClick,\n details.onMouseOver,\n details.onMouseOut,\n ]\n\n return (\n <S.DayContainer\n key={index}\n type='button'\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n disabled={disabled}\n appearance={appearance}\n today={dateCompare(new Date(), date, 'eq', false) ? 1 : 0}\n >\n {day}\n </S.DayContainer>\n )\n })}\n </S.WeekContainer>\n )\n })}\n </S.CalendarContainer>\n\n {props.children && <S.Footer>{props.children}</S.Footer>}\n </S.Container>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\n\nimport Main from './components/Main'\nimport { BasicCalendarProps } from './interfaces'\nimport * as S from './styles'\n\nconst BasicCalendar = React.forwardRef(\n (props: BasicCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n BasicCalendarProps,\n AbsoluteContainerProps\n >(props, ['initialMonth', 'max', 'min', 'getDay', 'calendar', 'absolute'])\n\n return 'absolute' in props ? (\n <S.AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...props} />\n </S.AbsoluteContainer>\n ) : (\n <Main {...props} />\n )\n },\n)\n\nBasicCalendar.displayName = 'BasicCalendar'\n\nexport default BasicCalendar\n","import React from 'react'\nimport Input from '../Input'\nimport { TimeProps } from './interfaces'\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/[^0-9\\s]/g, '')\n\n while (v.length > 0 && parseInt(v[0]) > 2) {\n v = v.substring(1)\n }\n\n if (v.length > 1) {\n if (v[0] === '2') {\n while (v.length > 1 && parseInt(v[1]) > 3) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 5) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n if (v.length > 4) {\n while (v.length > 4 && parseInt(v[4]) > 5) {\n v = v.substring(0, 4) + v.substring(5)\n }\n }\n\n v = v.substring(0, seconds ? 6 : 4)\n\n if (v.length < 3) return v\n else if (v.length < 5) return v.substring(0, 2) + ':' + v.substring(2)\n else return v.substring(0, 2) + ':' + v.substring(2, 4) + ':' + v.substring(4)\n}\n\nconst Time = React.forwardRef(\n (props: TimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, seconds } = props\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const setValue = props.setValue || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const curH = todayDate.getHours()\n const curM = todayDate.getMinutes()\n const curS = todayDate.getSeconds()\n\n const value = target.value.replace(/[^0-9\\s]/g, '')\n\n let tmp = value.substring(0, 2)\n let h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(2, 4)\n let m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(4, 6)\n let s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, '0'))\n\n if (event.key === 'ArrowUp') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n } else if (event.key === 'ArrowDown') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? seconds\n ? '––:––:––'\n : '––:––'\n : props.placeholder\n\n return (\n <Input\n {...props}\n type='text'\n value={mask(value, seconds)}\n placeholder={placeholder}\n mask={(v: string) => mask(v, seconds)}\n onKeyDown={onKeyDown}\n ref={ref}\n />\n )\n },\n)\n\nTime.displayName = 'Time'\n\nexport default Time\n","import { dateCompare } from '../../../../../../functions/validators'\nimport { getCalendar, isDateBetween } from '../../../../functions'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { Value } from '../../interfaces'\n\nexport const getValue = (dates: (Date | null)[], min?: Date, max?: Date) => {\n const n = [\n ...dates\n .filter((d) => d && !isNaN(d.getTime()) && isDateBetween(d, min, max))\n .sort((a, b) => {\n if (dateCompare(a as Date, b as Date, 'eq')) return 0\n return dateCompare(a as Date, b as Date, 'lt') ? -1 : 1\n }),\n null,\n null,\n ]\n return n.slice(0, 2) as Value\n}\n\nexport const getCalendar2 = (\n calendar1: CalendarInterface,\n): CalendarInterface => {\n const date = new Date()\n date.setFullYear(calendar1.year)\n date.setMonth(calendar1.month + 1)\n date.setDate(1)\n date.setHours(0, 0, 0, 0)\n return getCalendar(date)\n}\n","import styled from 'styled-components'\nimport Button from '../Button'\n\nexport const SubmitButton = styled(Button)`\n width: 105px;\n`\n","import styled from 'styled-components'\n\nexport * from '../../../../styles'\n\nexport const CalendarsContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n`\n\nexport const LabelContainer = styled.div`\n color: ${({ theme }) => theme.colors.darkestGrey};\n > b {\n color: ${({ theme }) => theme.colors.darkBlue};\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport {\n dateToIsoString,\n filterObject,\n} from '../../../../../../functions/formatters'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport Input from '../../../../../Input/components/Time'\nimport { inputTimeWidth } from '../../../../constants'\nimport {\n getCalendar,\n getFullDate,\n getInitialCalendar,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport BasicCalendar from '../../../Basic'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { BasicCalendarProps } from '../../../interfaces'\nimport { InputTimeProps, Value } from '../../interfaces'\nimport { getCalendar2, getValue } from './functions'\nimport { MainProps } from './interfaces'\nimport * as S from './styles'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialMonth, initialValue, min, max } = props\n\n const [value, setValue] =\n props.value || useState<Value>(getValue(initialValue || [], min, max))\n\n const [invalid, setInvalid] =\n props.invalid || useState<[boolean, boolean]>([false, false])\n\n const [time, setTime] = useState<[string, string]>(() => {\n return value.map(getTimeFromDate) as [string, string]\n })\n\n const [calendar1, setCalendar1] = useState<CalendarInterface>(\n getInitialCalendar(value[0] || initialMonth, min, max),\n )\n\n const [calendar2, setCalendar2] = useState<CalendarInterface>(\n getCalendar2(calendar1),\n )\n\n const [hoverDay, setHoverDay] = useState<Date | null>(null)\n\n useEffect(() => {\n const timeProps =\n props.time === true\n ? ([{}, {}] as [InputTimeProps, InputTimeProps])\n : props.time\n\n setHoverDay(null)\n\n if (value[0]) {\n const c1 = getCalendar(value[0])\n setCalendar1(c1)\n\n if (value[1]) {\n const c2 = getCalendar(value[1])\n if (\n c2.year > c1.year ||\n (c2.year === c1.year && c2.month > c1.month)\n ) {\n setCalendar2(c2)\n }\n }\n }\n\n setInvalid(\n value.map((v, i): boolean => {\n return isInvalid(\n v,\n time[i],\n timeProps ? timeProps[i] : undefined,\n min,\n max,\n )\n }) as [boolean, boolean],\n )\n }, [value, time, props.time])\n\n const onSubmit = {\n disabled: invalid.some((v) => v),\n onClick: () => {},\n }\n\n if (props.onSubmit) {\n const { disabled, onClick } = props.onSubmit\n\n if (disabled) {\n onSubmit.disabled = true\n }\n\n if (!onSubmit.disabled) {\n onSubmit.onClick = () => {\n onClick([\n value[0] ? getFullDate(value[0], time[0]) : null,\n value[1] ? getFullDate(value[1], time[1], true) : null,\n ])\n }\n }\n }\n\n const getDay = (day: Date) => {\n const onClick = () => {\n const newValue: Value = [...value]\n if (!newValue[0]) {\n newValue[0] = new Date(day)\n } else if (newValue[1]) {\n newValue[0] = new Date(day)\n newValue[1] = null\n } else if (dateCompare(day, newValue[0], 'lt')) {\n newValue[1] = newValue[0]\n newValue[0] = new Date(day)\n } else {\n newValue[1] = new Date(day)\n }\n\n setValue(newValue)\n }\n\n const [onMouseOver, onMouseOut] =\n value[0] && !value[1]\n ? [() => setHoverDay(day), () => setHoverDay(null)]\n : []\n\n const appearance = (() => {\n if (value.some((v) => v && dateCompare(v, day, 'eq', false))) {\n return 'active'\n }\n\n if (\n (value[0] && value[1] && isDateBetween(day, value[0], value[1])) ||\n (value[0] &&\n hoverDay &&\n (isDateBetween(day, value[0], hoverDay) ||\n isDateBetween(day, hoverDay, value[0])))\n ) {\n return 'highlight'\n }\n\n return undefined\n })()\n\n return {\n appearance,\n onClick,\n onMouseOver,\n onMouseOut,\n } as const\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'initialMonth',\n 'max',\n 'min',\n ])\n\n const middle = new Date()\n middle.setFullYear(calendar1.year)\n middle.setMonth(calendar1.month + 1)\n middle.setDate(1)\n middle.setHours(0, 0, 0, 0)\n\n const inputs = props.time\n ? (props.time === true ? ([{}, {}] as InputTimeProps[]) : props.time).map(\n (timeProps, index) => {\n const width = timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n\n return (\n <Input\n key={index}\n {...timeProps}\n type='time'\n value={time[index]}\n setValue={(v) =>\n setTime((prev) => {\n const n = [...prev]\n n[index] = v\n return n as [string, string]\n })\n }\n invalid={\n time[index] !== '' && value[index] !== null && invalid[index]\n }\n width={inputTimeWidth[width]}\n />\n )\n },\n )\n : []\n\n return (\n <S.CalendarsContainer>\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Inicio:</b>{' '}\n {value[0] ? dateToIsoString(value[0]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[\n calendar1,\n (v) => {\n setCalendar1((prev) => {\n const c1 = typeof v === 'function' ? v(prev) : v\n setCalendar2(getCalendar2(c1))\n return c1\n })\n },\n ]}\n min={min}\n max={max}\n >\n {inputs[0]}\n </BasicCalendar>\n\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Fim:</b> {value[1] ? dateToIsoString(value[1]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[calendar2, setCalendar2]}\n min={min && dateCompare(min, middle, 'gt') ? min : middle}\n max={max}\n >\n {inputs[1]}\n\n {props.onSubmit && (\n <S.SubmitButton {...onSubmit} type='button' content='Aplicar' />\n )}\n </BasicCalendar>\n </S.CalendarsContainer>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { IntervalCalendarProps } from './interfaces'\n\nconst CalendarInterval = React.forwardRef(\n (props: IntervalCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n IntervalCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n ])\n\n const mainProps = filterObject<IntervalCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarInterval.displayName = 'CalendarInterval'\n\nexport default CalendarInterval\n","import React, { useEffect, useState } from 'react'\n\nimport { filterObject } from '../../../../../../functions/formatters'\n\nimport Input from '../../../../../Input/components/Time'\nimport BasicCalendar from '../../../Basic'\nimport { BasicCalendarProps } from '../../../Basic/interfaces'\n\nimport {\n getFullDate,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport { inputTimeWidth } from '../../../../constants'\nimport * as S from '../../../../styles'\nimport { MainProps } from './interfaces'\n\nconst SingleCalendar = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialValue, min, max } = props\n\n const timeProps = props.time === true ? {} : props.time\n\n const [value, setValue] =\n props.value ||\n useState<Date | null>(\n initialValue &&\n !isNaN(initialValue.getTime()) &&\n isDateBetween(initialValue, min, max)\n ? initialValue\n : null,\n )\n\n const [invalid, setInvalid] = props.invalid || useState<boolean>(false)\n\n const [time, setTime] = useState<string>(getTimeFromDate(value))\n\n useEffect(() => {\n setInvalid(isInvalid(value, time, timeProps, min, max))\n }, [value, time, timeProps])\n\n const onSubmit = {\n disabled: invalid,\n onClick: () => {},\n }\n\n if (props.onSubmit) {\n const { disabled, onClick } = props.onSubmit\n\n if (disabled) {\n onSubmit.disabled = true\n }\n\n onSubmit.onClick = () => {\n onClick(value ? getFullDate(value, time) : null)\n }\n }\n\n const getDay = (day: Date) => {\n const active = value && dateCompare(value, day, 'eq', false)\n\n const onClick = active\n ? () => setValue(null)\n : () => setValue(new Date(day))\n\n return {\n appearance: active ? 'active' : undefined,\n onClick,\n } as const\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n ])\n\n return (\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n initialMonth={props.initialValue || props.initialMonth}\n >\n {timeProps && (\n <Input\n {...timeProps}\n type='time'\n value={time}\n setValue={setTime}\n invalid={time !== '' && value !== null && invalid}\n width={\n inputTimeWidth[\n timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n ]\n }\n />\n )}\n\n {props.onSubmit && (\n <S.SubmitButton {...onSubmit} type='button' content='Aplicar' />\n )}\n </BasicCalendar>\n )\n },\n)\n\nSingleCalendar.displayName = 'SingleCalendar'\n\nexport default SingleCalendar\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { SingleCalendarProps } from './interfaces'\n\nconst CalendarSingle = React.forwardRef(\n (props: SingleCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n SingleCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n ])\n\n const mainProps = filterObject<SingleCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarSingle.displayName = 'CalendarSingle'\n\nexport default CalendarSingle\n","import React from 'react'\n\nimport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\nimport { CalendarProps } from './interfaces'\n\nconst Calendar = React.forwardRef(\n (props: CalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n switch (props.type) {\n case 'basic': {\n return <BasicCalendar {...props} ref={ref} />\n }\n case 'interval': {\n return <IntervalCalendar {...props} ref={ref} />\n }\n case 'single': {\n return <SingleCalendar {...props} ref={ref} />\n }\n }\n },\n)\n\nCalendar.displayName = 'Input'\n\nexport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\n\nexport default Calendar\n","export const JSDate = Date\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\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 setValue(dateToIsoString(date))\n }\n } else if (event.key === 'ArrowDown') {\n const date = new JSDate(`${y}-${m}-${d} 00:00:00`)\n date.setDate(date.getDate() - 1)\n\n if (!min || date >= min) {\n setValue(dateToIsoString(date))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined ? 'dd/mm/aaaa' : props.placeholder\n\n const icon = 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 type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n const newValue = dateToIsoString(date)\n setValue(newValue)\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDate.displayName = 'Date'\n\nexport default Date\n","import 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) => {\n const label = isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label\n\n const { value, onClick, data } = option\n\n return {\n label,\n data,\n onClick: onClick\n ? (index, _option, event) => {\n onClick(index, option, event)\n }\n : () => {\n props.setValue(value, option)\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(\n checked.map((c) => c.value),\n [...checked],\n )\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) => (prev.length === options.length ? [] : [...options]))\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, { useEffect, 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: Option[],\n setChecked: React.Dispatch<React.SetStateAction<Option[]>>,\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.findIndex((e) => e.value === option.value) !== -1}\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.value !== option.value)\n\n if (isChecked) newState.push({ ...option })\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: unknown[]): string => {\n if (value.length < 1) return ''\n return value.length > 1\n ? `Há ${value.length} seleções`\n : `Há ${value.length} seleção`\n}\n\nconst useSelectMultiple = (props: SelectProps): useSelectReturn => {\n const init = () =>\n props.value.length === 0\n ? []\n : typeof props.value[0] === 'string'\n ? ([...props.value].map((value) => ({ value, label: value })) as Option[])\n : ([...props.value] as Option[])\n\n const [options, setOptions] = useState<Option[]>([])\n const [inital, setInitial] = useState<Option[]>(init)\n const [checked, setChecked] = useState<Option[]>(init)\n\n // keep checked and inital state updated\n useEffect(() => {\n const getOption = (\n def: Option,\n options: Option[],\n prev: Option[],\n ): Option => {\n const index = options.findIndex((o) => o.value === def.value)\n if (index !== -1) return { ...options[index] }\n else {\n const index = prev.findIndex((o) => o.value === def.value)\n if (index !== -1) return { ...prev[index] }\n }\n\n return def\n }\n\n const mapper = (prev: Option[]) => {\n return props.value.length > 0 && typeof props.value[0] === 'string'\n ? (props.value as string[]).map((value) =>\n getOption({ value, label: value }, options, prev),\n )\n : (props.value as Option[]).map((value) =>\n getOption(value, options, prev),\n )\n }\n\n setInitial(mapper)\n setChecked(mapper)\n }, [props.value, options])\n\n const parsedOptions = getOptions(options, checked, setChecked)\n\n const inputValue = getInputValue(props.value)\n\n const onReset = () => {\n setChecked([...inital])\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 const onClick = () => {\n setOpen((prev) => !prev)\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={onClick}\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 onClick,\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,iVBORw0KGgoAAAANSUhEUgAAFf4AAAAPCAMAAAAsJ+pWAAADAFBMVEUAAAB/U1dILHgLN5L////OECYAAAAAJH3tKDj90hXSDjT/AAABNpb/zQAAK34AI5XQFCvvKixCit7eKQ/+3wPCJy0BlUMBn0rQJToCd2DuGiPkHR52rtwgRYzUKx3pDS4AYTPGDDDjBxnCAQPpAA4DAowBbML6+voBKGXbAgcDUqYZigICeDUAaU3/1QDbEh7cIx8AHaXlZG7NCR8BMKQGMIQDakCvFCvaJRr98/GOosMAbTLosrgPrioANqvx9vZXc7MAccsCaKgDn18gtTkkSqUAI4ICot4BrspNYaBLrNf3eH775ORzq98ormartMzWER7zogbFDhufMzwBhlHfMzkRDAr83kgBeUEAgTwAmzoLRq/IND0GiTDCBSXdTSECgABYWVnsi5QHP4QBZQBjtOXz0tXkaBjl7PX+wwHDZnXIzuBIl9DcEjn/zyKtxeL5r7ABPxo5fc4ypjIgXDg6gzsAf/8BHJAFlWeMGjn3PjXQAgBzhrb6fAHk7ORZUoHvzBmq0bj96QNmzf/JsBkClsAVtDg2dR89csb5uBHwP0nM08nrjBgGUpbS4unVhpABHnr43xOqq6duel4ei0j5xcbKPljCwLjLqLSrlBFbl7FCCAg6Xrm+gpYmHkrngYFpweXroKfhwhICW7zUcX7vV2LhTwb9nJyHK1EhoEJldqA4WJqOgZUEAWXWJyn/UBGHm3UIKH1pJ15UroXcUVUFLpGwwA6LiEVPrFj8mTNihC5KecDEUl5ZqjTGVB9IWWqJryC0tDNwXxVrw4kLPnZJhnPy3o5JUEB7DBGJr95CbU1wiM3cdgWmW0E/mQD8FxhaRgYsJgsAmgCSeBGrCw7B1+93opo+RIIjd7ihNl9om2oBGl3Qokn98kJmLUAYGJaWy+vf0hS3vlb0JSqKw6GbPhkWos76sGYdbZ8AsWUBULwCT/G0k2E7KmzFeBwdMnz46rzQvX0xS2Zck82mxnAXH27gykAgUrYnlSmDuVWIQDMQTCUzr6oIKnROksEhguycBXzUAAAABHRSTlMA/rFGbqhDHAAAReZJREFUeNrUnQ9cE9cdwM8tiNDqaNUOW7FzXRdnO3RQ6kjZwtrJmpqKyEC7Ohm4BYQp2Oq6tiyCS+sgKWICBkREGPgHmEKholQRUEBFWh0K1rFVLU63ISA6V5m2+713f97d5V0S0P37Jrm8i37C5e7de++++eX3mMI8XXZiYlh3YV6YJw/DfAtTt24SsM7ijWGY+4CvPfPkM3Dnb88wzFhMwWOY9b/HMEzBWAcKGIW/9ggFhvkGBYbxoMAwr1BgmBcpMMzv5Gzdmcgw4ygwTGKe7vHa2sevluY9LsAwD1JgmJmYkpjdae/M5GGYtygwzJe+9KXQ0LVp4zkOfQlgGE9EWOxKTGwYt3e+SYHb69E3FyHe4Lb2AQoMo6LAvWoo9ZXuR5W6KDCQvBAYWKSG//tDlpw0LwJ8BsRroSrMvHEY8RH2EWCYRRsdYZhpFBhmDgWG+REFhln11vMOMMxKwGslAVZ+xe2dHeUzkjLFe2fq1BclN3RnmLjiTUvkMMx0jqUAX2bPig+DVRzBH6J1hvnJT5744ImfSGGYX8j5rCeGYYKCgoaCgJ3e3juDOBjmIRGvLsJY4K9JYZhfYS6rMIefw8hOtGwAV6XvIp56X1YVpmDaPDAW/vBOpMAwXgSXVWECBYZ5feA9BxjmfgpK73D/lBwJB+GhVM3LE2ivjqWA95lnYmIQ7LPkpApdUnJFeVI4w2Rt+5kDXFVYGqcKgYpAqsLTHGs6K1v4MsPM4ChXqYoChVPtKzxPa0VbtpACw0yigJqhnzvclBrIo9RP7B1Z/+l3ZChtw48pKB03FUIzIchPRcCN6YzExBmwf7cJKHUJUylw7/viR+MqREdVqfY9R4FhAnITQquzPbPDfX3D4SlIlxhg4PZZTAx5AKRGpdx3Xwr5a3s/pe0H/t8DHn00gC8rHQsVT3CwpEEmuHoH9jnGC3PwlxiGCQt7LXbgNVgeGoJl2IANlgyT84EjDPPss2fVU2c+O1OM7FhU3+GOxc8xx1SYY+waw+x814GdZMuk7UPb4ZrnviyD3sIodbnfowCNIQU0ePmSw51hfCnwez35WUzTeIzSXseb/VCNCnP5Vxil4+ZDgWH2U6C3O0rbsIsCdxa2F0Ul3U/gOhB+e0v5T7wiKleFUAcHq3EhN2oFw4z33/vqj0S8utcf9sNpyigOfWL329RHKTDMUxSET+wzzWdaDPnEB0tWOoCPBWHX3s5o/NdmUlDa3lXPvLRYjlJr9Pzt5x1QOkIPU2CYX1NQ6t8yTKaIiIiMCBEZbC9y1VcKquvyqo7qegYFpSFuJAWG+RoFhplMgWGou+FlTIs/MH5SzPTp3riD7G9woF+pAWdXc98QQ+tw/MZAUxKxLuJNxPjx+AlWoSl5G3PQCxPDb9l4CvxH2/kOZif/0aZQYJivc5wtLw/lywzj5+dXkaqDZUKCUIRunoJSNVMFG7iOwdeHR+mweVMgJ2F0QUE0X+auIJ6u4XqoQG4/oCufrb9D1ApAs079xEFiJviFB+C/9l0KDLPdAYZ5EmNUYYzsGn9dwW1XDbsGe5cC/apAaUz/hS8yYiZQwIdgRmkpGo2QyxqlAzNrdtTs2WrKJRR/uESHYBZiQQC3sxfgVaW2ooD6atI/nqLsVhWg/ecqCUptW85w7oH1v3xLgtJnm+tx39fkKI0Xf8rxNUl/+wIFpYs7FSZv5+sinF4/hMXKTt8lFJT2ww8oMMwzFBjmr7/561/hQdCZTAyzDNO3CLF/NwuMZ6gnHz+IaHqWgE/fzEyH07cwJNQTjsXaDXmeAvRPQa/kSv/3+xSU/u9LmIN/xMQ/glGSG2soQLMQTaslzd9xBDoECgyTMnuWDOWzZQsFea3O9kQo1fUZmLbxmJjpGKXa583SJtUu9N79TQpY5wR5CoTdYbehIGa2Awwzf35dR2LffAlKvTASNyGwqH2MwDBfpcAwRVY4JLEhxOkA4r2zWYBhHhcg57e0Rr39/UbTKXyMf0tBaQy4luOACKVXVRSQRPszRaJNYmkV/tv3gLNCa572HILe39MriNKf/zYFOJBzVlAaAVyR5gmnPGnKPCsqPCdMqBYfhrkU6JVfacsWL/6lOTczSgLDPEGBYazrP3B8VVeZklRaWpir0Xm6rX8JyvrXg2sZTgHckMSDkf217Ox7rX+vH3vRTf1L1G+xIcSoNMjSVe5ICghA2/s4oNPx+rf9+l3r39fat4D/levfMIn+Dfu36l/AECDdj/uMKkNtIBK/eFFrUBn3jUz/kiMMY9dAeA94Qlp5sHXRonuif3ftEopoL3zzLYr+9Vq5cSXcvVZ6ASCCM/bscaZ/4Y4eQpFhiqn6dxmHLlWj48si/ZuSIta/H1zYu1fwvx98IOjfzb8gfH4jfkEgGlzbTEPO9O8u9jjvn+2m/pWeaNmhQDarf58aof6Nvwv9G0QBiZGd793vrv71002QgxoniQB+qekgRf/msp/tSEWym6qC7LNwXWp5UnJ5uRUeqOqe+dnPXhTf/lP6d6kL/Uuxv4r6d+HpaAU54yNTwArbQPTvlCmj1L+kTm4TkHUJQYBU/54/f0/1L+je3KzQalb/BrFrsM8mx8TExMeTR8xktsfV7yD6d4ce/7VJFw46078PPOCu/s1NjIxMzL2n+neoyTYAy7o6WAbZmg4h/fu9T6n6dybSvzM/mypCdiyy2/6e7UT/vjvBgXeV9O/So3Wt6Yfnf/khl/qX1uW61r+zlkT6kBaRYn9Z/btEers3+redwoj0L73duff6dwkrDPVlXy3To6q9fz96wqsMcyrfHwlgIn/980+hT3G64D+sf4FpFstuvowuPBvTVmaIb3L9e9B0kvtroRTY7TWb0ZKU0Pb+c7Ec+QB1wI8doN6+dc/07/nzMv075Cnv30zf/Gbznj0R/Zde5+mPgF7kiO5Ot0EKruu4hpPK/r+nf/1B/3og/8swDY850DBi/TtXKn9PnEDX3xMz/Lcj74ss8Hb/jIlvvjli/RszMv17tvKytepy31mx/tVoeP2rg6KS/pVWM/LtvNpg16vvhf4tOFoAd6J/n4YbRf92Nv9uaxtcBJUW8TDMikgF/XvkCG9/Q/OivIn+vb/bbwT615j1H9C/7+78gkv9iw9BYSEcgrUi/Ss7/7u7Of1bW1w7i6p/1WoH/bsAbmL9u0BZaI2NnrNAWPXx4V4dDD4G4/S70b8H9pkP15XDleaVK1dsV660XIGi9LOFec74O3t5+be/vUs5033mRP9v69+Oe61/f3vmt39FDw5dk6l+NXfJ17IIUbubA6rzalA/buvfeSllZY5iISWrtDQP+nyZ/lUnJan/b/Tvyy/PoNSSFc3u61/48nkWMJvcR6Z/5WesRoeaUsmro9e/vnerf7Mrgnj5W10Xy27D2FP9MTT9a+urA/1bI9W/X5XfWP2rD5isd0//BgbY4URuy/XxIIj3zmaOJlb/frxly8fK+vftg+h79lHr37wQgtKrKrXRbFarko+JAIn2AtK/t13r36+7qX/lFQSiZZzp39myG9a/+c0ggN3XvxVBQbq71L/6lNyQ3JCQFEDNfc+3ePEPew0BzvTv+uYP6tc3r4d3SKrfK4fJjPKN8vGBRVQ17IUjR8Jc6l/ADf3rc5q1vyebm0+y/ve0DyP5a9XdOl13tVj/esD9rvTvddACWcd+7lr/EvWryus4ejRYaZD1IQByD3gc8TGnf68nFl53U//+mQMq7J95oJJg/9t+aLlM/05QjP5dHRkVFbn6HuvfYiRoCWjAfFirKvYN9A0IgEWxSnv47bdHpH/JEc708ZlcmNhROBnrX0wwOOC0u9S/BzduPEj0L9oHUxz1L4n6XdS6aOWi/XuU9S8nfSU3htkQp6x/K9LT7eb08Aq5/k358MMUkf7d2/jEB43gfJ94Ai346N/PP7/58895+9tl+XZgIOhfGOPkH4EWAulfMj6l2F9B/37yxidU/VvzHEZ6ommg5anQsPr3H+0vu61/t0dsh8X2UetfLQWkFBb4FqulKGlEz9Bkqv791nexAH4pB9F0sOkluf4d7BlkP9uyI8tStW6qinFRvnDZ5Qv7LDVV13JuzXHQMfh9E86PNPq3IXGU+ncphbuP/sVKt4AqZ+Ca+pNHfUUKmL4Ngv5dDF3UzMVy/XvI7xDcnetfsn8zt2372Zi6ujE/A/0r7YCmTv35K9US/ZucfE/1b3YYq3yR/mVL2dmwz4ZzmjZu9IK7F35qyhnGPW5w2Yc7eP2748OyYKx/J21sdKJ/LRZ39a8hsqMj0iBtkPVxAaUh6lHrX1tT/tBrr8U2NcW+FjZQ11SH9e8VxejfZ59NVomQdc/lW7fq3NC/ngMDnq70rwdoxPxFxADL9e80oUTpcl3r391n3z2km/1fiv79LgVB/3oEutS/Su3OvY/+5YU3XHHFqVX6mBi9Sh03KyqXbRFZAUzkL7QPsA1IACvp32CDIdihTW0bGx0NCwf9+8ADbupfYNo0D7H+/bTe5Cz6txG2FQG6+hNM2RufiMDbq42Ntaow1libmt/eVc88KUXWGgVV9QWx+vfw8yy3a2rIMGMBBZf6Nzxcon+HOps7h+T69ytfQfr30uuXLl3q729AGtgCvUi5tvvqJim4L5T533ujf49SGI3+nVRiKilho389xPq3oWHU+neuJvUdsfy1XGavv7dnWN58Mz7+zTctGSCCnetfPO728kIlQf8usYxI/54ttEL071mrVdC/QLimAulfXEytkOjfZ54RitJqFnTlnStXglA1M9itdv1d619sf4/CvcBV9K8J7v7gf0PgkhLfQtD7Th+i6d9DdXWHsPxdpinyBlbEsU1f7Lr8Sfnu69/ew/8J/fuoLwQAu9C/mZkxvnV1vjGZmeKeKlNoi6uR/vXLZvVvQFEUNfpXm5ysletfZH8d9G8gBXy4js7yYAnMEP3qSNsO/pcN1hiN/s01a7Nyp771Vkv9lCtDq69MOQ7+V1LpquuzDx0aWM3q37/946M3pKAe26NghPq360bvf0z/Jh44kLhpxPr3ds1tTv8+TYn+/etvj0nl72pO//qhy6/LMbt58DsMu61/M/VlmWVEB5HLZF9fWGRCPaseGqrm7VPSO+8k3b3+fVtB/xqNo9S/5yiwjfwfoqVAE7Ki+fuvylDUv/D98yypAFbUv1UUZE3pMlssih+R9eN+wGj0b/Emb++OehEQrUyBYXZTYBgIRc7O9qvGetGWVhLG6hwwFp37YyjRvwcONCD9e9h19C8Wv3qa/gU9LNW/EMKH/O8pcxQxPWJJsxlTVcVF/4YmJYUq699G7nv2k0r6N58CEb0bRCi9qjJeM/XYVe3SkSGo33sb/Su71BkCqtkTsLV1UK2Cp5vBsISgxVakf7HzRXdSggN5Mv8kCGB39a8OqiFd/24JBba4o3+L4uJSUopTDClxnP411UPQQktWStTuqBil6N/mzhOdzU8gs27oy1guhdFpcgtLS5NSKnUQ7KAbWjt0RKJ/N26U6F8gXYpI/y6URP/6HMX215SWZsL+96iPByP5a3e0lwe1d4j+PXoaDVpOH+XboasUxDsnJkaif6/Dg71E1R5zrn+J+gUMly4dzdPSB1ns9gYEJO2o1KELUXikYv3bfiCx3Yn+Ff/y8CMe60cCUEkwW44NLacmf0hLk0f/rh6HWT0K/aulIAhZWfQv6jjSVcFxwUYjLFTpqB8Zmf4lR9jHZ4mqdIlqExrCnoqtNGtRBQ6oNYAD9hqt/t2190JdXcneXUT/AqvO3RCD9e9GHPy7stWYkGBIecOZ/iXWl70DoH9LFfWvX3p6761zvelmP4n+zd2x4777duzIJfp3Xf4F0L+Nez/A8veJRqx/u9K80m7weR+2wxjw2xaG0XBAb7OJLzOMo/0l+lev0juP/iWHIVtXkY2+h9Rlo/H6MdX7buvfiHW/uqvkD8EUQIx4gBTZlKt1R/9OCAqq1lVT9G87igBe09TE+t+bB0X693LrYKulR43L+JAd0SW5Gf0bzu+z8HBNy5o1muTwcO59IQOEO9G/azjmTJ48hy+70r+r/xRnIFsWT0Ho6PzzS0wmf6J/KShdaCwEIq1ApVUAyZk3gPg3HgV4Bay0DXtZXp7b0jL3ZW6FP25PHfKDS/FDTznXv6ROgv7t6+/vB/0r7RKqz2ZlEf27bSrPtnumf8MBQ7Ferff11eeGBGvROnQqEPKU0+TF0ZQzZUok2+OmZOp5/avPhAXSv8CFV++B/k08OmfO0USJ/s3F15EBavIOgRSU9O9rr71mG3oNiD2ElgN1sEBjol9S9G9CQoJKm5Aw9awI6bHwnNvdPVDtVP96otvA5s0DuMjr3zk+jvoXzvmjJ01eixa19tY856B/i4uFolKXm4w5f15YAmQwXltWVsuXOSXGGTES/QuOI1fyAO6F/v0NBV7/Tj6wwe67JNGF/qW3O/Qjf5jCyKJ/oYylb3BMTDASwbwM5QUwL39Z/Qv+2mNOolWEUH9DNk2fvinEQf/GRkbGOujfBywRERZeACt18R4clrQ0i1j/9latuWWEZBUEkf591dQcba2Ev9UcwarXB/TF6rKHCXh7K2Nj7SpDHLS0dputUtje6HQpsjNg4PjxAWn0763lJTWC/v0TBYaJ4ykqEooi/RsbKxTx976mJpMT/XsCYoAvcfp3gBr9S0FJ/2ZSUNK/Y3lOkSjAUenf5oaGZtC/3pLo3wbM6PTvOxqVNvR+zLIx/Sf2twar+PCr7Rb0bbUFy183on8XLZJE/8ZkKOvfnDVrcmT6d3Pf139r1Xz961XXif7VhSeFIv0rFEXdfH7+ar4srWbLnp9y/PkgLvo32DH5w04K2E4MiyveMNG/0UcLFvr4LCw4Gi2P/tWb1TL9m1/SJo3+9QZiKfrXlpZmQ/a3Iq8W/odHrX0+vrYZs25d84V1+R8JONe/WftqjO7r3++NVv+uWLHiIyKAwyiwh6CwEB0CLwHpgYFzP7u7G+vfqG9EzSqTwgYGXLmSQNG/8uhfpVYBXzhzX3nFZLD+F+UAGRwMztrylEL07z/PudS/w2vM59avBf3bWT+lufl4Zz3oEslnu7N6dWx9XR3Wv4gHE9Ri2HM60iqF178/+WD7h4769yIaF/US/RtA4Z7p347+/o4RR//++VZJjRD921KT09JS05JT0yLo378ek8hfQf/2kcQPQG0c+w7HQ6Qo6t8yfWaZLP8D7vPzSkuzcD0La7pwoQlf6n/22Wehycmhn4lxpn9z5+3YMS9F/InfpkD2jsFqNYxO/6opoEZ+7ssvbymcVwRImpB4fwff9g8K7GikCGtfgtLY5wQFSa3OnnvW1nJ9bran9DwO61kZ0RM2Yv3rG6I2BHhbxJ/EaSwdEAyQV7PRT26R/g0bMvn7m3j9C4r8ZBoIYHn0b0dHB9K/6Y7Rv18bN2/eOHH0b3CpQvTvuHlFmVL96xHoG7IV+gR7reB/xXtnM9B1sauL1b8ft6tU7R9T9S+YoL350bh7yb+opH/XUSCit3QDQelVld1kMl3TahNEMIydglj/BptHGP0rrSBB69dUrQ/i9G9JSdqiVlWr/6AKYhVLSlj9y4nf7ds5BYz171gigN3Qv8j+UvTvltDU9tD3Q0Pb21kDrFT5ufqlhoVKrWZrGXi1/sbFXADwbvZGS/7QDA94h9b4XOtjshwLeYXdYYmJ2bq8Qrj6Xlu+urxapH/Tevr6etIE/UuynBKI/p0M7TDRv/D5CtAVhReQf4rt5RjJX8sGtd7qKdK/BRhB/z5FQaJ/I+LF+vf8+VdeyVJhznD6N4sCDHv+BOpXr+Iw2i9dshoZZh4F2N7Sq48fOPC4Li/x8cfDcTASl/yh3bGFtGHSYnaPtwmQ8JfiR8fF8WVe/743t/1QmkT/hiH9a0rr7EwzSaN/I6EWQY2KHIX+/SUFrjqFRHnI9C/wnX1G6KDzYNfs+w6sjlD/whH2xEc4EfSv3VYefgANYfHGbh1TmFdcDFctbBywkmdKpMDp34Pr6rKBunUHif5FnLy5iECif728WhMGQ4rj9gj692Hciz4s1r9yXCV/0KSbq87VN0P8r1j/qufd9+F9cJ+n5vXvExdKLoD33Qjqd+9PgCfY5A9Vk26SvA+BC+JvfC5yR97eIndEsb/u619yomXrgjyBIKx/n3q//R9u699fWe4u+pceb+fjGxLnA2PLAcfkD3732+Ahyf3rGarVOepfYMt3v9XXdLAxB2hsWiPo39ZWywkgWCXo3yPLjvhpJJEbSj/WyduwNqi0NCg0pLCiQtN1qKU31a+Cf1/1GXeifztZGiZ/tHNyA7dC9G8q6F8PHxbhurDNezgkl2+NuL5qecny8SKEji7N1NxsShP071YKSsPuhYglelAgZLSIGqf4Ry1vPBD/KIdPZPOnzrehaa4NmNvErnHHrdv2FJbAtm7uuIUiKiYELQsl4Dp5B3L/Qp0E79tbWNiLkj9IO6CpNttUUfTvMfJ0j/SvLw+E+PCw+hcLYIsFy19O/wLBJPkDFHn9CwHAbunfGArC/w34xmOPfSOADCHJZWQceYcACkr69w9/+MNWeMCSe4IH/kp83y0ZWKeqsiCy+roI2bE4FBsb+wex/jVqjVpp9O8duJffvl1+RxT9ezT6tEdMmhh2e32WFjRDB7KSDwIm+rdWnzKRh97lCmdhlgq0dZZaPuxOmUcugrjoX6AdBlV8WWHgTvSv7srd5v7NynLI/euxJHBDaeImD/6cv0yB3u4oHXmtmkOvl3159p7b0b9syoeAuLgAyPtABnGsAB4/HstfXv9uqkWHrjbXcZ/lsinwuX+BT8GRWFubyJeF4Y/F8qtfWSzcivBDxUe/umnTV2eJIlUCPeAxDYZEadPYMtK/xt6D+8ABqyXHTRz6G6u1R5/Kt+xm9e+8eQ+Upcj1L8T8qkKmw+aGgAm2Ev2rVUmQngGeYzoaxkj07+2Ly5fX3GbLpF3XJSfr+DKpD+qa+UKFIPr3fHT0eXH0b3Xb1rYJyvq3P+JE/4l+rH8HBgaOdDtE/yZxnNFozvBlhnmaAv3rWKVXBfsbG22Lvgv9mzbm0qUO/5jpKPsD0b8gb0Dg3KX+XRbbb7k8CAounGH8l2dEWE5s3x6/bl389u0nLBEZy/2V9O9ensFBoQgfLSb+RPw0Bf37Q1BFcv2baj2bpNUmf71KI+jfiuSkcA3Sv1xR0L8o8NdkwgWEpJqB/j3bAvpXMffv3ylgx9L2EiJnPn5qw1do3CUUB7tGon+D+04WivVvW+fW3/1BmvsX3nf3Cu+PuiSw6clMtqAJQalxK3AP1fvlhxgGDohl3bqTJesuRImOULwDRP/27ss57Er/qjm00N3wZfpVgXxMT/RvbdmKFUIGCBsF1OoeQrl/oZ8hlzXSA1MJ/jeoGutflgXCDWDVVXi42kH/ypI/wCppFVoDLrfKLp1xAohpGRnw93ez+ndw0cpBVXD4P54iiPRv+vFVq1ZbVzvTv+cOGEqrIOK3qaSlZHl9SUlLo+0t6WcbqrPZVsfy+hc4pnZMOhWlV4nh9O8Hnc0TT2yX698bkxAXBP1L2kEzyWZwL/TvTiDyQE9Pf6T425BkCg7RvzW3bvP69+ne9Jqu3t7ervQuafIHIn+x/uVSP8QL7hfOUE4g52SpxDiL/i3LDBgnBvf5cCw8Q7EIqbKmd+HkfDOB1NSZEpQqeTIQ8Mm8uAfKxJ/4MAVyLOz5+Xa39e+LL4rkxiaeAweEIjTyc5vqoJXvXir5gbY353+XNzcvxws8pkrgMRqFIs4KeW0wZTcO/8U3KCmNfU6zHC2I1Ycs4VYktXqguyK14p3uAU/Jq6B/958Yhf71DgjO9Zbr33AKZP/qg4P1ZP8KWX/r/OFN0qo5/dtmjB17yrRyf4ws+hfr3/m9lOjfstx5cYYybgX32LnFYAId9W9mcAp81SDRv4BPLvo63so1/ETDecLe2czR5Sr69+2DfOiv6fAPlPRvBIclI8PCl0eY/MGM9e8Z6XmsoiDWv9f6gsXRv+hO9G8+BUkFAf17jte/2P/6p9lvmq6Fp/kj+8vq39notiAiYsFsVAJQ9G9n89hmJICnC0j1b2ZAQCZbmaqrqz11Ok94kuvf0HZYVFTAoj0UrTv73sxsNialAklGIYNZdKdpDQjgmqwd8+YV4ds8pdy/uTFeJ4qMfyoQw6Bft8C2ZaMs1R2VGk3lcBjRvzdreyyWm+7p35gltbVLloj175wZR4ZaqoCWoSMz5qAPLPlr2fbWQXu2WP+OBdzWvxaLT8Rukf79OQpoYsl6BSE6K69dI2elVP8OXlPlXdIqpl58nOc1vPz4YydTv0WwRO2OIDjVv0Ao5P91iP7txEijf6NA/gJR7unfPXvc07/64lq5/gXePsy5RAj9HbH+9Zg+3QeYPt0X9G9iXWwHjv41dbIR4AUFfxqzies26V8WKR0J9KPUC5PSQsvL/e5kl0D8nTP968XdVi4yGgKK9XsATvDnQi+6Qyz4wylw+tdXfOP1r1+6vaenqmp42J7uJ47+3XEfZocQ/YuFL6t/uRQQWP/e2HzxcyHvw/aez37xCxf6l9hfuv6lJ38gJ1q2Bvc71RrQv/j3ZMr6d/duee7fu9K/dIni4xESF0jXv4f8IIRUNvVbRaqf/PL4u+2C/m3KOXjwYA6Z+u3yCUxPq6B/j6DbkXLxUE0pr0y5nyZJVxEO0y+FJ+tCzfaK1CSuazdwGSBeRHeAS5CA9S+BYSpZEicvaZucyK2Qb6ESwu16g55F0L/ew09r9Wphy5Yj+i/1ZywnCB1dSdO5W/lE/46lQP8mmte/BtC/xRL9u3+cBcJ/H+VY8VH5+863oellnc2me5noX4wfeRJN2YeChQigdH/2s20ALGFRWlsWAAVpl+DZ3td3XZT790wyWiaf4fXvecSDoH+nnhdQqn1pFBT17+uNjVOA2Ph4iHzi9e8OjrL77ivjy7AfNsJt0qS9n65fL9K/ZRzjLJZxfJmcLRvz8zfyZRL9WwBIon+LPbwxvsHCq6kUFPQvUTYnobHlwGOiB7WoPpjNovowk839K0n+ID0WA222c1v/EEb0r9o+aLZrRfoX53y4k6pJLb9Don99jsLl7PCXxXDbizNAeCHAAPfO51uYouIifbHeEMCuKXW5Koz2DNK/Z7Ry/VsGB0mkfzFf+lKW1Zr1JbC/7ujfK1VVV+5K/yacef/9Mwnyqd88NpmL83iXQ7YhKzycqEHFdgdjTED/3yj/xLnFxbnkHbYgjoH+3UJQjv7lJ3zDk8C51r8ATf8eWIo5IM9afnTTpqN8mR/+PBARAT4z4gGZ/i2cVQh34VIlqbg4CT8GB5OSQtgyqAztmn2gf9fsMztG/76Kc9FF27Y2m2L4vLtxuQ/P00v1L2A3amF07jPdN9hoVinqX9kAtdxqLc8W6d/bt2ou3oKyVP9WqMFxVMj1r7oXLuUc9W9lc3MlX8ZXBSgiRIJY//ZnoDb4BNa/SYBBhqhWV1YKRSX9q6IwSv07POxu7t82W2ynY/RvT11dz7RRJ39oR8kfQP626iHVW6jfeyPTv99H7AO0WrTEq/DRTlhORMTQ9W9OzpSsrCk5P5To3/Lwr59Vqc9+XaPj9G9FRYUuNTW0QqfV6rhiBdfNr19PHoC0mi27ffzJ2/zF54j1b056jkj/elAQon/Vhr4xfVpB/24VKBaA9329s2HOijnRYpD+PWKzHZlQAXO+AVF5NdCwCPr3wroSsf4NZjFcvmzgiiL9m5NTo3ahf4WdkJQU7GpmVPqY/t0AvSouc4Xvzi8K+reuTq5/l8N4wMsLFiu9BCQHRjz1GwWySe7k/hWSktXW7m+VtLq2SpQAIt6S4ZURESPWvym+HgSif48bV8HCfNyZ/jUC+hfeOptfX+efds7fdOVcy1vSz1Z/5dzZ4/XVrP598HNYfB6+Q4DXvwaa/r0QU1QUc0Kufy9MwvQ66F+jNd14L/XvEWBt3IaQ0sojAnRZ4KB///xnkvu3Jh3Ub29vTW/v0+Kp33j5S/Sv301I/EDcr4roX6Ns75gwaePTTAQu9y++eidIj0VYm61LBy+wAnnmzGclKFXymcCBzB07MmtdT3PKi/hrnZ3X7GoH/XvxoqP+vf7gmTOwYBEF3zc0CEVB/16l61//5mZ/vJDEzRrtdnF9CKmrLNQbIAHwI3CHGzmztFqV+JnTv5OPnlo7ZE4wJp6+dABWJXvyal/LCy+s7bvqKdu/fY2NfaPRv5sCfL2H14hQCrnh2wH94KA+WKZ/wwZMsANgR8SGsfo31mhT1L/yqd9wwO8jhod3wHXjI3z070KOxxz0rz4FLR95RKx/gcAUGzQ0lXGB/Dm0meBe7l8I/cWjQtCNF2//QFH/8nVgXqE5QHRdzZEogv4qTv7Qc9EsTf7gSv9q7deu2c2i6N99Fy7sI/o3DJMd5KfT+QVls2uSCgL6t8q6fgLugbdlbTPfLLk5AwHP5qzzQvQvTAozaRJMDANFVv92nuyEfQICmICsdmVKyjzI9gL2t8xggGdehSxdipbU3L99fRV80ckpbLbbs8LRBVF4lt3OxjtjHY8CgH/Zm84j1b/rp00sGHvScgJF/0aUDGbJ9K8n4e8dQ/v2DXX8nejfnp4eS89FafIHqxRB/xYtKQ1YUiTWvwt2fk9g5wL8gT3F+J0/7+eprH8PUSCJKT0aGpbGx/De5RVgqopHfUyqf3Mtlly+LEv+EHztWk9rsFP9C7PPEBT1r1I2rkiOjsqPInmI/sXzv8mjf9OaOzub06TRv1E4+teF/o3iiM/IiOfLo9K/6kQ13B30b0kGQanV9BEx51xloS0SDWE3rlu38UJ+JyTaOAqHObqt0mpE5y8FZf3bCGmo64IG/Mq7/FBS6kanyR8Ar0VGY6vBGBK3g9W/Gkz3jFQNgWGiKaDkDx0OsPpXl2405IVcu2Y2puskuX93YPtLcv9i2OQPGE7/fg53Ie9D1y8AGK1xIP3LlxmGs78Xif1l9e8nej34QjUsP1GO/vXkwWkfYAkpIHhZF6oXQ/QvTLkzzdXUbyUURqh/AXnyB5yhRN2qRbSqSYYSnFvUMffvd8H+QvMEreZcnAOY6N/WE4hWKJHoX78jaBGuF1DSv+FJmvLkJJh+KQm+YEtqaEgKL0/FP7UpjsKxhWe2kejfYowBziACw7RwzJl8aQ5fJhVaW2XTki3jgn9XrH56wyaDRP+a+jv6TBL1eoGlxBausZVwK670b+u1a61S/RuZDljTBZCcgcwP8fvH4eQPH1W+/yCgtA0RGMvLupYW3csWdo3X9vAgBUX9u01MUkgfG/3rKSa1srAyWxT9e0wa/bsWs2ncmLUEeu1T+qIiHNAGh+Si5A9qfbEBrSP9e7DOUf/eRwE3Wtj/npg8uZno30eBhy1ARgZaPozWhW1I6zx1qjNN2IYUlgOT51yafEBIWQAVs9SXI1eoqa9RcKJ/V62KjmbzLRH9C7ygAnp71Q769+z7IqTHYqgttqtyhij6V2sfbE0X6198bnpWbG5ZC89QYqN/l3osHZn+Dc4NKMo1FLFrtC5XOflDOEfIvHkhfJl0xNbhYSvpiM0UiP5tKS9vIfrXl4IL/XtsS3v7lmMO+jexMNDDh4OowXCNJpw/GIrtDkYN56nK2NsrtyCGoiIDOZohmIDdxSEEWvQvVf+6SP4A39RVpYvgf4c2fSlmOv87tMdYThcsWVJwmlsh+hf9tFmuf30h1SncfflLFU1oqEb+EPTvp/WXxF/YSOZ8O9Vp2S1MuzYuJThFlvwBEz5nuse7V18PEX/i6OIQCdIzoLuyq6uyWxL9i3hepn81KkAj17/Gmr/Mn58l17/nm728mvnwX3oPKdG//RGXGiLY6N9NFESDJZttVPp3dMkfhtvahon+DXSE6N/8zs58h9y/Cxsgp/Fk9/RvlBh+6rf3Yvv3D2qzNDqYRBY6nBElf3gVsc+sRtZebd6HV5H+jYig61+gpiYhoaZGGv17xf7KZ1brZ6/YP+P0bwKPSiUUef3bCAugkde/niKCLl1afylMWf9epSDo3ydrep9ET070rxD9a0y32uxGQf/GCYh/ub27ubnOstt7eoFkUMHO+ZZazCYnSv/yQ1j/wqC4E0f/5ncICGnl4kHGcypE0L/ampycliw39a/2xg2tK/1LH9O/W5ZriFsBREIGCHz975eU5BcmRml84EmQ699LUsTxjL4CSrl/+cxkARs2BFyWtrpb8U9jA6dFRPjEkOQPaAZuqv6tMq4CoADAQaQAAQdGs9a87a1nj7c1+ZfULa87DtkfJJ8t7HjLrXNDx8Ow/j2WkPXg34Dub5D8oh5AR7oUVv+u39uQnBxzYrtM/26chLnhGP1rNKrvtf7V6TfkhWiOCChl4P8zBS76t6a3q6u3pqarpovXv4gKXv4S/du3aL/Y/aqNZvQOTz6z2ipFMcloZiZE/0qR1bM7LVfY3L9rKShV8plAbQCoJrf1r72qT6Opstnl+vdWTs4tB/37ImrGXpTr38n9ERH9k7kVIflDkTvJH1Qc5qoqs1j/doVrDJAU0rGuHz6sJc+c/r3UcDQ6NnZrm9Wq7evrwPpXvB/rys+fX1t3x1O2fwdu3RoYRe5fQD71m7L+xQxC5lhJ9G9QNegc//GwN7jsD3iWhbHU5A9jOsY46F9MWVymPnOHKpM/Nx8jSPVvpqrsq0CAvozoX0xgHEqPZUsJpOjfqoubP2uCZ1Hgxd/l+hdCf5vZ0QCE/gIMc4WC8KvawOBKQ3AgtwKjUwpKr8LxNhpRMIUIV8kftFaz+do1Ev3b9Fxj43NNgv7l6kCFX3W1Hz8Vn2ygV9/SVd+Ne+Dz286fO3ezJBEFcZVcfOHMGaJ/J2asAzImCvq3+aTJUf+OI5QZyuCuqEKI/tX19PRVuKF/gfDHdaGPh6MSGcR2mnIWi5Dp34lI/+ILldzW1kJZ8gfJ2VN5qKKicu0dUfSvBa7zb0qnfhsrRdC/cUs21C6JI/oXWLD2e1wSp7ULPBz1b7afX7ZY/4IYBPsr6N8ICkTXneyMjm4+yZZZ/XteJXBGOfpXNvWbfhD0r96Z/v04K+vjx1ngecTRv3+hQPQvnv8tzV+W+7cZkOX+jRwHuEr+kMOx68KFXXx5dMkf8tTqPFnyB2D3AwTX+hc4un79UQ+sfzHrNsYAJ6PZlmRU+tfzzp072TqUZ6rR2dRvOPTXkJsC9ncPC/w2GjNjBiwEFPVv3Ll9cgT9qzYmXRtUG+1S/aveAajl+hfH/RL9K8v7gFfhgoQj0ts7ki/zV++s/b05m+jfN1Q8b7jWv0B1qA4mnQyt9uQv33ZHiRFF/0ZEOEb/yvSvH4WRJX+gT/1G/79hFOT5DkEAE/2rHrzcMxgMfYiQ+9fvCBbAA6/vFlDSvxU6XapOF5qqqyiHR2WlroKb+q1oQTE2Md8XZdOioDT1m57FoA/JS8jicKZ/ey6NKezLEKvXd1haOlrOdbRwKyPWv20vPSkFy5lx8W88zKtfjNI2LMB8dc5cGPPN+Sq7RtO/yskftknQaNCSYSQdQqHV2jGA9S8FfmqnceM+ETEy/ZudHZqVG5CoQ1O/saWwbHryB2X9uxEL4PETp61xS/8C+WPH5vNlUe1buFAo4jOgWM9R68syYv0bveqn602TANMpuf6FYZXoavr996+rj70PKOrf7Oa243V/Fyd/sJrtVknyhzvI//69qunqBChz0b8Yiv5VTv4Qh/RvDLei1OV+jwIZsH5cWfkxXyb6dxgg+vc4BUH/XqkKDa26IuhfPQUX+le7Ra3eoiX6l8PjQKIL/avc7gBZvYcP96ogRolvz4Ih75caFmqDAT3hNYaZjdm9e7YIevQvSf5QpscLWHEy9RsQuXrx4idFjFz/ApZ4C9wfletfBNG/RPqSh5D8YdghEnsXDv3F8Q/x3KufYDLlU79hkq++jqqsWP8WLA2UIj0D1t7o6rqxlkz9xs795qb+TZ//l+fmp8v1b3qJl1dJurv693UQwHBn9a+BguiiOjra7Er/aiko6d9/UiD6d05b2xy+TFVQRP/6Q7Z60L8eJPoXsbC/382p39JlXdb9AMjfy4YzmgrsfoGRTf32Kku6GnXp3AqO/rUo6d8WLaaF6F+Exr65svIzs+brrvQvsLceLev3smtyOzFmzICnsv4toSDVv0+6F/2rMlutZrWgf2spwPsO26xLvFc46t8Jfmzo74riww9h2AbmoOlU/t6HCPynMGwHDDL9a4aR2mGzu8kfAL5MH3DRx/Q496/vu19g+SLWiCghxwQx7unf7m6ifxf8RIpYgYh7CaR7FaN/ryUWFiZeE+lf3IKdQgkgQABPi+flV3ApJL5R0L+q1aLcvysoMIwxS2tWf3blis1U19lZV388X65/Ia15ff3QHTb5w+fqM3+j6F/KeBHr3/oYrH9dRf++T+GeRf8a80IMbujfCxS42N3FACyffgaWvP4lkb9E/7Ysil8A7hf1k0Zz7+GWnMVP4ndYNVaGUvSvnoK8ngVNYOvZhxSUKvlMIPHhTZsePuBa/57BdNmqNF1W2zl2TRT9m5NDSf5wDL7SflCsf5fi4N+0tIY53ArbyE/58UMSlKZ+S+AwWq1G0jwO5mnsmmvBCaHVAwLcpzh8WEWeWf0bG7sQ6d+2WKs14cDpMWtZ/Us4VHkmyXZIbvdwmOeI9W8US7M70b/rKaBtyNb51U3y56kLo079Ro/+Jbl/if6FtdHoXyAwwIrmZcj1oUX/dt1AS3gHHtHMjux0UI3c5URzE4T+AkqdUjSH1jom5BSRKRtK8U2M0qtnKNAzWkuTP5Dcv0j/3rrloH8rkGvM9qug6d9D+XV1+bG4B054PqFqvXlwA4xhega3PX+e6F9I+pAB9nc2KnO5f5tx8odVLxFGo391VX0QZltV4Ub0r9lsfx3Ig+dR6F+V1nHqN08CnqkQCVkS/Qsb1ndRqn+jFfRvbWlAQGkt0b+I6e1TMe3TPYj+lSKZ+g047UL/juXp7Iwmv1J8BXhRTfSv09y/AiQK2HX0LynR9S89969L/Yvnf5NF/65EwWJI/wLiqd8yXU399mWOXQcP7uLL9AnWXE79Bv8km/oN8HmU4Ez/EpYuhYWgf3kJXJLfDEduNMkfSjyr71TfCRIlf/jmW8876l8AYsyMl+P3hMTtL9ujHP2rnPxBSf/6mc3m9K6udEi/Ikn+gK6p9bAg+lfMBx8Q/UvyPrAwzKccSP/yZYah2F+X0b81RP8SgvxSU/3gay96VVBM/kCBPkXbCKd+89n53v3vSVGK/j1EATdOGqkAFvSvscrIPgn6l7W/V+fMWiAAgpMCVAVNUjh6aDTJyZpwa7iGz+uUm2sAE7PvOwIK0b9E/3ZWivQvb4KKVKrUGRzOkj/09F9q6JGo15ksFX1jxtRVCEO9WAqi77xaB/Ui/Ttn9UuLZTAMn/DhQRFK2zCLY0Fk5AK+TEv+oDz12zYKsi6heqA6yJNM/cbnf7h30b+s8g3KRvo3u5pdo079ppz8YRKb/mF5RITpoJvJH1DOZor+nbZA8pM5qCAsel9vlhEnfwD/W78RxyefFOnfz5GWTDCbE1wFU3mKCBseunPJU5L712g2SvQvm/336lU2RF9R/7qa+i1Xn6Iv4sq0LldZ/35Mgehfgkv9+yxk/hUlf1BRGFX0LzBZKJH3TUhOJsdCsd0B0s1GCIYwZhn59qw2AFOGF/gWUDuS6F8y9ZsKIFO/EflLBDDDYPkrY8TJH8jUbzL9a4D56cFTGPhLlfDk5HD5g5v6rX6Oz3QRDINDf2NjT6HRr2UaP3wJpcAnf0hYNuHIhDsDWqOdT5sGkxGLoMUndHdnk9y/BDeSP2h7a2Ael16tTP8uwsHvrvTvN7+J9G8/+F+O/ggX0b/qtujoNi23opSj9wcUlPTvLgrkfSOHhyP5MvVsIfoXwp7Gs9G/RP9i3Na/L4lgGJC/h/pak9rB/d4PCPp3YoY/kr4REUgE+2dMVNa/3+cwwjiBL6PcvzENirl/0WjPmE6if1lSrZWV1s2oRJI/hFYIyR+gWMF386tLTPn5ppLVFP0LhIV5OtG//hRGkvyB5P5VQ1tCcv8WUWCYpZd6ei55OyZ/mBCaF4VDf+3zBc+Dn1565pmHRDiN/lVpzekq96d+I4ww+hcc6JwvMDwTgIqKCfdc/74jQHLIkOhfau7f5PLyyvJkkf61t4GVMaO8eLPQ9G/4wAwGx/ngg0RP/qBKX4WAorL+BbQvvNWSPz4ferl6k+ktTv8ShtqGDoVx+vfzBx2SPyygjhd/imjsDAjoL3GV+5eejoHKKPSvPi/PUHnHpf6lnzrPUGAYIn8JEO7SEwNxv0ZzOha/AN4PT34leqwcpdy/KgpKIuRhCs6if8u7/fy6y13r359hNh+v6+rqO76ZXSP69+bFizcd9e95iHyU6F/MZItlMkn+gOSvHKiTzd9xQGnqN/21DYUbWpPmhgUR+FAetYo8s/r39dch9S80SPYE4wFY28npXwJkLy0ndk/EyPXveApK+venFPA2DJlKRNQNIP17qh/kr5v6F0GSP9Cjf10nfwACa+1QZbeG+AZK9W8VRP/CAlAKd4HQX+579lP5NyB7CoJ+ZhE5Z7PbbeS82ECB/qpSq/F9CkT/Gq9dy7ObRbl/DwJeRP9yUx8htwYTIVH0b1jY0FAY+/sb9TaVef251hLYmJLWF85rheQPwOzl69YtF+vfsSeR/P3yQwSR/iXJH1zp3x5Mn0v9a4TsD3kNQB7kfjC6m/yB6F9z/V45tPOE6N+NN/v6bm50T/8uhPljSxdK9W9grQpTG+iG/kVJvQuOnj7tnv6FxBv5zWOJ/gXOqHimsvr3RQpE/4oVsNLUb49TYJiLFHhHUxKzO22mgFP9S+Z/k0X/ruzsXCmJ/gVWR0ZFRYL9dap/KUDlpcBVsmLpMAMNmOGXFsW+gb4BAbAohl9evP326PQvgehfAuSCMDHMQQpKxoNM/eYZRKZ+WwXyl6p/IcpsEKJ/9+yBU3CPcu5fpTDDOLr+RYRb06tu3YLfw2qWyfRvcLCS/iXRv5K8D3L9OyzVv8T+4v5iRFO/eUpAX+q41r/APdW/9Gij10nSX5e5f9dRwI3Td+URwOQHTlaj0VpllOb+3QkjcoJS156qqfBL1fghWe6nSe3u1sDU3cLl/OHviKDn/lXSv3wPDHavfAaHs6nfTCU9FtNy8ZbN5Gipq2txNdSL5WlrE0nh4cWOwEBNiPolKG3DLAq0qd9Gr38JotPy/HlY3LvcvwYsfz1Z/esJAjghF02lNpzTtHGjF9y98FNTzrCTqd82+mPBih6Nzqd+q+dYg+4cIv3b8KY0Y5ovVw/iiLSsouA892/zJEyzSP8mOs4kcJ2C47EIk+hfhFT/EpzrX5z3gQv7Ja9OFLI/1Ir1r4z/jP5FjE7/0nP/0rvBfRSU2p1YCvTfLYws9y+RvkQEwznPy18igGE/EPlLUJr6zc6Bpn7jy6B/eR54QCjyF5MfcfAXk0HLlgXJH0j/frrmym/kUWS7YM63aLt6K1yTxPMWF9pJCsLUb+FH7tw5Ei5M/VawVG5/lQeoz0PIL8Gtqd8SjPNrVFq5/t2GcaF/M0wmGOpmRIjIUIr+zWIxd9lsXWZu5d+ufwmu9S+A9C+GYfobHOh3rX+fZG9Y/763ts/aPheF/RKgKYlYB94XGD8eP8HqRCX928HSpzIYVH3cCv/RlJI/dNXAnehfjrPlOpGg9IMJ3zQaWCYkwEKHi9DNczSaTI18mVLNRqx/6VO/1Tc73OpJ9C+C6N9iCvC+Ud4+u2uvSQATt0yDO6UVcb2iS92HKAjDPkNPj4ErEv2r0hpHqX9TKSjm/s1MyQ1YIvjfCRTcTf7gtv4NDglBAwSnuX+BY9evHxNPm7MV5S6HB04AwcXm5YKjkSOe+k1lP776+Dln0b+1wJLyt966Al855EMMav4VXv8SwuCmNPUbfbzIT/3WKJ/6DXMR2d9eon/pQvbu9W84YN+wIa80L1kUr7OTgnP9uzgHs5jXv00lRP4S/VvXV3V4Pid+yX6A0N//oP6lV3LoOCM/qpw5sxKe8A1egGNBAfQvSwukwI5t4VZcTf32Itwdp347gO4ccAa89GOK/iX2lwAdAgXYO2j+f+t7YH8JCmMfMvVbtI1M/Sb7wra6Ovvfqn/DKTjRvwNDLIcA+AxDsA0FRP5K9C8cmzpq7l8y9Rs1+tf11G+YwCgz+q7cXhso1b9daOlU/zYKc77V/ABwpn/zeaDJ4RlZ8odkCq71b0iI2SjK/Xth/vwLRP++TsFZD6w+V29qhcDX1ps3YI2f+g0eMRkTJ2bEEP2L5O+TIH/p+pdM/eYq+UNVD6KKXXEW1ZWVYM6b1tAwLc+ckCWf+k0TyqOkf63rP3hCDkND0L/rJm3cOGkdr3+pCPr3sccmQzYvTv+SpCMqgOScpvMIx8KCgoV82elfA041N8MUNxL9ez0560wCDnR6xZn+pTOOAqNAFwWx/n2HXHuMABL9u9JkWimO/iXcU/0LGGTRv5D3gU06FYgXtQbIADEi/TsinqSglF/gR5hdey/U1ZXs3cWuMQqsBFoNcUVxe4Cyy3sQ9AlUsWd6UXabyiiwjA3/TTcnJcHCj9W/I0Kc94Ho30aOBm/vBr7MMBT7677+pXP3+vddCkpVIYgCowAXPWqDhwAMvigwVEgcFP6Fozj377IhNvQXj8uV9a/T903/vmwwMx2B9a8oJo2Osv7FrP5TnCiLZzwF0V7fuVMo0geWCikhRkQ8BeXjxot7Yu4V9O+ImEqBe98XQf8mqASUat/7FBSPEMR+QWZ/8oiZzF5wpWTqef2rz0QOmI/+hRu6w68QnOnfpykwCngDtdj/hoik5XoKzvXvyTQsp9dHC/p3zCOPTJTcoHM9S4GhoqR/oSbK2ckosPRoHXG/cv0bUztxYhlJ/nDX0PUvlZHpXzoqnqwsl/8XUgHxN77wE8WBDgW6/uV+Ed8O+vd+glL0L0n5gMGrzIhQsYRsmj59UwiZFohjfUfHer4M+pfCiCLDQP+2/EYOw6BcdNE2a1szTJfE42R7K22xdlWWRpOlslfiSdKYe8CfKJBUCKVxpUV8WbHdocAo4EuBGDg4s4TiyPSv+4xI/7qP29G/IIDRjDFzIe5XCkNFSf+OY9mRMm5cyg4XI/0pHDUwSRRfZhTwA8JTK5D+5YpY/1JgqCjp30YKuJEbFle8YdzIvUqBRP9K9a9y42lZJ0/IVpFX64H6Jwj9FWAUoF2pu4+S/vWjoDSmf7cYddfTv8D8O5HpX/2mKD2rfwHH3L9xPKWlQpFr40+14SecAEL5wBD9+0+rVqW1QklZ/74JE2BMHANdesu5uqpzwBXl3h3L3wcT1GIYKkIb/8F2HONC9C+m6wbI33+3/uUMzYFiQ4NBJaB0kdtIgde/OS2ImhZO/941I9O/7qNUyR9GfJKY+MnDPB8+TD95BP17PbyyMnyqK/1LgWHUFJgRQde/qFL/q717DZEpDAM4/iorxv0+kZVL9oNCu8i67X5wHVPuqyQTZWw2LSLFWtRu4WjkFhu1yFrbCK1SRG65K02SS764tL7ggy8oHzznnXPmGTPPmXde5z3jDOc3Z2eGhHbX7pm/Z56pGafXX2R17vOEwCTI5d+rBBUfTRpM/y67do2c/gUd58zpaN5nFobqOs5p3DOUyr+gx+H7ev8tLmEkq/x7uaGCf3VqeNc2U5R/6XGtawSrn60kMAu4/CGon4bi9G+nlpZOmH97EDJ/Bw5+0OpO1e2cpek/wOUPhfpNodGCoXXfNuMvkuuI0+OiF9/g8t8MOx3LIkVaraaFw7VaUaQs/qS9L/ro76IPVcc3J1jkXwmYf0G2+ZfD/Gs4DHMicCPMvxwf/RXmX4TLHxKe64HA4fz7jmA//+L0L8DpXyfzb/i0P+W/mIsacemUHoEbi9q7Kf/CAPD+/TD6K8q/nT7CyocrtRcQYz11/Lto8gbj1PoryL8gWq3thAIcjf+IScG9DyhRI0eFfL6QuTNff2T3YwmH9VeYfy85nX/nESxP3wiWGZFgtfuX1p7A829rwWgefwG/lc+/sAQbqc2/YHzyUweXE5J2gsE5nsm5/LucIMy/N24ozL80ufy7i5DxIxQK4RvgL/rX9LTZzL/NT5tK9T/NCL+j4I3fvaks/wL/yskni3228m9FQx/QsB7E8290YBr6c0cq/0q5fwdWPiDMvyhv86/M59lIgpr8C8T5FzCGL/iGLwLHpCQiVThcmvyq8Ehl/r37knr/xuLnfw17exRkk3/LVvCZ3/gcMF93ocA8Aj3BpSL/0vqhfzf/Jk3/Ckjk3yZ+Jcq/BGaBj/xWlZvTv3PhrpL8S5/V+ziIfT64AJ+y/Ht+d7z+IqiX/Pdv/PD7E11pU9I4l3/pc/pWGDoKL17rd7T/pi5/OAnN2Xr6t4RgrGvCp9M+GC3Ov7qNjzZm3v077ExhYe/tbW0BOAJwDeoz5N9vr7b8LmP+BcM7I4uJU5Ka/AuC+j42ZPXIZiPBeOm3SUnGuz//pn+SDyBYPUtqlSkQ4Dfy+fc1QU3+rZw9g9dfcf69SHAu/9LZZR1BTf49uG/fJ3L6Fy7AvGudfzn4ZXT+BSWTV8D78UCjXP41R3/vzASC/DufwKSMJYjzb2kwefcvrO+7ZSP/grLaezvuRWZVJvLvGLjAAeCa/4Cxiknw3dB+/gXRTwe3R6cL8i+IaBocR/QrY/q37irU37uRiV02d09wVf71l5b6hfmXIPeoCPNvdeXzhxsczr+9CI7kX8BIEvnXNnfl36UtLUvF+XfbBd3HbPIvD754CPMvKJ9YU27eZ1Jw74M4/2L9Tc+/77e8/zvTvwUEFZ8KtG4Eyfz7daERfieYxzwmBdY4TkFO598FBPpUz7n8u4AgyL9jjSuOkdycfy3/tGAzLn9oDiamf0fx8AsX3eXvyfm3Z08b+RcN+cP8C2LP6uqeQR5bb0z/9h0IeuMB6OlqtflXTJx/1VOff6cSHMu/pCzzL9/+oOZ9hgT5V8FJPs14TIKjv4Jwomn6Nd5jChQQBPlXNTr/SsiL/IsU5V+kNP9Gq2GBdzz/RqvgrvP5F2XIv1J8oa5G/UXxP23x0Uv9kMr8KyaZfzuuPNkEHdTR/mu9+xck519g9bWiAzh3rkPCMXH+RYLpX8i/9fEArCfg+gz5t3V4KtfnX85O/kX5Mf0rkX9H/H7B/IsC0vl3E4Ep0L5qEMZfQf49Tsh1/h1AUDT9u4aa/kXC6V8Ck9KZYL662LufM8X5lx5OkPKQIMy/HE7/gh328i8o4gcuf+CH+QZUdMTppovwJs6/oNZg/s0O6aO/kXKIvy7NvyXFxSW5zL+IkRzLvyQv/yrLvwRmYfcFJMi/Uh1kiGE5wOYnA/c+iPMv1t/0/Au8/JuN1gWjiQktGdq0KdL5V0xB/qXlPv+ify//AiP/cjz/pnl7PSn/Dh5sO//amv4FFbFYBX7kXw1MZ7ElVYKXf02PCe7Mv37X5F/7+GOSvecLssq/Kbz86+VfpHL6N1pTM5vnX343mo/5d3UfQOXf4p39++VL/h28Ns6X1n/dl39jsQ4IFkDI5V/aVjiv33qjTa++bQEAt/WWDaKgs738S/of8y/FPdO/kHyRa/LvXFj76878S3Ey/7ZbvGyZS/NvDEd/nc6/7QnS+RfYzr+CzTJq8i8S518CY/Cab1r1WKi/4vzrXmT+9XAS+dcj/100x0KJvQ/I1tdo5vkb6PzrITmdf2m7wEs8OObxAHc9vLONzr8eT0644B+Axz1E+df5c/rPZ02tL5ibdUj3gHk8ih+4pkz+nuDTvx5PXjPzb96ec5D5N6d+AU9U34jqcCCnAAAAAElFTkSuQmCC'\n","import styled, { css } from 'styled-components'\nimport flags from './flags'\n\ninterface Coordinate {\n s1: string\n s2: string\n s3: string\n s4: string\n s5: string\n s6: string\n}\n\ninterface Coordinates {\n ar: Coordinate\n br: Coordinate\n cl: Coordinate\n es: Coordinate\n us: Coordinate\n mx: Coordinate\n py: Coordinate\n pt: Coordinate\n uy: Coordinate\n}\n\nexport const coordinates: Coordinates = {\n ar: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3607px 1px',\n s4: '5410px 1px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n br: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3300.3px 0px',\n s4: '4950px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n cl: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3084px 0px',\n s4: '4625px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n es: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '2717px 0px',\n s4: '4075px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n us: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '274.3px 1px',\n s4: '389px 2px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n mx: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '1383px 1px',\n s4: '2074px 1px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n py: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '963.5px 1.4px',\n s4: '1445px 2px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n pt: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '993px 0px',\n s4: '1489px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n uy: {\n s1: '0px 0px',\n s2: '0px 0px',\n s3: '3998px 0.3px',\n s4: '367px 0px',\n s5: '0px 0px',\n s6: '0px 0px',\n },\n}\n\ninterface FlagProps {\n iso: keyof typeof coordinates\n width?: keyof Coordinate\n}\n\nconst Flag = styled.div<FlagProps>`\n background-image: url(${flags});\n background-size: auto 100%;\n\n ${({ iso, width, theme }) => {\n width = width || 's4'\n\n return css`\n background-position: ${coordinates[iso][width]};\n width: ${theme.spacings[width]};\n height: calc(${theme.spacings[width]} / 1.4);\n `\n }}\n`\n\nexport default Flag\n","import { Countries } from './interfaces'\n\nconst countries: Countries = {\n ar: {\n name: 'Argentina',\n iso: 'ar',\n ddi: 54,\n placeholder: '011 15-2345-678',\n validation: /^[0-9]{12}$/i,\n charLimit: 12,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{2})(\\d{4})(\\d{3})$/, '$1 $2-$3-$4')\n },\n },\n br: {\n name: 'Brasil',\n iso: 'br',\n ddi: 55,\n placeholder: '(11) 96123-4567',\n validation: /^[0-9]{2}(?:[2-8]|9[0-9])[0-9]{7}$/i,\n charLimit: 11,\n mask: (value: string) => {\n return value\n .replace(/(\\d{2})(\\d)/, '($1) $2')\n .replace(/(\\d{5})(\\d{4})$/, '$1-$2')\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\n },\n },\n cl: {\n name: 'Chile',\n iso: 'cl',\n ddi: 56,\n placeholder: '(2) 2123 4567',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{1})(\\d{4})(\\d{4})$/, '($1) $2 $3')\n },\n },\n es: {\n name: 'Espanha',\n iso: 'es',\n ddi: 34,\n placeholder: '612 34 56 78',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{2})(\\d{2})(\\d{2})$/, '$1 $2 $3 $4')\n },\n },\n us: {\n name: 'Estados Unidos',\n iso: 'us',\n ddi: 1,\n placeholder: '(201) 555-01',\n validation: /^[0-9]{8}$/i,\n charLimit: 8,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{2})$/, '($1) $2-$3')\n },\n },\n mx: {\n name: 'México',\n iso: 'mx',\n ddi: 52,\n placeholder: '044 222 123 45',\n validation: /^[0-9]{11}$/i,\n charLimit: 11,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/, '$1 $2 $3 $4')\n },\n },\n py: {\n name: 'Paraguai',\n iso: 'py',\n ddi: 595,\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{6})$/, '$1 $2')\n },\n },\n pt: {\n name: 'Portugal',\n iso: 'pt',\n ddi: 351,\n placeholder: '912 345 678',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})$/, '$1 $2 $3')\n },\n },\n uy: {\n name: 'Uruguai',\n iso: 'uy',\n ddi: 598,\n placeholder: '094 231 234',\n validation: /^[0-9]{9}$/i,\n charLimit: 9,\n mask: (value: string) => {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})$/, '$1 $2 $3')\n },\n },\n}\n\nexport default countries\n","import styled from 'styled-components'\n\nexport const IconContainer = styled.div`\n display: flex;\n align-items: center;\n\n > i.icon {\n margin-top: -1px;\n }\n`\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n\nexport const Label = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n\n color: ${({ theme }) => theme.colors.greyishBlue};\n\n display: flex;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > span {\n color: ${({ theme }) => theme.colors.darkestGrey};\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport Flag from '../../../../assets/icons/flags'\n\nimport { notEmptyString } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\nimport Input from '../Input'\nimport Icon from '../../../Icon'\nimport { Option } from '../../../Menu/interfaces'\n\nimport countries from './countries'\nimport { Country, Details, IconProps, PhoneProps } from './interfaces'\nimport * as S from './styles'\nimport Menu from '../../../Menu'\n\nexport const getPhoneDetails = (phone: string): Details | null => {\n if (!notEmptyString(phone)) return null\n\n // mantendo apenas numeros e espacoes e separando por espacos\n const splitted = phone.replace(/[^0-9\\s]/g, '').split(' ')\n // se tem pelo menos 2 posicoes a primeira deve ser o ddi e a segunda o restante do numero\n if (splitted.length < 2) return null\n\n // pegando o ddi na primeira posicao\n const ddi = parseInt(splitted[0])\n splitted.shift()\n\n // verificando se existe algum pais com o ddi correspondente\n const iso = (Object.keys(countries) as (keyof typeof countries)[]).find(\n (k) => {\n return countries[k].ddi === ddi\n },\n )\n\n const country = !iso ? countries.br : countries[iso]\n\n // juntando o restante do numero do telefone e mantendo apenas digitos\n let masked = splitted.join(' ').replace(/\\D+/g, '')\n const value = masked\n // mantendo o limite de caracteres especificado pelo pais selecionado\n masked = masked.substring(0, country.charLimit)\n // se o pais selecionado possui mascara, aplica a mascara\n if (country.mask) masked = country.mask(masked)\n\n // se o pais selecionado nao tem validacao, considera valido\n let valid = true\n const validation = country.validation\n if (validation instanceof RegExp) {\n // se a validacao for do tipo regex, faz o teste\n valid = validation.test(value)\n } else if (typeof validation === 'function') {\n // se for do tipo funcao chama a funcao pra fazer o teste\n valid = validation(value)\n }\n\n return {\n country,\n masked,\n value,\n withDDI: `${country.ddi} ${value}`,\n valid,\n }\n}\n\nconst Button = (props: IconProps) => {\n const {\n country: [country],\n open: [open],\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 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 if (!value) {\n setInputValue('')\n return\n }\n\n const details = getPhoneDetails(value)\n if (details) {\n setCountry(details.country)\n setInputValue(details.masked)\n } else {\n setCountry(countries.br)\n setInputValue(value)\n }\n }, [value])\n\n useEffect(() => {\n setInputValue((prev) => mask(prev))\n }, [country])\n\n useEffect(() => {\n const v = inputValue.replace(/\\D+/g, '').substring(0, country.charLimit)\n setValue(`${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 { getMiddle } from '../../../Calendar/functions'\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(getMiddle(min, max)))\n }\n }, [value])\n\n const onAdd = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() + 1)\n if (max && date > max) return\n setValue(dateToIsoString(date))\n }\n\n const onSub = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() - 1)\n if (min && date < min) return\n setValue(dateToIsoString(date))\n }\n\n const icon = 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 type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(dateToIsoString(date))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDatePicker.displayName = 'DatePicker'\n\nexport default DatePicker\n","import styled, { css } from 'styled-components'\nimport { 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 {\n dateToIsoString,\n getFirstWeek,\n getLastWeek,\n getMonthName,\n getWeekNumber,\n} from '../../../../functions/formatters'\nimport { dateCompare } from '../../../../functions/validators'\n\nimport { IntervalType, IntervalTypes } from './interfaces'\n\nexport const validate: (\n value: [Date | null, Date | null],\n min?: Date,\n max?: Date,\n) => boolean = ([start, end], min, max) => {\n if (start === null || end === null) return true\n\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 (dateCompare(today, prev[0], 'eq')) return 'Hoje'\n return dateToIsoString(prev[0], false, false)\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(base)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() + 1)\n return tmp\n }) as [Date, Date]\n },\n decrement: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() - 1)\n return tmp\n }) as [Date, Date]\n },\n },\n week: {\n label: (prev) => {\n const [weekNumber] = getWeekNumber(prev[0])\n return `${weekNumber}ª Semana`\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setDate(start.getDate() - start.getUTCDay())\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(start)\n end.setDate(start.getDate() + 6)\n end.setHours(23, 59, 59, 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], true, false)\n .substring(0, 14)\n .split(' ')\n const end = dateToIsoString(prev[1], true, false)\n .substring(0, 14)\n .split(' ')\n\n if (start[1] === '00:00' && end[1] === '23:59') {\n start.pop()\n end.pop()\n } else {\n start[1] = `(${start[1]})`\n end[1] = `(${end[1]})`\n }\n\n return `${start.join(' ')} à ${end.join(' ')}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n return [base, base]\n },\n },\n}\n\nexport const identify = (value: [Date | null, Date | null]): IntervalType => {\n const [start, end] = value\n\n if (start === null || end === null) return 'custom'\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 (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'day'\n }\n }\n\n if (start.getUTCDay() === 0) {\n const [expectedStart, expectedEnd] = intervalTypes.week.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'week'\n }\n }\n\n if (start.getDate() === 1) {\n const [expectedStart, expectedEnd] = intervalTypes.month.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'month'\n }\n }\n\n return 'custom'\n}\n\nexport const parse = (value: [string, string]): [Date | null, Date | null] =>\n value.map((v) => (v ? new Date(v) : null)) as [Date | null, Date | null]\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\ninterface RelativeContainerProps {\n invalid: boolean\n}\n\nexport const RelativeContainer = styled.div<RelativeContainerProps>`\n position: relative;\n user-select: none;\n min-width: 220px;\n\n > input,\n > label > input {\n color: transparent;\n background-color: transparent;\n width: 1px;\n height: 1px;\n position: absolute;\n left: 0;\n bottom: 0;\n border: 0;\n padding: 0;\n overflow: hidden;\n outline: none;\n box-shadow: none;\n }\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n flex: 1;\n text-align: center;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\n\ninterface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n disabled: 1 | 0\n paddingless: 1 | 0\n borderless: 1 | 0\n}\n\nexport const Container = styled.div<ContainerProps>`\n display: flex;\n align-items: center;\n border-radius: 4px;\n white-space: nowrap;\n gap: ${({ theme }) => theme.spacings.s1};\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid, borderless }) => {\n if (borderless) return 'transparent'\n return invalid ? theme.colors.warningRed : theme.colors.lightGrey\n }};\n\n width: 100%;\n\n ${({ theme, invalid }) => {\n const [bgColor, color] = invalid\n ? [theme.getColor('warningRed', 5), theme.colors.warningRed]\n : [theme.colors.white, theme.colors.darkBlue]\n return css`\n color: ${color};\n background-color: ${bgColor};\n /** google chrome blue background */\n -webkit-box-shadow: 0 0 0px 1000px ${bgColor} inset !important;\n `\n }};\n\n ${({ theme, paddingless }) => {\n if (paddingless) return\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s1} ${theme.spacings.s2}\n ${theme.spacings.s3};\n `\n }}\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const Button = styled.button`\n display: flex;\n background-color: transparent;\n border: none;\n padding: 0;\n box-shadow: none;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\ninterface StyledLabelTextProps {\n required: 1 | 0\n}\n\nexport const LabelText = styled.label<StyledLabelTextProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React, { useEffect, useState } from 'react'\n\nimport { dateToIsoString, filterObject } from '../../../../functions/formatters'\nimport { isDateInstance } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\nimport { getMiddle } from '../../../Calendar/functions'\nimport Icon from '../../../Icon'\nimport Menu from '../../../Menu'\n\nimport { identify, intervalTypes, parse, validate } from './functions'\n\nimport { DateIntervalPickerProps, IntervalType } from './interfaces'\nimport * as S from './styles'\n\nconst Component = React.forwardRef(\n (\n props: DateIntervalPickerProps,\n ref?: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const value = parse(props.value)\n\n const [open, setOpen] = useState<'menu' | 'calendar' | null>(null)\n const [intervalType, setIntervalType] = useState<IntervalType>(\n props.only || 'day',\n )\n\n const config = intervalTypes[intervalType]\n const { min, max } = config.getMinMax\n ? config.getMinMax(props.min, props.max)\n : props\n\n const setValue = (newValue: [Date, Date]) => {\n const parsed = newValue.map((v) =>\n dateToIsoString(v, true, true, 'us'),\n ) as [string, string]\n\n props.setValue(parsed)\n }\n\n useEffect(() => {\n if (props.min && props.max && props.min > props.max) {\n throw Error('Min prop must be less than Max')\n }\n\n if (props.only) {\n return\n }\n\n const value = parse(props.value)\n if (\n value.some((v) => !isDateInstance(v)) ||\n !validate(value, props.min, props.max)\n ) {\n return\n }\n\n const newIntervalType = identify(value)\n setIntervalType(newIntervalType)\n }, [props.value, props.min, props.max])\n\n const inputProps = filterObject<\n DateIntervalPickerProps,\n React.HtmlHTMLAttributes<HTMLInputElement>\n >(props, [\n 'label',\n 'invalid',\n 'required',\n 'disabled',\n 'width',\n 'borderless',\n 'paddingless',\n 'type',\n 'value',\n 'setValue',\n 'getLabel',\n 'max',\n 'min',\n 'only',\n ])\n\n const getArrowProps = (key: 'increment' | 'decrement') => {\n if (value.some((v) => !isDateInstance(v))) {\n return {\n disabled: true,\n }\n }\n\n const func = config[key]\n\n if (func === undefined) {\n return {\n disabled: true,\n }\n }\n const nextValue = func(value as [Date, Date])\n if (!validate(nextValue, min, max)) {\n return {\n disabled: true,\n }\n }\n return {\n onClick: () => setValue(nextValue),\n }\n }\n\n const invalid = props.invalid || !validate(value, min, max)\n\n const onClick = (() => {\n if (props.disabled || !['custom', undefined].includes(props.only)) {\n return undefined\n }\n\n const toOpen = props.only === 'custom' ? 'calendar' : 'menu'\n return () => setOpen((prev) => (prev === null ? toOpen : null))\n })()\n\n const input = <input {...inputProps} type='text' ref={ref} readOnly />\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(null))}\n invalid={invalid}\n >\n {props.label ? (\n <S.LabelText required={props.required ? 1 : 0}>\n {props.label}\n {input}\n </S.LabelText>\n ) : (\n input\n )}\n\n <S.Container\n invalid={props.invalid ? 1 : 0}\n disabled={props.disabled ? 1 : 0}\n paddingless={props.paddingless ? 1 : 0}\n borderless={props.borderless ? 1 : 0}\n >\n {(() => {\n const label = (\n <S.LabelContainer onClick={onClick}>\n {value.some((v) => !isDateInstance(v))\n ? '--/--/-- (--:--) à --/--/-- (--:--)'\n : config.label(value as [Date, Date])}\n </S.LabelContainer>\n )\n\n if (intervalType === 'custom') return label\n\n const incrementProps = getArrowProps('increment')\n const decrementProps = getArrowProps('decrement')\n\n return (\n <React.Fragment>\n <S.Button\n type='button'\n {...decrementProps}\n disabled={props.disabled || decrementProps.disabled}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n {label}\n\n <S.Button\n type='button'\n {...incrementProps}\n disabled={props.disabled || incrementProps.disabled}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n <S.Button onClick={onClick}>\n <Icon\n type='feather'\n icon='calendar'\n color={props.invalid ? 'warningRed' : 'grey'}\n width='24px'\n />\n </S.Button>\n </React.Fragment>\n )\n })()}\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 <Calendar\n type='interval'\n absolute\n open={open === 'calendar'}\n initialValue={value}\n onSubmit={{\n onClick: ([start, end]) => {\n if (start === null || end === null) return\n setValue([start, end])\n setOpen(null)\n },\n }}\n min={props.min}\n max={props.max}\n references={{ bottom: '35px' }}\n time={props.time}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'DatePicker'\n\nconst useDefaultDateIntervalState = (min?: Date, max?: Date) => {\n const middle = getMiddle(min, max)\n\n const start = new Date(middle)\n start.setHours(0, 0, 0, 0)\n const end = new Date(middle)\n end.setHours(23, 59, 59, 999)\n\n return [start.toISOString(), end.toISOString()] as [string, string]\n}\n\nconst DatePicker = Object.assign(Component, {\n useDefaultDateIntervalState,\n})\n\nexport default DatePicker\n","import styled from 'styled-components'\n\nimport { StyledInputProps } from './interfaces'\n\nexport const Input = styled.input<StyledInputProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkBlue\n }};\n\n line-height: 17px;\n\n ::placeholder {\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkGrey\n }};\n\n line-height: 17px;\n ${({ theme }) => theme.useTypography('p')};\n opacity: 1;\n }\n\n display: block;\n box-sizing: border-box;\n flex: 1;\n min-width: ${({ minWidth }) => minWidth || '20%'};\n\n padding: calc(${({ theme }) => theme.spacings.s1} / 2) 0;\n\n box-shadow: none;\n outline: none;\n border: 1px solid transparent;\n`\n","import React from 'react'\nimport { filterObject } from '../../../../../../functions/formatters'\nimport { getMask } from '../../../../functions'\nimport { InputProps, StyledInputProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const [value, setValue] = props.value\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const onPressEnter = props.onPressEnter\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n _onKeyDown(e)\n if (e.key === 'Enter') {\n e.preventDefault()\n onPressEnter(e)\n }\n }\n\n const mask = getMask(props.mask)\n const _onChange = props.onChange || (() => {})\n const onChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.target.value = mask(e.target.value)\n _onChange(e)\n setValue(e.target.value)\n }\n\n const inputProps = filterObject<InputProps, StyledInputProps>(props, [\n 'value',\n 'onPressEnter',\n ])\n\n return (\n <S.Input\n ref={ref}\n {...inputProps}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={value}\n />\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport default Input\n","import styled, { css } from 'styled-components'\n\nimport { LabelProps } from './interfaces'\n\nexport const Label = styled.div<LabelProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React from 'react'\n\nimport { LabelProps } from './interfaces'\nimport * as S from './styles'\n\nconst Label = (props: LabelProps) => {\n return props.children ? <S.Label {...props} /> : null\n}\n\nexport default Label\n","import styled from 'styled-components'\nimport { TagProps } from './interfaces'\n\nexport const Tag = styled.div<TagProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.darkBlue};\n padding: calc(${({ theme }) => theme.spacings.s1} / 2);\n\n border-style: solid;\n border-width: 1px;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > div:last-child {\n cursor: pointer;\n }\n`\n","import React from 'react'\nimport Icon from '../../../../../Icon'\n\nimport { TagProps } from './interfaces'\nimport * as S from './styles'\n\nconst Tag = (props: TagProps) => {\n return (\n <S.Tag {...props}>\n {props.children}\n <div onClick={props.onClose}>\n <Icon\n type='feather'\n icon='x'\n width='10px'\n color={props.invalid ? 'warningRed' : undefined}\n strokeWidth='3px'\n />\n </div>\n </S.Tag>\n )\n}\n\nexport default Tag\n","import styled, { css } from 'styled-components'\nimport { LabelProps, TagContainerProps } from './interfaces'\n\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme }) => {\n return theme.colors.greyishBlue\n }};\n\n width: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n position: relative;\n display: block;\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const TagContainer = styled.div<TagContainerProps>`\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n border-radius: 4px;\n display: flex;\n flex-wrap: wrap;\n gap: calc(${({ theme }) => theme.spacings.s1} / 2);\n padding: ${({ theme }) => theme.spacings.s1};\n`\n","import React, { useState } from 'react'\nimport { strCmp } from '../../../../functions/validators'\nimport { Input, Label, Tag } from './components'\nimport { TagsProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Tags = React.forwardRef(\n (props: TagsProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, setValue } = props\n\n const [inputValue, setInputValue] =\n props.input && props.input.value\n ? props.input.value\n : useState<string>('')\n\n const validate = props.validate || (() => true)\n const onBeforeAdd = props.onBeforeAdd || ((v: string) => v)\n const validateUnique = props.unique\n ? (v: string) => (value.some((e) => strCmp(e, v)) ? '' : v)\n : (v: string) => v\n\n const add = (v: string) => {\n if (v === '') return\n\n v = validateUnique(v)\n if (v === '') return\n\n v = onBeforeAdd(v)\n if (v === '') return\n\n setValue([...value, v])\n setInputValue('')\n }\n\n const remove = (index: number) => {\n const prev = [...value]\n prev.splice(index, 1)\n setValue([...prev])\n }\n\n return (\n <S.Label disabled={props.disabled} width={props.width}>\n <Label required={props.required}>{props.label}</Label>\n\n <S.TagContainer invalid={props.invalid}>\n {value.map((v, index) => (\n <Tag\n key={index}\n onClose={() => remove(index)}\n invalid={!validate(v)}\n >\n {v}\n </Tag>\n ))}\n\n <Input\n ref={ref}\n disabled={props.disabled || props.loading}\n invalid={props.invalid}\n {...props.input}\n value={[inputValue, setInputValue]}\n onPressEnter={(e) => add((e.target as HTMLInputElement).value)}\n />\n </S.TagContainer>\n </S.Label>\n )\n },\n)\n\nTags.displayName = 'Tags'\n\nexport default Tags\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n keys,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\nimport { IconProps } from '../../../Icon/interfaces'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport { DateTimeProps } from './interfaces'\nimport * as S from './styles'\n\nconst isLeapYear = (year: number): boolean => {\n if (year % 4 !== 0) return false\n else if (year % 100 !== 0) return true\n else if (year % 400 !== 0) return false\n else return true\n}\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/\\D+/g, '')\n\n // remove o primeiro digito enquanto ele for maior que 3, (nao existe dia maior que 31)\n while (v.length > 0 && parseInt(v[0]) > 3) {\n v = v.substring(1)\n }\n\n // se o primeiro digito for 3, remove o segundo digito enquanto ele for maior que 1, (nao existe dia maior que 31)\n if (v.length > 1) {\n if (v[0] === '3') {\n while (v.length > 1 && parseInt(v[1]) > 1) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n // remove o terceiro digito enquanto ele for maior que 1, (nao existe mes maior que 12)\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 1) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n // se o terceiro digito for 1, remove o quarto digito enquanto ele for maior que 2, (nao existe mes maior que 12)\n if (v.length > 3) {\n if (v[2] === '1') {\n while (v.length > 3 && parseInt(v[3]) > 2) {\n v = v.substring(0, 3) + v.substring(4)\n }\n }\n }\n\n // remove o nono digito enquanto ele for maior que 2, (nao existe hora maior que 23)\n if (v.length > 8) {\n while (v.length > 8 && parseInt(v[8]) > 2) {\n v = v.substring(0, 8) + v.substring(9)\n }\n }\n\n // se o nono digito for 2, remove o decimo digito enquanto ele for maior que 3, (nao existe hora maior que 23)\n if (v.length > 9) {\n if (v[8] === '2') {\n while (v.length > 9 && parseInt(v[9]) > 3) {\n v = v.substring(0, 9) + v.substring(10)\n }\n }\n }\n\n // remove o decimo primeiro digito enquanto ele for maior que 5, (nao existe minuto maior que 59)\n if (v.length > 10) {\n while (v.length > 10 && parseInt(v[10]) > 5) {\n v = v.substring(0, 10) + v.substring(11)\n }\n }\n\n // remove o decimo terceiro digito enquanto ele for maior que 5, (nao existe segundo maior que 59)\n if (v.length > 12) {\n while (v.length > 12 && parseInt(v[12]) > 5) {\n v = v.substring(0, 12) + v.substring(13)\n }\n }\n\n const date = [\n v.substring(0, 2),\n v.substring(2, 4),\n v.substring(4, 8),\n v.substring(8, 10),\n v.substring(10, 12),\n v.substring(12, 14),\n ]\n\n if (date[1] === '02') {\n const d = parseInt(date[0])\n\n if (date[2].length < 4 || isLeapYear(parseInt(date[2]))) {\n // se for ano nao estiver setado, ou se for bissexto, o dia maximo de fevereiro deve ser 29\n if (d > 29) {\n date[0] = '29'\n }\n } else if (d > 28) {\n // se for ano estiver setado e nao for bissexto, o dia maximo de fevereiro deve ser 28\n date[0] = '28'\n }\n } else if (['04', '06', '09', '11'].includes(date[1]) && date[0] === '31') {\n // meses com 30 dias\n date[0] = '30'\n }\n\n v = date.join('')\n\n v = v.replace(\n /^((\\d{0,2}))((\\d{0,2}))((\\d{0,4}))((\\d{0,2}))((\\d{0,2}))((\\d{0,2}))$/g,\n '$1/$3/$5 $7:$9:$11',\n )\n\n while (v.length > 0 && !v[v.length - 1].match(/^\\d$/g)) {\n v = v.substring(0, v.length - 1)\n }\n\n if (!seconds) {\n v = v.substring(0, 16)\n }\n\n return v\n}\n\nconst getValueThroughDate = (date: Date, seconds?: boolean) => {\n const newValue = dateToIsoString(date, true)\n return !seconds ? newValue.substring(0, newValue.length - 3) : newValue\n}\n\nconst steps = {\n year: {\n increment: (value: Date) => {\n value.setFullYear(value.getFullYear() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setFullYear(value.getFullYear() - 1)\n return value\n },\n },\n month: {\n increment: (value: Date) => {\n value.setMonth(value.getMonth() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMonth(value.getMonth() - 1)\n return value\n },\n },\n day: {\n increment: (value: Date) => {\n value.setDate(value.getDate() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setDate(value.getDate() - 1)\n return value\n },\n },\n hour: {\n increment: (value: Date) => {\n value.setHours(value.getHours() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setHours(value.getHours() - 1)\n return value\n },\n },\n minute: {\n increment: (value: Date) => {\n value.setMinutes(value.getMinutes() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMinutes(value.getMinutes() - 1)\n return value\n },\n },\n second: {\n increment: (value: Date) => {\n value.setSeconds(value.getSeconds() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setSeconds(value.getSeconds() - 1)\n return value\n },\n },\n}\n\nconst DateTime = React.forwardRef(\n (props: DateTimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, min, max } = props\n\n const step = steps[props.step || 'day']\n\n const setValue = props.setValue || (() => {})\n\n const [open, setOpen] = useState<boolean>(false)\n\n const _onKeyDown = props.onKeyDown || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const cur = {\n day: {\n start: 0,\n end: 2,\n value: todayDate.getDate(),\n },\n month: {\n start: 2,\n end: 4,\n value: todayDate.getMonth() + 1,\n },\n year: {\n start: 4,\n end: 8,\n value: todayDate.getFullYear(),\n },\n hours: {\n start: 8,\n end: 10,\n value: todayDate.getHours(),\n },\n minutes: {\n start: 10,\n end: 12,\n value: todayDate.getMinutes(),\n },\n seconds: {\n start: 12,\n end: 14,\n value: todayDate.getSeconds(),\n },\n }\n\n const value = target.value.replace(/\\D+/g, '')\n\n const v = keys(cur).reduce((prev, k) => {\n const { start, end, value: current } = cur[k]\n const len = end - start\n\n const tmp = value.substring(start, end)\n\n return {\n ...prev,\n [k]: tmp.length === 0 ? current : parseInt(tmp.padEnd(len, '0')),\n }\n }, {} as { [key in keyof typeof cur]: number })\n\n let date = new Date(\n `${v.year}-${v.month}-${v.day} ${v.hours}:${v.minutes}:${v.seconds}`,\n )\n\n if (event.key === 'ArrowUp') {\n date = step.increment(date)\n if (!max || date <= max) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n } else if (event.key === 'ArrowDown') {\n date = step.decrement(date)\n if (!min || date >= min) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? 'dd/mm/aaaa hh:mm:ss'\n : props.placeholder\n\n const icon = 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<DateTimeProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='text'\n placeholder={placeholder}\n mask={(v) => mask(v, props.seconds)}\n onKeyDown={onKeyDown}\n icon={icon}\n ref={ref}\n />\n\n <Calendar\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(getValueThroughDate(date, props.seconds))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n time={{\n seconds: props.seconds,\n }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDateTime.displayName = 'DateTime'\n\nexport default DateTime\n","import React from 'react'\n\nimport DefaultInput from './components/Input'\nimport { InputProps as DefaultInputProps } from './components/Input/interfaces'\n\nimport Checkbox from './components/Checkbox'\nimport { CheckboxProps } from './components/Checkbox/interfaces'\n\nimport Date from './components/Date'\nimport { DateProps } from './components/Date/interfaces'\n\nimport Time from './components/Time'\nimport { TimeProps } from './components/Time/interfaces'\n\nimport Select, { SelectProps } from './components/Select'\n\nimport Password from './components/Password'\nimport { PasswordProps } from './components/Password/interfaces'\n\nimport Phone from './components/Phone'\nimport { PhoneProps } from './components/Phone/interfaces'\n\nimport DatePicker from './components/DatePicker'\nimport { DatePickerProps } from './components/DatePicker/interfaces'\n\nimport { SwitchProps } from './components/Switch/interfaces'\nimport Switch from './components/Switch'\n\nimport Range from './components/Range'\nimport { RangeProps } from './components/Range/interfaces'\n\nimport { RadioButtonProps } from './components/RadioButton/interfaces'\nimport RadioButton from './components/RadioButton'\n\nimport { DateIntervalPickerProps } from './components/DateIntervalPicker/interfaces'\nimport DateIntervalPicker from './components/DateIntervalPicker'\n\nimport Tags from './components/Tags'\nimport { TagsProps } from './components/Tags/interfaces'\n\nimport DateTime from './components/DateTime'\nimport { DateTimeProps } from './components/DateTime/interfaces'\n\nexport type Props =\n | DateProps\n | TimeProps\n | CheckboxProps\n | SelectProps\n | PasswordProps\n | PhoneProps\n | DatePickerProps\n | RangeProps\n | DefaultInputProps\n | SwitchProps\n | RadioButtonProps\n | DateIntervalPickerProps\n | TagsProps\n | DateTimeProps\n\nconst Component = React.forwardRef(\n (props: Props, ref?: React.ForwardedRef<HTMLInputElement>) => {\n switch (props.type) {\n case 'date': {\n return <Date {...props} ref={ref} />\n }\n case 'time': {\n return <Time {...props} ref={ref} />\n }\n case 'checkbox': {\n return <Checkbox {...props} ref={ref} />\n }\n case 'select': {\n return <Select {...props} ref={ref} />\n }\n case 'select-multiple': {\n return <Select {...props} ref={ref} />\n }\n case 'password': {\n return <Password {...props} ref={ref} />\n }\n case 'phone': {\n return <Phone {...props} ref={ref} />\n }\n case 'datepicker': {\n return <DatePicker {...props} ref={ref} />\n }\n case 'range': {\n return <Range {...props} ref={ref} />\n }\n case 'switch': {\n return <Switch {...props} />\n }\n case 'radio': {\n return <RadioButton {...props} />\n }\n case 'date-interval-picker': {\n return <DateIntervalPicker {...props} ref={ref} />\n }\n case 'tags': {\n return <Tags {...props} ref={ref} />\n }\n case 'datetime': {\n return <DateTime {...props} ref={ref} />\n }\n default: {\n return <DefaultInput {...props} ref={ref} />\n }\n }\n },\n)\n\nComponent.displayName = 'Input'\n\nconst Input = Object.assign(Component, {\n useDefaultDateIntervalState: DateIntervalPicker.useDefaultDateIntervalState,\n getPhoneDetails: Phone.getPhoneDetails,\n})\n\nexport default Input\n","import { 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, { css } from 'styled-components'\n\nexport const Container = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s4};\n align-items: center;\n color: ${({ theme }) => theme.colors.darkestGrey};\n\n ${({ onClick }) => {\n if (!onClick) {\n return css`\n opacity: 0.3;\n pointer-events: none;\n `\n }\n\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React, { useState } from 'react'\n\nimport useOnClickOut from '../../../hooks/onClickOut'\nimport Icon from '../../Icon'\n\nimport { ButtonProps } from './interfaces'\nimport * as S from './styles'\n\nconst Button = (props: ButtonProps) => {\n const { getContent } = props\n\n const [open, setOpen] = useState<boolean>(false)\n\n const close = () => setOpen(false)\n\n const onClick = props.disabled ? undefined : () => setOpen((prev) => !prev)\n\n return (\n <div ref={useOnClickOut(close)}>\n <S.Container {...props} {...{ onClick }}>\n {props.children}\n <Icon\n type='semantic'\n icon={open ? 'caret up' : 'caret down'}\n width='12px'\n />\n </S.Container>\n\n {getContent(open, close)}\n </div>\n )\n}\n\nexport default Button\n","import 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 '../Submenu'\n\nimport { FiltersMenuProps } from './interfaces'\n\nconst FiltersMenu = (props: FiltersMenuProps) => {\n const { open, close } = props\n\n const [active, setActive] = useState<number>(-1)\n\n const items: Option[] = props.items.map((item): Option => {\n return {\n label: 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 FiltersMenu\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nimport FiltersMenu from './components/Menu'\nimport { FiltersProps } from './interfaces'\n\nconst Filters = Object.assign(\n (props: FiltersProps) => {\n const { items, setAppliedFilters } = props\n\n const buttonProps = filterObject<\n FiltersProps,\n Omit<ButtonProps, 'getContent'>\n >(props, ['items', 'setAppliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n getContent={(open, close) => (\n <FiltersMenu {...{ open, close, setAppliedFilters, items }} />\n )}\n >\n Filtros\n </Button>\n )\n },\n { Menu: FiltersMenu },\n)\n\nexport default Filters\n","import styled from 'styled-components'\n\nimport AbsoluteContainer from '../../../../AbsoluteContainer'\n\nexport const Container = styled(AbsoluteContainer)`\n background-color: ${({ theme }) => theme.colors.white};\n\n > div {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n > div {\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `${s3} 0 ${s3} ${s3}`};\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n }\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({\n theme: {\n spacings: { s3 },\n },\n }) => s3};\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `0 ${s3} ${s3} 0`};\n > div {\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const Title = styled.div`\n ${({ theme: { useTypography } }) =>\n useTypography('p', { fontWeight: 'bold' })}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n`\n\nexport const Item = styled.div`\n padding: ${({\n theme: {\n spacings: { s1 },\n },\n }) => `${s1} ${s1} ${s1} 0`};\n display: flex;\n align-items: center;\n\n :not(:last-child) {\n border-bottom: 1px solid\n ${({ theme: { getColor } }) => getColor('greyishBlue', 25)};\n }\n\n > div:nth-child(1) {\n flex: 1;\n\n > div:nth-child(1) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n }\n > div:nth-child(2) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n }\n }\n > div:nth-child(2) {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport { strCmp } from '../../../../../functions/validators'\nimport Button from '../../../../Button'\nimport Icon from '../../../../Icon'\nimport Input from '../../../../Input'\nimport ScrollContainer from '../../../../ScrollContainer'\n\nimport { AppliedFiltersMenuProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst AppliedFiltersMenu = (props: AppliedFiltersMenuProps) => {\n const {\n open,\n close,\n appliedFilters: [appliedFilters, setAppliedFilters],\n } = props\n\n const [search, setSearch] = useState<string>('')\n const [searched, setSearched] = useState<string>('')\n\n useEffect(() => {\n setSearch('')\n setSearched('')\n }, [open])\n\n const onClear = () => {\n setAppliedFilters([])\n close()\n }\n\n const onSubmitSearch = () => {\n setSearched(search)\n }\n\n const onClearSearch = () => {\n setSearch('')\n setSearched('')\n }\n\n const onRemove = (name: string) => {\n setAppliedFilters((prev) => prev.filter((e) => e.name !== name))\n }\n\n return (\n <S.Container\n open={open}\n width='275px'\n height='261px'\n transition={{ properties: { height: {} } }}\n >\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 AppliedFiltersMenu\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\n\nimport AppliedFiltersMenu from './components/Menu'\nimport { AppliedFiltersProps } from './interfaces'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nconst AppliedFilters = Object.assign(\n (props: AppliedFiltersProps) => {\n const { appliedFilters } = props\n\n const buttonProps = filterObject<\n AppliedFiltersProps,\n Omit<ButtonProps, 'getContent'>\n >(props, ['appliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n getContent={(open, close) => (\n <AppliedFiltersMenu {...{ open, close, appliedFilters }} />\n )}\n >\n Filtros Aplicados ({appliedFilters[0].length})\n </Button>\n )\n },\n { Menu: AppliedFiltersMenu },\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","black","blue","bronze","brown","darkBlue","darkestBlue","darkestGreen","darkestGrey","darkGreen","darkGrey","darkSilver","floralWhite","green","grey","greyishBlue","iceWhite","lightBlue","lightestGrey","lightGreen","lightGrey","milkWhite","orange","pink","purple","red","silver","snowWhite","vanilla","warningGray","warningRed","warningYellow","white","yellow","opacities","spacings","s1","s2","s3","s4","s5","s6","fonts","lato","typographies","h1","fontFamily","fontWeight","fontSize","h2","h3","h4","h5","h6","p","stripAccents","value","normalize","replace","isKeyOf","object","key","Object","prototype","hasOwnProperty","call","isObject","toString","dateToIsoString","date","time","fullYear","pattern","dateData","getDate","padStart","getMonth","getFullYear","substring","dateStr","join","tmp","timeStr","getHours","getMinutes","getSeconds","notEmptyString","trim","isBoolean","isString","isDateInstance","Date","isNaN","valueOf","dateCompare","a","b","operation","operations","eq","getTime","gt","gte","lt","lte","setHours","isValidTime","format","h","m","c","s","sep","conditions","keys","map","f","content","re","RegExp","match","strCmp","x","y","options","ignoreAccents","ignoreCase","contain","toUpperCase","includes","filterObject","remove","inital","r","filter","reduce","prev","isoStringToDate","split","d","t","reverse","slice","padEnd","getWeekNumber","weekSunday","setDate","getUTCDay","yearStart","UTC","getUTCFullYear","weekNumber","Math","ceil","getMonthName","months","monthName","getFirstWeek","year","today","undefined","setFullYear","week","weekYear","getLastWeek","getSpacings","defaults","top","left","bottom","right","spacing","values","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","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_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","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","e","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","isMaskReplaceArray","getMask","mask","newValue","IconContainer","Input","input","invalid","placeholder","paddingless","borderless","arrows","readOnly","Label","padding","LabelText","required","clearable","onPressEnter","htmlDisabled","masked","setValue","intInvalid","intRequired","intDisabled","intArrows","intBorderless","intPaddingless","iconWidth","iconSubmit","iconOnClick","submit","inputProps","inputWidth","onChange","onKeyDown","_onPressEnter","preventDefault","onKeyUp","v","onKeyDownCapture","onKeyUpCapture","iconProps","MwIcon","Checkmark","span","_padding","Checkbox","useOnClickOut","callback","listener","contains","document","addEventListener","removeEventListener","inputTimeWidth","withSeconds","withoutSeconds","LabelContainer","CalendarContainer","MwAbsoluteContainer","MonthContainer","MonthBtn","NavBtn","MonthPicker","min","max","setYear","Footer","WeekContainer","Header","DayContainer","hover","getCalendar","month","days","getDay","unshift","weeks","i","getMiddle","result","getFullDate","end","hours","parsed","parseInt","isDateBetween","getTimeFromDate","isInvalid","timeOptions","seconds","getInitialCalendar","Main","initialMonth","selectOpen","setSelectOpen","setCalendar","changeMonth","add","setMonth","getPrev","getNext","details","day","onMouseOut","BasicCalendar","containerProps","Time","_onKeyDown","todayDate","curH","curM","curS","setMinutes","setSeconds","getValue","dates","n","sort","getCalendar2","calendar1","SubmitButton","CalendarsContainer","initialValue","setInvalid","setTime","setCalendar1","calendar2","setCalendar2","hoverDay","setHoverDay","timeProps","c1","c2","onSubmit","some","calendarProps","middle","inputs","CalendarInterval","mainProps","absolute","SingleCalendar","CalendarSingle","Calendar","IntervalCalendar","JSDate","isLeapYear","picker","setOpen","curD","curY","Provider","createContext","useContext","HeaderContainer","context","searchInput","setSearchInput","onClearSearch","onSearch","getOptions","data","_option","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","init","setInitial","getOption","def","o","mapper","returnData","Select","menuProps","_loading","setLoading","_setSearch","page","setPage","lastPage","setLastPage","setSearch","_onScrollEnd","useCallback","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","splitted","shift","country","valid","test","withDDI","setInputValue","setCountry","Phone","assign","DatePicker","onAdd","onSub","Switch","bullet","InputContainer","SelectedArea","MinMaxLabelContainer","LabelsContainer","Marker","MarkersContainer","getMarkers","markers","strict","step","parseFloat","Range","minLabel","maxLabel","range","spans","_onChange","marker","z","_value","RadioButton","validate","start","intervalTypes","initial","increment","decrement","getMinMax","firstWeek","lastWeek","custom","pop","identify","isoStart","isoEnd","expectedStart","expectedEnd","parse","only","intervalType","setIntervalType","newIntervalType","getArrowProps","func","nextValue","toOpen","incrementProps","decrementProps","useDefaultDateIntervalState","toISOString","minWidth","Tag","onClose","TagContainer","Tags","onBeforeAdd","validateUnique","unique","getValueThroughDate","steps","hour","minute","second","DateTime","cur","minutes","current","len","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","Template7","Template8","GraphLine","Template10","Placeholder","Template9","Image","img","Dimmer","MwButton","ModalContent","Zoom","src","defaultClickOptions","imgProps","modalOpened","setModalOpened","alt","getContent","searched","_setSearched","allowEmptySearch","withSearch","setSearched","onClear","EmptyMessage","getInstance","item","isDynamic","intialOptions","optionSpacing","Submenu","setAppliedFilters","setFirstRender","newOptions","force","changed","firstRender","onClickOption","labels","optionsParser","FiltersMenu","items","Filters","Title","Item","AppliedFiltersMenu","appliedFilters","onSubmitSearch","onRemove","AppliedFilters","cols","aligns","self","horizontal","vertical","around","between","Col","w","spacingAround","align","styles","fontColor","backgroundColor","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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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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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/constants.ts","../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/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/Calendar/constants.ts","../src/components/Calendar/components/Basic/styles.ts","../src/components/Calendar/components/Basic/components/MonthPicker/index.tsx","../src/components/Calendar/components/Basic/components/Main/styles.ts","../src/components/Calendar/functions.ts","../src/components/Button/theme.ts","../src/components/theme.ts","../src/theme/globals.tsx","../src/theme/index.tsx","../src/components/Calendar/components/Basic/components/Main/index.tsx","../src/components/Calendar/components/Basic/index.tsx","../src/components/Input/components/Time/index.tsx","../src/components/Calendar/components/Interval/components/Main/functions.ts","../src/components/Calendar/styles.ts","../src/components/Calendar/components/Interval/components/Main/styles.ts","../src/components/Calendar/components/Interval/components/Main/index.tsx","../src/components/Calendar/components/Interval/index.tsx","../src/components/Calendar/components/Single/components/Main/index.tsx","../src/components/Calendar/components/Single/index.tsx","../src/components/Calendar/index.tsx","../src/components/Input/components/Date/functions.ts","../src/components/Input/components/Date/styles.ts","../src/components/Input/components/Date/index.tsx","../src/components/Input/components/Select/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/Input/components/DateIntervalPicker/functions.ts","../src/components/Input/components/DateIntervalPicker/styles.ts","../src/components/Input/components/DateIntervalPicker/index.tsx","../src/components/Input/components/Tags/components/Input/styles.ts","../src/components/Input/components/Tags/components/Input/index.tsx","../src/components/Input/components/Tags/components/Label/styles.ts","../src/components/Input/components/Tags/components/Label/index.tsx","../src/components/Input/components/Tags/components/Tag/styles.ts","../src/components/Input/components/Tags/components/Tag/index.tsx","../src/components/Input/components/Tags/styles.ts","../src/components/Input/components/Tags/index.tsx","../src/components/Input/components/DateTime/styles.ts","../src/components/Input/components/DateTime/index.tsx","../src/components/Input/index.tsx","../src/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/Button/styles.ts","../src/components/Filters/Button/index.tsx","../src/components/Filters/Filters/components/Submenu/components/Header/styles.ts","../src/components/Filters/Filters/components/Submenu/components/Header/index.tsx","../src/components/Filters/Filters/components/Submenu/styles.ts","../src/components/Filters/Filters/components/Submenu/index.tsx","../src/components/Filters/Filters/components/Menu/index.tsx","../src/components/Filters/Filters/index.tsx","../src/components/Filters/AppliedFilters/components/Menu/styles.ts","../src/components/Filters/AppliedFilters/components/Menu/index.tsx","../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"],"sourcesContent":["import { Typographies } from './interfaces'\r\n\r\nexport const colors = {\r\n black: '#000000',\r\n blue: '#3455AB',\r\n bronze: '#7A4D05',\r\n brown: '#9F3A38',\r\n darkBlue: '#192338',\r\n darkestBlue: '#121B2E',\r\n darkestGreen: '#1E561F',\r\n darkestGrey: '#989898',\r\n darkGreen: '#129105',\r\n darkGrey: '#949494',\r\n darkSilver: '#525A6A',\r\n floralWhite: '#FFFAF3',\r\n green: '#76B100',\r\n grey: '#ADADAD',\r\n greyishBlue: '#263046',\r\n iceWhite: '#F9F8F8',\r\n lightBlue: '#2D9AFF',\r\n lightestGrey: '#E2E2E3',\r\n lightGreen: '#66BB6A',\r\n lightGrey: '#C8C8C8',\r\n milkWhite: '#FCFFF5',\r\n orange: '#FB8702',\r\n pink: '#E23851',\r\n purple: '#8E66BB',\r\n red: '#C31717',\r\n silver: '#B2B2B2',\r\n snowWhite: '#FFF6F6',\r\n vanilla: '#CCBEA0',\r\n warningGray: '#E6E6E6',\r\n warningRed: '#EF5350',\r\n warningYellow: '#FBCF30',\r\n white: '#FFFFFF',\r\n yellow: '#FBCB01',\r\n} as const\r\n\r\nexport const opacities = {\r\n 100: 'FF',\r\n 95: 'F2',\r\n 90: 'E6',\r\n 85: 'D9',\r\n 80: 'CC',\r\n 75: 'BF',\r\n 70: 'B3',\r\n 65: 'A6',\r\n 60: '99',\r\n 55: '8C',\r\n 50: '80',\r\n 45: '73',\r\n 40: '66',\r\n 35: '59',\r\n 30: '4D',\r\n 25: '40',\r\n 20: '33',\r\n 15: '26',\r\n 10: '1A',\r\n 5: '0D',\r\n 0: '00',\r\n} as const\r\n\r\nexport const spacings = {\r\n s1: '7px',\r\n s2: '8px',\r\n s3: '14px',\r\n s4: '21px',\r\n s5: '28px',\r\n s6: '35px',\r\n} as const\r\n\r\nexport const fonts = {\r\n lato: '\"Lato\", sans-serif',\r\n} as const\r\n\r\nexport const typographies: Typographies = {\r\n h1: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '18px',\r\n },\r\n h2: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '16px',\r\n },\r\n h3: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '16px',\r\n },\r\n h4: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'bold',\r\n fontSize: '14px',\r\n },\r\n h5: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n h6: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '13px',\r\n },\r\n p: {\r\n fontFamily: fonts.lato,\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n },\r\n} as const\r\n","import { GenericObject } from '../interfaces'\n\nexport const stripAccents = (value: string): string => {\n return value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n}\n\nexport const isKeyOf = <T>(\n object: T,\n key: string | number | symbol,\n): key is keyof T => {\n return Object.prototype.hasOwnProperty.call(object, key)\n}\n\nexport const isObject = <T = unknown>(value: unknown): value is T => {\n return Object.prototype.toString.call(value) === '[object Object]'\n}\n\nexport const dateToIsoString = (\n date: Date,\n time = false,\n fullYear = true,\n pattern: 'us' | 'br' = 'br',\n): string => {\n const dateData = [\n date.getDate().toString().padStart(2, '0'),\n (date.getMonth() + 1).toString().padStart(2, '0'),\n date.getFullYear().toString().padStart(4, '0'),\n ]\n\n if (fullYear === false) dateData[2] = dateData[2].substring(2, 4)\n\n let dateStr = dateData.join('/')\n\n if (pattern === 'us') {\n const tmp = dateData[0]\n dateData[0] = dateData[2]\n dateData[2] = tmp\n dateStr = dateData.join('-')\n }\n\n if (!time) return dateStr\n\n const timeStr = [\n date.getHours().toString().padStart(2, '0'),\n date.getMinutes().toString().padStart(2, '0'),\n date.getSeconds().toString().padStart(2, '0'),\n ].join(':')\n\n return [dateStr, timeStr].join(' ')\n}\n\nexport const keys = <T extends GenericObject>(value: T): (keyof T)[] => {\n return Object.keys(value) as (keyof T)[]\n}\n","import { stripAccents, keys } from './common'\n\nexport const notEmptyString = (value: unknown): value is string => {\n return typeof value === 'string' && value.trim() !== ''\n}\n\nexport const isNumber = (value: unknown): value is number => {\n return typeof value === 'number' && isFinite(value)\n}\n\nexport const isNumeric = (value: unknown): value is number | string => {\n if (isNumber(value)) return true\n\n if (!isString(value)) return false\n\n return !isNaN(parseFloat(value))\n}\n\nexport const isBoolean = (value: unknown): value is boolean => {\n return typeof value === 'boolean'\n}\n\nexport const isNumericString = (value: unknown): value is string => {\n return notEmptyString(value) && isNumeric(value)\n}\n\nexport const isString = (value: unknown): value is string => {\n return typeof value === 'string'\n}\n\nexport const isDateInstance = (value: unknown): value is Date => {\n return value instanceof Date && !isNaN(value.valueOf())\n}\n\nexport const isDate = (value: unknown): boolean => {\n return (\n (isNumeric(value) || isDateInstance(value)) &&\n isDateInstance(new Date(value))\n )\n}\n\ntype Operations = 'eq' | 'gt' | 'gte' | 'lt' | 'lte'\n\nexport const dateCompare = (\n a: Date,\n b: Date,\n operation: Operations,\n time: boolean | Partial<{ [key in 'h' | 'm' | 's' | 'ms']: true }> = {\n h: true,\n m: true,\n s: true,\n },\n): boolean => {\n const operations: { [key in Operations]: (a: Date, b: Date) => boolean } = {\n eq: (a, b) => a.getTime() === b.getTime(),\n gt: (a, b) => a > b,\n gte(a, b) {\n return this.gt(a, b) || this.eq(a, b)\n },\n lt: (a, b) => a < b,\n lte(a, b) {\n return this.lt(a, b) || this.eq(a, b)\n },\n }\n\n a = new Date(a)\n b = new Date(b)\n\n if (time === false) {\n a.setHours(0, 0, 0, 0)\n b.setHours(0, 0, 0, 0)\n } else if (time !== true) {\n const methods = {\n h: 'setHours',\n m: 'setMinutes',\n s: 'setSeconds',\n ms: 'setMilliseconds',\n } as const\n\n keys(methods).forEach((k) => {\n if (time[k]) return\n const method = methods[k]\n a[method](0)\n b[method](0)\n })\n }\n\n return operations[operation](a, b)\n}\n\ntype Formats = 'h' | 'm' | 's'\ntype Mode = 'required' | 'optional'\n\nexport const isValidTime = (\n time: string,\n format: Partial<{ [key in Formats]: Mode }> = {\n h: 'required',\n m: 'required',\n },\n): boolean => {\n const c = {\n h: '(([0-1][0-9])|(2[0-3]))',\n m: '([0-5][0-9])',\n s: '([0-5][0-9])',\n }\n\n let sep = ''\n\n const conditions = (Object.keys(format) as Formats[])\n .map((f) => {\n const content = `(${sep}${c[f]})`\n sep = ':'\n return format[f] === 'required' ? content : `${content}?`\n })\n .join('')\n\n // /(([0-1][0-9])|(2[0-3])):([0-5][0-9])(:([0-5][0-9]))?$/\n const re = new RegExp(`${conditions}$`)\n\n return time.match(re) !== null\n}\n\nexport const strCmp = (\n x: string,\n y: string,\n options: {\n ignoreAccents?: boolean\n ignoreCase?: boolean\n trim?: boolean\n contain?: boolean\n } = {},\n): boolean => {\n options = {\n ignoreAccents: true,\n ignoreCase: true,\n trim: true,\n contain: false,\n ...options,\n }\n\n if (options.trim) {\n x = x.trim()\n y = y.trim()\n }\n\n if (options.ignoreCase) {\n x = x.toUpperCase()\n y = y.toUpperCase()\n }\n\n if (options.ignoreAccents) {\n x = stripAccents(x)\n y = stripAccents(y)\n }\n\n return options.contain ? x.includes(y) : x === y\n}\n\nexport const isValidEmail = (value: string): boolean => {\n const emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i\n\n return emailRegex.test(value)\n}\n\nexport { isObject, isKeyOf } from './common'\n","import { GenericObject, SpacingOrZero, Spacings } from '../interfaces'\nimport { spacings } from '../theme/constants'\nimport {\n isBoolean,\n isNumber,\n isNumericString,\n notEmptyString,\n} from './validators'\nimport { isKeyOf, isObject, keys } from './common'\n\nexport const filterObject = <T extends GenericObject, R extends GenericObject>(\n object: T,\n remove: (keyof T)[],\n inital = {} as Partial<R>,\n): R => {\n const r = keys(object)\n .filter((key) => !remove.includes(key))\n .reduce(\n (prev, key) => ({\n ...prev,\n [key]: object[key],\n }),\n inital as R,\n )\n\n return r\n}\n\nexport const phone = (value: string) => {\n let masked = value\n\n if (value.startsWith('+55')) {\n masked = value\n .replace(/\\D/g, '')\n .replace(/(\\d{2})(\\d{2})(\\d)/, '+$1 ($2) $3')\n .replace(/(\\d{5})(\\d{4})$/, '$1-$2')\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\n }\n\n return masked\n}\n\nexport const cnpj = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 14)\n .replace(/^(\\d{2})(\\d{3})?(\\d{3})?(\\d{4})?(\\d{2})?/, '$1.$2.$3/$4-$5')\n}\n\nexport const cpf = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .replace(/^(\\d{3})(\\d{3})?(\\d{3})?(\\d{2})?/, '$1.$2.$3-$4')\n}\n\nexport const cep = (value: string) => {\n return value\n .replace(/\\D/g, '')\n .substring(0, 8)\n .replace(/^(\\d{5})(\\d{3})/, '$1-$2')\n}\n\ninterface TimeLabels {\n hour?: string\n minute?: string\n join?: string\n}\n\nexport const time = (value: number, labels?: TimeLabels): string => {\n const l: TimeLabels = {\n hour: 'h',\n minute: 'm',\n join: 'e',\n }\n\n if (labels) {\n const k = keys(labels)\n k.forEach((key) => (l[key] = labels[key]))\n }\n\n const hours = Math.floor(value / 60)\n const minutes = value % 60\n\n const result = []\n if (hours > 0) result.push(`${hours}${l.hour}`)\n result.push(`${minutes}${l.minute}`)\n\n return result.join(l.join)\n}\n\nexport const simpleTime = (value: number) => {\n return [Math.floor(value / 60), value % 60]\n .map((num) => num.toString().padStart(2, '0'))\n .join(':')\n}\n\nexport const reverseSimpleTime = (value: string) => {\n const t = value.replace(/\\D/g, '')\n\n if (t.length === 0) return 0\n\n const h = parseInt(t.substring(0, 2).padEnd(2, '0'))\n\n if (t.length < 3) return h * 60\n\n const m = parseInt(t.substring(2, 4).padEnd(2, '0'))\n\n return h * 60 + m\n}\n\nexport const intToBool = (value: 1 | 0): boolean => {\n const values = {\n 1: true,\n 0: false,\n }\n\n return values[value]\n}\n\nexport const boolToInt = (value: boolean): 1 | 0 => {\n return value ? 1 : 0\n}\n\nexport const numberOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): number | T => {\n if (isNumber(value)) return value\n if (isNumericString(value)) return parseFloat(value)\n return defaultValue\n}\n\nexport const booleanOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): boolean | T => {\n if (isBoolean(value)) return value\n\n if (isNumber(value)) return value > 0\n if (isNumericString(value)) return parseInt(value) > 0\n\n return defaultValue\n}\n\nexport const notEmptyStringOrDefault = <T = unknown>(\n value: unknown,\n defaultValue: T,\n): string | T => {\n if (notEmptyString(value)) return value.trim()\n return defaultValue\n}\n\nexport const capitalize = (value: string): string => {\n return value\n .split(' ')\n .map((word) => `${word[0].toUpperCase()}${word.slice(1).toLowerCase()}`)\n .join(' ')\n}\n\nexport const isoStringToDate = (value: string): Date | null => {\n const [d, t = '00:00:00'] = value.split(' ')\n\n const date = new Date(\n d.split('/').reverse().join('-') +\n ' ' +\n [...t.split(':'), '0', '0', '0']\n .slice(0, 3)\n .map((s) => s.padEnd(2, '0'))\n .join(':'),\n )\n return isNaN(date.getTime()) ? null : date\n}\n\nexport const getWeekNumber = (value: Date): [number, number] => {\n // cloning date\n const weekSunday = new Date(value)\n // reset time\n weekSunday.setHours(0, 0, 0, 0)\n // set date to week sunday\n weekSunday.setDate(weekSunday.getDate() - weekSunday.getUTCDay())\n // get first day of year\n const yearStart = new Date(Date.UTC(weekSunday.getUTCFullYear(), 0, 1))\n // calculate full weeks to the target week\n const weekNumber = Math.ceil(\n ((weekSunday.getTime() - yearStart.getTime()) / 86400000 + 1) / 7,\n )\n // return array of year and week number\n return [weekNumber, weekSunday.getUTCFullYear()]\n}\n\nexport const getMonthName = (value: Date): string => {\n const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n ]\n\n const monthName = months[value.getMonth()]\n return monthName\n}\n\nexport const getFirstWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-01-01 00:00:00`)\n // jumping to week sunday\n week.setDate(week.getDate() - week.getUTCDay() - 7)\n week.setHours(0, 0, 0, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to next sunday\n week.setDate(week.getDate() + 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport const getLastWeek = (year?: number) => {\n const today = new Date()\n\n if (year !== undefined) today.setFullYear(year)\n else year = today.getFullYear()\n\n // jumping to last day of year\n const week = new Date(`${year}-12-31 00:00:00`)\n // jumping to week saturday\n week.setDate(week.getDate() - week.getUTCDay() + 6)\n week.setHours(23, 59, 59, 0)\n\n let [, weekYear] = getWeekNumber(week)\n\n while (weekYear !== year) {\n // jumping to previous saturday\n week.setDate(week.getDate() - 7)\n ;[, weekYear] = getWeekNumber(week)\n }\n\n return week\n}\n\nexport { stripAccents, dateToIsoString, keys } from './common'\n\nexport const getSpacings = (\n value: SpacingOrZero | Spacings,\n defaults?: SpacingOrZero | Spacings,\n) => {\n let d = {\n top: 's1',\n left: 's1',\n bottom: 's1',\n right: 's1',\n }\n\n if (defaults) {\n if (typeof defaults === 'string') {\n d.top = defaults\n d.left = defaults\n d.bottom = defaults\n d.right = defaults\n } else {\n d = {\n ...d,\n ...defaults,\n }\n }\n }\n\n const spacing =\n typeof value === 'string'\n ? {\n top: value,\n left: value,\n bottom: value,\n right: value,\n }\n : {\n ...d,\n ...value,\n }\n\n const values = {\n top: isKeyOf(spacings, spacing.top) ? spacings[spacing.top] : spacing.top,\n left: isKeyOf(spacings, spacing.left)\n ? spacings[spacing.left]\n : spacing.left,\n bottom: isKeyOf(spacings, spacing.bottom)\n ? spacings[spacing.bottom]\n : spacing.bottom,\n right: isKeyOf(spacings, spacing.right)\n ? spacings[spacing.right]\n : spacing.right,\n }\n\n return `${values.top} ${values.right} ${values.bottom} ${values.left}`\n}\n\nexport const clone = <T>(value: T): T => {\n if (Array.isArray(value)) {\n const r = value.map(clone) as unknown as T\n return r\n }\n\n if (isObject<GenericObject>(value)) {\n const r = keys(value).reduce((prev, key) => {\n const v = clone(value[key])\n return { ...prev, [key]: v }\n }, {} as T)\n return r\n }\n\n return value\n}\n\nexport const unique = <T>(\n value: T[],\n callback: (item: T, arr: T[]) => boolean = (item, arr) => arr.includes(item),\n): T[] => {\n return value.filter((v, _i, self) => callback(v, self))\n}\n","import { 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 color: ${({ theme }) => theme.colors.darkBlue};\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 = (e) => {\n _onClick(index, option, e)\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 { colors } from '../../theme/constants'\nimport { Sizes, Types } from './interfaces'\n\nexport const sizes: { [key in Sizes]: string } = {\n medium: '15px',\n small: '6px',\n mini: '4px',\n} as const\n\nexport const types: { [key in Types]: keyof typeof colors } = {\n default: 'warningGray',\n info: 'blue',\n danger: 'warningRed',\n success: 'green',\n warning: 'warningYellow',\n} as const\n","import styled, { css } from 'styled-components'\nimport { sizes, types } from './constants'\nimport { IndicatorProps } from './interfaces'\n\nexport const Container = styled.div<IndicatorProps>`\n color: ${({ labelColor }) => labelColor};\n display: flex;\n align-items: center;\n gap: ${({ theme: { spacings } }) => spacings.s1};\n\n :before {\n content: '';\n display: block;\n border-radius: 100%;\n\n ${({ size }) => css`\n width: ${sizes[size]};\n height: ${sizes[size]};\n `};\n\n background-color: ${({ theme: { colors }, type }) => colors[types[type]]};\n }\n`\n","import React from 'react'\nimport { IndicatorProps } from './interfaces'\nimport * as S from './styles'\n\nconst Indicator = (props: Partial<IndicatorProps>) => {\n return (\n <S.Container\n {...{\n size: 'small',\n type: 'default',\n labelColor: 'darkBlue',\n ...props,\n }}\n />\n )\n}\n\nexport default Indicator\n","import styled, { css } from 'styled-components'\nimport { 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, { useEffect } 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'\nimport { isString } from '../../../../functions/validators'\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 useEffect(() => {\n if (!isString(props.value)) return\n const masked = mask(props.value)\n if (masked !== props.value) setValue(masked)\n }, [props.value])\n\n const 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 onKeyDown(event)\n\n if (event.key === 'Enter') {\n _onPressEnter(event)\n }\n }\n }\n\n if (inputProps.onKeyUp) {\n const onKeyUp = inputProps.onKeyUp\n\n inputProps.onKeyUp = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUp(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyDownCapture) {\n const onKeyDownCapture = inputProps.onKeyDownCapture\n\n inputProps.onKeyDownCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyDownCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n if (inputProps.onKeyUpCapture) {\n const onKeyUpCapture = inputProps.onKeyUpCapture\n\n inputProps.onKeyUpCapture = (event) => {\n const target = event.target as HTMLInputElement\n const v = target.value\n\n onKeyUpCapture(event)\n\n if (v !== target.value) setValue(target.value)\n }\n }\n\n 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={props.disabled ? undefined : iconOnClick}\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","export const months = [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n] as const\n\nexport const maxHeight = '378px'\n\nexport const inputTimeWidth = {\n withSeconds: '86px',\n withoutSeconds: '66px',\n}\n","import styled, { css } from 'styled-components'\n\nimport MwAbsoluteContainer from '../../../AbsoluteContainer'\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n position: relative;\n\n ${({ theme }) => {\n const { s3 } = theme.spacings\n\n return css`\n padding-top: ${s3};\n padding-bottom: ${s3};\n :first-child {\n padding-left: ${s3};\n }\n :last-child {\n padding-right: ${s3};\n }\n `\n }};\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n`\n\nexport const CalendarContainer = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n`\n\nexport const AbsoluteContainer = styled(MwAbsoluteContainer)`\n > ${Container} {\n padding: ${({ theme }) =>\n `${theme.spacings.s3} ${theme.spacings.s3} ${theme.spacings.s1} ${theme.spacings.s3}`};\n }\n`\n\nexport const MonthContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n > div {\n margin: ${({ theme }) => theme.spacings.s1} 0;\n flex: 1;\n position: relative;\n }\n`\n\nexport const MonthBtn = styled.div`\n ${({ theme }) => theme.useTypography('p')};\n line-height: ${({ theme }) => theme.spacings.s3};\n color: ${({ theme }) => theme.colors.darkBlue};\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n cursor: pointer;\n `\n }}\n`\n\nexport const NavBtn = styled.button`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 14px;\n width: 32px;\n height: 32px;\n box-shadow: none;\n border: none;\n background-color: transparent;\n\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n :disabled {\n visibility: hidden;\n }\n :not(:disabled) {\n cursor: pointer;\n :hover {\n background-color: ${({ theme }) => theme.getColor('blue', 35)};\n }\n }\n\n transition-property: background-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n`\n","import React, { useEffect, useState } from 'react'\n\nimport Icon from '../../../../../Icon'\nimport Menu from '../../../../../Menu'\nimport { MenuProps } from '../../../../../Menu/interfaces'\nimport { months } from '../../../../constants'\nimport * as S from '../../styles'\n\nconst MonthPicker = (\n props: Omit<MenuProps, 'before' | 'options' | 'spacing'> & {\n year: number\n setValue: (year: number, month: number) => void\n min?: Date\n max?: Date\n },\n) => {\n const { setValue, close, min, max } = props\n\n const [year, setYear] = useState(props.year)\n\n useEffect(() => {\n setYear(props.year)\n }, [props.open, props.year])\n\n return (\n <Menu\n {...props}\n before={\n <S.MonthContainer>\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev - 1)}\n disabled={min !== undefined && min.getFullYear() >= year}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n\n <div>\n <S.MonthBtn>{year}</S.MonthBtn>\n </div>\n\n <S.NavBtn\n type='button'\n onClick={() => setYear((prev) => prev + 1)}\n disabled={max !== undefined && max.getFullYear() <= year}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n </S.MonthContainer>\n }\n options={months.map((label, index) => {\n return {\n label,\n onClick: () => {\n setValue(year, index)\n close()\n },\n rules: [\n {\n rule: () => {\n const disabled =\n (min !== undefined &&\n (min.getFullYear() > year ||\n (min.getFullYear() === year &&\n min.getMonth() > index))) ||\n (max !== undefined &&\n (max.getFullYear() < year ||\n (max.getFullYear() === year && max.getMonth() < index)))\n\n return !disabled\n },\n },\n ],\n }\n })}\n />\n )\n}\n\nexport default MonthPicker\n","import styled, { css } from 'styled-components'\nimport Indicator from '../../../../../Indicator'\nimport { sizes } from '../../../../../Indicator/constants'\n\nexport * from '../../styles'\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n > button:last-child {\n margin-left: auto;\n }\n`\n\nexport const WeekContainer = styled.div`\n width: 100%;\n display: flex;\n\n :not(:first-child) {\n border-top: 1px solid ${({ theme }) => theme.colors.lightestGrey};\n }\n\n > * {\n font-family: ${({ theme }) => theme.fonts.lato};\n font-size: ${({ theme }) => theme.spacings.s3};\n line-height: ${({ theme }) => theme.spacings.s3};\n width: 32px;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.darkBlue};\n box-shadow: none;\n\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n border: 1px solid transparent;\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.lightestGrey};\n }\n }\n`\n\nexport const Header = styled.div`\n width: 100%;\n\n background-color: ${({ theme }) => theme.getColor('lightestGrey', 40)};\n font-weight: bolder;\n\n > ${WeekContainer} {\n border-top: none;\n > * {\n border-right-color: transparent;\n }\n }\n`\n\ninterface DayContainerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n today: 1 | 0\n appearance?: 'active' | 'highlight' | 'disabled'\n}\n\nexport const DayContainer = styled.button<DayContainerProps>`\n position: relative;\n overflow: hidden;\n\n ${({ theme, appearance }) => {\n const hover = (color: keyof typeof theme.colors) => css`\n :not(:disabled):hover {\n border-color: ${theme.colors[color]};\n color: ${theme.colors[color]};\n }\n `\n\n if (appearance === 'disabled') {\n return css`\n background-color: ${theme.getColor('greyishBlue', 10)};\n `\n } else if (appearance === 'highlight') {\n return css`\n background-color: ${theme.getColor('blue', 30)};\n ${hover('blue')}\n `\n } else if (appearance === 'active') {\n return css`\n background-color: ${theme.colors.blue};\n color: ${theme.colors.white};\n :not(:last-child) {\n border-right-color: ${({ theme }) => theme.colors.blue};\n }\n ${hover('white')}\n `\n }\n\n return css`\n background-color: ${theme.colors.white};\n ${hover('blue')}\n `\n }};\n\n :disabled {\n color: ${({ theme }) => theme.colors.silver};\n }\n\n :not(:disabled) {\n cursor: pointer;\n }\n\n &,\n :after {\n transition-property: background-color, color, border-color;\n transition-timing-function: ease-in-out;\n transition-duration: 0.25s;\n }\n\n ${({ appearance, today, theme }) => {\n if (today !== 1) {\n return\n }\n\n return css`\n :after {\n content: '';\n position: absolute;\n top: -60%;\n right: -60%;\n width: 100%;\n height: 100%;\n background-color: ${theme.colors[\n appearance === 'active' ? 'white' : 'blue'\n ]};\n transform: rotate(45deg);\n }\n `\n }}\n`\n\n// 1px here is the border-width: 0 0 1 1\nexport const DayIndicator = styled(Indicator).attrs({\n size: 'mini',\n})`\n position: absolute;\n bottom: calc(${sizes.mini} - 1px);\n left: calc(50% - (${sizes.mini} / 2) + 1px);\n`\n","import { dateCompare, isValidTime } from '../../functions/validators'\nimport { CalendarInterface } from './components/Basic/interfaces'\n\nexport const getCalendar = (d: Date): CalendarInterface => {\n const date = new Date(d.getTime())\n date.setHours(0, 0, 0, 0)\n const month = date.getMonth()\n const year = date.getFullYear()\n\n const days: Date[] = []\n\n date.setDate(1)\n date.setDate(date.getDate() - 1)\n\n while (date.getDay() !== 6 || days.length === 0) {\n const copy = new Date(date.getTime())\n days.unshift(copy)\n date.setDate(date.getDate() - 1)\n }\n\n date.setDate(date.getDate() + days.length + 1)\n\n while (month === date.getMonth()) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n while (days.length < 42) {\n const copy = new Date(date.getTime())\n days.push(copy)\n date.setDate(date.getDate() + 1)\n }\n\n const weeks: Date[][] = []\n let week: Date[] = [days[0]]\n\n for (let i = 1; i < days.length; i++) {\n if (week.length === 7) {\n weeks.push(week)\n week = []\n }\n week.push(days[i])\n }\n weeks.push(week)\n\n return { month, year, weeks }\n}\n\nexport const getMiddle = (min?: Date, max?: Date): Date => {\n const today = new Date()\n\n if (!max) {\n if (!min) return today\n\n // se nao tem maximo e tem minimo, se dia de hoje for maior que minimo, usa o dia de hoje, se nao usa o dia minimo\n return dateCompare(today, min, 'gte', false) ? today : min\n }\n\n if (!min) {\n if (!max) return today\n\n // se nao tem minimo e tem maximo, se dia de hoje for menor que maximo, usa o dia de hoje, se nao usa o dia maximo\n return dateCompare(today, max, 'lte', false) ? today : max\n }\n\n // se o dia atual esta entre o intervalo, usa o dia atual\n if (\n dateCompare(today, min, 'gte', false) &&\n dateCompare(today, max, 'lte', false)\n ) {\n return today\n }\n\n // se nao, usa o dia medio do intervalo\n const days = Math.ceil(\n Math.abs(max.getTime() - min.getTime()) / (1000 * 60 * 60 * 24) / 2,\n )\n const result = new Date(min)\n result.setDate(result.getDate() + days)\n\n return result\n}\n\nexport const getFullDate = (date: Date, time: string, end?: true): Date => {\n const v = new Date(date)\n\n const hours: [number, number, number, number] = end\n ? [23, 59, 59, 999]\n : [0, 0, 0, 0]\n\n time.split(':').forEach((v, i) => {\n const parsed = parseInt(v)\n if (isNaN(parsed)) return\n hours[i] = parsed\n })\n\n v.setHours(...hours)\n\n return v\n}\n\nexport const isDateBetween = (date: Date, min?: Date, max?: Date): boolean => {\n if (!max) {\n if (!min) return true\n return dateCompare(date, min, 'gte')\n }\n\n if (!min) {\n if (!max) return true\n return dateCompare(date, max, 'lte')\n }\n\n return dateCompare(date, min, 'gte') && dateCompare(date, max, 'lte')\n}\n\nexport const getTimeFromDate = (date: Date | null): string => {\n if (!date) return ''\n const h = date.getHours()\n const m = date.getMinutes()\n const s = date.getSeconds()\n\n return [h, m, s].map((v) => v.toString().padStart(2, '0')).join(':')\n}\n\nexport const isInvalid = (\n value: Date | null,\n time: string,\n timeOptions?: { required?: boolean; seconds?: boolean },\n min?: Date,\n max?: Date,\n): boolean => {\n if (!value) {\n return false\n }\n\n if (timeOptions) {\n if (time.length === 0) {\n if (timeOptions.required) {\n return true\n }\n } else if (\n !isValidTime(time, {\n h: 'required',\n m: 'required',\n s: timeOptions.seconds ? 'required' : 'optional',\n })\n ) {\n return true\n }\n }\n\n const date = getFullDate(value, time)\n\n return (\n (min !== undefined && dateCompare(date, min, 'lt')) ||\n (max !== undefined && dateCompare(date, max, 'gt'))\n )\n}\n\nexport const getInitialCalendar = (date?: Date, min?: Date, max?: Date) => {\n return getCalendar(\n date && !isNaN(date.getTime()) && isDateBetween(date, min, max)\n ? date\n : getMiddle(min, max),\n )\n}\n","import { 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","import React, { useEffect, useState } from 'react'\n\nimport useOnClickOut from '../../../../../../hooks/onClickOut'\n\nimport Icon from '../../../../../Icon'\n\nimport MonthPicker from '../../components/MonthPicker'\nimport { months } from '../../../../constants'\nimport * as S from './styles'\nimport { MainProps } from './interfaces'\nimport { getCalendar, getInitialCalendar } from '../../../../functions'\nimport { CalendarInterface } from '../../interfaces'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport Loader from '../../../../../Loader'\nimport { theme } from '../../../../../../theme'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { getDay, initialMonth } = props\n\n const [selectOpen, setSelectOpen] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n\n const onChangeMonth = (() => {\n const { onChangeMonth } = props\n\n if (!onChangeMonth) return async () => {}\n return (async (...args) => {\n setLoading(true)\n await onChangeMonth(...args)\n setLoading(false)\n }) as typeof onChangeMonth\n })()\n\n const min = props.min\n ? (() => {\n const date = new Date(props.min)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const max = props.max\n ? (() => {\n const date = new Date(props.max)\n date.setHours(0, 0, 0, 0)\n return date\n })()\n : undefined\n\n const [calendar, _setCalendar] =\n props.calendar ||\n useState<CalendarInterface>(getInitialCalendar(initialMonth, min, max))\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar: typeof _setCalendar = (value) => {\n _setCalendar((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n useEffect(() => {\n const [first, last] = [\n calendar.weeks[0],\n calendar.weeks[calendar.weeks.length - 1],\n ]\n onChangeMonth({\n ...calendar,\n firstDay: first[0],\n lastDay: last[last.length - 1],\n })\n }, [calendar])\n\n const changeMonth = (add: 1 | -1) => {\n setCalendar((prev) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(prev.year)\n date.setMonth(prev.month + add)\n\n return getCalendar(date)\n })\n }\n\n const getPrev = () => {\n const [disabled, onClick] =\n min !== undefined &&\n (calendar.year < min.getFullYear() ||\n (calendar.year === min.getFullYear() &&\n calendar.month <= min.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(-1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_left'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n const getNext = () => {\n const [disabled, onClick] =\n max !== undefined &&\n (calendar.year > max.getFullYear() ||\n (calendar.year === max.getFullYear() &&\n calendar.month >= max.getMonth()))\n ? [true]\n : [undefined, () => changeMonth(1)]\n\n return (\n <S.NavBtn type='button' onClick={onClick} disabled={disabled}>\n <Icon\n type='feather'\n icon='chevron_right'\n color='darkBlue'\n strokeWidth='3px'\n />\n </S.NavBtn>\n )\n }\n\n return (\n <S.Container ref={ref}>\n {props.label && <S.LabelContainer>{props.label}</S.LabelContainer>}\n\n <S.CalendarContainer>\n <S.Header>\n <S.MonthContainer>\n {getPrev()}\n <div ref={useOnClickOut(() => setSelectOpen(false))}>\n <S.MonthBtn onClick={() => setSelectOpen((prev) => !prev)}>\n {months[calendar.month]} {calendar.year}\n <Icon\n type='semantic'\n icon={selectOpen ? 'caret up' : 'caret down'}\n width='14px'\n />\n </S.MonthBtn>\n\n <MonthPicker\n open={selectOpen}\n close={() => setSelectOpen(false)}\n year={calendar.year}\n setValue={(year, month) => {\n const date = new Date()\n date.setDate(1)\n date.setFullYear(year)\n date.setMonth(month)\n setCalendar(getCalendar(date))\n }}\n min={min}\n max={max}\n width='100%'\n maxHeight='180px'\n transition={{ properties: { 'max-height': {} } }}\n itemSpacing='s3'\n bordered\n />\n </div>\n {getNext()}\n </S.MonthContainer>\n\n <S.WeekContainer>\n <div>D</div>\n <div>S</div>\n <div>T</div>\n <div>Q</div>\n <div>Q</div>\n <div>S</div>\n <div>S</div>\n </S.WeekContainer>\n </S.Header>\n\n {calendar.weeks.map((week, index) => {\n return (\n <S.WeekContainer key={index}>\n {week.map((date, index) => {\n const details = getDay(date)\n\n const day = date.getDate()\n const month = date.getMonth()\n\n const appearance =\n month !== calendar.month ||\n (max && date > max) ||\n (min && date < min)\n ? 'disabled'\n : details.appearance\n\n const [disabled, onClick, onMouseOver, onMouseOut] =\n appearance === 'disabled'\n ? [true, undefined]\n : [\n undefined,\n details.onClick,\n details.onMouseOver,\n details.onMouseOut,\n ]\n\n return (\n <S.DayContainer\n key={index}\n type='button'\n onClick={onClick}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n disabled={disabled}\n appearance={appearance}\n today={dateCompare(new Date(), date, 'eq', false) ? 1 : 0}\n >\n {day}\n {details.indicator && (\n <S.DayIndicator type={details.indicator} />\n )}\n </S.DayContainer>\n )\n })}\n </S.WeekContainer>\n )\n })}\n </S.CalendarContainer>\n\n {props.children && <S.Footer>{props.children}</S.Footer>}\n\n {loading && <Loader filled={theme.getColor('white', 95)} />}\n </S.Container>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\n\nimport { filterObject } from '../../../../functions/formatters'\n\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\n\nimport Main from './components/Main'\nimport { BasicCalendarProps } from './interfaces'\nimport * as S from './styles'\n\nconst BasicCalendar = React.forwardRef(\n (props: BasicCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n BasicCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'getDay',\n 'calendar',\n 'absolute',\n 'onChangeMonth',\n ])\n\n return 'absolute' in props ? (\n <S.AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...props} />\n </S.AbsoluteContainer>\n ) : (\n <Main {...props} />\n )\n },\n)\n\nBasicCalendar.displayName = 'BasicCalendar'\n\nexport default BasicCalendar\n","import React from 'react'\nimport Input from '../Input'\nimport { TimeProps } from './interfaces'\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/[^0-9\\s]/g, '')\n\n while (v.length > 0 && parseInt(v[0]) > 2) {\n v = v.substring(1)\n }\n\n if (v.length > 1) {\n if (v[0] === '2') {\n while (v.length > 1 && parseInt(v[1]) > 3) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 5) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n if (v.length > 4) {\n while (v.length > 4 && parseInt(v[4]) > 5) {\n v = v.substring(0, 4) + v.substring(5)\n }\n }\n\n v = v.substring(0, seconds ? 6 : 4)\n\n if (v.length < 3) return v\n else if (v.length < 5) return v.substring(0, 2) + ':' + v.substring(2)\n else return v.substring(0, 2) + ':' + v.substring(2, 4) + ':' + v.substring(4)\n}\n\nconst Time = React.forwardRef(\n (props: TimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, seconds } = props\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const setValue = props.setValue || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const curH = todayDate.getHours()\n const curM = todayDate.getMinutes()\n const curS = todayDate.getSeconds()\n\n const value = target.value.replace(/[^0-9\\s]/g, '')\n\n let tmp = value.substring(0, 2)\n let h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(2, 4)\n let m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, '0'))\n\n tmp = value.substring(4, 6)\n let s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, '0'))\n\n if (event.key === 'ArrowUp') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m + 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n } else if (event.key === 'ArrowDown') {\n const date = new Date()\n date.setHours(h)\n date.setMinutes(m)\n date.setSeconds(s)\n\n if (seconds) {\n date.setSeconds(s - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [\n h.toString().padStart(2, '0'),\n m.toString().padStart(2, '0'),\n s.toString().padStart(2, '0'),\n ].join(':'),\n )\n } else {\n date.setMinutes(m - 1)\n\n h = date.getHours()\n m = date.getMinutes()\n s = date.getSeconds()\n\n setValue(\n [h.toString().padStart(2, '0'), m.toString().padStart(2, '0')].join(\n ':',\n ),\n )\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? seconds\n ? '––:––:––'\n : '––:––'\n : props.placeholder\n\n return (\n <Input\n {...props}\n type='text'\n value={mask(value, seconds)}\n placeholder={placeholder}\n mask={(v: string) => mask(v, seconds)}\n onKeyDown={onKeyDown}\n ref={ref}\n />\n )\n },\n)\n\nTime.displayName = 'Time'\n\nexport default Time\n","import { dateCompare } from '../../../../../../functions/validators'\nimport { getCalendar, isDateBetween } from '../../../../functions'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { Value } from '../../interfaces'\n\nexport const getValue = (dates: (Date | null)[], min?: Date, max?: Date) => {\n const n = [\n ...dates\n .filter((d) => d && !isNaN(d.getTime()) && isDateBetween(d, min, max))\n .sort((a, b) => {\n if (dateCompare(a as Date, b as Date, 'eq')) return 0\n return dateCompare(a as Date, b as Date, 'lt') ? -1 : 1\n }),\n null,\n null,\n ]\n return n.slice(0, 2) as Value\n}\n\nexport const getCalendar2 = (\n calendar1: CalendarInterface,\n): CalendarInterface => {\n const date = new Date()\n date.setFullYear(calendar1.year)\n date.setMonth(calendar1.month + 1)\n date.setDate(1)\n date.setHours(0, 0, 0, 0)\n return getCalendar(date)\n}\n","import styled from 'styled-components'\nimport Button from '../Button'\n\nexport const SubmitButton = styled(Button)`\n width: 105px;\n`\n","import styled from 'styled-components'\n\nexport * from '../../../../styles'\n\nexport const CalendarsContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s3};\n background-color: ${({ theme }) => theme.colors.white};\n`\n\nexport const LabelContainer = styled.div`\n color: ${({ theme }) => theme.colors.darkestGrey};\n > b {\n color: ${({ theme }) => theme.colors.darkBlue};\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport {\n dateToIsoString,\n filterObject,\n} from '../../../../../../functions/formatters'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport Input from '../../../../../Input/components/Time'\nimport { inputTimeWidth } from '../../../../constants'\nimport {\n getCalendar,\n getFullDate,\n getInitialCalendar,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport BasicCalendar from '../../../Basic'\nimport { CalendarInterface } from '../../../Basic/interfaces'\nimport { BasicCalendarProps } from '../../../interfaces'\nimport { InputTimeProps, Value } from '../../interfaces'\nimport { getCalendar2, getValue } from './functions'\nimport { MainProps } from './interfaces'\nimport * as S from './styles'\n\nconst Main = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialMonth, initialValue, min, max } = props\n\n const [value, setValue] =\n props.value || useState<Value>(getValue(initialValue || [], min, max))\n\n const [invalid, setInvalid] =\n props.invalid || useState<[boolean, boolean]>([false, false])\n\n const [time, setTime] = useState<[string, string]>(() => {\n return value.map(getTimeFromDate) as [string, string]\n })\n\n const [calendar1, _setCalendar1] = useState<CalendarInterface>(\n getInitialCalendar(value[0] || initialMonth, min, max),\n )\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar1: typeof _setCalendar1 = (value) => {\n _setCalendar1((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const [calendar2, _setCalendar2] = useState<CalendarInterface>(\n getCalendar2(calendar1),\n )\n\n // se o novo calendario for igual ao anterior, nao altera o estado\n const setCalendar2: typeof _setCalendar2 = (value) => {\n _setCalendar2((prev) => {\n const newv = typeof value === 'function' ? value(prev) : value\n return newv.month === prev.month && newv.year === prev.year\n ? prev\n : newv\n })\n }\n\n const [hoverDay, setHoverDay] = useState<Date | null>(null)\n\n useEffect(() => {\n const timeProps =\n props.time === true\n ? ([{}, {}] as [InputTimeProps, InputTimeProps])\n : props.time\n\n setHoverDay(null)\n\n if (value[0]) {\n const c1 = getCalendar(value[0])\n setCalendar1(c1)\n\n if (value[1]) {\n const c2 = getCalendar(value[1])\n if (\n c2.year > c1.year ||\n (c2.year === c1.year && c2.month > c1.month)\n ) {\n setCalendar2(c2)\n }\n }\n }\n\n setInvalid(\n value.map((v, i): boolean => {\n return isInvalid(\n v,\n time[i],\n timeProps ? timeProps[i] : undefined,\n min,\n max,\n )\n }) as [boolean, boolean],\n )\n }, [value, time, props.time])\n\n const _getDay: Exclude<typeof props.getDay, undefined> =\n props.getDay || (() => ({}))\n\n const getDay: BasicCalendarProps['getDay'] = (day: Date) => {\n const dayProps = _getDay(day)\n\n const onClick = () => {\n const newValue: Value = [...value]\n if (!newValue[0]) {\n newValue[0] = new Date(day)\n } else if (newValue[1]) {\n newValue[0] = new Date(day)\n newValue[1] = null\n } else if (dateCompare(day, newValue[0], 'lt')) {\n newValue[1] = newValue[0]\n newValue[0] = new Date(day)\n } else {\n newValue[1] = new Date(day)\n }\n\n setValue(newValue)\n }\n\n const [onMouseOver, onMouseOut] =\n value[0] && !value[1]\n ? [() => setHoverDay(day), () => setHoverDay(null)]\n : [() => {}, () => {}]\n\n const appearance = (() => {\n if (value.some((v) => v && dateCompare(v, day, 'eq', false))) {\n return 'active'\n }\n\n if (\n (value[0] && value[1] && isDateBetween(day, value[0], value[1])) ||\n (value[0] &&\n hoverDay &&\n (isDateBetween(day, value[0], hoverDay) ||\n isDateBetween(day, hoverDay, value[0])))\n ) {\n return 'highlight'\n }\n\n return undefined\n })()\n\n const [_onClick, _onMouseOver, _onMouseOut] = (\n ['onClick', 'onMouseOver', 'onMouseOut'] as const\n ).map((c) => dayProps[c] || (() => {}))\n\n return {\n ...dayProps,\n appearance: appearance || dayProps.appearance,\n onClick: (e) => {\n _onClick(e)\n onClick()\n },\n onMouseOver: (e) => {\n _onMouseOver(e)\n onMouseOver()\n },\n onMouseOut: (e) => {\n _onMouseOut(e)\n onMouseOut()\n },\n }\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'initialMonth',\n 'max',\n 'min',\n 'getDay',\n ])\n\n const timeInvalid = !time.some((t) => t.length > 0)\n ? [false, false]\n : time.map((t) => t.length === 0)\n\n const onSubmit = {\n disabled:\n value.some((v) => v === null) ||\n invalid.some((v) => v) ||\n timeInvalid.some((v) => v),\n onClick: () => {},\n }\n\n if (props.onSubmit) {\n const { disabled, onClick } = props.onSubmit\n\n if (disabled) {\n onSubmit.disabled = true\n }\n\n if (!onSubmit.disabled) {\n onSubmit.onClick = () => {\n onClick([\n value[0] ? getFullDate(value[0], time[0]) : null,\n value[1] ? getFullDate(value[1], time[1], true) : null,\n ])\n }\n }\n }\n\n const middle = new Date()\n middle.setFullYear(calendar1.year)\n middle.setMonth(calendar1.month + 1)\n middle.setDate(1)\n middle.setHours(0, 0, 0, 0)\n\n const inputs = props.time\n ? (props.time === true ? ([{}, {}] as InputTimeProps[]) : props.time).map(\n (timeProps, index) => {\n const width = timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n\n return (\n <Input\n key={index}\n {...timeProps}\n type='time'\n value={time[index]}\n setValue={(v) =>\n setTime((prev) => {\n const n = [...prev]\n n[index] = v\n return n as [string, string]\n })\n }\n invalid={\n (value[index] !== null && invalid[index]) ||\n timeInvalid[index]\n }\n width={inputTimeWidth[width]}\n />\n )\n },\n )\n : []\n\n return (\n <S.CalendarsContainer>\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Inicio:</b>{' '}\n {value[0] ? dateToIsoString(value[0]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[\n calendar1,\n (v) => {\n setCalendar1((prev) => {\n const c1 = typeof v === 'function' ? v(prev) : v\n setCalendar2(getCalendar2(c1))\n return c1\n })\n },\n ]}\n min={min}\n max={max}\n >\n {inputs[0]}\n </BasicCalendar>\n\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n label={\n <S.LabelContainer>\n <b>Fim:</b> {value[1] ? dateToIsoString(value[1]) : '––/––/––––'}\n </S.LabelContainer>\n }\n calendar={[calendar2, setCalendar2]}\n min={min && dateCompare(min, middle, 'gt') ? min : middle}\n max={max}\n >\n {inputs[1]}\n\n {props.onSubmit && (\n <S.SubmitButton {...onSubmit} type='button' content='Aplicar' />\n )}\n </BasicCalendar>\n </S.CalendarsContainer>\n )\n },\n)\n\nMain.displayName = 'Main'\n\nexport default Main\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { IntervalCalendarProps } from './interfaces'\n\nconst CalendarInterval = React.forwardRef(\n (props: IntervalCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n IntervalCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n 'getDay',\n 'onChangeMonth',\n ])\n\n const mainProps = filterObject<IntervalCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarInterval.displayName = 'CalendarInterval'\n\nexport default CalendarInterval\n","import React, { useEffect, useState } from 'react'\n\nimport { filterObject } from '../../../../../../functions/formatters'\n\nimport Input from '../../../../../Input/components/Time'\nimport BasicCalendar from '../../../Basic'\nimport { BasicCalendarProps } from '../../../Basic/interfaces'\n\nimport {\n getFullDate,\n getTimeFromDate,\n isDateBetween,\n isInvalid,\n} from '../../../../functions'\nimport { dateCompare } from '../../../../../../functions/validators'\nimport { inputTimeWidth } from '../../../../constants'\nimport * as S from '../../../../styles'\nimport { MainProps } from './interfaces'\n\nconst SingleCalendar = React.forwardRef(\n (props: MainProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const { initialValue, min, max } = props\n\n const timeProps = props.time === true ? {} : props.time\n\n const [value, setValue] =\n props.value ||\n useState<Date | null>(\n initialValue &&\n !isNaN(initialValue.getTime()) &&\n isDateBetween(initialValue, min, max)\n ? initialValue\n : null,\n )\n\n const [invalid, setInvalid] = props.invalid || useState<boolean>(false)\n\n const [time, setTime] = useState<string>(getTimeFromDate(value))\n\n useEffect(() => {\n setInvalid(isInvalid(value, time, timeProps, min, max))\n }, [value, time, timeProps])\n\n const _getDay: Exclude<typeof props.getDay, undefined> =\n props.getDay || (() => ({}))\n\n const getDay: BasicCalendarProps['getDay'] = (day: Date) => {\n const dayProps = _getDay(day)\n\n const active = value && dateCompare(value, day, 'eq', false)\n\n const _onClick = dayProps.onClick || (() => {})\n\n const onClick = active\n ? () => setValue(null)\n : () => setValue(new Date(day))\n\n return {\n ...dayProps,\n appearance: active ? 'active' : dayProps.appearance,\n onClick: (e) => {\n _onClick(e)\n onClick()\n },\n }\n }\n\n const calendarProps = filterObject<MainProps, BasicCalendarProps>(props, [\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'getDay',\n ])\n\n const onSubmit = {\n disabled: value === null || invalid,\n onClick: () => {},\n }\n\n if (props.onSubmit) {\n const { disabled, onClick } = props.onSubmit\n\n if (disabled) {\n onSubmit.disabled = true\n }\n\n onSubmit.onClick = () => {\n onClick(value ? getFullDate(value, time) : null)\n }\n }\n\n return (\n <BasicCalendar\n {...calendarProps}\n {...{ getDay }}\n ref={ref}\n initialMonth={props.initialValue || props.initialMonth}\n >\n {timeProps && (\n <Input\n {...timeProps}\n type='time'\n value={time}\n setValue={setTime}\n invalid={value !== null && invalid}\n width={\n inputTimeWidth[\n timeProps.seconds ? 'withSeconds' : 'withoutSeconds'\n ]\n }\n />\n )}\n\n {props.onSubmit && (\n <S.SubmitButton {...onSubmit} type='button' content='Aplicar' />\n )}\n </BasicCalendar>\n )\n },\n)\n\nSingleCalendar.displayName = 'SingleCalendar'\n\nexport default SingleCalendar\n","import React from 'react'\nimport { filterObject } from '../../../../functions/formatters'\nimport AbsoluteContainer from '../../../AbsoluteContainer'\nimport { AbsoluteContainerProps } from '../../../AbsoluteContainer/interfaces'\nimport { maxHeight } from '../../constants'\nimport Main from './components/Main'\nimport { MainProps } from './components/Main/interfaces'\n\nimport { SingleCalendarProps } from './interfaces'\n\nconst CalendarSingle = React.forwardRef(\n (props: SingleCalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n const containerProps = filterObject<\n SingleCalendarProps,\n AbsoluteContainerProps\n >(props, [\n 'initialMonth',\n 'max',\n 'min',\n 'initialValue',\n 'value',\n 'time',\n 'onSubmit',\n 'invalid',\n 'absolute',\n 'getDay',\n 'onChangeMonth',\n ])\n\n const mainProps = filterObject<SingleCalendarProps, MainProps>(props, [\n 'absolute',\n ])\n\n return props.absolute ? (\n <AbsoluteContainer\n axis='y'\n maxHeight={maxHeight}\n {...containerProps}\n ref={ref}\n >\n <Main {...mainProps} />\n </AbsoluteContainer>\n ) : (\n <Main {...mainProps} />\n )\n },\n)\n\nCalendarSingle.displayName = 'CalendarSingle'\n\nexport default CalendarSingle\n","import React from 'react'\n\nimport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\nimport { CalendarProps } from './interfaces'\n\nconst Calendar = React.forwardRef(\n (props: CalendarProps, ref?: React.ForwardedRef<HTMLDivElement>) => {\n switch (props.type) {\n case 'basic': {\n return <BasicCalendar {...props} ref={ref} />\n }\n case 'interval': {\n return <IntervalCalendar {...props} ref={ref} />\n }\n case 'single': {\n return <SingleCalendar {...props} ref={ref} />\n }\n }\n },\n)\n\nCalendar.displayName = 'Input'\n\nexport { BasicCalendar, IntervalCalendar, SingleCalendar } from './components'\n\nexport default Calendar\n","export const JSDate = Date\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\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 setValue(dateToIsoString(date))\n }\n } else if (event.key === 'ArrowDown') {\n const date = new JSDate(`${y}-${m}-${d} 00:00:00`)\n date.setDate(date.getDate() - 1)\n\n if (!min || date >= min) {\n setValue(dateToIsoString(date))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined ? 'dd/mm/aaaa' : props.placeholder\n\n const icon = 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 {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n const newValue = dateToIsoString(date)\n setValue(newValue)\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDate.displayName = 'Date'\n\nexport default Date\n","import 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) => {\n const label = isString(option.label)\n ? {\n text: option.label,\n element: option.label,\n }\n : option.label\n\n const { value, onClick, data } = option\n\n return {\n label,\n data,\n onClick: onClick\n ? (index, _option, event) => {\n onClick(index, option, event)\n }\n : () => {\n props.setValue(value, option)\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(\n checked.map((c) => c.value),\n [...checked],\n )\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) => (prev.length === options.length ? [] : [...options]))\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, { useEffect, 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: Option[],\n setChecked: React.Dispatch<React.SetStateAction<Option[]>>,\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.findIndex((e) => e.value === option.value) !== -1}\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.value !== option.value)\n\n if (isChecked) newState.push({ ...option })\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: unknown[]): string => {\n if (value.length < 1) return ''\n return value.length > 1\n ? `Há ${value.length} seleções`\n : `Há ${value.length} seleção`\n}\n\nconst useSelectMultiple = (props: SelectProps): useSelectReturn => {\n const init = () =>\n props.value.length === 0\n ? []\n : typeof props.value[0] === 'string'\n ? ([...props.value].map((value) => ({ value, label: value })) as Option[])\n : ([...props.value] as Option[])\n\n const [options, setOptions] = useState<Option[]>([])\n const [inital, setInitial] = useState<Option[]>(init)\n const [checked, setChecked] = useState<Option[]>(init)\n\n // keep checked and inital state updated\n useEffect(() => {\n const getOption = (\n def: Option,\n options: Option[],\n prev: Option[],\n ): Option => {\n const index = options.findIndex((o) => o.value === def.value)\n if (index !== -1) return { ...options[index] }\n else {\n const index = prev.findIndex((o) => o.value === def.value)\n if (index !== -1) return { ...prev[index] }\n }\n\n return def\n }\n\n const mapper = (prev: Option[]) => {\n return props.value.length > 0 && typeof props.value[0] === 'string'\n ? (props.value as string[]).map((value) =>\n getOption({ value, label: value }, options, prev),\n )\n : (props.value as Option[]).map((value) =>\n getOption(value, options, prev),\n )\n }\n\n setInitial(mapper)\n setChecked(mapper)\n }, [props.value, options])\n\n const parsedOptions = getOptions(options, checked, setChecked)\n\n const inputValue = getInputValue(props.value)\n\n const onReset = () => {\n setChecked([...inital])\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 const onClick = () => {\n setOpen((prev) => !prev)\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={onClick}\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 onClick,\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 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 if (!value) {\n setInputValue('')\n return\n }\n\n const details = getPhoneDetails(value)\n if (details) {\n setCountry(details.country)\n setInputValue(details.masked)\n } else {\n setCountry(countries.br)\n setInputValue(value)\n }\n }, [value])\n\n useEffect(() => {\n setInputValue((prev) => mask(prev))\n }, [country])\n\n useEffect(() => {\n const v = inputValue.replace(/\\D+/g, '').substring(0, country.charLimit)\n setValue(`${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 { getMiddle } from '../../../Calendar/functions'\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(getMiddle(min, max)))\n }\n }, [value])\n\n const onAdd = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() + 1)\n if (max && date > max) return\n setValue(dateToIsoString(date))\n }\n\n const onSub = () => {\n const date = isoStringToDate(value) || new Date()\n date.setDate(date.getDate() - 1)\n if (min && date < min) return\n setValue(dateToIsoString(date))\n }\n\n const icon = 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 {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(dateToIsoString(date))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDatePicker.displayName = 'DatePicker'\n\nexport default DatePicker\n","import styled, { css } from 'styled-components'\nimport { 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 {\n dateToIsoString,\n getFirstWeek,\n getLastWeek,\n getMonthName,\n getWeekNumber,\n} from '../../../../functions/formatters'\nimport { dateCompare } from '../../../../functions/validators'\nimport { Value } from '../../../Calendar/components/Interval/interfaces'\n\nimport { IntervalType, IntervalTypes } from './interfaces'\n\nexport const validate: (value: Value, min?: Date, max?: Date) => boolean = (\n [start, end],\n min,\n max,\n) => {\n if (start === null || end === null) return true\n if (min && dateCompare(start, min, 'lt')) return false\n if (max && dateCompare(end, max, 'gt')) return false\n return true\n}\n\nexport const intervalTypes: IntervalTypes = {\n day: {\n label: (prev) => {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n if (dateCompare(today, prev[0], 'eq', false)) return 'Hoje'\n return dateToIsoString(prev[0], false, false)\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(base)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() + 1)\n return tmp\n }) as [Date, Date]\n },\n decrement: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() - 1)\n return tmp\n }) as [Date, Date]\n },\n },\n week: {\n label: (prev) => {\n const [weekNumber] = getWeekNumber(prev[0])\n return `${weekNumber}ª Semana`\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setDate(start.getDate() - start.getUTCDay())\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(start)\n end.setDate(start.getDate() + 6)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() + 7)\n return tmp\n }) as [Date, Date]\n },\n decrement: (prev) => {\n return prev.map((d) => {\n const tmp = new Date(d)\n tmp.setDate(tmp.getDate() - 7)\n return tmp\n }) as [Date, Date]\n },\n getMinMax: (min, max) => {\n const firstWeek = getFirstWeek()\n const lastWeek = getLastWeek()\n\n if (!min || min < firstWeek) min = firstWeek\n if (!max || max > lastWeek) max = lastWeek\n\n return {\n min,\n max,\n }\n },\n },\n month: {\n label: (prev) => {\n const monthName = getMonthName(prev[0])\n const year = prev[0].getFullYear()\n\n return `${monthName}/${year}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n\n const start = new Date(base)\n start.setDate(1)\n start.setHours(0, 0, 0, 0)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n increment: (prev) => {\n const start = new Date(prev[0])\n start.setDate(1)\n start.setMonth(start.getMonth() + 1)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n decrement: (prev) => {\n const start = new Date(prev[0])\n start.setDate(1)\n start.setMonth(start.getMonth() - 1)\n\n const end = new Date(start)\n end.setMonth(end.getMonth() + 1)\n end.setDate(0)\n end.setHours(23, 59, 59, 999)\n\n return [start, end]\n },\n },\n custom: {\n label: (prev) => {\n const start = dateToIsoString(prev[0], true, false)\n .substring(0, 14)\n .split(' ')\n const end = dateToIsoString(prev[1], true, false)\n .substring(0, 14)\n .split(' ')\n\n if (start[1] === '00:00' && end[1] === '23:59') {\n start.pop()\n end.pop()\n } else {\n start[1] = `(${start[1]})`\n end[1] = `(${end[1]})`\n }\n\n return `${start.join(' ')} à ${end.join(' ')}`\n },\n initial: (base) => {\n if (!base) base = new Date()\n return [base, base]\n },\n },\n}\n\nexport const identify = (value: Value): IntervalType => {\n const [start, end] = value\n\n if (start === null || end === null) return 'custom'\n\n if (dateCompare(start, end, 'eq', false)) {\n const [expectedStart, expectedEnd] = intervalTypes.day.initial(start)\n\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'day'\n }\n }\n\n if (start.getUTCDay() === 0) {\n const [expectedStart, expectedEnd] = intervalTypes.week.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'week'\n }\n }\n\n if (start.getDate() === 1) {\n const [expectedStart, expectedEnd] = intervalTypes.month.initial(start)\n if (\n dateCompare(start, expectedStart, 'eq') &&\n dateCompare(end, expectedEnd, 'eq')\n ) {\n return 'month'\n }\n }\n\n return 'custom'\n}\n\nexport const parse = (value: [string, string]): [Date | null, Date | null] =>\n value.map((v) => (v ? new Date(v) : null)) as [Date | null, Date | null]\n","import React from 'react'\nimport styled, { css } from 'styled-components'\n\ninterface RelativeContainerProps {\n invalid: boolean\n}\n\nexport const RelativeContainer = styled.div<RelativeContainerProps>`\n position: relative;\n user-select: none;\n min-width: 220px;\n\n > input,\n > label > input {\n color: transparent;\n background-color: transparent;\n width: 1px;\n height: 1px;\n position: absolute;\n left: 0;\n bottom: 0;\n border: 0;\n padding: 0;\n overflow: hidden;\n outline: none;\n box-shadow: none;\n }\n`\n\nexport const LabelContainer = styled.div`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n flex: 1;\n text-align: center;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\n\ninterface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n invalid: 1 | 0\n disabled: 1 | 0\n paddingless: 1 | 0\n borderless: 1 | 0\n}\n\nexport const Container = styled.div<ContainerProps>`\n display: flex;\n align-items: center;\n border-radius: 4px;\n white-space: nowrap;\n gap: ${({ theme }) => theme.spacings.s1};\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid, borderless }) => {\n if (borderless) return 'transparent'\n return invalid ? theme.colors.warningRed : theme.colors.lightGrey\n }};\n\n width: 100%;\n\n ${({ theme, invalid }) => {\n const [bgColor, color] = invalid\n ? [theme.getColor('warningRed', 5), theme.colors.warningRed]\n : [theme.colors.white, theme.colors.darkBlue]\n return css`\n color: ${color};\n background-color: ${bgColor};\n /** google chrome blue background */\n -webkit-box-shadow: 0 0 0px 1000px ${bgColor} inset !important;\n `\n }};\n\n ${({ theme, paddingless }) => {\n if (paddingless) return\n\n return css`\n padding: ${theme.spacings.s2} ${theme.spacings.s1} ${theme.spacings.s2}\n ${theme.spacings.s3};\n `\n }}\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const Button = styled.button`\n display: flex;\n background-color: transparent;\n border: none;\n padding: 0;\n box-shadow: none;\n\n ${({ onClick }) => {\n if (!onClick) return\n\n return css`\n :not(:disabled) {\n cursor: pointer;\n }\n `\n }};\n`\ninterface StyledLabelTextProps {\n required: 1 | 0\n}\n\nexport const LabelText = styled.label<StyledLabelTextProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React, { useEffect, useState } from 'react'\n\nimport { dateToIsoString, filterObject } from '../../../../functions/formatters'\nimport { isDateInstance } from '../../../../functions/validators'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\nimport { getMiddle } from '../../../Calendar/functions'\nimport Icon from '../../../Icon'\nimport Menu from '../../../Menu'\n\nimport { identify, intervalTypes, parse, validate } from './functions'\n\nimport { DateIntervalPickerProps, IntervalType } from './interfaces'\nimport * as S from './styles'\n\nconst Component = React.forwardRef(\n (\n props: DateIntervalPickerProps,\n ref?: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const value = parse(props.value)\n\n const [open, setOpen] = useState<'menu' | 'calendar' | null>(null)\n const [intervalType, setIntervalType] = useState<IntervalType>(\n props.only || 'day',\n )\n\n const config = intervalTypes[intervalType]\n const { min, max } = config.getMinMax\n ? config.getMinMax(props.min, props.max)\n : props\n\n const setValue = (newValue: [Date, Date]) => {\n const parsed = newValue.map((v) =>\n dateToIsoString(v, true, true, 'us'),\n ) as [string, string]\n\n props.setValue(parsed)\n }\n\n useEffect(() => {\n if (props.min && props.max && props.min > props.max) {\n throw Error('Min prop must be less than Max')\n }\n\n if (props.only) {\n return\n }\n\n const value = parse(props.value)\n if (\n value.some((v) => !isDateInstance(v)) ||\n !validate(value, props.min, props.max)\n ) {\n return\n }\n\n const newIntervalType = identify(value)\n setIntervalType(newIntervalType)\n }, [props.value, props.min, props.max])\n\n const inputProps = filterObject<\n DateIntervalPickerProps,\n React.HtmlHTMLAttributes<HTMLInputElement>\n >(props, [\n 'label',\n 'invalid',\n 'required',\n 'disabled',\n 'width',\n 'borderless',\n 'paddingless',\n 'type',\n 'value',\n 'setValue',\n 'getLabel',\n 'max',\n 'min',\n 'only',\n 'calendar',\n ])\n\n const getArrowProps = (key: 'increment' | 'decrement') => {\n if (value.some((v) => !isDateInstance(v))) {\n return {\n disabled: true,\n }\n }\n\n const func = config[key]\n\n if (func === undefined) {\n return {\n disabled: true,\n }\n }\n const nextValue = func(value as [Date, Date])\n if (!validate(nextValue, min, max)) {\n return {\n disabled: true,\n }\n }\n return {\n onClick: () => setValue(nextValue),\n }\n }\n\n const invalid = props.invalid || !validate(value, min, max)\n\n const onClick = (() => {\n if (props.disabled || !['custom', undefined].includes(props.only)) {\n return undefined\n }\n\n const toOpen = props.only === 'custom' ? 'calendar' : 'menu'\n return () => setOpen((prev) => (prev === null ? toOpen : null))\n })()\n\n const input = <input {...inputProps} type='text' ref={ref} readOnly />\n\n return (\n <S.RelativeContainer\n ref={useOnClickOut(() => setOpen(null))}\n invalid={invalid}\n >\n {props.label ? (\n <S.LabelText required={props.required ? 1 : 0}>\n {props.label}\n {input}\n </S.LabelText>\n ) : (\n input\n )}\n\n <S.Container\n invalid={props.invalid ? 1 : 0}\n disabled={props.disabled ? 1 : 0}\n paddingless={props.paddingless ? 1 : 0}\n borderless={props.borderless ? 1 : 0}\n >\n {(() => {\n const label = (\n <S.LabelContainer onClick={onClick}>\n {value.some((v) => !isDateInstance(v))\n ? '--/--/-- (--:--) à --/--/-- (--:--)'\n : config.label(value as [Date, Date])}\n </S.LabelContainer>\n )\n\n if (intervalType === 'custom') return label\n\n const incrementProps = getArrowProps('increment')\n const decrementProps = getArrowProps('decrement')\n\n return (\n <React.Fragment>\n <S.Button\n type='button'\n {...decrementProps}\n disabled={props.disabled || decrementProps.disabled}\n >\n <Icon\n type='feather'\n icon='chevron_left'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n {label}\n\n <S.Button\n type='button'\n {...incrementProps}\n disabled={props.disabled || incrementProps.disabled}\n >\n <Icon\n type='feather'\n icon='chevron_right'\n color={props.invalid ? 'warningRed' : 'grey'}\n strokeWidth='3px'\n />\n </S.Button>\n\n <S.Button onClick={onClick}>\n <Icon\n type='feather'\n icon='calendar'\n color={props.invalid ? 'warningRed' : 'grey'}\n width='24px'\n />\n </S.Button>\n </React.Fragment>\n )\n })()}\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 <Calendar\n {...(props.calendar || {})}\n type='interval'\n absolute\n open={open === 'calendar'}\n initialValue={value}\n onSubmit={{\n onClick: ([start, end]) => {\n if (start === null || end === null) return\n setValue([start, end])\n setOpen(null)\n },\n }}\n min={props.min}\n max={props.max}\n references={{ bottom: '35px' }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nComponent.displayName = 'DatePicker'\n\nconst useDefaultDateIntervalState = (min?: Date, max?: Date) => {\n const middle = getMiddle(min, max)\n\n const start = new Date(middle)\n start.setHours(0, 0, 0, 0)\n const end = new Date(middle)\n end.setHours(23, 59, 59, 999)\n\n return [start.toISOString(), end.toISOString()] as [string, string]\n}\n\nconst DatePicker = Object.assign(Component, {\n useDefaultDateIntervalState,\n})\n\nexport default DatePicker\n","import styled from 'styled-components'\n\nimport { StyledInputProps } from './interfaces'\n\nexport const Input = styled.input<StyledInputProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkBlue\n }};\n\n line-height: 17px;\n\n ::placeholder {\n color: ${({ theme, invalid }) => {\n return invalid ? theme.colors.warningRed : theme.colors.darkGrey\n }};\n\n line-height: 17px;\n ${({ theme }) => theme.useTypography('p')};\n opacity: 1;\n }\n\n display: block;\n box-sizing: border-box;\n flex: 1;\n min-width: ${({ minWidth }) => minWidth || '20%'};\n\n padding: calc(${({ theme }) => theme.spacings.s1} / 2) 0;\n\n box-shadow: none;\n outline: none;\n border: 1px solid transparent;\n`\n","import React from 'react'\nimport { filterObject } from '../../../../../../functions/formatters'\nimport { getMask } from '../../../../functions'\nimport { InputProps, StyledInputProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Input = React.forwardRef(\n (props: InputProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const [value, setValue] = props.value\n\n const _onKeyDown = props.onKeyDown || (() => {})\n const onPressEnter = props.onPressEnter\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n _onKeyDown(e)\n if (e.key === 'Enter') {\n e.preventDefault()\n onPressEnter(e)\n }\n }\n\n const mask = getMask(props.mask)\n const _onChange = props.onChange || (() => {})\n const onChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.target.value = mask(e.target.value)\n _onChange(e)\n setValue(e.target.value)\n }\n\n const inputProps = filterObject<InputProps, StyledInputProps>(props, [\n 'value',\n 'onPressEnter',\n ])\n\n return (\n <S.Input\n ref={ref}\n {...inputProps}\n onChange={onChange}\n onKeyDown={onKeyDown}\n value={value}\n />\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport default Input\n","import styled, { css } from 'styled-components'\n\nimport { LabelProps } from './interfaces'\n\nexport const Label = styled.div<LabelProps>`\n display: inline-block;\n margin-bottom: ${({ theme }) => theme.spacings.s1};\n\n ${({ required }) => {\n if (!required) return\n\n return css`\n :after {\n content: ' *';\n }\n `\n }}\n`\n","import React from 'react'\n\nimport { LabelProps } from './interfaces'\nimport * as S from './styles'\n\nconst Label = (props: LabelProps) => {\n return props.children ? <S.Label {...props} /> : null\n}\n\nexport default Label\n","import styled from 'styled-components'\nimport { TagProps } from './interfaces'\n\nexport const Tag = styled.div<TagProps>`\n ${({ theme }) => theme.useTypography('p')}\n line-height: 17px;\n\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.darkBlue};\n padding: calc(${({ theme }) => theme.spacings.s1} / 2);\n\n border-style: solid;\n border-width: 1px;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacings.s1};\n\n > div:last-child {\n cursor: pointer;\n }\n`\n","import React from 'react'\nimport Icon from '../../../../../Icon'\n\nimport { TagProps } from './interfaces'\nimport * as S from './styles'\n\nconst Tag = (props: TagProps) => {\n return (\n <S.Tag {...props}>\n {props.children}\n <div onClick={props.onClose}>\n <Icon\n type='feather'\n icon='x'\n width='10px'\n color={props.invalid ? 'warningRed' : undefined}\n strokeWidth='3px'\n />\n </div>\n </S.Tag>\n )\n}\n\nexport default Tag\n","import styled, { css } from 'styled-components'\nimport { LabelProps, TagContainerProps } from './interfaces'\n\nexport const Label = styled.label<LabelProps>`\n ${({ theme }) => theme.useTypography('p')};\n\n color: ${({ theme }) => {\n return theme.colors.greyishBlue\n }};\n\n width: ${({ width }) => width || '100%'};\n box-sizing: border-box;\n position: relative;\n display: block;\n\n ${({ disabled }) => {\n if (!disabled) return\n\n return css`\n opacity: 0.5;\n `\n }}\n`\n\nexport const TagContainer = styled.div<TagContainerProps>`\n border-width: 1px;\n border-style: solid;\n border-color: ${({ theme, invalid }) =>\n theme.colors[invalid ? 'warningRed' : 'lightGrey']};\n border-radius: 4px;\n display: flex;\n flex-wrap: wrap;\n gap: calc(${({ theme }) => theme.spacings.s1} / 2);\n padding: ${({ theme }) => theme.spacings.s1};\n`\n","import React, { useState } from 'react'\nimport { strCmp } from '../../../../functions/validators'\nimport { Input, Label, Tag } from './components'\nimport { TagsProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst Tags = React.forwardRef(\n (props: TagsProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { value, setValue } = props\n\n const [inputValue, setInputValue] =\n props.input && props.input.value\n ? props.input.value\n : useState<string>('')\n\n const validate = props.validate || (() => true)\n const onBeforeAdd = props.onBeforeAdd || ((v: string) => v)\n const validateUnique = props.unique\n ? (v: string) => (value.some((e) => strCmp(e, v)) ? '' : v)\n : (v: string) => v\n\n const add = (v: string) => {\n if (v === '') return\n\n v = validateUnique(v)\n if (v === '') return\n\n v = onBeforeAdd(v)\n if (v === '') return\n\n setValue([...value, v])\n setInputValue('')\n }\n\n const remove = (index: number) => {\n const prev = [...value]\n prev.splice(index, 1)\n setValue([...prev])\n }\n\n return (\n <S.Label disabled={props.disabled} width={props.width}>\n <Label required={props.required}>{props.label}</Label>\n\n <S.TagContainer invalid={props.invalid}>\n {value.map((v, index) => (\n <Tag\n key={index}\n onClose={() => remove(index)}\n invalid={!validate(v)}\n >\n {v}\n </Tag>\n ))}\n\n <Input\n ref={ref}\n disabled={props.disabled || props.loading}\n invalid={props.invalid}\n {...props.input}\n value={[inputValue, setInputValue]}\n onPressEnter={(e) => add((e.target as HTMLInputElement).value)}\n />\n </S.TagContainer>\n </S.Label>\n )\n },\n)\n\nTags.displayName = 'Tags'\n\nexport default Tags\n","import styled from 'styled-components'\n\nexport const RelativeContainer = styled.div`\n position: relative;\n`\n","import React, { useState } from 'react'\n\nimport {\n dateToIsoString,\n filterObject,\n isoStringToDate,\n keys,\n} from '../../../../functions/formatters'\nimport useOnClickOut from '../../../../hooks/onClickOut'\n\nimport Calendar from '../../../Calendar'\nimport { IconProps } from '../../../Icon/interfaces'\n\nimport Input from '../Input'\nimport { InputProps } from '../Input/interfaces'\n\nimport { DateTimeProps } from './interfaces'\nimport * as S from './styles'\n\nconst isLeapYear = (year: number): boolean => {\n if (year % 4 !== 0) return false\n else if (year % 100 !== 0) return true\n else if (year % 400 !== 0) return false\n else return true\n}\n\nconst mask = (v: string, seconds?: boolean) => {\n v = v.replace(/\\D+/g, '')\n\n // remove o primeiro digito enquanto ele for maior que 3, (nao existe dia maior que 31)\n while (v.length > 0 && parseInt(v[0]) > 3) {\n v = v.substring(1)\n }\n\n // se o primeiro digito for 3, remove o segundo digito enquanto ele for maior que 1, (nao existe dia maior que 31)\n if (v.length > 1) {\n if (v[0] === '3') {\n while (v.length > 1 && parseInt(v[1]) > 1) {\n v = v[0] + v.substring(2)\n }\n }\n }\n\n // remove o terceiro digito enquanto ele for maior que 1, (nao existe mes maior que 12)\n if (v.length > 2) {\n while (v.length > 2 && parseInt(v[2]) > 1) {\n v = v.substring(0, 2) + v.substring(3)\n }\n }\n\n // se o terceiro digito for 1, remove o quarto digito enquanto ele for maior que 2, (nao existe mes maior que 12)\n if (v.length > 3) {\n if (v[2] === '1') {\n while (v.length > 3 && parseInt(v[3]) > 2) {\n v = v.substring(0, 3) + v.substring(4)\n }\n }\n }\n\n // remove o nono digito enquanto ele for maior que 2, (nao existe hora maior que 23)\n if (v.length > 8) {\n while (v.length > 8 && parseInt(v[8]) > 2) {\n v = v.substring(0, 8) + v.substring(9)\n }\n }\n\n // se o nono digito for 2, remove o decimo digito enquanto ele for maior que 3, (nao existe hora maior que 23)\n if (v.length > 9) {\n if (v[8] === '2') {\n while (v.length > 9 && parseInt(v[9]) > 3) {\n v = v.substring(0, 9) + v.substring(10)\n }\n }\n }\n\n // remove o decimo primeiro digito enquanto ele for maior que 5, (nao existe minuto maior que 59)\n if (v.length > 10) {\n while (v.length > 10 && parseInt(v[10]) > 5) {\n v = v.substring(0, 10) + v.substring(11)\n }\n }\n\n // remove o decimo terceiro digito enquanto ele for maior que 5, (nao existe segundo maior que 59)\n if (v.length > 12) {\n while (v.length > 12 && parseInt(v[12]) > 5) {\n v = v.substring(0, 12) + v.substring(13)\n }\n }\n\n const date = [\n v.substring(0, 2),\n v.substring(2, 4),\n v.substring(4, 8),\n v.substring(8, 10),\n v.substring(10, 12),\n v.substring(12, 14),\n ]\n\n if (date[1] === '02') {\n const d = parseInt(date[0])\n\n if (date[2].length < 4 || isLeapYear(parseInt(date[2]))) {\n // se for ano nao estiver setado, ou se for bissexto, o dia maximo de fevereiro deve ser 29\n if (d > 29) {\n date[0] = '29'\n }\n } else if (d > 28) {\n // se for ano estiver setado e nao for bissexto, o dia maximo de fevereiro deve ser 28\n date[0] = '28'\n }\n } else if (['04', '06', '09', '11'].includes(date[1]) && date[0] === '31') {\n // meses com 30 dias\n date[0] = '30'\n }\n\n v = date.join('')\n\n v = v.replace(\n /^((\\d{0,2}))((\\d{0,2}))((\\d{0,4}))((\\d{0,2}))((\\d{0,2}))((\\d{0,2}))$/g,\n '$1/$3/$5 $7:$9:$11',\n )\n\n while (v.length > 0 && !v[v.length - 1].match(/^\\d$/g)) {\n v = v.substring(0, v.length - 1)\n }\n\n if (!seconds) {\n v = v.substring(0, 16)\n }\n\n return v\n}\n\nconst getValueThroughDate = (date: Date, seconds?: boolean) => {\n const newValue = dateToIsoString(date, true)\n return !seconds ? newValue.substring(0, newValue.length - 3) : newValue\n}\n\nconst steps = {\n year: {\n increment: (value: Date) => {\n value.setFullYear(value.getFullYear() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setFullYear(value.getFullYear() - 1)\n return value\n },\n },\n month: {\n increment: (value: Date) => {\n value.setMonth(value.getMonth() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMonth(value.getMonth() - 1)\n return value\n },\n },\n day: {\n increment: (value: Date) => {\n value.setDate(value.getDate() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setDate(value.getDate() - 1)\n return value\n },\n },\n hour: {\n increment: (value: Date) => {\n value.setHours(value.getHours() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setHours(value.getHours() - 1)\n return value\n },\n },\n minute: {\n increment: (value: Date) => {\n value.setMinutes(value.getMinutes() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setMinutes(value.getMinutes() - 1)\n return value\n },\n },\n second: {\n increment: (value: Date) => {\n value.setSeconds(value.getSeconds() + 1)\n return value\n },\n decrement: (value: Date) => {\n value.setSeconds(value.getSeconds() - 1)\n return value\n },\n },\n}\n\nconst DateTime = React.forwardRef(\n (props: DateTimeProps, ref?: React.ForwardedRef<HTMLInputElement>) => {\n const { picker, value, min, max } = props\n\n const step = steps[props.step || 'day']\n\n const setValue = props.setValue || (() => {})\n\n const [open, setOpen] = useState<boolean>(false)\n\n const _onKeyDown = props.onKeyDown || (() => {})\n\n const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const target = event.target as HTMLInputElement\n\n const todayDate = new Date()\n\n const cur = {\n day: {\n start: 0,\n end: 2,\n value: todayDate.getDate(),\n },\n month: {\n start: 2,\n end: 4,\n value: todayDate.getMonth() + 1,\n },\n year: {\n start: 4,\n end: 8,\n value: todayDate.getFullYear(),\n },\n hours: {\n start: 8,\n end: 10,\n value: todayDate.getHours(),\n },\n minutes: {\n start: 10,\n end: 12,\n value: todayDate.getMinutes(),\n },\n seconds: {\n start: 12,\n end: 14,\n value: todayDate.getSeconds(),\n },\n }\n\n const value = target.value.replace(/\\D+/g, '')\n\n const v = keys(cur).reduce((prev, k) => {\n const { start, end, value: current } = cur[k]\n const len = end - start\n\n const tmp = value.substring(start, end)\n\n return {\n ...prev,\n [k]: tmp.length === 0 ? current : parseInt(tmp.padEnd(len, '0')),\n }\n }, {} as { [key in keyof typeof cur]: number })\n\n let date = new Date(\n `${v.year}-${v.month}-${v.day} ${v.hours}:${v.minutes}:${v.seconds}`,\n )\n\n if (event.key === 'ArrowUp') {\n date = step.increment(date)\n if (!max || date <= max) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n } else if (event.key === 'ArrowDown') {\n date = step.decrement(date)\n if (!min || date >= min) {\n setValue(getValueThroughDate(date, props.seconds))\n }\n }\n\n _onKeyDown(event)\n }\n\n const placeholder =\n props.placeholder === undefined\n ? 'dd/mm/aaaa hh:mm:ss'\n : props.placeholder\n\n const icon = 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<DateTimeProps, InputProps>(props, [\n 'picker',\n 'min',\n 'max',\n ])\n\n return (\n <S.RelativeContainer ref={useOnClickOut(() => setOpen(false))}>\n <Input\n {...inputProps}\n type='text'\n placeholder={placeholder}\n mask={(v) => mask(v, props.seconds)}\n onKeyDown={onKeyDown}\n icon={icon}\n ref={ref}\n />\n\n <Calendar\n {...(typeof picker === 'object' ? picker : {})}\n type='single'\n absolute\n open={open}\n initialValue={value ? isoStringToDate(value) : undefined}\n onSubmit={{\n onClick: (date) => {\n if (!date) return\n setValue(getValueThroughDate(date, props.seconds))\n setOpen(false)\n },\n }}\n min={min}\n max={max}\n references={{ bottom: '35px' }}\n time={{\n seconds: props.seconds,\n }}\n />\n </S.RelativeContainer>\n )\n },\n)\n\nDateTime.displayName = 'DateTime'\n\nexport default DateTime\n","import React from 'react'\n\nimport DefaultInput from './components/Input'\nimport { InputProps as DefaultInputProps } from './components/Input/interfaces'\n\nimport Checkbox from './components/Checkbox'\nimport { CheckboxProps } from './components/Checkbox/interfaces'\n\nimport Date from './components/Date'\nimport { DateProps } from './components/Date/interfaces'\n\nimport Time from './components/Time'\nimport { TimeProps } from './components/Time/interfaces'\n\nimport Select, { SelectProps } from './components/Select'\n\nimport Password from './components/Password'\nimport { PasswordProps } from './components/Password/interfaces'\n\nimport Phone from './components/Phone'\nimport { PhoneProps } from './components/Phone/interfaces'\n\nimport DatePicker from './components/DatePicker'\nimport { DatePickerProps } from './components/DatePicker/interfaces'\n\nimport { SwitchProps } from './components/Switch/interfaces'\nimport Switch from './components/Switch'\n\nimport Range from './components/Range'\nimport { RangeProps } from './components/Range/interfaces'\n\nimport { RadioButtonProps } from './components/RadioButton/interfaces'\nimport RadioButton from './components/RadioButton'\n\nimport { DateIntervalPickerProps } from './components/DateIntervalPicker/interfaces'\nimport DateIntervalPicker from './components/DateIntervalPicker'\n\nimport Tags from './components/Tags'\nimport { TagsProps } from './components/Tags/interfaces'\n\nimport DateTime from './components/DateTime'\nimport { DateTimeProps } from './components/DateTime/interfaces'\n\nexport type Props =\n | DateProps\n | TimeProps\n | CheckboxProps\n | SelectProps\n | PasswordProps\n | PhoneProps\n | DatePickerProps\n | RangeProps\n | DefaultInputProps\n | SwitchProps\n | RadioButtonProps\n | DateIntervalPickerProps\n | TagsProps\n | DateTimeProps\n\nconst Component = React.forwardRef(\n (props: Props, ref?: React.ForwardedRef<HTMLInputElement>) => {\n switch (props.type) {\n case 'date': {\n return <Date {...props} ref={ref} />\n }\n case 'time': {\n return <Time {...props} ref={ref} />\n }\n case 'checkbox': {\n return <Checkbox {...props} ref={ref} />\n }\n case 'select': {\n return <Select {...props} ref={ref} />\n }\n case 'select-multiple': {\n return <Select {...props} ref={ref} />\n }\n case 'password': {\n return <Password {...props} ref={ref} />\n }\n case 'phone': {\n return <Phone {...props} ref={ref} />\n }\n case 'datepicker': {\n return <DatePicker {...props} ref={ref} />\n }\n case 'range': {\n return <Range {...props} ref={ref} />\n }\n case 'switch': {\n return <Switch {...props} />\n }\n case 'radio': {\n return <RadioButton {...props} />\n }\n case 'date-interval-picker': {\n return <DateIntervalPicker {...props} ref={ref} />\n }\n case 'tags': {\n return <Tags {...props} ref={ref} />\n }\n case 'datetime': {\n return <DateTime {...props} ref={ref} />\n }\n default: {\n return <DefaultInput {...props} ref={ref} />\n }\n }\n },\n)\n\nComponent.displayName = 'Input'\n\nconst Input = Object.assign(Component, {\n useDefaultDateIntervalState: DateIntervalPicker.useDefaultDateIntervalState,\n getPhoneDetails: Phone.getPhoneDetails,\n})\n\nexport default Input\n","import { 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, { css } from 'styled-components'\n\nexport const Container = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.spacings.s4};\n align-items: center;\n color: ${({ theme }) => theme.colors.darkestGrey};\n\n ${({ onClick }) => {\n if (!onClick) {\n return css`\n opacity: 0.3;\n pointer-events: none;\n `\n }\n\n return css`\n cursor: pointer;\n `\n }}\n`\n","import React, { useState } from 'react'\n\nimport useOnClickOut from '../../../hooks/onClickOut'\nimport Icon from '../../Icon'\n\nimport { ButtonProps } from './interfaces'\nimport * as S from './styles'\n\nconst Button = (props: ButtonProps) => {\n const { getContent } = props\n\n const [open, setOpen] = useState<boolean>(false)\n\n const close = () => setOpen(false)\n\n const onClick = props.disabled ? undefined : () => setOpen((prev) => !prev)\n\n return (\n <div ref={useOnClickOut(close)}>\n <S.Container {...props} {...{ onClick }}>\n {props.children}\n <Icon\n type='semantic'\n icon={open ? 'caret up' : 'caret down'}\n width='12px'\n />\n </S.Container>\n\n {getContent(open, close)}\n </div>\n )\n}\n\nexport default Button\n","import 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 '../Submenu'\n\nimport { FiltersMenuProps } from './interfaces'\n\nconst FiltersMenu = (props: FiltersMenuProps) => {\n const { open, close } = props\n\n const [active, setActive] = useState<number>(-1)\n\n const items: Option[] = props.items.map((item): Option => {\n return {\n label: 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 FiltersMenu\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nimport FiltersMenu from './components/Menu'\nimport { FiltersProps } from './interfaces'\n\nconst Filters = Object.assign(\n (props: FiltersProps) => {\n const { items, setAppliedFilters } = props\n\n const buttonProps = filterObject<\n FiltersProps,\n Omit<ButtonProps, 'getContent'>\n >(props, ['items', 'setAppliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n getContent={(open, close) => (\n <FiltersMenu {...{ open, close, setAppliedFilters, items }} />\n )}\n >\n Filtros\n </Button>\n )\n },\n { Menu: FiltersMenu },\n)\n\nexport default Filters\n","import styled from 'styled-components'\n\nimport AbsoluteContainer from '../../../../AbsoluteContainer'\n\nexport const Container = styled(AbsoluteContainer)`\n background-color: ${({ theme }) => theme.colors.white};\n\n > div {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n > div {\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `${s3} 0 ${s3} ${s3}`};\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n }\n`\n\nexport const Header = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({\n theme: {\n spacings: { s3 },\n },\n }) => s3};\n padding: ${({\n theme: {\n spacings: { s3 },\n },\n }) => `0 ${s3} ${s3} 0`};\n > div {\n display: flex;\n justify-content: space-between;\n }\n`\n\nexport const Title = styled.div`\n ${({ theme: { useTypography } }) =>\n useTypography('p', { fontWeight: 'bold' })}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n`\n\nexport const Item = styled.div`\n padding: ${({\n theme: {\n spacings: { s1 },\n },\n }) => `${s1} ${s1} ${s1} 0`};\n display: flex;\n align-items: center;\n\n :not(:last-child) {\n border-bottom: 1px solid\n ${({ theme: { getColor } }) => getColor('greyishBlue', 25)};\n }\n\n > div:nth-child(1) {\n flex: 1;\n\n > div:nth-child(1) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n color: ${({ theme: { getColor } }) => getColor('greyishBlue', 50)};\n }\n > div:nth-child(2) {\n ${({ theme: { useTypography } }) => useTypography('p')}\n }\n }\n > div:nth-child(2) {\n display: flex;\n align-items: center;\n cursor: pointer;\n }\n`\n","import React, { useEffect, useState } from 'react'\nimport { strCmp } from '../../../../../functions/validators'\nimport Button from '../../../../Button'\nimport Icon from '../../../../Icon'\nimport Input from '../../../../Input'\nimport ScrollContainer from '../../../../ScrollContainer'\n\nimport { AppliedFiltersMenuProps } from './interfaces'\n\nimport * as S from './styles'\n\nconst AppliedFiltersMenu = (props: AppliedFiltersMenuProps) => {\n const {\n open,\n close,\n appliedFilters: [appliedFilters, setAppliedFilters],\n } = props\n\n const [search, setSearch] = useState<string>('')\n const [searched, setSearched] = useState<string>('')\n\n useEffect(() => {\n setSearch('')\n setSearched('')\n }, [open])\n\n const onClear = () => {\n setAppliedFilters([])\n close()\n }\n\n const onSubmitSearch = () => {\n setSearched(search)\n }\n\n const onClearSearch = () => {\n setSearch('')\n setSearched('')\n }\n\n const onRemove = (name: string) => {\n setAppliedFilters((prev) => prev.filter((e) => e.name !== name))\n }\n\n return (\n <S.Container\n open={open}\n width='275px'\n height='261px'\n transition={{ properties: { height: {} } }}\n >\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 AppliedFiltersMenu\n","import React from 'react'\nimport { filterObject } from '../../../functions/formatters'\n\nimport AppliedFiltersMenu from './components/Menu'\nimport { AppliedFiltersProps } from './interfaces'\nimport Button from '../Button'\nimport { ButtonProps } from '../Button/interfaces'\n\nconst AppliedFilters = Object.assign(\n (props: AppliedFiltersProps) => {\n const { appliedFilters } = props\n\n const buttonProps = filterObject<\n AppliedFiltersProps,\n Omit<ButtonProps, 'getContent'>\n >(props, ['appliedFilters'])\n\n return (\n <Button\n {...buttonProps}\n getContent={(open, close) => (\n <AppliedFiltersMenu {...{ open, close, appliedFilters }} />\n )}\n >\n Filtros Aplicados ({appliedFilters[0].length})\n </Button>\n )\n },\n { Menu: AppliedFiltersMenu },\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"],"names":["colors","black","blue","bronze","brown","darkBlue","darkestBlue","darkestGreen","darkestGrey","darkGreen","darkGrey","darkSilver","floralWhite","green","grey","greyishBlue","iceWhite","lightBlue","lightestGrey","lightGreen","lightGrey","milkWhite","orange","pink","purple","red","silver","snowWhite","vanilla","warningGray","warningRed","warningYellow","white","yellow","opacities","spacings","s1","s2","s3","s4","s5","s6","fonts","lato","typographies","h1","fontFamily","fontWeight","fontSize","h2","h3","h4","h5","h6","p","stripAccents","value","normalize","replace","isKeyOf","object","key","Object","prototype","hasOwnProperty","call","isObject","toString","dateToIsoString","date","time","fullYear","pattern","dateData","getDate","padStart","getMonth","getFullYear","substring","dateStr","join","tmp","timeStr","getHours","getMinutes","getSeconds","keys","notEmptyString","trim","isBoolean","isString","isDateInstance","Date","isNaN","valueOf","dateCompare","a","b","operation","h","m","s","operations","eq","getTime","gt","gte","lt","lte","setHours","methods","ms","forEach","k","method","isValidTime","format","c","sep","conditions","map","f","content","re","RegExp","match","strCmp","x","y","options","ignoreAccents","ignoreCase","contain","toUpperCase","includes","filterObject","remove","inital","r","filter","reduce","prev","isoStringToDate","split","d","t","reverse","slice","padEnd","getWeekNumber","weekSunday","setDate","getUTCDay","yearStart","UTC","getUTCFullYear","weekNumber","Math","ceil","getMonthName","months","monthName","getFirstWeek","year","today","undefined","setFullYear","week","weekYear","getLastWeek","getSpacings","defaults","top","left","bottom","right","spacing","values","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","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_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","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","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","e","Menu","medium","types","danger","success","warning","labelColor","Indicator","Progress","ProgressBar","internal","Tabs","ul","Tab","li","activeState","tabs","setTabs","setActive","updateActiveTab","tagName","removeTab","prevState","aux","splice","tab","CloseIcon","isMaskFunction","isMaskReplace","Array","isArray","isMaskReplaceArray","getMask","mask","newValue","IconContainer","Input","input","invalid","placeholder","paddingless","borderless","arrows","readOnly","Label","padding","LabelText","required","clearable","onPressEnter","htmlDisabled","masked","setValue","intInvalid","intRequired","intDisabled","intArrows","intBorderless","intPaddingless","iconWidth","iconSubmit","iconOnClick","submit","inputProps","inputWidth","onChange","onKeyDown","_onPressEnter","preventDefault","onKeyUp","v","onKeyDownCapture","onKeyUpCapture","iconProps","MwIcon","Checkmark","span","_padding","Checkbox","useOnClickOut","callback","listener","contains","document","addEventListener","removeEventListener","inputTimeWidth","withSeconds","withoutSeconds","LabelContainer","CalendarContainer","MwAbsoluteContainer","MonthContainer","MonthBtn","NavBtn","MonthPicker","min","max","setYear","Footer","WeekContainer","Header","DayContainer","hover","DayIndicator","attrs","getCalendar","month","days","getDay","unshift","weeks","i","getMiddle","result","getFullDate","end","hours","parsed","parseInt","isDateBetween","getTimeFromDate","isInvalid","timeOptions","seconds","getInitialCalendar","FontStyles","createGlobalStyle","Globals","opacity","typography","isDarkColor","ifDark","ifLight","hex","luminosity","ThemeProvider","Provider","Main","initialMonth","selectOpen","setSelectOpen","setLoading","onChangeMonth","_setCalendar","setCalendar","newv","first","last","firstDay","lastDay","changeMonth","add","setMonth","getPrev","getNext","details","day","onMouseOut","indicator","BasicCalendar","containerProps","Time","_onKeyDown","todayDate","curH","curM","curS","setMinutes","setSeconds","getValue","dates","n","sort","getCalendar2","calendar1","SubmitButton","CalendarsContainer","initialValue","setInvalid","setTime","_setCalendar1","setCalendar1","calendar2","_setCalendar2","setCalendar2","hoverDay","setHoverDay","timeProps","c1","c2","_getDay","dayProps","some","_onMouseOut","calendarProps","timeInvalid","onSubmit","middle","inputs","CalendarInterval","mainProps","absolute","SingleCalendar","CalendarSingle","Calendar","IntervalCalendar","JSDate","isLeapYear","picker","setOpen","curD","curY","createContext","useContext","HeaderContainer","context","searchInput","setSearchInput","onClearSearch","onSearch","getOptions","data","_option","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","init","setInitial","getOption","def","o","mapper","returnData","Select","menuProps","_loading","_setSearch","page","setPage","lastPage","setLastPage","setSearch","_onScrollEnd","useCallback","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","splitted","shift","country","valid","test","withDDI","setInputValue","setCountry","Phone","assign","DatePicker","onAdd","onSub","Switch","bullet","InputContainer","SelectedArea","MinMaxLabelContainer","LabelsContainer","Marker","MarkersContainer","getMarkers","markers","strict","step","parseFloat","Range","minLabel","maxLabel","range","spans","_onChange","marker","z","_value","RadioButton","validate","start","intervalTypes","initial","increment","decrement","getMinMax","firstWeek","lastWeek","custom","pop","identify","expectedStart","expectedEnd","parse","only","intervalType","setIntervalType","newIntervalType","getArrowProps","func","nextValue","toOpen","incrementProps","decrementProps","useDefaultDateIntervalState","toISOString","minWidth","Tag","onClose","TagContainer","Tags","onBeforeAdd","validateUnique","unique","getValueThroughDate","steps","hour","minute","second","DateTime","cur","minutes","current","len","DateIntervalPicker","DefaultInput","Portal","id","opened","portalRoot","createElement","body","appendChild","removeChild","createPortal","heights","widths","Background","Content","FooterMessage","FooterButtons","customSize","Modal","openState","footer","footerMessage","closeOnEsc","closeOnClickOutside","onClickOutside","onEscDown","buttonProps","ConfirmDelete","cancelAction","confirmAction","ConfirmSuccess","homeAction","Audit","ConfirmEdit","borderType","Card","rest","IconContent","Toast","handlClose","description","HeaderImage","HeaderContent","MainContent","HeaderLine","MainLine","Template1","Template2Container","HeaderLineStyle","Template2","Template3Container","Template3Line","Template3","Template4Container","CustomLine","Template4","Circle","Template5","Template6","Template7","Template8","GraphLine","Template10","Placeholder","Template9","Image","img","Dimmer","MwButton","ModalContent","Zoom","src","defaultClickOptions","imgProps","modalOpened","setModalOpened","alt","getContent","searched","_setSearched","allowEmptySearch","withSearch","setSearched","onClear","EmptyMessage","getInstance","item","isDynamic","intialOptions","optionSpacing","Submenu","setAppliedFilters","setFirstRender","newOptions","force","changed","firstRender","onClickOption","labels","optionsParser","FiltersMenu","items","Filters","Title","Item","AppliedFiltersMenu","appliedFilters","onSubmitSearch","onRemove","AppliedFilters","cols","aligns","self","horizontal","vertical","around","between","Col","w","spacingAround","align","styles","fontColor","backgroundColor","pointer","_props","colProps","ellipsis","rows","Grid","gridProps","horizontalAligns","verticalAligns","Row","horizontalAlign","verticalAlign","striped","even","odd","rowProps","GridComponent"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|