enwawa-ui 2.7.2 → 2.7.3

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.
@@ -1 +1 @@
1
- {"mappings":"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","sources":["stories/atoms/AtAvatar/index.tsx","stories/atoms/AtBadgeCard/index.tsx","stories/atoms/AtButton/styles.ts","stories/atoms/AtButton/index.tsx","stories/atoms/AtCheckBox/index.tsx","constants.ts","theme.tsx","stories/atoms/AtCountdown/styles.tsx","stories/atoms/AtCountdown/index.tsx","stories/atoms/AtDateMultiplePicker/index.tsx","stories/atoms/AtDatePicker/styles.tsx","stories/atoms/AtDatePicker/index.tsx","stories/atoms/AtDateRangePicker/styles.tsx","stories/atoms/AtDateRangePicker/index.tsx","stories/atoms/AtDivider/styles.tsx","stories/atoms/AtDivider/index.tsx","stories/atoms/AtIcon/index.tsx","utils/colorMap.ts","stories/atoms/AtText/styles.tsx","stories/atoms/AtText/index.tsx","stories/atoms/AtImage/index.tsx","stories/molecules/MlPlanCard/styles.tsx","stories/molecules/MlPlanCard/index.tsx","stories/organisms/OrActiveCards/styles.ts","stories/organisms/OrActiveCards/index.tsx","stories/organisms/OrAlert/index.tsx","stories/organisms/OrTab/styles.ts","stories/organisms/OrTab/index.tsx","stories/organisms/OrTicketCard/styles.tsx","stories/organisms/OrCard/styles.tsx","stories/organisms/OrCard/index.tsx","stories/organisms/OrTicketCard/index.tsx","stories/molecules/MlSubscriptionCard/styles.ts","stories/molecules/MlSubscriptionCard/index.tsx","stories/molecules/MlFormItem/styles.tsx","stories/molecules/MlFormItem/index.tsx","stories/molecules/MlAutocompleteSearch/index.tsx","stories/molecules/MlAutocompleteSearchText/index.tsx","stories/molecules/MlBreadCrumb/index.tsx","stories/molecules/MlCardIcon/styles.ts","stories/molecules/MlCardIcon/index.tsx","stories/molecules/MlCarousel/index.tsx","stories/molecules/MlCheckboxGroup/styles.tsx","stories/molecules/MlCheckboxGroup/index.tsx","stories/atoms/AtNumberInput/styles.tsx","stories/atoms/AtNumberInput/index.tsx","stories/molecules/MlCodeInput/styles.tsx","hooks/useCodeInput.ts","stories/molecules/MlCodeInput/index.tsx","stories/molecules/MlDropdown/index.tsx","stories/molecules/MlIconText/styles.tsx","stories/molecules/MlIconText/index.tsx","stories/molecules/MlInfoList/styles.tsx","stories/molecules/MlInfoList/index.tsx","stories/molecules/MlInputList/styles.tsx","stories/molecules/MlInputList/index.tsx","stories/molecules/MlLoading/styles.ts","stories/molecules/MlLoading/index.tsx","stories/molecules/MlPagination/index.tsx","stories/molecules/MlRadioGroup/styles.tsx","stories/molecules/MlRadioGroup/index.tsx","stories/atoms/AtTextInput/index.tsx","stories/molecules/MlSearchBox/index.tsx","stories/molecules/MlServicesCard/styles.ts","stories/molecules/MlServicesCard/index.tsx","stories/molecules/MlTooltip/index.tsx","stories/molecules/MlUpload/styles.ts","stories/molecules/MlUpload/index.tsx","stories/molecules/index.ts","stories/organisms/OrPlanCards/index.tsx","stories/organisms/OrCoinTable/styles.ts","stories/organisms/OrCoinTable/index.tsx","stories/organisms/OrTickets/index.tsx","stories/organisms/OrRow/styles.ts","stories/organisms/OrRow/index.tsx","stories/organisms/OrTwoButtons/index.tsx","stories/organisms/OrAssignBalance/index.tsx","stories/organisms/OrCol/styles.ts","stories/organisms/OrCol/index.tsx","stories/organisms/OrBasicUserInfoCard/index.tsx","stories/organisms/OrCardDetails/index.tsx","stories/organisms/OrCardIconsGroup/index.tsx","stories/organisms/OrCardRequestSummary/index.tsx","stories/organisms/OrCollapse/index.tsx","stories/organisms/OrContent/styles.ts","stories/organisms/OrContent/index.tsx","stories/organisms/OrCopyInfo/index.tsx","stories/organisms/OrCountryCard/index.tsx","stories/organisms/OrLayout/styles.tsx","stories/organisms/OrLayout/index.tsx","stories/organisms/OrSider/styles.tsx","stories/organisms/OrSider/index.tsx","stories/organisms/OrSiderMenu/styles.ts","stories/organisms/OrMenu/styles.tsx","stories/organisms/OrMenu/index.tsx","stories/organisms/OrSiderMenu/index.tsx","stories/organisms/OrHeader/styles.ts","stories/organisms/OrSpace/index.tsx","stories/organisms/OrHeader/index.tsx","stories/organisms/OrDashboardLayout/index.tsx","stories/organisms/OrDescriptions/styles.tsx","stories/organisms/OrDescriptions/index.tsx","stories/templates/TmCrudPage/styles.ts","stories/organisms/OrStep/styles.ts","stories/organisms/OrStep/index.tsx","stories/templates/TmCrudPage/index.tsx","stories/organisms/OrDetailsPage/index.tsx","stories/organisms/OrDownloadUpload/index.tsx","stories/organisms/OrDrawer/index.tsx","stories/organisms/OrEmpty/index.tsx","stories/organisms/OrFlagGrid/index.tsx","stories/organisms/OrForm/index.tsx","stories/organisms/OrSpaceCompact/index.tsx","stories/organisms/OrPhoneInput/index.tsx","stories/organisms/OrSelectInput/index.tsx","stories/organisms/OrMark/index.tsx","stories/organisms/OrGoogleMaps/index.tsx","hooks/useMessage.ts","hooks/useModal.ts","hooks/useForm.ts","hooks/useFormWatch.ts","hooks/index.ts","stories/organisms/OrTable/index.tsx","stories/organisms/OrSelectTable/index.tsx","stories/organisms/OrFormItemsInline/index.tsx","stories/organisms/OrLabelTextBox/index.tsx","stories/organisms/OrInfoCard/index.tsx","stories/organisms/OrInfoHeaderCard/index.tsx","stories/organisms/OrModuleTableHeader/styles.ts","stories/organisms/OrModuleTableHeader/index.tsx","stories/organisms/OrListSelection/index.tsx","stories/organisms/OrLoginLayout/styles.tsx","stories/organisms/OrLoginLayout/index.tsx","stories/organisms/OrModal/index.tsx","stories/templates/TmCustomTabsPage/index.tsx","stories/templates/TmDescriptionsPage/index.tsx","stories/templates/TmFormListPage/index.tsx","stories/templates/TmLoginCountry/styles.tsx","stories/organisms/OrSimpleBanner/styles.ts","stories/organisms/OrSimpleBanner/index.tsx","stories/templates/TmLoginCountry/index.tsx","stories/templates/TmLoginPhone/styles.tsx","stories/templates/TmLoginPhone/index.tsx","stories/templates/TmLoginPhoneCode/styles.tsx","stories/templates/TmLoginPhoneCode/index.tsx","stories/templates/TmMapPage/index.tsx","stories/organisms/OrRentalLayout/index.tsx","stories/templates/TmQuoteResultPage/index.tsx","utils/numberProcessing.ts","stories/templates/TmRechargePage/index.tsx","stories/templates/TmRentalsPage/styles.tsx","stories/templates/TmRentalsPage/index.tsx","stories/templates/TmRequestsPage/index.tsx","stories/templates/TmRequestsForm/index.tsx","stories/templates/index.ts","stories/organisms/OrPaymentMethods/styles.tsx","stories/organisms/OrPaymentMethods/index.tsx","stories/organisms/OrTableModuleLayout/styles.ts","stories/organisms/OrTableModuleLayout/index.tsx","stories/organisms/OrRecharge/index.tsx","stories/organisms/OrRentalResult/styles.ts","stories/organisms/OrRentalResult/index.tsx","stories/organisms/OrRentalVehicleItem/styles.ts","stories/organisms/OrRentalVehicleItem/index.tsx","stories/organisms/OrServiceCards/index.tsx","stories/organisms/OrTabsModuleLayout/styles.ts","stories/organisms/OrTabsModuleLayout/index.tsx","stories/organisms/index.ts","stories/atoms/AtInputStatus/index.tsx","stories/atoms/AtLink/index.tsx","stories/atoms/AtLogo/styles.ts","stories/atoms/AtLogo/index.tsx","stories/atoms/AtPasswordInput/index.tsx","stories/atoms/AtQrCode/index.tsx","stories/atoms/AtRadio/index.tsx","stories/atoms/AtRadioButton/index.tsx","stories/atoms/AtResult/index.tsx","stories/atoms/AtSegmented/index.tsx","stories/atoms/AtSelect/styles.tsx","stories/atoms/AtSelect/index.tsx","stories/atoms/AtSpin/index.tsx","stories/atoms/AtSwitch/index.tsx","stories/atoms/AtTag/index.tsx","stories/atoms/AtTimeRangePicker/index.tsx","stories/atoms/AtTitle/styles.ts","stories/atoms/AtTitle/index.tsx","stories/atoms/index.ts","stories/index.ts","index.ts"],"sourcesContent":["import React from 'react';\r\nimport { Avatar as AntAvatar } from 'antd';\r\n\r\nexport interface AtAvatarProps {\r\n /**\r\n * This attribute defines the alternative text describing the image\r\n */\r\n alt?: string;\r\n /**\r\n * Letter type unit distance between left and right sides\r\n */\r\n gap?: number;\r\n /**\r\n * Custom icon type for an icon avatar\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * The shape of avatar\r\n */\r\n shape?: 'circle' | 'square';\r\n /**\r\n * The size of the avatar\r\n */\r\n size?: 'large' | 'small' | 'default' | number;\r\n /**\r\n * The address of the image for an image avatar or image element\r\n */\r\n src?: string;\r\n /**\r\n * Whether the picture is allowed to be dragged\r\n */\r\n draggable?: boolean;\r\n /**\r\n * CORS settings attributes\r\n */\r\n crossOrigin?: 'anonymous' | 'use-credentials';\r\n}\r\n\r\nexport const AtAvatar: React.FC<AtAvatarProps> = ({ shape = 'circle', size = 'default', ...restProps }) => {\r\n return <AntAvatar shape={shape} size={size} {...restProps} />;\r\n};\r\n","import React from 'react';\r\nimport { Badge, Card } from 'antd';\r\n\r\nexport interface AtBadgeCardProps {\r\n /**\r\n * Placeholder text to display into the input\r\n */\r\n ribbonText?: string;\r\n /**\r\n * The input content value\r\n */\r\n cardText?: string;\r\n /**\r\n * The color of the ribbon badge\r\n */\r\n color?: string;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const AtBadgeCard: React.FC<AtBadgeCardProps> = ({\r\n ribbonText,\r\n cardText,\r\n color,\r\n}) => {\r\n return (\r\n <Badge.Ribbon text={ribbonText} color={color}>\r\n <Card size=\"small\">{cardText}</Card>\r\n </Badge.Ribbon>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { AtButtonProps } from '.';\r\nimport { Button } from 'antd';\r\n\r\ntype AtButtonAttrs = AtButtonProps;\r\n\r\nexport const StyledButton = styled(Button)<AtButtonAttrs>`\r\n ${({ borderless }) => (borderless ? 'border: none;' : '')}\r\n ${({ $fullWidth }) => ($fullWidth ? 'width: 100%' : '')};\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n ${({ type }) =>\r\n type === 'success'\r\n ? 'background-color: #D9F7BE; border-color: #52C41A; color: #52C41A;'\r\n : type === 'warning'\r\n ? 'background-color: #FFCCC7; border-color: #F5222D; color: #F5222D;'\r\n : ''};\r\n ${({ bgTransparent }) =>\r\n bgTransparent ? 'background-color: transparent;' : ''}\r\n &, \r\n &.ant-btn-primary,\r\n &.ant-btn-primary.ant-btn-dangerous {\r\n box-shadow: none;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { ButtonShape, ButtonSize, ButtonType } from 'antd/es/button';\r\nimport { StyledButton } from './styles';\r\nimport { ButtonProps } from 'antd/lib';\r\n\r\nexport interface AtButtonProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The button content value\r\n */\r\n value?: string;\r\n /**\r\n * Hide button borders\r\n */\r\n borderless?: boolean;\r\n /**\r\n *Option to fit button width to its parent width\r\n */\r\n block?: boolean;\r\n /**\r\n *Set the danger status of button\r\n */\r\n danger?: boolean;\r\n /**\r\n * Disabled state of button\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Set the original html type of button, see: MDN\r\n */\r\n htmlType?: string;\r\n /**\r\n * Set the loading status of button\r\n */\r\n loading?: boolean;\r\n /**\r\n * Can be set button\r\n */\r\n shape?: ButtonShape;\r\n /**\r\n * Set the size of button\r\n */\r\n size?: ButtonSize;\r\n /**\r\n * Can be set to primary ghost dashed link text\r\n */\r\n type?: ButtonType | 'success' | 'warning' | 'ghost';\r\n /**\r\n * Set the handler to handle click\r\n */\r\n onClick?: React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>;\r\n /**\r\n * Expand button full container width\r\n */\r\n $fullWidth?: boolean;\r\n /**\r\n * set button in ghost mode\r\n */\r\n ghost?: boolean;\r\n /**\r\n * Set the button width\r\n */\r\n $width?: string | number;\r\n /**\r\n * Set the button icon\r\n */\r\n icon?: ButtonProps['icon'];\r\n /**\r\n * Set background button transparent\r\n */\r\n bgTransparent?: boolean;\r\n}\r\n\r\nexport const AtButton: React.FC<AtButtonProps> = ({\r\n value,\r\n block = false,\r\n danger = false,\r\n disabled = false,\r\n shape = 'default',\r\n size = 'middle',\r\n type = 'default',\r\n htmlType = 'button',\r\n $width,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledButton\r\n block={block}\r\n danger={danger}\r\n disabled={disabled}\r\n shape={shape}\r\n size={size}\r\n type={type}\r\n htmlType={htmlType}\r\n $width={$width}\r\n {...props}\r\n >\r\n {value}\r\n </StyledButton>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Checkbox as AntCheckbox, CheckboxProps } from 'antd';\r\n\r\nexport interface AtCheckboxProps extends CheckboxProps {\r\n /**\r\n * Specifies whether the checkbox is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * Specifies the initial state: whether or not the checkbox is selected\r\n */\r\n defaultChecked?: boolean;\r\n /**\r\n * If disable checkbox\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The indeterminate checked state of checkbox\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * The callback function that is triggered when the state changes\r\n */\r\n onChange?: CheckboxProps['onChange'];\r\n /**\r\n * children of checkbox\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const AtCheckbox: React.FC<AtCheckboxProps> = ({\r\n disabled = false,\r\n indeterminate = false,\r\n ...props\r\n}) => {\r\n return <AntCheckbox disabled={disabled} indeterminate={indeterminate} {...props} />;\r\n};\r\n\r\n","export const PRIMARY_COLOR = '#6C369C';\r\n","import React, { useMemo } from 'react';\r\nimport { ConfigProvider } from 'antd';\r\nimport { generate } from '@ant-design/colors';\r\nimport { PRIMARY_COLOR } from './constants';\r\nimport '@fontsource/ibm-plex-sans/500.css';\r\nimport '@fontsource/ibm-plex-sans/700.css';\r\n\r\ninterface Props {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const violet = generate(PRIMARY_COLOR);\r\nexport const gray = [\r\n '#ffffff',\r\n '#fafafa',\r\n '#f5f5f5',\r\n '#f0f0f0',\r\n '#d9d9d9',\r\n '#bfbfbf',\r\n '#8c8c8c',\r\n '#595959',\r\n '#434343',\r\n '#262626',\r\n '#1f1f1f',\r\n '#141414 ',\r\n '#000000',\r\n];\r\n\r\nexport const WaWaThemeProvider: React.FC<Props> = ({ children }) => {\r\n const violetColor = useMemo(() => violet, [violet]);\r\n\r\n return (\r\n <>\r\n <ConfigProvider\r\n theme={{\r\n token: {\r\n fontFamily: 'IBM Plex sans',\r\n colorPrimary: violetColor[5],\r\n colorLink: violet[5],\r\n colorLinkHover: violet[6],\r\n colorLinkActive: violet[5],\r\n },\r\n components: {\r\n Select: {\r\n colorBgContainer: gray[2],\r\n },\r\n Menu: {\r\n itemSelectedBg: violet[5],\r\n itemSelectedColor: gray[0],\r\n },\r\n Layout: {\r\n colorBgHeader: violet[8],\r\n },\r\n Table: {\r\n colorBgContainer: gray[0],\r\n },\r\n },\r\n }}\r\n >\r\n {children}\r\n </ConfigProvider>\r\n </>\r\n );\r\n};\r\n\r\nexport default WaWaThemeProvider;\r\n","import { Statistic } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { AtCountdownProps } from '.';\r\nimport { violet } from '../../../theme';\r\n\r\nexport const StyledAtCountdown = styled(Statistic.Countdown)<AtCountdownProps>`\r\n & span {\r\n ${({ $color }) =>\r\n $color === 'primary' ? `color: ${violet[5]} !important;` : ''}\r\n ${({ $fontSize }) => ($fontSize ? `font-size: ${$fontSize}px;` : '')}\r\n }\r\n\r\n & .ant-statistic-content {\r\n font-size: 0;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport type { CountdownProps } from 'antd';\r\nimport { StyledAtCountdown } from './styles';\r\n\r\nexport interface AtCountdownProps {\r\n /**\r\n * Format as dayjs\tstring\r\n */\r\n format?: string;\r\n /**\r\n * The prefix node of value\r\n */\r\n prefix?: React.ReactNode;\r\n /**\r\n * The suffix node of value\r\n */\r\n suffix?: React.ReactNode;\r\n /**\r\n * The suffix node of value\r\n */\r\n title?: React.ReactNode;\r\n /**\r\n * Set target countdown time\tnumber\r\n */\r\n value?: CountdownProps['value'];\r\n /**\r\n * Set value section style\tCSSProperties\r\n */\r\n valueStyle?: React.CSSProperties;\r\n /**\r\n * Trigger when time's up\r\n */\r\n onFinish?: () => void;\r\n /**\r\n * Trigger when time's changing\r\n */\r\n onChange?: (value: CountdownProps['value']) => void;\r\n /**\r\n * Font color\r\n */\r\n $color?: 'normal' | 'primary';\r\n /**\r\n * Font size\r\n */\r\n $fontSize?: number;\r\n}\r\n\r\nexport const AtCountdown: React.FC<AtCountdownProps> = ({\r\n format = 'HH:mm:ss',\r\n $color = 'normal',\r\n ...props\r\n}) => {\r\n return <StyledAtCountdown format={format} $color={$color} {...props} />;\r\n};\r\n","import React, { useState } from \"react\";\r\nimport dayjs from \"dayjs\";\r\nimport { DatePicker, Button } from \"antd\";\r\nimport { DatePickerProps } from \"antd/lib\";\r\n\r\nexport const MultipleDatePicker = () => {\r\n const [selectedDate, setSelectedDate] = useState<number[]>([])\r\n\r\n const onValueChange = (date: string) => {\r\n const newDate = dayjs(date).startOf('day').valueOf()\r\n if (selectedDate.includes(newDate)) {\r\n setSelectedDate([...selectedDate.filter(item => item !== newDate)])\r\n } else {\r\n setSelectedDate([...selectedDate, newDate])\r\n }\r\n };\r\n\r\n const dateRender: DatePickerProps['cellRender'] = (currentDate) => {\r\n const isSelected = selectedDate.includes(dayjs(currentDate as dayjs.Dayjs).startOf(\"day\").valueOf())\r\n const parsedDate = dayjs(currentDate as dayjs.Dayjs);\r\n return (<div style={ isSelected ? {\r\n position: 'relative',\r\n zIndex: 2,\r\n display: 'inlineBlock',\r\n width: \"24px\",\r\n height: \"22px\",\r\n lineHeight: \"22px\",\r\n backgroundColor: \"#1890ff\",\r\n color: \"#fff\",\r\n margin: \"auto\",\r\n borderRadius: \"2px\",\r\n transition: \"background 0.3s, border 0.3s\"\r\n } : {} } > {parsedDate.date()} </div >)\r\n }\r\n\r\n return (\r\n <>\r\n <div>\r\n <DatePicker\r\n open\r\n cellRender={dateRender}\r\n onChange={onValueChange}\r\n showToday={false}\r\n value={\"\"}\r\n />\r\n <Button type='primary' onClick={() => alert(selectedDate)}>确定</Button>\r\n </div>\r\n </>\r\n )\r\n}","\r\n\r\nimport { styled } from 'styled-components';\r\n\r\nimport { DatePicker } from 'antd';\r\nimport { AtDatePickerPros } from '.';\r\nimport React from 'react';\r\n\r\n\r\nexport const StyledDatePicker: React.FC<AtDatePickerPros> = \r\n styled(DatePicker)<AtDatePickerPros>`\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n`;\r\n","import React, { CSSProperties, useMemo } from 'react';\r\nimport { DatePickerProps } from 'antd';\r\nimport { Dayjs } from 'dayjs';\r\nimport { StyledDatePicker } from './styles';\r\n\r\nexport interface AtDatePickerPros {\r\n /**\r\n * If true, the date picker will be disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Whether to show clear button\r\n */\r\n allowClear?: boolean;\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Trigger change when blur. e.g. datetime picker no need click confirm button\r\n */\r\n changeOnBlur?: boolean;\r\n /**\r\n * Specify the date that cannot be selected\r\n */\r\n disabledDate?: (currentDate: Dayjs) => boolean;\r\n /**\r\n * Specify the time that cannot be selected\r\n */\r\n disabledTime?: DatePickerProps['disabledTime'];\r\n /**\r\n * To set the date format, support multi-format matching when it is an array, display the first one shall prevail. refer to dayjs#format. for example: Custom Format\r\n */\r\n format?: string | string[];\r\n /**\r\n * Set the readonly attribute of the input tag (avoids virtual keyboard on touch devices)\r\n */\r\n inputReadOnly?: boolean;\r\n /**\r\n * Localization configuration\r\n */\r\n locale?: DatePickerProps['locale'];\r\n /**\r\n * The picker panel mode( Cannot select year or month anymore? )\r\n */\r\n mode?: 'time' | 'date' | 'month' | 'year' | 'decade';\r\n /**\r\n * The open state of picker\r\n */\r\n open?: boolean;\r\n /**\r\n * Set picker type\r\n */\r\n picker?: DatePickerProps['picker'];\r\n /**\r\n * Placeholder of the input\r\n */\r\n placeholder?: string;\r\n /**\r\n * The position where the selection box pops up\r\n */\r\n placement?: DatePickerProps['placement'];\r\n /**\r\n * The preset ranges for quick selection\r\n */\r\n presents?: DatePickerProps['presets'];\r\n /**\r\n * Show time on date\r\n */\r\n showTime?: boolean;\r\n /**\r\n * To determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32px\r\n */\r\n size?: DatePickerProps['size'];\r\n /**\r\n * Set validation status\r\n */\r\n status?: DatePickerProps['status'];\r\n /**\r\n * Callback function, can be executed whether the popup calendar is popped up or closed\r\n */\r\n onOpenChange?: (status: boolean) => void;\r\n /**\r\n * Callback when picker panel mode is changed\r\n */\r\n onPanelChange?: (value: Dayjs | null, mode: DatePickerProps['mode']) => void;\r\n /**\r\n * set format on 12h\r\n */\r\n use12Hours?: boolean;\r\n /**\r\n * The computed style of the svg element\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * width of the input box\r\n */\r\n $width?: string;\r\n}\r\n\r\nconst AtDatePicker: React.FC<AtDatePickerPros> = ({\r\n autoFocus = false,\r\n bordered = true,\r\n changeOnBlur = false,\r\n inputReadOnly = false,\r\n format,\r\n picker,\r\n use12Hours = true,\r\n showTime = false,\r\n $width,\r\n ...props\r\n}) => {\r\n const getDefaultFormat = useMemo(() => {\r\n let mergedFormat = format;\r\n if (!mergedFormat) {\r\n switch (picker) {\r\n case 'time':\r\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\r\n break;\r\n\r\n case 'week':\r\n mergedFormat = 'gggg-wo';\r\n break;\r\n\r\n case 'month':\r\n mergedFormat = 'YYYY-MM';\r\n break;\r\n\r\n case 'quarter':\r\n mergedFormat = 'YYYY-[Q]Q';\r\n break;\r\n\r\n case 'year':\r\n mergedFormat = 'YYYY';\r\n break;\r\n\r\n default:\r\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\r\n }\r\n }\r\n\r\n return mergedFormat;\r\n }, [props]);\r\n\r\n return (\r\n <StyledDatePicker\r\n $width={$width}\r\n autoFocus={autoFocus}\r\n bordered={bordered}\r\n changeOnBlur={changeOnBlur}\r\n inputReadOnly={inputReadOnly}\r\n format={getDefaultFormat}\r\n picker={picker}\r\n use12Hours={use12Hours}\r\n showTime={showTime}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\nexport { AtDatePicker }","\r\n\r\nimport { styled } from 'styled-components';\r\n\r\nimport { AtDateRangePickerProps } from '.';\r\nimport { DatePicker } from 'antd';\r\n\r\n\r\nexport const StyledDatePicker: React.FC<AtDateRangePickerProps> = \r\n styled(DatePicker.RangePicker) <AtDateRangePickerProps>`\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n`;\r\n","import React, { CSSProperties, useMemo } from 'react';\r\nimport { DatePickerProps } from 'antd';\r\nimport { Dayjs } from 'dayjs';\r\nimport { StyledDatePicker } from './styles';\r\nimport { RangePickerProps } from 'antd/lib/date-picker';\r\n\r\nexport interface AtDateRangePickerProps {\r\n /**\r\n * If true, the date picker will be disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Whether to show clear button\r\n */\r\n allowClear?: boolean;\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Trigger change when blur. e.g. datetime picker no need click confirm button\r\n */\r\n changeOnBlur?: boolean;\r\n /**\r\n * Specify the date that cannot be selected\r\n */\r\n disabledDate?: (currentDate: Dayjs) => boolean;\r\n /**\r\n * To set the date format, support multi-format matching when it is an array, display the first one shall prevail. refer to dayjs#format. for example: Custom Format\r\n */\r\n format?: string | string[];\r\n /**\r\n * Set the readonly attribute of the input tag (avoids virtual keyboard on touch devices)\r\n */\r\n inputReadOnly?: boolean;\r\n /**\r\n * Localization configuration\r\n */\r\n locale?: DatePickerProps['locale'];\r\n /**\r\n * The picker panel mode( Cannot select year or month anymore? )\r\n */\r\n mode?: 'time' | 'date' | 'month' | 'year' | 'decade';\r\n /**\r\n * The open state of picker\r\n */\r\n open?: boolean;\r\n /**\r\n * Set picker type\r\n */\r\n picker?: DatePickerProps['picker'];\r\n /**\r\n * Placeholder of the input\r\n */\r\n placeholder?: string;\r\n /**\r\n * The position where the selection box pops up\r\n */\r\n placement?: DatePickerProps['placement'];\r\n /**\r\n * The preset ranges for quick selection\r\n */\r\n presents?: DatePickerProps['presets'];\r\n /**\r\n * Show time on date\r\n */\r\n showTime?: boolean;\r\n /**\r\n * To determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32px\r\n */\r\n size?: DatePickerProps['size'];\r\n /**\r\n * Set validation status\r\n */\r\n status?: DatePickerProps['status'];\r\n /**\r\n * Callback function, can be executed whether the popup calendar is popped up or closed\r\n */\r\n onOpenChange?: (status: boolean) => void;\r\n /**\r\n * Callback when picker panel mode is changed\r\n */\r\n onPanelChange?: (value: Dayjs | null, mode: DatePickerProps['mode']) => void;\r\n /**\r\n * set format on 12h\r\n */\r\n use12Hours?: boolean;\r\n /**\r\n * The computed style of the svg element\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * width of the input box\r\n */\r\n $width?: string;\r\n /**\r\n * The date value of the input\r\n */\r\n pickerValue?: RangePickerProps['value'];\r\n /**\r\n * The default date of the input\r\n */\r\n defaultValue?: RangePickerProps['defaultPickerValue'];\r\n /**\r\n * The date value of the input\r\n */\r\n onChange?: RangePickerProps['onChange'];\r\n}\r\n\r\nexport const AtDateRangePicker: React.FC<AtDateRangePickerProps> = ({\r\n autoFocus = false,\r\n bordered = true,\r\n changeOnBlur = false,\r\n inputReadOnly = false,\r\n format,\r\n picker,\r\n use12Hours = true,\r\n showTime = false,\r\n $width,\r\n ...props\r\n}) => {\r\n const getDefaultFormat = useMemo(() => {\r\n let mergedFormat = format;\r\n if (!mergedFormat) {\r\n switch (picker) {\r\n case 'time':\r\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\r\n break;\r\n\r\n case 'week':\r\n mergedFormat = 'gggg-wo';\r\n break;\r\n\r\n case 'month':\r\n mergedFormat = 'YYYY-MM';\r\n break;\r\n\r\n case 'quarter':\r\n mergedFormat = 'YYYY-[Q]Q';\r\n break;\r\n\r\n case 'year':\r\n mergedFormat = 'YYYY';\r\n break;\r\n\r\n default:\r\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\r\n }\r\n }\r\n\r\n return mergedFormat;\r\n }, [props]);\r\n\r\n return (\r\n <StyledDatePicker\r\n $width={$width}\r\n autoFocus={autoFocus}\r\n bordered={bordered}\r\n changeOnBlur={changeOnBlur}\r\n inputReadOnly={inputReadOnly}\r\n format={getDefaultFormat}\r\n picker={picker}\r\n use12Hours={use12Hours}\r\n showTime={showTime}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\nimport { Divider } from 'antd';\r\nimport { AtDividerProps } from '.';\r\n\r\nexport const StyledDivider = styled(Divider)<AtDividerProps>`\r\n ${({ $margin }) => ($margin ? `margin: ${$margin}px;` : '')}\r\n\r\n`;","import React, { ReactNode } from 'react';\r\nimport { StyledDivider } from './styles';\r\n\r\nexport interface AtDividerProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The wrapped title\r\n */\r\n children?: ReactNode;\r\n /**\r\n * Whether line is dashed\r\n */\r\n dashed?: boolean;\r\n /**\r\n * The position of title inside divider\r\n */\r\n orientation?: 'left' | 'right' | 'center';\r\n /**\r\n * The margin-left/right between the title and its closest border, while the orientation must be left or right, If a numeric value of type string is provided without a unit, it is assumed to be in pixels (px) by default.\r\n */\r\n orientationMargin?: string | number;\r\n /**\r\n * Divider text show as plain style\r\n */\r\n plain?: boolean;\r\n /**\r\n * The direction type of divider\r\n */\r\n type?: 'horizontal' | 'vertical';\r\n /**\r\n * margin of the divider\r\n */\r\n $margin?: number;\r\n}\r\n\r\nexport const AtDivider: React.FC<AtDividerProps> = ({\r\n dashed = false,\r\n orientation = 'center',\r\n plain = true,\r\n type = 'horizontal',\r\n $margin,\r\n ...props\r\n}) => {\r\n return <StyledDivider $margin={$margin} dashed={dashed} orientation={orientation} plain={plain} type={type} {...props} />;\r\n};\r\n\r\n\r\n","import React, { CSSProperties } from 'react';\r\n\r\nimport Icon from '@ant-design/icons';\r\nimport { IconComponentProps } from '@ant-design/icons/lib/components/Icon';\r\nimport * as Icons from '@ant-design/icons';\r\n\r\nexport interface AtIconProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Name of the icon\r\n */\r\n name?: keyof typeof Icons;\r\n /**\r\n * Define the color used to paint the svg element\r\n */\r\n fill?: string;\r\n /**\r\n * The computed style of the svg element\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * The height of the svg element\r\n */\r\n height?: string | number;\r\n /**\r\n * The width of the svg element\r\n */\r\n width?: string | number;\r\n /**\r\n * Define extra properties to the component\r\n */\r\n extraCommonProps?: { [key: string]: any };\r\n /**\r\n * The URL generated by iconfont.cn project. Support string[] after @ant-design/icons@4.1.0\r\n */\r\n scriptUrl?: string | string[];\r\n /**\r\n * The component used for the root node\r\n */\r\n component?: IconComponentProps['component'];\r\n /**\r\n * Rotate degrees (not working in IE9)\r\n */\r\n rotate?: number;\r\n /**\r\n * Rotate icon with animation\r\n */\r\n spin?: boolean;\r\n /**\r\n * Color of the icon\r\n */\r\n twoToneColor?: string;\r\n}\r\n\r\nexport const AtIcon: React.FC<AtIconProps> = ({\r\n name = 'HomeOutlined',\r\n width = 'auto',\r\n height = 'auto',\r\n fill = 'black',\r\n ...props\r\n}) => {\r\n return (\r\n <Icon\r\n {...props}\r\n component={\r\n props.component ?? (Icons[name] as React.ForwardRefExoticComponent<any>)\r\n }\r\n style={{ width, height, fill, ...props.style }}\r\n />\r\n );\r\n};\r\n","import { violet } from '../theme';\r\nimport { gold } from '@ant-design/colors';\r\n\r\nexport const colorMap = {\r\n violet: violet[5],\r\n gold: gold[5],\r\n white: '#FFFFFF',\r\n gray: '#f0f0f0',\r\n lightGray: '#00000073',\r\n black: '#000000',\r\n};\r\n","import { Typography } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { colorMap } from '../../../utils/colorMap';\r\nimport { AtTextProps } from '.';\r\n\r\nexport const StyledText = styled(Typography.Text) <AtTextProps>`\r\n ${({ color }) => (color ? `color: ${colorMap[color]};` : '')}\r\n ${({ $width }) => ($width ? `width: ${typeof $width === \"number\" ? `${$width}px;` : `${$width};`}` : '')}\r\n ${({ $maxWidth }) => ($maxWidth ? `max-width: ${typeof $maxWidth === \"number\" ? `${$maxWidth}px!important;` : `${$maxWidth}!important;`}` : '')}\r\n ${({ $fontSize }) => ($fontSize ? `font-size: ${$fontSize}px;` : '')} \r\n ${({ $textAlign }) => ($textAlign ? `text-align: ${$textAlign};` : '')}\r\n ${({ $opacity }) => ($opacity ? `opacity: ${$opacity};` : '')}\r\n ${({ $lineHeight }) => ($lineHeight ? `line-height: ${$lineHeight};` : '')}\r\n ${({ strong }) => (strong ? `font-weight: bold` : '')}\r\n`;\r\n","import React from 'react';\r\nimport { BlockProps } from 'antd/es/typography/Base';\r\nimport { StyledText } from './styles';\r\nimport { colorMap } from '../../../utils/colorMap';\r\nimport { TextProps } from 'antd/es/typography/Text';\r\n\r\nexport interface AtTextProps {\r\n /**\r\n * Content type\r\n */\r\n type?: 'secondary' | 'success' | 'warning' | 'danger';\r\n /**\r\n * Whether the text is strong or not\r\n */\r\n strong?: boolean;\r\n /**\r\n * Whether the text is italic or not\r\n */\r\n italic?: boolean;\r\n /**\r\n * Whether the text is underline or not\r\n */\r\n underline?: boolean;\r\n /**\r\n * Whether the text is mark or not\r\n */\r\n mark?: boolean;\r\n /**\r\n * If editable. Can control edit state when is object\r\n */\r\n editable?: boolean | BlockProps['editable'];\r\n /**\r\n * Whether to be copyable, customize it via setting an object\r\n */\r\n copyable?: boolean | BlockProps['copyable'];\r\n /**\r\n * Keyboard style\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Code style\r\n */\r\n code?: boolean;\r\n /**\r\n * children\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Color of the text\r\n */\r\n color?: keyof typeof colorMap;\r\n /**\r\n * Element width\r\n */\r\n $width?: number | string;\r\n /**\r\n * Element max width\r\n */\r\n $maxWidth?: number | string;\r\n /**\r\n * font size\r\n */\r\n $fontSize?: number;\r\n /**\r\n * textAlign\r\n */\r\n $textAlign?: \"center\" | \"left\" | \"right\" | \"justify\" | \"initial\" | \"inherit\" | \"unset\";\r\n /**\r\n * opacity\r\n */\r\n $opacity?: number;\r\n /**\r\n * ellipsis\r\n */\r\n ellipsis?: TextProps['ellipsis'];\r\n /**\r\n * line height\r\n */\r\n $lineHeight?: number;\r\n}\r\n\r\nexport const AtText: React.FC<AtTextProps> = ({\r\n strong = false,\r\n italic = false,\r\n underline = false,\r\n mark = false,\r\n editable = false,\r\n copyable = false,\r\n keyboard = false,\r\n code = false,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledText\r\n strong={strong}\r\n italic={italic}\r\n underline={underline}\r\n mark={mark}\r\n editable={editable}\r\n copyable={copyable}\r\n keyboard={keyboard}\r\n code={code}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledText>\r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Image as AntImage, ImageProps } from 'antd';\r\nimport { AtIcon } from '../AtIcon';\r\nimport { AtText } from '../AtText';\r\nimport { Card } from 'antd/lib';\r\n\r\nexport interface AtImageProps {\r\n /**\r\n * Image description\r\n */\r\n alt?: string;\r\n /**\r\n * Load failure fault-tolerant src\r\n */\r\n fallback?: string;\r\n /**\r\n * Image height\r\n */\r\n height?: string | number;\r\n /**\r\n * Image path\r\n */\r\n src?: string;\r\n /**\r\n * Image width\r\n */\r\n width?: string | number;\r\n /**\r\n * Load failed callback\r\n */\r\n onError?: ImageProps['onError'];\r\n /**\r\n * Load placeholder, use default placeholder when set true\r\n */\r\n placeholder?: ImageProps['placeholder'];\r\n /**\r\n * preview config, disabled when false\r\n */\r\n preview?: ImageProps['preview'];\r\n /**\r\n * Image wrapper style\r\n */\r\n wrapperStyle?: ImageProps['wrapperStyle'];\r\n}\r\n\r\nexport const AtImage: React.FC<AtImageProps> = (props) => {\r\n const [isValidUrl, setIsValidUrl] = useState(true);\r\n\r\n const handleError: ImageProps['onError'] = () => {\r\n setIsValidUrl(false);\r\n };\r\n\r\n return (\r\n <>\r\n {isValidUrl && props.src ? (\r\n <AntImage {...props} onError={handleError} />\r\n ) : props.src ? (\r\n <Card\r\n style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n borderColor: '#D7D8E4',\r\n cursor: 'pointer',\r\n }}\r\n onClick={() => window.open(props.src, '_blank')}\r\n >\r\n <AtIcon\r\n name=\"FileOutlined\"\r\n style={{\r\n fontSize: 24,\r\n color: '#414CE9',\r\n marginRight: 16,\r\n }}\r\n fill=\"rgb(230, 244, 255)\"\r\n />\r\n <AtText>{props.alt || 'file'}</AtText>\r\n </Card>\r\n ) : (\r\n <></>\r\n )}\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCard = styled.div`\r\n border-radius: 10px;\r\n border: 3px dotted #E5E5E5;\r\n padding-bottom: 20px;\r\n padding-left: 20px;\r\n width: 100%;\r\n flex: 42%;\r\n`;","import React from \"react\";\r\nimport { StyledCard } from \"./styles\";\r\nimport { AtText, AtTitle } from \"../../atoms\";\r\n\r\nexport interface MlPlanCardProps {\r\n title: string;\r\n description: string;\r\n $color?: 'violet' | 'gold' | 'white'\r\n $type?: \"secondary\" | \"success\" | \"warning\" | \"danger\" | undefined\r\n $fontSize?: number;\r\n}\r\n\r\nexport const MlPlanCard: React.FC<MlPlanCardProps> = ({\r\n title,\r\n description,\r\n $color,\r\n $type,\r\n $fontSize,\r\n}) => {\r\n return (\r\n <StyledCard >\r\n <AtTitle level={4}>{title}</AtTitle>\r\n <AtText $fontSize={$fontSize} type={$type} color={$color} strong>{description}</AtText>\r\n </StyledCard>\r\n );\r\n}","import { styled } from 'styled-components';\r\n\r\n\r\nexport const StyledActiveSubscriptionCard = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n margin-bottom: 20px;\r\n flex-wrap: wrap;\r\n gap: 10px;\r\n`","import { MlPlanCard, MlPlanCardProps } from \"../../molecules/MlPlanCard\";\r\nimport { StyledActiveSubscriptionCard } from \"./styles\";\r\n\r\nexport interface OrActiveCardsProps {\r\n items: Array<{title: string, description: string}> | undefined; \r\n type?: MlPlanCardProps['$type']; \r\n fontSize?: number\r\n}\r\n\r\nexport const OrActiveCards: React.FC<OrActiveCardsProps> = ({items, type, fontSize} ) => {\r\n return (\r\n <StyledActiveSubscriptionCard>\r\n {\r\n items?.map(( { title, description }, i ) => {\r\n return <MlPlanCard key={i} $fontSize={fontSize} $type={type} $color='violet' title={title} description={description} />\r\n })\r\n }\r\n </StyledActiveSubscriptionCard>\r\n )\r\n}","import React from 'react';\r\nimport { Alert, AlertProps } from 'antd';\r\n\r\nexport interface OrAlertProps {\r\n /**\r\n * The action of Alert\r\n */\r\n action?: AlertProps['action'];\r\n /**\r\n * Called when close animation is finished\r\n */\r\n afterClose?: AlertProps['afterClose'];\r\n /**\r\n * Whether to show as banner\r\n */\r\n banner?: boolean;\r\n /**\r\n * Custom close icon, >=5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: boolean | React.ReactNode;\r\n /**\r\n * Closable text to show\r\n */\r\n closable?: AlertProps['closable'];\r\n /**\r\n * Additional content of Alert\r\n */\r\n description?: AlertProps['description'];\r\n /**\r\n * Custom icon, effective when showIcon is true\r\n */\r\n icon?: AlertProps['icon'];\r\n /**\r\n * Content of Alert\r\n */\r\n message?: AlertProps['message'];\r\n /**\r\n * Whether to show icon\r\n */\r\n showIcon?: boolean;\r\n /**\r\n * Type of Alert styles, options: success, info, warning, error\r\n */\r\n type?: AlertProps['type'];\r\n /**\r\n * Callback when Alert is closed\r\n */\r\n onClose?: AlertProps['onClose'];\r\n /**\r\n * Children of Alert\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrAlert: React.FC<OrAlertProps> = (props) => {\r\n return <Alert {...props}>{props.children}</Alert>;\r\n};\r\n\r\nOrAlert.defaultProps = {\r\n afterClose: undefined,\r\n banner: false,\r\n};\r\n","import { Tabs } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrTabsProps } from '.';\r\n\r\nexport const StyledTabs = styled(Tabs)<OrTabsProps>`\r\n ${({ type }) => (type === 'card' ? `\r\n & .ant-tabs-nav-list .ant-tabs-tab {\r\n border-radius: 2px 2px 0 0!important;\r\n } \r\n\r\n & .ant-tabs-nav-list :not(first-child) .ant-tabs-tab {\r\n background: red;\r\n }\r\n ` : ``)}\r\n`","import { TabsProps } from 'antd/es/tabs';\r\nimport { AtIcon } from '../../atoms';\r\nimport { StyledTabs } from './styles';\r\n\r\nexport interface OrTabsProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Current TabPane's key\r\n */\r\n activeKey?: string;\r\n /**\r\n * Customize add icon\r\n */\r\n addIcon?: React.ReactNode;\r\n /**\r\n * Whether to change tabs with animation. Only works while tabPosition=\"top\"\r\n */\r\n animated?: boolean | { inkBar: boolean; tabPane: boolean };\r\n /**\r\n * Centers tabs\r\n */\r\n centered?: boolean;\r\n /**\r\n * Initial active TabPane's key, if activeKey is not set\r\n */\r\n defaultActiveKey?: string;\r\n /**\r\n * Hide plus icon or not. Only works while type=\"editable-card\"\r\n */\r\n hideAdd?: boolean;\r\n /**\r\n * Configure tab content\r\n */\r\n items?: TabsProps['items'];\r\n /**\r\n * The custom icon of ellipsis\r\n */\r\n moreIcon?: React.ReactNode;\r\n /**\r\n * className for more dropdown.\r\n */\r\n popupClassName?: string;\r\n /**\r\n * Preset tab bar size\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Extra content in tab bar\r\n */\r\n tabBarExtraContent?:\r\n | React.ReactNode\r\n | { left?: React.ReactNode; right?: React.ReactNode };\r\n /**\r\n * The gap between tabs\r\n */\r\n tabBarGutter?: number;\r\n /**\r\n * Position of tabs\r\n */\r\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\r\n /**\r\n * Whether destroy inactive TabPane when change tab\r\n */\r\n destroyInactiveTabPane?: boolean;\r\n /**\r\n * Basic style of tabs\r\n */\r\n type?: 'line' | 'card' | 'editable-card';\r\n /**\r\n * Callback executed when active tab is changed\r\n */\r\n onChange?: (activeKey: string) => void;\r\n /**\r\n * Callback executed when tab is added or removed. Only works while type=\"editable-card\"\r\n */\r\n onEdit?:\r\n | ((\r\n e:\r\n | string\r\n | React.MouseEvent<Element, MouseEvent>\r\n | React.KeyboardEvent<Element>,\r\n action: 'add' | 'remove',\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Callback executed when tab is clicked\r\n */\r\n onTabClick?:\r\n | ((\r\n activeKey: string,\r\n e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Trigger when tab scroll\r\n */\r\n onTabScroll?: (info: {\r\n direction: 'left' | 'right' | 'top' | 'bottom';\r\n }) => void;\r\n /**\r\n * Children of the tabs\r\n */\r\n children?: React.ReactElement | React.ReactElement[];\r\n /**\r\n * hide extra content in tab bar\r\n */\r\n hideExtra?: boolean;\r\n}\r\n\r\nexport const OrTabs: React.FC<OrTabsProps> = ({\r\n animated = { inkBar: true, tabPane: false },\r\n centered = false,\r\n hideAdd = false,\r\n items = [],\r\n moreIcon = <AtIcon name=\"EllipsisOutlined\" />,\r\n size = 'middle',\r\n tabPosition = 'top',\r\n destroyInactiveTabPane = false,\r\n type = 'line',\r\n hideExtra = false,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledTabs\r\n animated={animated}\r\n centered={centered}\r\n hideAdd={hideAdd}\r\n size={size}\r\n tabPosition={tabPosition}\r\n destroyInactiveTabPane={destroyInactiveTabPane}\r\n type={type}\r\n tabBarExtraContent={hideExtra || (items.length > 0 && moreIcon)}\r\n items={items}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledTabs>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledDiv = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n gap: 10px;\r\n`;\r\n","import { styled } from 'styled-components';\r\nimport { Card } from 'antd';\r\nimport { MlCardProps } from '.';\r\nimport { violet } from '../../../theme';\r\nimport { colorMap } from '../../../utils/colorMap';\r\n\r\nexport const StyledCard = styled(Card)<MlCardProps>`\r\n ${({ $margin }) => ($margin === 'auto' ? `margin: auto;` : $margin ? `margin: ${$margin}px;` : '')}\r\n ${({ $width }) => ($width ? `width: ${$width};` : '')}\r\n ${({ $maxWidth }) => ($maxWidth ? `max-width: ${$maxWidth}px; width: 100%;` : '')}\r\n ${({ $alignSelf }) => ($alignSelf ? `align-self: ${$alignSelf};` : '')}\r\n ${({ $backgroundColor }) => ($backgroundColor ? `background-color: ${$backgroundColor};` : '')}\r\n ${({ $marginBottom }) => ($marginBottom ? `margin-bottom: ${$marginBottom}px;` : '')}\r\n ${({ $shadow }) => ($shadow ? `box-shadow: ${$shadow};` : '')}\r\n &.ant-card-small >.ant-card-body {\r\n ${({ $padding }) => ($padding ? `padding: ${$padding}px; !important` : 'padding: 0px !important')}\r\n }\r\n ${({ $borderColor }) => ($borderColor ? `border-color: ${colorMap[$borderColor]};` : '')}\r\n ${({ selected }) =>\r\n selected\r\n ? `\r\n border-color: ${violet[5]};\r\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\r\n `\r\n : ''}\r\n\r\n &:hover * {\r\n ${({ hoverable }) => (hoverable ? `color: ${violet[5]};` : '')}\r\n }\r\n\r\n & * {\r\n ${({ selected }) => (selected ? `color: ${violet[5]};` : '')}\r\n }\r\n`;\r\n","import React, { CSSProperties, ReactNode } from 'react';\r\nimport { CardTabListType } from 'antd/es/card';\r\nimport { CardType } from 'antd/es/card/Card';\r\nimport { TabsProps } from 'antd/es/tabs';\r\nimport { StyledCard } from './styles';\r\n\r\nexport interface MlCardProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The action list, shows at the bottom of the Card\r\n */\r\n actions?: Array<ReactNode>;\r\n /**\r\n * Current TabPane's key\r\n */\r\n activeTabKey?: string;\r\n /**\r\n * Inline style to apply to the card content\tCSSProperties\r\n */\r\n bodyStyle?: CSSProperties;\r\n /**\r\n * Toggles rendering of the border around the card\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Card cover\r\n */\r\n cover?: ReactNode;\r\n /**\r\n * Initial active TabPane's key, if activeTabKey is not set\r\n */\r\n defaultActiveTabKey?: string;\r\n /**\r\n * Content to render in the top-right corner of the card\r\n */\r\n extra?: ReactNode;\r\n /**\r\n * Lift up when hovering card\r\n */\r\n hoverable?: boolean;\r\n /**\r\n * Shows a loading indicator while the contents of the card are being fetched\r\n */\r\n loading?: boolean;\r\n /**\r\n * Mark item as selected\r\n */\r\n selected?: boolean;\r\n /**\r\n * Size of card\r\n */\r\n size?: 'default' | 'small';\r\n /**\r\n * Extra content in tab bar\r\n */\r\n tabBarExtraContent?: ReactNode;\r\n /**\r\n * List of TabPane's head\r\n */\r\n tabList?: CardTabListType[];\r\n /**\r\n * Tabs\r\n */\r\n tabProps?: TabsProps;\r\n /**\r\n * Card title\r\n */\r\n title?: ReactNode;\r\n /**\r\n * Card style type, can be set to inner or not set\r\n */\r\n type?: CardType;\r\n /**\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n /**\r\n * Callback when tab is switched\r\n */\r\n onTabChange?: (key: string) => void;\r\n children?: React.ReactNode;\r\n /**\r\n * Card width\r\n */\r\n $width?: number;\r\n /**\r\n * border color for the card\r\n */\r\n $borderColor?: 'violet' | 'gold' | 'white' | 'gray';\r\n /**\r\n * margin bottom for the card\r\n */\r\n $marginBottom?: number;\r\n /**\r\n * padding for the card\r\n */\r\n $padding?: number;\r\n /**\r\n * background color for the card\r\n */\r\n $backgroundColor?: string;\r\n /**\r\n * shadow color for the card\r\n */\r\n $shadow?: string;\r\n /**\r\n * max width for the card\r\n */\r\n $maxWidth?: number;\r\n /**\r\n * align self for the card\r\n */\r\n $alignSelf?: 'center' | 'flex-start' | 'flex-end' | 'stretch' | 'baseline';\r\n /**\r\n * margin for the card\r\n */\r\n $margin?: number | 'auto';\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrCard: React.FC<MlCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { StyledDiv } from './styles';\r\nimport { AtButton, AtNumberInput, AtText, AtTitle, AtImage } from '../../atoms';\r\nimport { OrCard } from '../OrCard';\r\n\r\nexport interface OrTicketCardProps {\r\n /**\r\n * Image source\r\n */\r\n src?: string;\r\n /**\r\n * Title children\r\n */\r\n title?: React.ReactNode;\r\n /**\r\n * Text children\r\n */\r\n description?: React.ReactNode;\r\n /**\r\n * button value\r\n */\r\n value?: number;\r\n /**\r\n * Used for setting the currently selected value for the input card custom type\r\n */\r\n inputValue?: any;\r\n /**\r\n * Button Value\r\n */\r\n buttonText?: string;\r\n /**\r\n * display input\r\n */\r\n type?: 'custom' | 'static';\r\n /**\r\n * border color for the card\r\n */\r\n $borderColor?: 'violet' | 'gold' | 'white' | 'gray';\r\n /**\r\n * On change callback\r\n */\r\n onChange?: (\r\n e:\r\n | string\r\n | React.MouseEvent<HTMLAnchorElement, MouseEvent>\r\n | React.MouseEvent<HTMLButtonElement, MouseEvent>\r\n | number\r\n | null,\r\n ) => void;\r\n}\r\n\r\nexport const OrTicketCard: React.FC<OrTicketCardProps> = ({\r\n type = 'static',\r\n ...props\r\n}) => {\r\n return (\r\n <OrCard\r\n $width={172}\r\n size=\"small\"\r\n $alignSelf=\"center\"\r\n bodyStyle={{ justifyContent: 'center' }}\r\n $padding={16}\r\n $borderColor={props.$borderColor}\r\n >\r\n <AtImage width={'100%'} src={props.src} preview={false} />\r\n <AtTitle $textAlign=\"center\" children={props.title} level={5} />\r\n <StyledDiv>\r\n <AtText\r\n $textAlign=\"center\"\r\n type=\"secondary\"\r\n children={props.description}\r\n />\r\n {type === 'custom' ? (\r\n <AtNumberInput\r\n $width=\"100%\"\r\n onChange={props.onChange}\r\n value={props.inputValue}\r\n min={1}\r\n />\r\n ) : (\r\n <AtButton\r\n type=\"primary\"\r\n value={props.buttonText}\r\n onClick={() =>\r\n props.onChange ? props.onChange(props.value ?? null) : null\r\n }\r\n />\r\n )}\r\n </StyledDiv>\r\n </OrCard>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledSubscriptionCard = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n margin: 12px 0;\r\n gap: 5px;\r\n width: 100%;\r\n`;\r\nexport const StyledContainer = styled.div`\r\n margin-left: 16px;\r\n width: 80%;\r\n`;\r\n\r\nexport const StyledContainerText = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: end;\r\n width: 20%;\r\n`;\r\n","import React from 'react';\r\nimport {\r\n StyledSubscriptionCard,\r\n StyledContainer,\r\n StyledContainerText,\r\n} from './styles';\r\nimport { AtText, AtTitle } from '../../atoms';\r\n\r\nexport interface MlSubscriptionCardProps {\r\n title: string;\r\n description: string;\r\n price: number;\r\n value: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const MlSubscriptionCard: React.FC<MlSubscriptionCardProps> = ({\r\n title,\r\n description,\r\n price,\r\n}) => {\r\n return (\r\n <StyledSubscriptionCard key={title}>\r\n <StyledContainer>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {title}\r\n </AtTitle>\r\n <AtText $width={14}>{description}</AtText>\r\n </StyledContainer>\r\n <StyledContainerText>\r\n <AtText color=\"violet\" $fontSize={20}>\r\n ${price}\r\n </AtText>\r\n </StyledContainerText>\r\n </StyledSubscriptionCard>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { MlFromItemProps } from '.';\r\nimport FormItem from 'antd/es/form/FormItem';\r\n\r\nexport const StyledFormItem = styled(FormItem)<MlFromItemProps>`\r\n ${({ $margin }) => ($margin ? `margin: ${$margin};` : '')}\r\n`;\r\n","import React from 'react';\r\nimport { NamePath, Store, StoreValue } from 'antd/es/form/interface';\r\nimport { ColProps } from 'antd';\r\nimport { RuleObject } from 'antd/es/form';\r\nimport { LabelTooltipType } from 'antd/es/form/FormItemLabel';\r\nimport { StyledFormItem } from './styles';\r\n\r\nexport interface MlFromItemProps {\r\n /**\r\n * Set the dependencies field by names\r\n */\r\n dependencies?: string[];\r\n /**\r\n * The extra prompt message. It is similar to help. Usage example: to display error message and prompt message at the same time\r\n */\r\n extra?: string;\r\n /**\r\n * Used with validateStatus, this option specifies the validation status icon. Recommended to be used only with Input\r\n */\r\n hasFeedback?: boolean;\r\n /**\r\n * The prompt message. If not provided, the prompt message will be generated by the validation rule.\r\n */\r\n help?: string;\r\n /**\r\n * Whether to hide Form.Item (still collect and validate value)\r\n */\r\n hidden?: boolean;\r\n /**\r\n * Config sub default value. Form initialValues get higher priority when conflict\r\n */\r\n initialValue?: string;\r\n /**\r\n * Label text\r\n */\r\n label?: string;\r\n /**\r\n * The layout of label. You can set span offset to something like {span: 3, offset: 12} or sm: {span: 3, offset: 12} same as with <Col>. You can set labelCol on Form which will not affect nest Item. If both exists, use Item first\r\n */\r\n labelCol?: ColProps;\r\n /**\r\n * The default validate field info\r\n */\r\n messageVariables?: Record<string, string>;\r\n /**\r\n * Field name, support array\r\n */\r\n name?: NamePath;\r\n /**\r\n * No style for true, used as a pure field control\r\n */\r\n noStyle?: boolean;\r\n /**\r\n * Normalize value from component value before passing to Form instance. Do not support async\r\n */\r\n normalize?: (\r\n value: StoreValue,\r\n prevValue: StoreValue,\r\n allValues: Store,\r\n ) => StoreValue;\r\n /**\r\n * Display required style. It will be generated by the validation rule\r\n */\r\n required?: boolean;\r\n /**\r\n * Rules for field validation. Click [here](https://ant.design/components/form#components-form-demo-basic) to see an example\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * Config tooltip info\r\n */\r\n tooltip?: LabelTooltipType;\r\n /**\r\n * The validation status. If not provided, it will be generated by validation rule. options: success warning error validating\r\n */\r\n validateStatus?: 'success' | 'warning' | 'error' | 'validating' | undefined;\r\n /**\r\n * When to validate the value of children node\r\n */\r\n validateTrigger?: string | string[] | false;\r\n /**\r\n * The layout for input controls, same as labelCol. You can set wrapperCol on Form which will not affect nest Item. If both exists, use Item first\r\n */\r\n wrapperCol?: ColProps;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Props of children node, for example, the prop of Switch is 'checked'. This prop is an encapsulation of getValueProps, which will be invalid after customizing getValueProps\r\n */\r\n valuePropName?: string;\r\n /**\r\n * margin of component\r\n */\r\n $margin?: string;\r\n /**\r\n * Specify how to get value from event or other onChange arguments\r\n */\r\n getValueFromEvent?: (e: any) => any;\r\n /**\r\n * Fullwidth button\r\n */\r\n $fullWidth?: boolean;\r\n /**\r\n * Layout of the label\r\n */\r\n layout?: 'horizontal' | 'vertical';\r\n}\r\n\r\nexport const MlFormItem: React.FC<MlFromItemProps> = ({\r\n children,\r\n hasFeedback = false,\r\n hidden = false,\r\n required = false,\r\n noStyle = false,\r\n valuePropName = 'value',\r\n getValueFromEvent,\r\n $margin,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledFormItem\r\n $margin={$margin}\r\n hasFeedback={hasFeedback}\r\n hidden={hidden}\r\n required={required}\r\n noStyle={noStyle}\r\n valuePropName={valuePropName}\r\n getValueFromEvent={getValueFromEvent}\r\n {...props}\r\n >\r\n {children}\r\n </StyledFormItem>\r\n );\r\n};\r\n","import React, { useCallback, useState } from 'react';\r\nimport { AtSelect, AtSelectProps } from '../../atoms';\r\nimport { MlFormItem } from '../MlFormItem';\r\nimport { RuleObject } from 'antd/es/form';\r\n\r\nexport interface MlAutocompleteSearchProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Google api key\r\n */\r\n GOOGLE_MAPS_API_KEY?: string;\r\n /**\r\n * Country code\r\n */\r\n country?: string;\r\n /**\r\n * Select props\r\n */\r\n selectProps?: AtSelectProps;\r\n /**\r\n * Field name\r\n */\r\n fieldName?: string;\r\n /**\r\n * Rules\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * Custom options\r\n */\r\n customOptions?: AtSelectProps['options'];\r\n /**\r\n * Fetch place details\r\n */\r\n fetchPlaceDetails?: (id: any) => any;\r\n /**\r\n * Default options\r\n */\r\n defaultOptions?: AtSelectProps['options'];\r\n /**\r\n * Callback function that is fired when input changed in order to fetch places\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelectValue?: AtSelectProps['onSelect'];\r\n}\r\n\r\nexport const MlAutocompleteSearch: React.FC<MlAutocompleteSearchProps> = ({\r\n id,\r\n customOptions = [],\r\n fetchPlaceDetails,\r\n defaultOptions = [],\r\n onSearch,\r\n onSelectValue,\r\n ...props\r\n}) => {\r\n const [list, setList] = useState<AtSelectProps['options']>(\r\n [...customOptions, ...defaultOptions] ?? [],\r\n );\r\n\r\n const fetchSearch = useCallback(async (localInput: string) => {\r\n try {\r\n const data = onSearch ? await onSearch(localInput) : null;\r\n setList([\r\n ...(customOptions ?? []),\r\n ...data.predictions.map((prediction: any) => ({\r\n value: prediction.place_id,\r\n label: prediction.description,\r\n })),\r\n ]);\r\n } catch (error) {\r\n console.error(error);\r\n setList([]);\r\n }\r\n }, []);\r\n\r\n const onSelect: AtSelectProps['onSelect'] = async (value) => {\r\n try {\r\n const data = fetchPlaceDetails ? await fetchPlaceDetails(value) : null;\r\n onSelectValue && onSelectValue(data, value);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n return (\r\n <MlFormItem\r\n noStyle\r\n name={props.fieldName}\r\n rules={props.rules ?? ([] as RuleObject[])}\r\n >\r\n <AtSelect\r\n {...props.selectProps}\r\n id={id}\r\n filterOption={false}\r\n onSearch={fetchSearch}\r\n options={list}\r\n showSearch={true}\r\n onSelect={fetchPlaceDetails ? onSelect : undefined}\r\n />\r\n </MlFormItem>\r\n );\r\n};\r\n","import React, { ReactNode, useCallback } from 'react';\r\nimport { MlFormItem } from '../MlFormItem';\r\nimport { RuleObject } from 'antd/es/form';\r\nimport { AutoComplete } from 'antd';\r\nimport { DefaultOptionType as Option } from 'antd/es/select';\r\nimport { AutoCompleteProps } from 'antd/lib';\r\n\r\nexport interface MlAutocompleteSearchTextProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Select props\r\n */\r\n selectProps?: AutoCompleteProps;\r\n /**\r\n * Field name\r\n */\r\n fieldName?: string;\r\n /**\r\n * Rules\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * Custom options\r\n */\r\n options?: AutoCompleteProps['options'];\r\n /**\r\n * Placeholder of select\r\n */\r\n placeholder?: ReactNode;\r\n /**\r\n * Whether disabled select\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The size of the input box. Note: in the context of a form, the middle size is used\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Custom styles properties\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * Default options\r\n */\r\n defaultOptions?: AutoCompleteProps['options'];\r\n /**\r\n * Callback function that is fired when input changed in order to fetch places\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Callback function that is fired when input changed in order to fetch places\r\n */\r\n onChange?: (value: any, option: Option | Array<Option>) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelectValue?: AutoCompleteProps['onSelect'];\r\n}\r\n\r\nexport const MlAutocompleteSearchText: React.FC<\r\n MlAutocompleteSearchTextProps\r\n> = ({\r\n onSearch,\r\n onChange,\r\n onSelectValue,\r\n options,\r\n size = 'middle',\r\n ...props\r\n}) => {\r\n const [list, setList] = React.useState<AutoCompleteProps['options']>(\r\n options ?? [],\r\n );\r\n\r\n const handleSearch = useCallback(async (value: string) => {\r\n const data = onSearch ? await onSearch(value) : [];\r\n setList([...data]);\r\n }, []);\r\n\r\n const onSelect: AutoCompleteProps['onSelect'] = async (value) => {\r\n try {\r\n onSelectValue\r\n ? onSelectValue(\r\n value,\r\n list?.find((item) => item.value === value)?.fullData ?? {},\r\n )\r\n : null;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n return (\r\n <MlFormItem\r\n noStyle\r\n name={props.fieldName}\r\n rules={props.rules ?? ([] as RuleObject[])}\r\n >\r\n <AutoComplete\r\n {...props}\r\n options={list}\r\n onSelect={onSelect}\r\n onSearch={options ? onSearch : handleSearch} // condition to help the render memoization in rental\r\n onChange={onChange}\r\n size={size}\r\n />\r\n </MlFormItem>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Breadcrumb, BreadcrumbProps } from 'antd';\r\n\r\nexport interface MlBreadcrumbProps {\r\n /**\r\n * Custom item renderer\r\n */\r\n itemRender?: BreadcrumbProps['itemRender'];\r\n /**\r\n * Routing parameters\r\n */\r\n params?: Record<string, string>;\r\n /**\r\n * The routing stack information of router\r\n */\r\n items: BreadcrumbProps['items'];\r\n /**\r\n * Separator character\r\n */\r\n separator?: BreadcrumbProps['separator'];\r\n}\r\n\r\nexport const MlBreadcrumb: React.FC<MlBreadcrumbProps> = ({separator = '/', ...props}) => {\r\n return <Breadcrumb separator={separator} {...props} />;\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCard = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n margin: 12px 0;\r\n gap: 5px;\r\n`;\r\n","import React from 'react';\r\nimport { StyledCard } from './styles';\r\nimport { AtIcon, AtIconProps, AtText } from '../../atoms';\r\n\r\nexport interface MlCardIconProps {\r\n title: string;\r\n icon: AtIconProps['name'];\r\n value: string;\r\n}\r\n\r\nexport const MlCardIcon: React.FC<MlCardIconProps> = ({\r\n title,\r\n icon,\r\n value,\r\n}) => {\r\n return (\r\n <StyledCard key={value}>\r\n <AtIcon name={icon} style={{ fontSize: 20 }} />\r\n <AtText>{title}</AtText>\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Carousel } from 'antd';\r\nimport { DotPosition } from 'antd/es/carousel';\r\n\r\nexport interface MlCarouselProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Whether to scroll automatically\r\n */\r\n autoplay?: boolean;\r\n /**\r\n * Delay between each auto scroll (in milliseconds)\r\n */\r\n autoplaySpeed?: number;\r\n /**\r\n * Center elements into carousel\r\n */\r\n centerMode?: boolean;\r\n /**\r\n * The position of the dots, which can be one of top bottom left right\r\n */\r\n dotPosition?: DotPosition;\r\n /**\r\n * Whether to show the dots at the bottom of the gallery, object for dotsClass and any others\r\n */\r\n dots?: boolean;\r\n /**\r\n * Whether to wait for the animation when switching\r\n */\r\n waitForAnimate?: boolean;\r\n /**\r\n * Transition interpolation function name\r\n */\r\n easing?: string;\r\n /**\r\n * Transition effect\r\n */\r\n effect?: 'scrollx' | 'fade';\r\n /**\r\n * Callback function called after the current index changes\r\n */\r\n afterChange?: (current: number) => void;\r\n /**\r\n * Callback function called before the current index changes\r\n */\r\n beforeChange?: (current: number, next: number) => void;\r\n /**\r\n * Fade effect in transition\r\n */\r\n fade?: boolean;\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const MlCarousel: React.FC<MlCarouselProps> = ({\r\n autoplay = false,\r\n autoplaySpeed = 5000,\r\n dotPosition = 'bottom',\r\n dots = true,\r\n waitForAnimate = false,\r\n easing = 'linear',\r\n effect = 'scrollx',\r\n centerMode = true,\r\n fade = true,\r\n ...props\r\n}) => (\r\n <Carousel\r\n autoplay={autoplay}\r\n autoplaySpeed={autoplaySpeed}\r\n dotPosition={dotPosition}\r\n dots={dots}\r\n waitForAnimate={waitForAnimate}\r\n easing={easing}\r\n effect={effect}\r\n fade={fade}\r\n centerMode={centerMode}\r\n {...props}\r\n >\r\n {props.children}\r\n </Carousel>\r\n);\r\n","import { Checkbox } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { MlCheckboxGroup } from '.';\r\n\r\nexport const StyledCheckboxGroup = styled(Checkbox.Group)<MlCheckboxGroup>`\r\n ${({ $direction }) => ($direction === 'vertical' ? `\r\n .ant-checkbox-wrapper {\r\n width: 100%;\r\n margin-bottom: 8px;\r\n }\r\n ` : '')}\r\n`;","import React from 'react';\r\nimport { CheckboxGroupProps } from 'antd/es/checkbox/Group';\r\nimport { StyledCheckboxGroup } from './styles';\r\n\r\nexport interface MlCheckboxGroup {\r\n /**\r\n * Default selected value\r\n * */\r\n defaultValue?: (string | number)[];\r\n /**\r\n * If disable all checkboxes\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The name property of all input[type=\"checkbox\"] children\r\n */\r\n name?: string;\r\n /**\r\n * Specifies options\r\n */\r\n options?: CheckboxGroupProps['options'];\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: (string | number | boolean)[];\r\n /**\r\n * The callback function that is triggered when the state changes\r\n */\r\n onChange?: CheckboxGroupProps['onChange'];\r\n /**\r\n * The direction of checkbox group\r\n */\r\n $direction?: 'horizontal' | 'vertical';\r\n}\r\n\r\nexport const MlCheckboxGroup: React.FC<MlCheckboxGroup> = ({\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return <StyledCheckboxGroup disabled={disabled} {...props} />;\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { AtNumberInputProps } from '.';\r\nimport { InputNumber } from 'antd';\r\n\r\nexport const StyledInputNumber = styled(InputNumber)<AtNumberInputProps>`\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n ${({ $height }) => ($height ? `height: ${$height}` : '')};\r\n ${({ $fontSize }) => ($fontSize ? `font-size: ${$fontSize}` : '')};\r\n ${({ $textAlign }) =>\r\n $textAlign\r\n ? `\r\n .ant-input-number-input-wrap > input.ant-input-number-input {\r\n text-align: ${$textAlign};\r\n }`\r\n : ''};\r\n`;\r\n","import React, { ChangeEvent, ReactNode } from 'react';\r\nimport { ValueType } from '@rc-component/mini-decimal';\r\nimport { StyledInputNumber } from './styles';\r\nimport { InputNumberProps } from 'antd';\r\n\r\nexport interface AtNumberInputProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The label text displayed after (on the right side of) the input field\r\n */\r\n addonAfter?: ReactNode;\r\n /**\r\n * The label text displayed before (on the left side of) the input field\r\n */\r\n addonBefore?: ReactNode;\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Whether to show +- controls, or set custom arrows icon\r\n */\r\n controls?: boolean | { upIcon?: React.ReactNode; downIcon?: React.ReactNode };\r\n /**\r\n * Decimal separator\r\n */\r\n decimalSeparator?: string;\r\n /**\r\n * The initial value\r\n */\r\n defaultValue?: number;\r\n /**\r\n * If disable the input\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Specifies the format of the value presented\r\n */\r\n formatter?: InputNumberProps['formatter'];\r\n /**\r\n * If enable keyboard behavior\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * The max value\r\n */\r\n max?: number;\r\n /**\r\n * The min value\r\n */\r\n min?: number;\r\n /**\r\n * Specifies the value extracted from formatter\r\n */\r\n parser?: InputNumberProps['parser'];\r\n /**\r\n * The precision of input value. Will use formatter when config of formatter\r\n */\r\n precision?: number;\r\n /**\r\n * If readonly the input\r\n */\r\n readOnly?: boolean;\r\n /**\r\n * Set validation status\r\n */\r\n status?: 'error' | 'warning';\r\n /**\r\n * The prefix icon for the Input\r\n */\r\n prefix?: ReactNode;\r\n /**\r\n * The height of input box\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * The number to which the current value is increased or decreased. It can be an integer or decimal\r\n */\r\n step?: number | string;\r\n /**\r\n * Set value as string to support high precision decimals. Will return string value by onChange\r\n */\r\n stringMode?: boolean;\r\n /**\r\n * The current value\r\n */\r\n value?: number;\r\n /**\r\n * The callback triggered when the value is changed\r\n */\r\n onChange?: (value: number | string | null) => void;\r\n /**\r\n * The callback function that is triggered when Enter key is pressed\r\n */\r\n onPressEnter?: (e: ChangeEvent<EventTarget>) => void;\r\n /**\r\n * The callback function that is triggered when click up or down buttons\r\n */\r\n onStep?: (\r\n value: number,\r\n info: {\r\n offset: ValueType;\r\n type: 'up' | 'down';\r\n },\r\n ) => void;\r\n /**\r\n * Element width\r\n */\r\n $width?: string;\r\n /**\r\n * Element height\r\n */\r\n $height?: string;\r\n /**\r\n * Text align\r\n */\r\n $textAlign?: 'left' | 'center' | 'right';\r\n /**\r\n * Font size\r\n */\r\n $fontSize?: string;\r\n /**\r\n * on Input\r\n */\r\n onInput?: InputNumberProps['onInput'];\r\n /**\r\n * max length\r\n */\r\n maxLength?: number;\r\n /**\r\n * key down\r\n */\r\n onKeyDown?: InputNumberProps['onKeyDown'];\r\n /**\r\n * On focus\r\n */\r\n onFocus?: InputNumberProps['onFocus'];\r\n /**\r\n * placeholder\r\n */\r\n placeholder?: string;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const AtNumberInput: React.FC<AtNumberInputProps> = ({\r\n autoFocus = false,\r\n bordered = true,\r\n disabled = false,\r\n keyboard = true,\r\n max = Number.MAX_SAFE_INTEGER,\r\n min = Number.MIN_SAFE_INTEGER,\r\n readOnly = false,\r\n step = 1,\r\n stringMode = false,\r\n $width = '100%',\r\n placeholder,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledInputNumber\r\n placeholder={placeholder}\r\n type=\"number\"\r\n autoFocus={autoFocus}\r\n bordered={bordered}\r\n disabled={disabled}\r\n keyboard={keyboard}\r\n max={max}\r\n min={min}\r\n readOnly={readOnly}\r\n step={step}\r\n stringMode={stringMode}\r\n $width={$width}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCodeInput = styled.div`\r\n display: flex;\r\n gap: 10px;\r\n`;\r\n","import { useCallback, useState } from 'react';\r\n\r\ninterface UseInputOTPProps {\r\n onChange?: (value: Array<string | undefined> ) => void;\r\n}\r\n\r\nexport const useCodeInput = ({\r\n onChange,\r\n}: UseInputOTPProps) => {\r\n const [otpValue, setOtpValue] = useState<Array<string | undefined>>([]);\r\n\r\n const getSibling = useCallback(\r\n (index: number) =>\r\n ({\r\n prev: document.getElementById(\r\n `numberInput-${index - 1}`,\r\n ) as HTMLInputElement,\r\n next: document.getElementById(\r\n `numberInput-${index + 1}`,\r\n ) as HTMLInputElement,\r\n }) as Record<'prev' | 'next', (EventTarget & HTMLInputElement) | null>,\r\n [],\r\n );\r\n\r\n // * Comes from antd to make field select all value\r\n // * when clicked (focus).\r\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>) => {\r\n e?.currentTarget?.select();\r\n }, []);\r\n\r\n const handleChange = useCallback(\r\n ( index: number) => {\r\n\r\n const nextInput = getSibling(index).next;\r\n const currInput = document.getElementById(\r\n `numberInput-${index}`,\r\n ) as HTMLInputElement;\r\n const currInputIdx = index;\r\n const value: string = currInput.value;\r\n if (value.length > 1) return;\r\n\r\n if (!otpValue) return;\r\n \r\n const newOtpValue = [...otpValue];\r\n\r\n if (currInputIdx !== null && currInputIdx !== undefined) {\r\n if (value.length === 0) {\r\n newOtpValue[currInputIdx] = undefined;\r\n } else {\r\n newOtpValue[currInputIdx] = value;\r\n }\r\n }\r\n\r\n setOtpValue(newOtpValue);\r\n onChange?.(newOtpValue);\r\n\r\n if (!nextInput || !currInput || !value) return;\r\n\r\n if (nextInput) nextInput.select();\r\n else if (!nextInput) currInput.blur();\r\n },\r\n [onChange, otpValue],\r\n );\r\n\r\n const handleKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>, index: number) => {\r\n const prevInput = getSibling(index).prev;\r\n const currInput = document.getElementById(`numberInput-${index}`) as HTMLInputElement;\r\n const value: string = currInput.value;\r\n\r\n if (e.key === \"Backspace\" && !value) {\r\n if (prevInput) {\r\n prevInput.focus();\r\n prevInput.select();\r\n }\r\n }\r\n },\r\n []\r\n )\r\n\r\n return {\r\n handleChange,\r\n handleFocus,\r\n handleKeyDown,\r\n otpValue,\r\n };\r\n};\r\n","import React from 'react';\r\nimport { AtNumberInput } from '../../atoms/AtNumberInput';\r\nimport { StyledCodeInput } from './styles';\r\nimport { useCodeInput } from '../../../hooks/useCodeInput';\r\n\r\nexport interface CodeInputProps {\r\n /**\r\n * number of digits (input) to show\r\n */\r\n digits?: number;\r\n /**\r\n * The input content value\r\n */\r\n value?: number;\r\n /**\r\n * Callback when user input\r\n */\r\n onChange?: (value: Array<string | undefined>) => void;\r\n /**\r\n * font size of the input\r\n */\r\n fontSize?: string;\r\n /**\r\n * height of the input\r\n */\r\n height?: string;\r\n}\r\n\r\nexport const MlCodeInput: React.FC<CodeInputProps> = ({\r\n digits = 4,\r\n ...props\r\n}) => {\r\n const { handleChange, otpValue, handleKeyDown, handleFocus } = useCodeInput({\r\n onChange: props.onChange,\r\n });\r\n return (\r\n <StyledCodeInput>\r\n {Array.from({ length: digits }, (_, index) => (\r\n <AtNumberInput\r\n $fontSize={props.fontSize}\r\n $height={props.height}\r\n key={index}\r\n id={`numberInput-${index}`}\r\n value={Number(otpValue[index]) ?? undefined}\r\n controls={false}\r\n $textAlign=\"center\"\r\n maxLength={1}\r\n onInput={() => handleChange(index)}\r\n onFocus={handleFocus}\r\n onKeyDown={(e) => handleKeyDown(e, index)}\r\n size=\"large\"\r\n />\r\n ))}\r\n </StyledCodeInput>\r\n );\r\n};\r\n\r\nMlCodeInput.defaultProps = {\r\n digits: 4,\r\n fontSize: '40px',\r\n height: '70px',\r\n};\r\n","import React, { ReactNode } from 'react';\r\nimport { Dropdown, DropdownProps, MenuProps } from 'antd';\r\n\r\nexport interface AtDropdownProps extends DropdownProps {\r\n /**\r\n * If true, an arrow will be shown\r\n */\r\n arrow?: boolean;\r\n\r\n /**\r\n * Whether to adjust popup placement automatically in case of overflow\r\n */\r\n autoAdjustOverflow?: boolean;\r\n\r\n /**\r\n * If true, the dropdown will be disabled\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * A function used to render the dropdown menu\r\n */\r\n dropdownRender?: (menu: ReactNode) => ReactNode;\r\n\r\n /**\r\n * Style of the dropdown menu\r\n */\r\n overlayStyle?: React.CSSProperties;\r\n\r\n /**\r\n * Placement of the dropdown menu. Possible values: 'topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight'\r\n */\r\n placement?:\r\n | 'topLeft'\r\n | 'topCenter'\r\n | 'topRight'\r\n | 'bottomLeft'\r\n | 'bottomCenter'\r\n | 'bottomRight';\r\n\r\n /**\r\n * Triggers for showing the overlay. Possible values: 'click', 'hover', 'contextMenu'\r\n */\r\n trigger?: ('click' | 'hover' | 'contextMenu')[];\r\n\r\n /**\r\n * If true, the dropdown is opened\r\n */\r\n open?: boolean;\r\n\r\n /**\r\n * A function to be called when visible changes\r\n */\r\n onOpenChange?: (visible: boolean) => void;\r\n\r\n /**\r\n * Child elements of the Dropdown component\r\n */\r\n children?: ReactNode;\r\n\r\n /**\r\n * Menu items\r\n */\r\n menu?: MenuProps;\r\n\r\n /**\r\n * If true, the loading icon will be shown\r\n */\r\n loading?: boolean;\r\n\r\n /**\r\n * If true, the dropdown will be shown as a button\r\n */\r\n button?: boolean;\r\n\r\n /**\r\n * when button is true, the onClick function will be called\r\n */\r\n onClick?: () => void;\r\n}\r\n\r\nexport const MIDropdown: React.FC<AtDropdownProps> = ({\r\n arrow = false,\r\n autoAdjustOverflow = true,\r\n disabled = false,\r\n overlayStyle = {},\r\n placement = 'bottomLeft',\r\n trigger = ['hover'],\r\n loading = false,\r\n ...props\r\n}) => {\r\n if (loading || props.button) {\r\n return (\r\n <Dropdown.Button\r\n arrow={arrow}\r\n autoAdjustOverflow={autoAdjustOverflow}\r\n disabled={disabled}\r\n overlayStyle={overlayStyle}\r\n placement={placement}\r\n trigger={trigger}\r\n loading={loading}\r\n {...props}\r\n >\r\n {props.children}\r\n </Dropdown.Button>\r\n );\r\n }\r\n return (\r\n <Dropdown\r\n arrow={arrow}\r\n autoAdjustOverflow={autoAdjustOverflow}\r\n disabled={disabled}\r\n overlayStyle={overlayStyle}\r\n placement={placement}\r\n trigger={trigger}\r\n {...props}\r\n >\r\n {props.children}\r\n </Dropdown>\r\n );\r\n};\r\n\r\n\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledMlIconText = styled.div`\r\n`;\r\n","import React from 'react';\r\nimport { AtIcon, AtIconProps, AtText, AtTextProps } from '../../atoms';\r\nimport { StyledMlIconText } from './styles';\r\n\r\nexport interface MlIconTextProps {\r\n /**\r\n * The icon properties\r\n */\r\n iconProps: AtIconProps;\r\n /**\r\n * The text of the icon\r\n */\r\n text: string;\r\n /**\r\n * The text properties\r\n */\r\n textProps?: AtTextProps;\r\n}\r\n\r\nexport const MlIconText: React.FC<MlIconTextProps> = ({ iconProps: { style = {}, ...iconProps }, text, textProps = {} }) => {\r\n return <StyledMlIconText> \r\n <AtIcon {...iconProps} style={{ marginRight: 5, height: 20, ...style }} />\r\n <AtText {...textProps}>{text}</AtText>\r\n </StyledMlIconText>\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledMlInfoList = styled.div`\r\n & .description {\r\n margin-bottom: 25px;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { StyledMlInfoList } from './styles';\r\nimport { AtIcon, AtIconProps, AtText, AtTitle } from '../../atoms';\r\nimport { OrCol, OrRow } from '../../organisms';\r\nimport { MlIconText } from '../MlIconText';\r\n\r\n\r\nexport interface MlInfoListProps {\r\n /**\r\n * Component title\r\n */\r\n title?: string;\r\n /**\r\n * Component title level\r\n */\r\n titleLevel?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * Component description\r\n */\r\n description?: string;\r\n /**\r\n * List of label value pairs\r\n */\r\n items?: {icon: AtIconProps['name']; value: string | (() => React.ReactElement);}[];\r\n}\r\n\r\nexport const MlInfoList: React.FC<MlInfoListProps> = ({title, titleLevel = 4, description, items}) => {\r\n return <StyledMlInfoList>\r\n {title && <AtTitle level={titleLevel}>{title}</AtTitle>}\r\n {description && <AtText>{description}</AtText>}\r\n {items?.map((item, index) => {\r\n return <OrRow $paddingTop={10}>\r\n <OrCol span={24} key={index} style={{ flexDirection: 'row' }}>\r\n {\r\n typeof item.value === 'string' \r\n ? <MlIconText iconProps={{ name: item.icon }} text={item.value} />\r\n : <>\r\n <AtIcon name={item.icon} style={{ marginRight: 5 }}/>\r\n <>{item.value()}</>\r\n </>\r\n }\r\n </OrCol>\r\n </OrRow>;\r\n })}\r\n </StyledMlInfoList>;\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\nimport List from 'antd/es/list';\r\nimport { LabeledValue } from 'antd/es/select';\r\n\r\nexport const StyledList = styled(List<LabeledValue>)`\r\n & .ant-form-item-label{\r\n padding-top: 10px;\r\n }\r\n\r\n & .add-btn{\r\n margin: 0 auto;\r\n display: flex;\r\n }\r\n \r\n & .ant-form-item {\r\n margin-bottom: 0;\r\n }\r\n\r\n & .ant-form-item .ant-list-item-action li {\r\n padding: 0;\r\n }\r\n\r\n & .ant-form-item .ant-form-item-control-input-content li{\r\n padding-top: 0;\r\n }\r\n\r\n & .ant-col.ant-form-item-label {\r\n padding: 0;\r\n }\r\n\r\n & .ant-list-item .ant-list-item-action {\r\n margin-left: 5px;\r\n }\r\n \r\n & .ant-list-item .ant-select {\r\n flex: 1;\r\n }\r\n\r\n &.ant-list > button{\r\n display: flex;\r\n margin: 15px auto;\r\n margin-bottom: 0;\r\n width: 100%;\r\n }\r\n\r\n & .ant-list-empty-text {\r\n display: none!important;\r\n }\r\n`;","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { List, Skeleton } from 'antd';\r\nimport { AtButton, AtButtonProps, AtIcon, AtText, AtTextInput } from '../../atoms';\r\nimport { MlFormItem, MlFromItemProps } from '../MlFormItem';\r\nimport Form, { RuleObject } from 'antd/es/form';\r\nimport { MlAutocompleteSearch } from '../MlAutocompleteSearch';\r\nimport { LabeledValue } from 'antd/es/select';\r\nimport { OrRow } from '../../organisms';\r\nimport { StyledList } from './styles';\r\nimport { SelectProps } from 'antd';\r\n//TODO: Variant for the type text is not working properly, it needs to be fixed\r\nexport interface MlInputListProps{\r\n /**\r\n * The base key for the input list\r\n */\r\n baseKey?: string;\r\n /**\r\n * If the input list is within a form\r\n */\r\n withinForm?: boolean;\r\n /**\r\n * If the input list is loading\r\n */\r\n loading?: boolean;\r\n /**\r\n * The list of items\r\n */\r\n list: LabeledValue[];\r\n /**\r\n * The label for the input list\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * The label for the input list\r\n */\r\n label: string;\r\n /**\r\n * The main label for the input list\r\n */\r\n mainLabel?: string;\r\n /**\r\n * The type of the list item\r\n */\r\n listItemType?: 'autocomplete' | 'text';\r\n /**\r\n * The country code\r\n */\r\n country?: string,\r\n /**\r\n * The google maps api key\r\n */\r\n GOOGLE_MAPS_API_KEY?: string,\r\n /**\r\n * The placeholder for the input\r\n */\r\n placeholder?: string,\r\n /**\r\n * The text for the bottom button\r\n */\r\n bottomButtonText?: string,\r\n /**\r\n * The type for the bottom button\r\n */\r\n bottomButtonType?: AtButtonProps['type'],\r\n /**\r\n * The icon for the bottom button\r\n */\r\n bottomButtonIcon?: React.ReactNode,\r\n /**\r\n * The function to fetch the place details\r\n */\r\n fetchPlaceDetails?: (id: string) => any;\r\n /**\r\n * The minimum number of items\r\n */\r\n minItems?: number;\r\n /**\r\n * Callback function that is fired when input changed\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelect?: SelectProps['onSelect'];\r\n}\r\n\r\nexport const MlInputList: React.FC<MlInputListProps> = ({\r\n baseKey = 'MlInputList',\r\n withinForm = false,\r\n loading = false,\r\n mainLabel,\r\n label,\r\n rules,\r\n list,\r\n listItemType = 'text',\r\n country,\r\n GOOGLE_MAPS_API_KEY,\r\n placeholder,\r\n bottomButtonText = 'Add',\r\n bottomButtonType = 'dashed',\r\n bottomButtonIcon,\r\n fetchPlaceDetails,\r\n minItems = 0,\r\n onSearch, \r\n onSelect\r\n}) => {\r\n const form = Form.useFormInstance();\r\n const [lastIndex, setLastIndex] = useState(list.length);\r\n const [inputValues, setInputValues] = useState<LabeledValue[]>(\r\n () => {\r\n return list.map((item, index) => ({ label: item.label, value: item.value, key: `${baseKey}-${index}` }))\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n const map = new Map();\r\n const keys = form ? Object.keys(form.getFieldsValue()).filter((key) => key.includes(baseKey)) : [];\r\n keys.forEach((key) => {\r\n map.set(key, false);\r\n })\r\n\r\n const fieldValuesCheck: any = inputValues.reduce((acc, item, index) => {\r\n map.set(`${baseKey}-${index}`, true);\r\n return {\r\n ...acc,\r\n [`${baseKey}-${index}`]: item.value\r\n }\r\n }, {})\r\n\r\n keys.forEach((key) => {\r\n if(!map.get(key)){\r\n fieldValuesCheck[key] = undefined;\r\n }\r\n })\r\n\r\n form && form.setFieldsValue(fieldValuesCheck)\r\n }, [inputValues])\r\n\r\n const onDelete = useCallback((index: number) => {\r\n setInputValues((prev) => {\r\n return prev.length > minItems ? \r\n prev.filter((item, currentIndex) => currentIndex !== index) :\r\n prev;\r\n })\r\n }, [])\r\n\r\n const onAdd = useCallback(() => {\r\n setInputValues((prev) => {\r\n return [...prev, { label: '', value: '', key: `${baseKey}-${lastIndex}` }]\r\n })\r\n setLastIndex((prev) => prev + 1);\r\n }, [lastIndex]);\r\n\r\n const getFormItemWrapper = (item: LabeledValue, index: number): React.ReactNode => {\r\n const mlFormItemProps: MlFromItemProps = {\r\n name: `${baseKey}-${index}`,\r\n rules: rules,\r\n label: `${label} ${index + 1}`,\r\n required: rules?.some((rule) => rule.required) ? true : false,\r\n }\r\n\r\n if(item.value) mlFormItemProps.initialValue = item.value as string;\r\n\r\n return <MlFormItem\r\n key={`${baseKey}-${index}`}\r\n {...mlFormItemProps}\r\n >\r\n {getListItem(item, index)}\r\n </MlFormItem>\r\n }\r\n\r\n const getListItem = (item: LabeledValue, index: number): React.ReactNode => {\r\n return <List.Item\r\n actions={[<AtButton icon={<AtIcon name='DeleteOutlined' />} onClick={() => onDelete(index)} />]}\r\n >\r\n {\r\n listItemType === 'text' ?\r\n <AtTextInput\r\n id={`${baseKey}-list-${item.key}`}\r\n value={item.label as string}\r\n onChange={(e) => {\r\n setInputValues((prev) => {\r\n return prev.map((prevItem) => {\r\n if (prevItem.key === item.key) {\r\n return { ...prevItem, value: e.target.value }\r\n }\r\n return prevItem;\r\n })\r\n })\r\n }}\r\n /> :\r\n <MlAutocompleteSearch\r\n id={`${baseKey}-list-${item.key}`}\r\n fieldName={`${baseKey}-${index}`}\r\n country={country}\r\n GOOGLE_MAPS_API_KEY={GOOGLE_MAPS_API_KEY}\r\n onSearch={onSearch}\r\n fetchPlaceDetails={fetchPlaceDetails}\r\n onSelectValue={(value, place_id) => {\r\n onSelect && onSelect(value, place_id)\r\n setInputValues((prev) => {\r\n return prev.map((prevItem) => {\r\n if (prevItem.key === item.key) {\r\n return { ...prevItem, value: value.place_id, label: value.name}\r\n }\r\n return prevItem;\r\n })\r\n })\r\n }}\r\n defaultOptions={item.value !== \"\" ? [ item ] : []}\r\n selectProps={{ \r\n placeholder: placeholder,\r\n }}\r\n />\r\n }\r\n </List.Item>\r\n }\r\n\r\n const getRenderItem = useCallback((item: LabeledValue, index: number) => {\r\n return withinForm ?\r\n getFormItemWrapper(item, index) :\r\n getListItem(item, index);\r\n }, [withinForm])\r\n\r\n return (\r\n <>\r\n {mainLabel && \r\n <OrRow $paddingBottom={20}>\r\n <AtText>{mainLabel}</AtText>\r\n </OrRow>\r\n }\r\n <StyledList\r\n className=\"input-list\"\r\n loading={loading}\r\n itemLayout=\"horizontal\"\r\n loadMore={\r\n loading ? \r\n <Skeleton avatar title={false} paragraph={{ rows: 1 }} active /> : \r\n <AtButton \r\n value={bottomButtonText} \r\n type={bottomButtonType}\r\n onClick={onAdd}\r\n icon={bottomButtonIcon}\r\n />\r\n }\r\n dataSource={inputValues}\r\n renderItem={getRenderItem}\r\n />\r\n </>\r\n );\r\n};","import { styled } from 'styled-components';\r\nimport {MlLoadingProps} from '.';\r\n\r\nexport const Container = styled.div<MlLoadingProps>`\r\n width: 100%;\r\n height: 100vh;\r\n ${({ $zIndex }) => ($zIndex ? `z-index: ${$zIndex};` : '')}\r\n background-color: #fafafa4d;\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n`;\r\n\r\nexport const LoadingContainer = styled.div`\r\n width: 25%;\r\n height: 25%;\r\n`;\r\n","import React from 'react';\r\nimport { Container, LoadingContainer } from './styles';\r\nimport Lottie from 'lottie-react';\r\nimport Loading from '../../../assets/lootieFiles/loading.json';\r\n\r\nexport interface MlLoadingProps {\r\n /**\r\n * zIndex of the loading\r\n */\r\n $zIndex?: number;\r\n}\r\n\r\nexport const MlLoading: React.FC<MlLoadingProps> = (props: MlLoadingProps) => {\r\n return (\r\n <Container {...props}>\r\n <LoadingContainer>\r\n <Lottie animationData={Loading} loop={true} />\r\n </LoadingContainer>\r\n </Container>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Pagination, PaginationProps } from 'antd';\r\n\r\nexport interface MlPaginationProps {\r\n /**\r\n * Current page number. (Controlled)\r\n */\r\n current?: number;\r\n\r\n /**\r\n * Default initial page number when the component is uncontrolled.\r\n */\r\n defaultCurrent?: number;\r\n\r\n /**\r\n * Default number of data items per page when the component is uncontrolled.\r\n */\r\n defaultPageSize?: number;\r\n\r\n /**\r\n * Disable pagination interaction.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Whether to hide the pager when there is only one page of data.\r\n */\r\n hideOnSinglePage?: boolean;\r\n\r\n /**\r\n * To customize the HTML content of the pagination item.\r\n * @param page The current page number.\r\n * @param type Type of the pagination item: 'page', 'prev', or 'next'.\r\n * @param originalElement The original React element.\r\n */\r\n itemRender?: PaginationProps['itemRender'];\r\n\r\n /**\r\n * Number of data items per page.\r\n */\r\n pageSize?: number;\r\n\r\n /**\r\n * Specify the size changer options for the pageSize select.\r\n */\r\n pageSizeOptions?: string[] | number[];\r\n\r\n /**\r\n * If true and size is not specified, the pagination will resize according to the window width.\r\n */\r\n responsive?: boolean;\r\n\r\n /**\r\n * Show fewer page items.\r\n */\r\n showLessItems?: boolean;\r\n\r\n /**\r\n * Determine whether to show the quick jumper input to directly jump to pages.\r\n * Can also be an object with the 'goButton' prop to customize the go button.\r\n */\r\n showQuickJumper?: boolean | { goButton: React.ReactNode };\r\n\r\n /**\r\n * Determine whether to show the pageSize select.\r\n * It will be true when the total number of items is greater than 50.\r\n */\r\n showSizeChanger?: boolean;\r\n\r\n /**\r\n * Show title for the page item.\r\n */\r\n showTitle?: boolean;\r\n\r\n /**\r\n * Custom function to display the total number of data items and the current range displayed.\r\n * @param total Total number of data items.\r\n * @param range Range of data items currently displayed, represented as [start, end].\r\n */\r\n showTotal?: (total: number, range: [number, number]) => React.ReactNode;\r\n\r\n /**\r\n * Whether to use simple mode for the pagination.\r\n */\r\n simple?: boolean;\r\n\r\n /**\r\n * Specify the size of the pagination component.\r\n * Can be set to 'default' or 'small'.\r\n */\r\n size?: 'default' | 'small';\r\n\r\n /**\r\n * Total number of data items.\r\n */\r\n total?: PaginationProps['total'];\r\n\r\n /**\r\n * Called when the page number or pageSize is changed.\r\n * @param page The resulting page number.\r\n * @param pageSize The resulting number of data items per page.\r\n */\r\n onChange?: (page: number, pageSize: number) => void;\r\n\r\n /**\r\n * Called when the pageSize is changed.\r\n * @param current The current page number.\r\n * @param size The new number of data items per page.\r\n */\r\n onShowSizeChange?: (current: number, size: number) => void;\r\n}\r\n\r\nexport const MlPagination: React.FC<MlPaginationProps> = ({defaultCurrent = 1, ...props}) => {\r\n return <Pagination defaultCurrent={defaultCurrent} {...props} />\r\n}\r\n\r\n","import { Radio } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { MlRadioGroupProps } from '.';\r\n\r\nexport const StyledRadioGroup = styled(Radio.Group)<MlRadioGroupProps>`\r\n ${({ orientation }) =>\r\n orientation === 'vertical' &&\r\n `&{\r\n flex-direction: column!important;\r\n display: flex!important;\r\n }`}\r\n\r\n ${({ fullWidth }) =>\r\n fullWidth\r\n ? ` .ant-radio-wrapper span.ant-radio+* {\r\n width: 100%;}`\r\n : ''}\r\n\r\n ${({ bordered, padding }) =>\r\n bordered\r\n ? `\r\n .ant-radio-wrapper {\r\n border: 1px solid #d9d9d9;\r\n border-radius: 10px;\r\n padding: ${padding};\r\n margin-bottom: 12px;\r\n width: 100%;\r\n }\r\n `\r\n : ''}\r\n\r\n ${({ cardChecked }) =>\r\n cardChecked\r\n ? ` \r\n .ant-radio-wrapper-checked {\r\n border: 1px solid #531DAB;\r\n }\r\n \r\n .ant-radio {\r\n position: absolute;\r\n left: -9999px;\r\n overflow: hidden;\r\n }`\r\n : ''}\r\n \r\n ${({ cardsIconOrientation }) =>\r\n cardsIconOrientation === 'row' &&\r\n `&{\r\n flex-direction: row!important;\r\n display: flex!important;\r\n }`}\r\n`;\r\n","import React, { ReactNode } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport { StyledRadioGroup } from './styles';\r\n\r\nexport interface MlRadioGroupProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The style type of radio button\r\n */\r\n buttonStyle?: 'outline' | 'solid';\r\n /**\r\n * Default selected value\r\n */\r\n defaultValue?: any;\r\n /**\r\n * Disable all radio buttons\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The name property of all input[type=\"radio\"] children\r\n */\r\n name?: string;\r\n /**\r\n * Set children optional\r\n */\r\n options?:\r\n | string[]\r\n | number[]\r\n | Array<{ label: ReactNode; value: string; disabled?: boolean }>;\r\n /**\r\n * Set Radio optionType\r\n */\r\n optionType?: 'default' | 'button';\r\n /**\r\n * The size of radio button style\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n /**\r\n * The callback function that is triggered when the state changes\r\n */\r\n onChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * border box\r\n */\r\n bordered?: boolean;\r\n /**\r\n * padding\r\n */\r\n padding?: string;\r\n /**\r\n * orientation\r\n */\r\n orientation?: 'horizontal' | 'vertical';\r\n /**\r\n * card icons group direction\r\n */\r\n cardsIconOrientation?: 'row' | 'column';\r\n /**\r\n * full width\r\n */\r\n fullWidth?: boolean;\r\n /**\r\n * display card checked border\r\n */\r\n cardChecked?: boolean;\r\n}\r\n\r\nexport const MlRadioGroup: React.FC<MlRadioGroupProps> = ({\r\n buttonStyle = 'outline',\r\n disabled = false,\r\n optionType = 'default',\r\n size = 'middle',\r\n padding = '5px 10px',\r\n orientation = 'horizontal',\r\n fullWidth = false,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledRadioGroup\r\n fullWidth={fullWidth}\r\n orientation={orientation}\r\n buttonStyle={buttonStyle}\r\n disabled={disabled}\r\n optionType={optionType}\r\n size={size}\r\n padding={padding}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import React, { ChangeEvent, ReactNode } from 'react';\r\nimport { Input } from 'antd';\r\n\r\nexport interface AtTextInputProps {\r\n /**\r\n * The label text displayed after (on the right side of) the input field\r\n */\r\n addonAfter?: ReactNode;\r\n /**\r\n * The label text displayed before (on the left side of) the input field\r\n */\r\n addonBefore?: ReactNode;\r\n /**\r\n * If allow to remove input content with clear icon\r\n */\r\n allowClear?: boolean | { clearIcon?: ReactNode };\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * The initial input content\r\n */\r\n defaultValue?: string;\r\n /**\r\n * Whether the input is disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The maximum number of characters in Input\r\n */\r\n maxLength?: number;\r\n /**\r\n * Set validation status\r\n */\r\n status?: 'error' | 'warning' | undefined;\r\n /**\r\n * Whether to show character count\r\n */\r\n showCount?: boolean;\r\n /**\r\n * Placeholder text to display into the input\r\n */\r\n placeholder?: string;\r\n /**\r\n * The prefix icon for the Input\r\n */\r\n prefix?: ReactNode;\r\n /**\r\n * The size of the input box. Note: in the context of a form, the middle size is used\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * The suffix icon for the Input\r\n */\r\n suffix?: ReactNode;\r\n /**\r\n * The input content value\r\n */\r\n value?: string;\r\n /**\r\n * Callback when user input\r\n */\r\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const AtTextInput: React.FC<AtTextInputProps> = ({\r\n allowClear = false,\r\n bordered = true,\r\n size = 'middle',\r\n status,\r\n disabled = false,\r\n showCount = false,\r\n placeholder,\r\n ...props\r\n}) => {\r\n return <Input\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n bordered={bordered}\r\n size={size}\r\n status={status}\r\n disabled={disabled}\r\n showCount={showCount}\r\n {...props} />;\r\n};\r\n","import React from 'react';\r\nimport { AtTextInputProps } from '../../atoms/AtTextInput';\r\nimport { Input } from 'antd';\r\n\r\nexport interface MlSearchBoxProps extends AtTextInputProps {\r\n /**\r\n * Prefix on search Input\r\n */\r\n inputPrefixCls?: string;\r\n /**\r\n * On search function\r\n */\r\n onSearch?: (\r\n value: string,\r\n event?:\r\n | React.ChangeEvent<HTMLInputElement>\r\n | React.MouseEvent<HTMLElement>\r\n | React.KeyboardEvent<HTMLInputElement>,\r\n ) => void;\r\n /**\r\n * Input loading on search\r\n */\r\n loading?: boolean;\r\n /**\r\n * Element for enter button\r\n */\r\n enterButton?: React.ReactNode;\r\n}\r\n\r\nexport const MlSearchBox: React.FC<MlSearchBoxProps> = ({\r\n allowClear = false,\r\n bordered = true,\r\n disabled = false,\r\n showCount = false,\r\n loading = false,\r\n ...props\r\n}) => {\r\n return (\r\n <Input.Search\r\n allowClear={allowClear}\r\n bordered={bordered}\r\n disabled={disabled}\r\n showCount={showCount}\r\n loading={loading}\r\n {...props}\r\n type=\"search\"\r\n />\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCard = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n margin: 12px 0;\r\n gap: 5px;\r\n width: 100%;\r\n`;\r\nexport const StyledContainer = styled.div`\r\n margin-left: 16px;\r\n width: 80%;\r\n`;\r\n\r\nexport const StyledContainerText = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n min-width: 60px;\r\n height: 60px;\r\n border-radius: 50%;\r\n background-color: #6c369c;\r\n`;\r\n","import React from 'react';\r\nimport { StyledCard, StyledContainer, StyledContainerText } from './styles';\r\nimport { AtText, AtTitle } from '../../atoms';\r\n\r\nexport interface MlServicesCardProps {\r\n title: string;\r\n description: string;\r\n price: number;\r\n value: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const MlServicesCard: React.FC<MlServicesCardProps> = ({\r\n title,\r\n description,\r\n price,\r\n}) => {\r\n return (\r\n <StyledCard key={title}>\r\n <StyledContainerText>\r\n <AtText color=\"white\" $fontSize={20}>\r\n {price}\r\n </AtText>\r\n </StyledContainerText>\r\n <StyledContainer>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {title}\r\n </AtTitle>\r\n <AtText $width={14}>{description}</AtText>\r\n </StyledContainer>\r\n </StyledCard>\r\n );\r\n};\r\n","import { Tooltip, TooltipProps } from 'antd';\r\nimport React from 'react';\r\n\r\nexport interface MlTooltipProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Tooltip text\r\n */\r\n title?: TooltipProps['title'];\r\n /**\r\n * Tooltip trigger mode. Could be multiple by passing an array\r\n */\r\n trigger?: TooltipProps['trigger'];\r\n /**\r\n * The position of the tooltip relative to the target, which can be one of top left right bottom topLeft topRight bottomLeft bottomRight leftTop leftBottom rightTop rightBottom\r\n */\r\n placement?: TooltipProps['placement'];\r\n}\r\n\r\nexport const MlTooltip: React.FC<MlTooltipProps> = ({ children, ...props }) => {\r\n return <Tooltip {...props}>{children}</Tooltip>;\r\n};\r\n","import { Upload } from \"antd\";\r\nimport { styled } from \"styled-components\";\r\nimport { MlUploadProps } from \".\";\r\n\r\nexport const StyledUpload = styled(Upload)<MlUploadProps>`\r\n & .ant-upload.ant-upload-select {\r\n ${({ $fullWidth }) => ($fullWidth ? 'width: 100%' : '')};\r\n }\r\n`;","import { UploadProps } from 'antd';\r\nimport { useCallback } from 'react';\r\nimport { AtButton, AtIcon, AtText } from '../../atoms';\r\nimport { StyledUpload } from './styles';\r\nimport { OrCol } from '../../organisms';\r\nimport Dragger from 'antd/lib/upload/Dragger';\r\n\r\nexport interface MlUploadProps extends UploadProps {\r\n /**\r\n * The type of upload\r\n */\r\n mode?: 'drag' | 'basic';\r\n /**\r\n * The title of the upload\r\n */\r\n title?: string;\r\n /**\r\n * The hint of the upload\r\n */\r\n hint?: string;\r\n /**\r\n * The width of the upload\r\n */\r\n $fullWidth?: boolean;\r\n /**\r\n * The maximum number of files to upload\r\n */\r\n maxCount?: number;\r\n /**\r\n * The name of the field\r\n */\r\n fieldName?: string;\r\n /**\r\n * The type of the list\r\n */\r\n listType?: UploadProps['listType'];\r\n /**\r\n * The list of files\r\n */\r\n fileList?: [any];\r\n}\r\n\r\nexport const MlUpload: React.FC<MlUploadProps> = ({\r\n mode,\r\n title,\r\n hint,\r\n fileList,\r\n ...props\r\n}) => {\r\n const dummyRequest: UploadProps['customRequest'] = useCallback(\r\n (options: any) => {\r\n setTimeout(() => {\r\n if (options.onSuccess) options.onSuccess('ok');\r\n }, 0);\r\n },\r\n [],\r\n );\r\n\r\n const getUploadComponent = useCallback(\r\n ({ mode, title, hint, $fullWidth, ...props }: MlUploadProps) => {\r\n if (mode === 'drag') {\r\n return (\r\n <Dragger\r\n name={`${props.fieldName ?? 'Upload'}File`}\r\n customRequest={dummyRequest}\r\n {...props}\r\n >\r\n <AtIcon\r\n style={{ fontSize: 36, color: '#6C369C' }}\r\n name=\"InboxOutlined\"\r\n />\r\n <OrCol $paddingTop={15}>\r\n {title && <AtText strong={false}>{title}</AtText>}\r\n {hint && <AtText type=\"secondary\">{hint}</AtText>}\r\n </OrCol>\r\n </Dragger>\r\n );\r\n } else {\r\n return (\r\n <StyledUpload\r\n name={`${props.fieldName ?? 'Upload'}File`}\r\n customRequest={dummyRequest}\r\n $fullWidth={$fullWidth}\r\n fileList={fileList}\r\n isImageUrl={(file) => {\r\n const fileAux = fileList?.find((f) => f.uid === file.uid);\r\n let isValid = true;\r\n if (fileAux && fileAux.isImage === false) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n }}\r\n {...props}\r\n >\r\n <AtButton\r\n $fullWidth={$fullWidth}\r\n icon={<AtIcon name=\"UploadOutlined\" />}\r\n value={title}\r\n />\r\n </StyledUpload>\r\n );\r\n }\r\n },\r\n [props],\r\n );\r\n\r\n return getUploadComponent({ mode, title, hint, ...props });\r\n};\r\n","export * from './MlAutocompleteSearch';\nexport * from './MlAutocompleteSearchText';\nexport * from './MlBreadCrumb';\nexport * from './MlCardIcon';\nexport * from './MlCarousel';\nexport * from './MlCheckboxGroup';\nexport * from './MlCodeInput';\nexport * from './MlDropdown';\nexport * from './MlFormItem';\nexport * from './MlIconText';\nexport * from './MlInfoList';\nexport * from './MlInputList';\nexport * from './MlLoading';\nexport * from './MlPagination';\nexport * from './MlPlanCard';\nexport * from './MlRadioGroup';\nexport * from './MlSearchBox';\nexport * from './MlServicesCard';\nexport * from './MlSubscriptionCard';\nexport * from './MlTooltip';\nexport * from './MlUpload';\n","import React, { useMemo } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport {\r\n MlRadioGroup,\r\n MlSubscriptionCard,\r\n MlSubscriptionCardProps,\r\n} from '../../molecules';\r\nimport { OrActiveCards } from '../OrActiveCards';\r\n\r\nexport interface OrPlanCardsProps {\r\n /**\r\n * Active subscriptions\r\n */\r\n activeSubscriptions?: Array<{ title: string; description: string }>;\r\n /**\r\n * subscriptions onChange event\r\n */\r\n subscriptionOnChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * Plans and Subscriptions\r\n */\r\n subscriptions: Array<MlSubscriptionCardProps>;\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n}\r\n\r\nexport const OrPlanCards: React.FC<OrPlanCardsProps> = ({\r\n subscriptions,\r\n activeSubscriptions,\r\n subscriptionOnChange,\r\n value,\r\n}) => {\r\n const subscriptionFixed = useMemo(\r\n () =>\r\n subscriptions.map((subscription) => ({\r\n label: <MlSubscriptionCard {...subscription} />,\r\n value: subscription.value,\r\n disabled: subscription.disabled,\r\n })),\r\n [subscriptions],\r\n );\r\n return (\r\n <>\r\n <OrActiveCards items={activeSubscriptions} type=\"secondary\" />\r\n <MlRadioGroup\r\n onChange={subscriptionOnChange}\r\n options={subscriptionFixed}\r\n bordered\r\n size=\"large\"\r\n fullWidth={true}\r\n padding=\"24px\"\r\n value={value}\r\n />\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCoinsContainer = styled.div`\r\n display: grid;\r\n grid-template-columns: repeat(3, 1fr);\r\n gap: 16px;\r\n`;\r\n","import React from 'react';\r\nimport { OrTicketCardProps, OrTicketCard } from '../OrTicketCard';\r\nimport { StyledCoinsContainer } from './styles';\r\n\r\nexport interface OrCoinTableProps {\r\n /**\r\n * List of coins available\r\n */\r\n coinsAvailable: Array<OrTicketCardProps>;\r\n /**\r\n * coins onClick | onChange event\r\n */\r\n coinsOnChange?: OrTicketCardProps['onChange'];\r\n /**\r\n * item selected\r\n */\r\n itemSelected?: number;\r\n /**\r\n * Used for setting the currently selected value for the input card custom type\r\n */\r\n inputValue?: any;\r\n}\r\n\r\nexport const OrCoinTable: React.FC<OrCoinTableProps> = ({\r\n coinsAvailable,\r\n coinsOnChange,\r\n itemSelected,\r\n inputValue,\r\n}) => {\r\n return (\r\n <StyledCoinsContainer>\r\n {coinsAvailable?.map((coinDetails, i) => {\r\n return (\r\n <OrTicketCard\r\n $borderColor={itemSelected === i ? 'violet' : 'gray'}\r\n key={i}\r\n {...coinDetails}\r\n onChange={coinsOnChange}\r\n inputValue={inputValue}\r\n />\r\n );\r\n })}\r\n </StyledCoinsContainer>\r\n );\r\n};\r\n","import { AtTitle } from '../../atoms';\r\nimport { OrActiveCards } from '../OrActiveCards';\r\nimport { OrCoinTable } from '../OrCoinTable';\r\nimport { OrTicketCardProps } from '../OrTicketCard';\r\n\r\nexport interface OrTicketsProps {\r\n /**\r\n * Tickets Title\r\n */\r\n title?: string;\r\n /**\r\n * Active Tickets\r\n */\r\n activeTickets?: Array<{ title: string; description: string }>;\r\n /**\r\n * Coins available\r\n */\r\n coinsAvailable: Array<OrTicketCardProps>;\r\n /**\r\n * coins onClick | onChange event\r\n */\r\n onChange?: OrTicketCardProps['onChange'];\r\n /**\r\n * item selected\r\n */\r\n itemSelected?: number;\r\n /**\r\n * Used for setting the currently selected value for the input card custom type\r\n */\r\n inputValue?: any;\r\n}\r\n\r\nexport const OrTickets: React.FC<OrTicketsProps> = ({\r\n itemSelected,\r\n title,\r\n activeTickets,\r\n onChange,\r\n coinsAvailable,\r\n inputValue,\r\n}) => (\r\n <>\r\n <AtTitle level={5}>{title}</AtTitle>\r\n <OrActiveCards items={activeTickets} fontSize={16} />\r\n <OrCoinTable\r\n itemSelected={itemSelected}\r\n coinsAvailable={coinsAvailable}\r\n coinsOnChange={onChange}\r\n inputValue={inputValue}\r\n />\r\n </>\r\n);\r\n","import { styled } from 'styled-components';\r\nimport { OrRowProps } from '.';\r\nimport { Row } from 'antd';\r\n\r\nexport const StyledRow = styled(Row)<OrRowProps>`\r\n flex: 1;\r\n ${({ $backgroundColor }) =>\r\n $backgroundColor ? `background-color: ${$backgroundColor}` : ''};\r\n ${({ $backgroundSrc }) =>\r\n $backgroundSrc ? `background-image: url(${$backgroundSrc})` : ''};\r\n object-fit: cover;\r\n ${({ $paddingTop }) => ($paddingTop ? `padding-top: ${$paddingTop}px` : '')};\r\n ${({ $paddingBottom }) =>\r\n $paddingBottom ? `padding-bottom: ${$paddingBottom}px` : ''};\r\n ${({ $paddingRight }) =>\r\n $paddingRight ? `padding-right: ${$paddingRight}px` : ''};\r\n ${({ $paddingLeft }) =>\r\n $paddingLeft ? `padding-left: ${$paddingLeft}px` : ''};\r\n ${({ $paddingVertical }) =>\r\n $paddingVertical\r\n ? `padding-top: ${$paddingVertical}px; padding-bottom: ${$paddingVertical}px`\r\n : ''};\r\n ${({ $paddingHorizontal }) =>\r\n $paddingHorizontal\r\n ? `padding-left: ${$paddingHorizontal}px; padding-right: ${$paddingHorizontal}px`\r\n : ''};\r\n ${({ $gap }) => ($gap ? `gap: ${$gap}px` : '')}\r\n ${({ $gapVertical }) =>\r\n $gapVertical ? `row-gap: ${$gapVertical}px` : ''};\r\n ${({ $gapHorizontal }) =>\r\n $gapHorizontal ? `column-gap: ${$gapHorizontal}px` : ''};\r\n`;\r\n","import React from 'react';\r\nimport { Gutter } from 'antd/es/grid/row';\r\nimport { StyledRow } from './styles';\r\nimport { RowProps } from 'antd';\r\n\r\nexport interface OrRowProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Vertical alignment\r\n */\r\n align?: RowProps['align'];\r\n /**\r\n * Container background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Spacing between grids, could be a number or a object like { xs: 8, sm: 16, md: 24}. Or you can use array to make horizontal and vertical spacing work at the same time [horizontal, vertical]\r\n */\r\n gutter?: Gutter | object | [Gutter, Gutter];\r\n /**\r\n * Horizontal arrangement\r\n */\r\n justify?: RowProps['justify'];\r\n /**\r\n * Auto wrap line\r\n */\r\n wrap?: boolean;\r\n /**\r\n * Children of OrRow\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Container padding top in px\r\n */\r\n $paddingTop?: number;\r\n /**\r\n * Container padding Bottom in px\r\n */\r\n $paddingBottom?: number;\r\n /**\r\n * Container padding Right in px\r\n */\r\n $paddingRight?: number;\r\n /**\r\n * Container padding Left in px\r\n */\r\n $paddingLeft?: number;\r\n /**\r\n * Container padding Vertical in px\r\n */\r\n $paddingVertical?: number;\r\n /**\r\n * Container padding Horizontal in px\r\n */\r\n $paddingHorizontal?: number;\r\n /**\r\n * gap\r\n */\r\n $gap?: number;\r\n /**\r\n * gap vertical\r\n */\r\n $gapVertical?: number;\r\n /**\r\n * gap horizontal\r\n */\r\n $gapHorizontal?: number;\r\n /**\r\n * Custom styles properties\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * On click event\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n /**\r\n * Background color\r\n */\r\n $backgroundColor?: string;\r\n /**\r\n * Custom class name\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const OrRow: React.FC<OrRowProps> = ({\r\n align = 'top',\r\n gutter = 0,\r\n justify = 'start',\r\n wrap = true,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledRow\r\n align={align}\r\n gutter={gutter}\r\n justify={justify}\r\n wrap={wrap}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledRow>\r\n );\r\n};\r\n","import { RowProps } from \"antd\";\r\nimport { AtButton } from \"../../atoms\";\r\nimport { OrRow } from \"../OrRow\";\r\n\r\nexport interface OrTwoButtons {\r\n /**\r\n * Cancel button title\r\n */\r\n leftButtonTitle: string;\r\n /**\r\n * Confirm button title\r\n */\r\n rightButtonTitle: string;\r\n /**\r\n * Cancel onClick Event\r\n */\r\n leftButtonOnClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * Confirm onClick Event\r\n */\r\n rightButtonOnClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * gap between buttons\r\n */\r\n gap?: number;\r\n /**\r\n * justify buttons\r\n */\r\n justify?: RowProps['justify']\r\n}\r\n\r\nexport const OrTwoButtons: React.FC<OrTwoButtons> = (\r\n {\r\n leftButtonTitle, \r\n justify = 'end', \r\n leftButtonOnClick, \r\n rightButtonOnClick, \r\n rightButtonTitle, \r\n gap = 20\r\n }\r\n ) => (\r\n <OrRow wrap={false} justify={justify} $gap={gap} $paddingTop={20}>\r\n <AtButton type='default' value={leftButtonTitle} onClick={leftButtonOnClick} />\r\n <AtButton type='primary' value={rightButtonTitle} onClick={rightButtonOnClick} />\r\n </OrRow>\r\n);","import React, { ReactNode } from 'react';\r\nimport { OrTabs } from '../OrTab';\r\nimport { RadioChangeEvent, TabsProps } from 'antd';\r\nimport { OrTicketCardProps } from '../OrTicketCard';\r\nimport { MlSubscriptionCardProps } from '../../molecules/MlSubscriptionCard';\r\nimport { OrPlanCards } from '../OrPlanCards';\r\nimport { OrTickets } from '../OrTickets';\r\nimport { OrTwoButtons } from '../OrTwoButtons';\r\n\r\nexport interface OrAssignBalanceProps {\r\n /**\r\n * Tickets page title\r\n */\r\n ticketTitle: string;\r\n /**\r\n * Width of the Drawer dialog\r\n */\r\n width?: string | number;\r\n /**\r\n * The z-index of the Drawer\r\n */\r\n zIndex?: number;\r\n /**\r\n * tab1 title\r\n */\r\n firstTabTitle: ReactNode;\r\n /**\r\n * tab2 title\r\n */\r\n secondTabTitle: ReactNode;\r\n /**\r\n * Active subscriptions\r\n */\r\n activeSubscriptions?: Array<{ title: string, description: string }>\r\n /**\r\n * Active Tickets\r\n */\r\n activeTickets?: Array<{ title: string, description: string }>\r\n /**\r\n * Coins available\r\n */\r\n coinsAvailable: Array<OrTicketCardProps>\r\n /**\r\n * Cancel button title\r\n */\r\n cancelTitle: string;\r\n /**\r\n * Confirm button title\r\n */\r\n confirmTitle: string;\r\n /**\r\n * Plans and Subscriptions\r\n */\r\n subscriptions: Array<MlSubscriptionCardProps>;\r\n /**\r\n * Cancel onClick Event\r\n */\r\n cancelClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * Confirm onClick Event\r\n */\r\n confirmClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * subscriptions onChange event\r\n */\r\n subscriptionOnChange?: ((e: RadioChangeEvent) => void)\r\n /**\r\n * coins onClick | onChange event\r\n */\r\n coinsOnChange?: OrTicketCardProps['onChange']\r\n /**\r\n * item selected\r\n */\r\n coinSelected?: number;\r\n}\r\n\r\nexport const OrAssignBalance: React.FC<OrAssignBalanceProps> = (props) => {\r\n const {\r\n ticketTitle,\r\n activeSubscriptions,\r\n subscriptions,\r\n activeTickets,\r\n coinsAvailable,\r\n firstTabTitle,\r\n secondTabTitle,\r\n cancelTitle,\r\n confirmTitle,\r\n cancelClick,\r\n confirmClick,\r\n coinsOnChange,\r\n subscriptionOnChange,\r\n coinSelected\r\n } = props;\r\n\r\n const items: TabsProps['items'] = [\r\n {\r\n active: true,\r\n label: firstTabTitle,\r\n key: '1',\r\n children: <OrPlanCards activeSubscriptions={activeSubscriptions} subscriptions={subscriptions} subscriptionOnChange={subscriptionOnChange} />\r\n },\r\n {\r\n label: secondTabTitle,\r\n key: '2',\r\n children: <OrTickets itemSelected={coinSelected} title={ticketTitle} activeTickets={activeTickets} coinsAvailable={coinsAvailable} onChange={coinsOnChange} />\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n <OrTabs items={items} hideExtra />\r\n <OrTwoButtons leftButtonTitle={cancelTitle} rightButtonTitle={confirmTitle} leftButtonOnClick={cancelClick} rightButtonOnClick={confirmClick} />\r\n </>\r\n )\r\n}","import { styled } from 'styled-components';\r\nimport { OrColProps } from '.';\r\nimport { Col } from 'antd';\r\n\r\nexport const StyledCol = styled(Col)<OrColProps>`\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n ${({ $position }) => ($position ? `position: ${$position}` : '')};\r\n ${({ $gap }) => ($gap ? `gap: ${$gap}px` : '')};\r\n ${({ $gapVertical }) =>\r\n $gapVertical ? `row-gap: ${$gapVertical}px` : ''};\r\n ${({ $gapHorizontal }) =>\r\n $gapHorizontal ? `column-gap: ${$gapHorizontal}px` : ''};\r\n ${({ xs }) =>\r\n (xs as any)?.hidden === true || (xs as number) === 0\r\n ? ''\r\n : 'display: flex;'}\r\n ${({ $flexDirection }) => \r\n $flexDirection ? `flex-direction: ${$flexDirection}` : ''};\r\n ${({ $backgroundSrc }) =>\r\n $backgroundSrc ? `background-image: url(${$backgroundSrc})` : ''};\r\n ${({ $justify }) => ($justify ? `justify-content: ${$justify}` : '')};\r\n ${({ $alignItems }) => ($alignItems ? ` align-items: ${$alignItems}` : '')};\r\n ${({ xs, $paddingTop }) =>\r\n (xs as any)?.$paddingTop || $paddingTop !== undefined\r\n ? `padding-top: ${(xs as any)?.$paddingTop ?? $paddingTop}px`\r\n : ''};\r\n ${({ xs, $paddingBottom }) =>\r\n (xs as any)?.$paddingBottom || $paddingBottom !== undefined\r\n ? `padding-bottom: ${(xs as any)?.$paddingBottom ?? $paddingBottom}px`\r\n : ''};\r\n ${({ xs, $paddingRight }) =>\r\n (xs as any)?.$paddingRight || $paddingRight !== undefined\r\n ? `padding-right: ${(xs as any)?.$paddingRight ?? $paddingRight}px`\r\n : ''};\r\n ${({ xs, $paddingLeft }) =>\r\n (xs as any)?.$paddingLeft || $paddingLeft !== undefined\r\n ? `padding-left: ${(xs as any)?.$paddingLeft ?? $paddingLeft}px`\r\n : ''};\r\n ${({ xs, $paddingVertical }) =>\r\n (xs as any)?.$paddingVertical || $paddingVertical !== undefined\r\n ? `padding-top: ${\r\n (xs as any)?.$paddingVertical ?? $paddingVertical\r\n }px; padding-bottom: ${\r\n (xs as any)?.$paddingVertical ?? $paddingVertical\r\n }px`\r\n : ''};\r\n ${({ xs, $paddingHorizontal }) =>\r\n (xs as any)?.$paddingHorizontal\r\n ? `padding-left: ${\r\n (xs as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px; padding-right: ${\r\n (xs as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px`\r\n : ''};\r\n\r\n @media (min-width: 768px) {\r\n ${({ md }) =>\r\n (md as any)?.hidden === true || (md as number) === 0\r\n ? ''\r\n : 'display: flex;'}\r\n ${({ md, $paddingTop }) =>\r\n (md as any)?.$paddingTop || $paddingTop !== undefined\r\n ? `padding-top: ${(md as any)?.$paddingTop ?? $paddingTop}px`\r\n : ''};\r\n ${({ md, $paddingBottom }) =>\r\n (md as any)?.$paddingBottom || $paddingBottom !== undefined\r\n ? `padding-bottom: ${(md as any)?.$paddingBottom ?? $paddingBottom}px`\r\n : ''};\r\n ${({ md, $paddingRight }) =>\r\n (md as any)?.$paddingRight || $paddingRight !== undefined\r\n ? `padding-right: ${(md as any)?.$paddingRight ?? $paddingRight}px`\r\n : ''};\r\n ${({ md, $paddingLeft }) =>\r\n (md as any)?.$paddingLeft || $paddingLeft !== undefined\r\n ? `padding-left: ${(md as any)?.$paddingLeft ?? $paddingLeft}px`\r\n : ''};\r\n ${({ md, $paddingVertical }) =>\r\n (md as any)?.$paddingVertical || $paddingVertical !== undefined\r\n ? `padding-top: ${\r\n (md as any)?.$paddingVertical ?? $paddingVertical\r\n }px; padding-bottom: ${\r\n (md as any)?.$paddingVertical ?? $paddingVertical\r\n }px`\r\n : ''};\r\n ${({ md, $paddingHorizontal }) =>\r\n (md as any)?.$paddingHorizontal\r\n ? `padding-left: ${\r\n (md as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px; padding-right: ${\r\n (md as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px`\r\n : ''};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { StyledCol } from './styles';\r\n\r\nexport interface OrColProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Flex layout style\r\n */\r\n flex?: string | number;\r\n /**\r\n * The number of cells to offset Col from the left\r\n */\r\n offset?: number;\r\n /**\r\n * Raster order\r\n */\r\n order?: number;\r\n /**\r\n * The number of cells that raster is moved to the left\r\n */\r\n pull?: number;\r\n /**\r\n * The number of cells that raster is moved to the right\r\n */\r\n push?: number;\r\n /**\r\n * Raster number of cells to occupy, 0 corresponds to display: none\r\n */\r\n span?: number;\r\n /**\r\n * screen < 576px and also default setting, could be a span value or an object containing above props\r\n */\r\n xs?: number | object;\r\n /**\r\n * screen ≥ 576px, could be a span value or an object containing above props\r\n */\r\n sm?: number | object;\r\n /**\r\n * screen ≥ 768px, could be a span value or an object containing above props\r\n */\r\n md?: number | object;\r\n /**\r\n * screen ≥ 1200px, could be a span value or an object containing above props\r\n */\r\n xl?: number | object;\r\n /**\r\n * screen ≥ 1600px, could be a span value or an object containing above props\r\n */\r\n xxl?: number | object;\r\n /**\r\n * Children of Columns\r\n */\r\n\r\n children?: React.ReactNode;\r\n /**\r\n * Container background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Justify content\r\n */\r\n $justify?:\r\n | 'start'\r\n | 'end'\r\n | 'center'\r\n | 'space-around'\r\n | 'space-between'\r\n | 'space-evenly';\r\n /**\r\n * Container padding top in px\r\n */\r\n $paddingTop?: number;\r\n /**\r\n * Container padding Bottom in px\r\n */\r\n $paddingBottom?: number;\r\n /**\r\n * Container padding Right in px\r\n */\r\n $paddingRight?: number;\r\n /**\r\n * Container padding Left in px\r\n */\r\n $paddingLeft?: number;\r\n /**\r\n * Container padding Vertical in px\r\n */\r\n $paddingVertical?: number;\r\n /**\r\n * Container padding Horizontal in px\r\n */\r\n $paddingHorizontal?: number;\r\n /**\r\n * gap between columns\r\n */\r\n $gap?: number;\r\n /**\r\n * gap between columns horizontally\r\n */\r\n $gapVertical?: number;\r\n /**\r\n * gap between columns vertically\r\n */\r\n $gapHorizontal?: number;\r\n /**\r\n * align items\r\n */\r\n $alignItems?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';\r\n /**\r\n * Container position type (relative, absolute, fixed, sticky)\r\n */\r\n $position?: 'relative' | 'absolute' | 'fixed' | 'sticky';\r\n /**\r\n * onClick event\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n /**\r\n * Custom styles properties\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * Custom class name\r\n */\r\n className?: string;\r\n /**\r\n * Flex direction\r\n */\r\n $flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\r\n}\r\n\r\nexport const OrCol: React.FC<OrColProps> = ({\r\n offset = 0,\r\n order = 0,\r\n pull = 0,\r\n push = 0,\r\n span = 0,\r\n $gap,\r\n $flexDirection = 'column',\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCol\r\n $gap={$gap}\r\n offset={offset}\r\n order={order}\r\n pull={pull}\r\n push={push}\r\n span={span}\r\n $flexDirection={$flexDirection}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledCol>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { MlCardProps } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtAvatar, AtText } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\n\r\nexport interface OrBasicUserInfoCardProps extends MlCardProps {\r\n /**\r\n * User first name\r\n */\r\n firstName: string;\r\n /**\r\n * User last name\r\n */\r\n lastName: string;\r\n /**\r\n * User phone\r\n */\r\n phone?: string;\r\n /**\r\n * User email\r\n */\r\n email?: string;\r\n /**\r\n * User avatar\r\n */\r\n avatar?: string;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrBasicUserInfoCard: React.FC<OrBasicUserInfoCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n firstName,\r\n lastName,\r\n phone,\r\n email,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 30,\r\n marginBottom: 16,\r\n }}\r\n >\r\n <OrCol>\r\n <AtAvatar\r\n icon={`${firstName.charAt(0)}${lastName.charAt(0)}`}\r\n size=\"large\"\r\n />\r\n </OrCol>\r\n <OrCol>\r\n <AtText $fontSize={20} strong>\r\n {`${firstName} ${lastName}`}\r\n </AtText>\r\n <AtText>{phone}</AtText>\r\n <AtText>{email}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { MlCardProps } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtText } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\n\r\nexport interface MlDetailsCardProps extends MlCardProps {\r\n /**\r\n * The items to display\r\n */\r\n items?: {\r\n title: React.ReactNode;\r\n content: React.ReactNode;\r\n }[];\r\n /**\r\n * the direction of the card details\r\n */\r\n direction?: 'row' | 'column';\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrCardDetails: React.FC<MlDetailsCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n items,\r\n direction = 'row',\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n {direction === 'row' ? (\r\n <>\r\n {items?.map(({ content, title }) => {\r\n return (\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'grid',\r\n gridTemplateColumns: '30% 70%',\r\n gap: 8,\r\n marginBottom: 16,\r\n }}\r\n >\r\n <AtText $fontSize={16} strong>\r\n {title}\r\n </AtText>\r\n <OrCol $alignItems=\"end\">{content}</OrCol>\r\n </OrRow>\r\n );\r\n })}\r\n </>\r\n ) : (\r\n <>\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n }}\r\n >\r\n {items?.map(({ content, title }) => {\r\n return (\r\n <OrCol>\r\n <AtText $fontSize={16} strong>\r\n {title}\r\n </AtText>\r\n <OrCol>{content}</OrCol>\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n </>\r\n )}\r\n </StyledCard>\r\n );\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport { MlRadioGroup } from '../../molecules';\r\nimport { MlCardIcon, MlCardIconProps } from '../../molecules/MlCardIcon';\r\n\r\nexport interface OrCardIconsGroupProps {\r\n /**\r\n * options onChange event\r\n */\r\n onChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * options\r\n */\r\n options: Array<MlCardIconProps>;\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n /**\r\n * card icons group direction\r\n */\r\n cardsIconOrientation?: 'row' | 'column';\r\n /**\r\n * disable card icons\r\n */\r\n disabled?: boolean;\r\n}\r\n\r\nexport const OrCardIconsGroup: React.FC<OrCardIconsGroupProps> = ({\r\n options,\r\n onChange,\r\n value,\r\n cardsIconOrientation = 'column',\r\n disabled = false,\r\n}) => {\r\n const optionsFixed = useMemo(\r\n () =>\r\n options.map((subscription) => ({\r\n label: <MlCardIcon {...subscription} />,\r\n value: subscription.value,\r\n })),\r\n [options],\r\n );\r\n return (\r\n <>\r\n <MlRadioGroup\r\n cardsIconOrientation={cardsIconOrientation}\r\n onChange={onChange}\r\n options={optionsFixed}\r\n disabled={disabled}\r\n bordered\r\n size=\"large\"\r\n fullWidth={true}\r\n padding=\"4px 10px\"\r\n value={value}\r\n buttonStyle=\"outline\"\r\n cardChecked={true}\r\n />\r\n </>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtIcon, AtText } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\nimport { MlCardProps } from '../OrCard';\r\n\r\nexport interface MlRequestCardProps extends MlCardProps {\r\n /**\r\n * The from direction\r\n */\r\n fromText: string;\r\n /**\r\n * The to direction\r\n */\r\n toText: string;\r\n /**\r\n * The pickup time\r\n */\r\n fromTime: string;\r\n /**\r\n * The dropoff time\r\n */\r\n toTime: string;\r\n /**\r\n * vehicle spare\r\n */\r\n vehicle?: React.ReactNode;\r\n /**\r\n * The request date\r\n */\r\n date?: string;\r\n /**\r\n * The component status\r\n */\r\n leftBadgeStatus?: React.ReactNode;\r\n}\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrCardRequestSummary: React.FC<MlRequestCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n fromText,\r\n fromTime,\r\n toText,\r\n toTime,\r\n date,\r\n vehicle,\r\n leftBadgeStatus,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n <OrRow\r\n justify={'space-between'}\r\n align={'middle'}\r\n style={{ marginBottom: 8 }}\r\n >\r\n <OrCol>{leftBadgeStatus}</OrCol>\r\n <OrCol $flexDirection=\"row\" $gapHorizontal={4} $alignItems=\"center\">\r\n <AtText>{vehicle}</AtText>\r\n <AtText>{date}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n <OrRow $gapHorizontal={20} align={'middle'}>\r\n <OrCol>\r\n <AtText $fontSize={16} strong>\r\n {fromText}\r\n </AtText>\r\n <AtText>{fromTime}</AtText>\r\n </OrCol>\r\n <OrCol>\r\n <AtIcon name=\"ArrowRightOutlined\" style={{ fontSize: '22px' }} />\r\n </OrCol>\r\n <OrCol>\r\n <AtText $fontSize={16} strong>\r\n {toText}\r\n </AtText>\r\n <AtText>{toTime}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Collapse, CollapseProps } from 'antd';\r\n\r\nexport interface OrCollapseProps {\r\n /**\r\n * If true, Collapse renders as an Accordion.\r\n */\r\n accordion?: boolean;\r\n\r\n /**\r\n * Key of the active panel.\r\n * - In accordion mode, it's the key of the first panel.\r\n */\r\n activeKey?: string[] | string | number[] | number;\r\n\r\n /**\r\n * Toggles rendering of the border around the collapse block.\r\n */\r\n bordered?: boolean;\r\n\r\n /**\r\n * Specify whether the panels of children should be collapsible or the trigger area of collapsible.\r\n */\r\n collapsible?: 'header' | 'icon' | 'disabled';\r\n\r\n /**\r\n * Key of the initial active panel.\r\n */\r\n defaultActiveKey?: string[] | string | number[] | number;\r\n\r\n /**\r\n * Destroy inactive panel to improve performance.\r\n */\r\n destroyInactivePanel?: boolean;\r\n\r\n /**\r\n * Allow to customize the collapse icon.\r\n */\r\n expandIcon?: (panelProps: any) => React.ReactNode;\r\n\r\n /**\r\n * Set expand icon position.\r\n */\r\n expandIconPosition?: 'start' | 'end';\r\n\r\n /**\r\n * Make the collapse borderless and its background transparent.\r\n */\r\n ghost?: boolean;\r\n\r\n /**\r\n * Set the size of collapse.\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n\r\n /**\r\n * Callback function executed when the active panel is changed.\r\n */\r\n onChange?: (key: string | string[] | number | number[]) => void;\r\n\r\n /**\r\n * Collapse items content.\r\n * (You'll need to define ItemType according to the structure of your collapse items content).\r\n */\r\n items?: CollapseProps['items'];\r\n /**\r\n * Children of the collapse\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrCollapse: React.FC<OrCollapseProps> = ({ items, ...props }) => {\r\n return <Collapse items={items} {...props} />;\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { Layout } from 'antd';\r\nimport { OrContentProps } from '.';\r\n\r\nexport const StyledContent = styled(Layout)<OrContentProps>`\r\n ${({ $main }) => ($main ? `padding: 16px 20px;` : '')}\r\n ${({ $backgroundSrc }) => (\r\n $backgroundSrc ? `\r\n background: url(${$backgroundSrc}) no-repeat;\r\n background-size: 100% 400px;\r\n background-position: top;\r\n ` : ''\r\n )}\r\n overflow: auto;\r\n`;\r\n","import React from 'react';\r\nimport { LayoutProps } from 'antd';\r\nimport { StyledContent } from './styles';\r\n\r\nexport interface OrContentProps extends LayoutProps {\r\n /**\r\n * Is main content\r\n */\r\n $main?: boolean;\r\n /**\r\n * Image source background\r\n */\r\n $backgroundSrc?: string;\r\n}\r\n\r\nexport const OrContent: React.FC<OrContentProps> = (props) => (\r\n <StyledContent {...props}>{props.children}</StyledContent>\r\n);\r\n","import React from 'react';\r\nimport { AtText, AtTextProps } from '../../atoms/AtText';\r\n\r\nimport { OrCol, OrRow } from '..';\r\nimport { AtIcon } from '../../atoms';\r\nimport { gray } from \"../../../theme\"\r\n\r\nexport type Size = 'large' | 'middle' | 'small';\r\n\r\nconst sizes: { [key in Size]: { fontSize: number, height: number } } = {\r\n large: {\r\n fontSize: 20,\r\n height: 55\r\n },\r\n middle: {\r\n fontSize: 16,\r\n height: 48\r\n },\r\n small: {\r\n fontSize: 12,\r\n height: 30\r\n },\r\n};\r\n\r\nexport interface OrCopyInfoProps {\r\n text?: string;\r\n copyable?: boolean;\r\n size?: keyof typeof sizes\r\n id?: string;\r\n onCopy?: () => {}\r\n textProps?: AtTextProps\r\n}\r\n\r\nexport const OrCopyInfo: React.FC<OrCopyInfoProps> = ({\r\n text,\r\n copyable = true,\r\n size = \"middle\",\r\n onCopy,\r\n textProps\r\n}) => {\r\n return <OrRow\r\n $backgroundColor={gray[3]}\r\n $paddingVertical={8}\r\n $paddingHorizontal={8}\r\n justify={\"space-between\"}\r\n align={\"middle\"}\r\n style={{\r\n borderRadius: 8,\r\n height: sizes[size].height,\r\n }}>\r\n <OrCol\r\n $alignItems='center'\r\n $justify='center'\r\n flex={1}\r\n >\r\n <AtText\r\n {...textProps}\r\n $fontSize={sizes[size].fontSize}\r\n >\r\n {text}\r\n </AtText>\r\n </OrCol>\r\n {\r\n (copyable || textProps?.copyable) && <OrCol onClick={() => {\r\n navigator.clipboard.writeText(text ?? \"\")\r\n onCopy?.()\r\n }}\r\n style={{\r\n cursor: \"pointer\"\r\n }}\r\n >\r\n <AtIcon name='CopyOutlined' style={{\r\n fontSize: sizes[size].fontSize,\r\n }}\r\n height={sizes[size].fontSize}\r\n width={sizes[size].fontSize}\r\n />\r\n </OrCol>\r\n }\r\n </OrRow >\r\n\r\n};\r\n","import React from 'react';\r\nimport { OrCard } from '../../organisms';\r\nimport { AtText } from '../../atoms/AtText';\r\nimport SVG from 'react-inlinesvg';\r\nimport { OrRow, OrCol } from '../../organisms';\r\nexport interface OrCountryCardProps {\r\n /**\r\n * The ID for card\r\n */\r\n id?: string;\r\n /**\r\n * Country name\r\n **/\r\n name: string;\r\n /**\r\n * Country flag url\r\n **/\r\n flagSrc: string;\r\n /**\r\n * Mark item as selected\r\n */\r\n selected?: boolean;\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n}\r\n\r\nexport const OrCountryCard: React.FC<OrCountryCardProps> = ({\r\n selected = false,\r\n ...props\r\n}) => {\r\n return (\r\n <OrCard\r\n selected={selected}\r\n hoverable={true}\r\n bodyStyle={{ padding: '12px 24px' }}\r\n onClick={props.onClick}\r\n >\r\n <OrRow\r\n align={'middle'}\r\n justify={{ xs: 'center', md: 'start' }}\r\n gutter={24}\r\n >\r\n <OrCol>\r\n <SVG width={72} height={48} src={props.flagSrc} />\r\n </OrCol>\r\n <OrCol xs={{ offset: 1 }}>\r\n <AtText>{props.name}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n );\r\n};\r\n","import { Layout } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrLayoutProps } from '.';\r\nimport { gray, violet } from '../../../theme';\r\n\r\nexport const StyledLayout = styled(Layout)<OrLayoutProps>`\r\n ${({ $fullHeight }) => ($fullHeight ? `min-height: 100vh;` : '')}\r\n\r\n &\r\n .ant-layout-sider-children\r\n .ant-menu.ant-menu-inline-collapsed\r\n .ant-menu-submenu-selected\r\n > .ant-menu-submenu-title {\r\n color: ${gray[0]};\r\n background-color: ${violet[5]};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { StyledLayout } from './styles';\r\n\r\nexport interface OrLayoutProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Indicate if layout fill the height\r\n */\r\n $fullHeight?: boolean;\r\n /**\r\n * Whether contain Sider in children, don't have to assign it normally. Useful in ssr avoid style flickering\r\n */\r\n hasSider?: boolean;\r\n}\r\n\r\nexport const OrLayout: React.FC<OrLayoutProps> = (props) => (\r\n <StyledLayout {...props}>{props.children}</StyledLayout>\r\n);\r\n","import { Layout } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrSiderProps } from '.';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledSider = styled(Layout.Sider)<OrSiderProps>`\r\n ${({ $boxShadow }) => ($boxShadow ? `box-shadow: ${$boxShadow};` : '')}\r\n background-color: ${gray[0]} !important;\r\n`;\r\n","import React from 'react';\r\nimport { SiderProps } from 'antd';\r\nimport { StyledSider } from './styles';\r\n\r\nexport interface OrSiderProps {\r\n /**\r\n * Breakpoints of the responsive layout\r\n */\r\n breakpoint?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\r\n /**\r\n * Styled box shadow\r\n */\r\n $boxShadow?: string;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * To set the current status\tboolean\r\n */\r\n collapsed?: boolean;\r\n /**\r\n * Width of the collapsed sidebar, by setting to 0 a special trigger will appear\r\n */\r\n collapsedWidth?: number;\r\n /**\r\n * To set the initial status\r\n */\r\n defaultCollapsed?: boolean;\r\n /**\r\n * Width of the sidebar\r\n */\r\n width?: number | string;\r\n /**\r\n * The callback function, executed when breakpoints changed\r\n */\r\n onBreakpoint?: (broken: boolean) => void;\r\n /**\r\n * The callback function, executed by clicking the trigger or activating the responsive layout\r\n */\r\n onCollapse?: SiderProps['onCollapse'];\r\n}\r\n\r\nexport const OrSider: React.FC<OrSiderProps> = ({\r\n $boxShadow = '0px 2px 8px 0px rgba(0, 0, 0, 0.15);',\r\n collapsedWidth = 81,\r\n width = 200,\r\n ...props\r\n}) => (\r\n <StyledSider\r\n $boxShadow={$boxShadow}\r\n width={width}\r\n collapsedWidth={collapsedWidth}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledSider>\r\n);\r\n","import { Button } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { gray, violet } from '../../../theme';\r\n\r\nexport const CollapsedButton = styled(Button)`\r\n font-size: 16px;\r\n width: 20px !important;\r\n position: absolute;\r\n height: 66px !important;\r\n right: -19px;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto 0;\r\n background-color: ${gray[0]};\r\n border-radius: 0;\r\n\r\n & svg {\r\n font-size: 10px;\r\n }\r\n\r\n &:hover {\r\n background-color: ${gray[0]} !important;\r\n }\r\n\r\n &:after,\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n height: 0;\r\n width: 0;\r\n border-style: solid;\r\n }\r\n &:before {\r\n top: -1px;\r\n left: -2px;\r\n border-color: transparent ${gray[2]};\r\n border-width: 0px 33px 10px 0;\r\n }\r\n &:after {\r\n bottom: -1px;\r\n left: -2px;\r\n border-color: ${gray[2]} transparent;\r\n border-width: 0px 0px 10px 33px;\r\n }\r\n`;\r\n\r\nexport const LogoContainer = styled.div`\r\n height: 64px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: ${violet[8]};\r\n margin-bottom: 12px;\r\n`;\r\n\r\nexport const StyledMenuContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n height: calc(100% - 76px);\r\n overflow-y: auto;\r\n max-height: 100vh;\r\n`;\r\n","import { styled } from 'styled-components';\r\nimport { gray, violet } from '../../../theme';\r\n\r\nexport const StyledOrMenu = styled.div`\r\n & .ant-menu-submenu-selected > .ant-menu-submenu-title {\r\n color: ${violet[5]};\r\n }\r\n\r\n & .ant-menu-item {\r\n color: ${gray[12]};\r\n\r\n & path {\r\n fill: ${gray[12]};\r\n }\r\n\r\n &.ant-menu-item-selected {\r\n color: ${gray[0]};\r\n }\r\n }\r\n\r\n & .ant-menu-item-selected path {\r\n fill: ${gray[0]};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Menu, MenuProps } from 'antd';\r\nimport { StyledOrMenu } from './styles';\r\n\r\nexport interface OrMenuProps {\r\n /**\r\n * Array with the keys of default opened sub menus\r\n */\r\n defaultOpenKeys?: string[];\r\n /**\r\n * Array with the keys of default selected menu items\r\n */\r\n defaultSelectedKeys?: string[];\r\n /**\r\n * custom expand icon of submenu\r\n */\r\n expandIcon?: MenuProps['expandIcon'];\r\n /**\r\n * \tMenu item content\r\n */\r\n items?: MenuProps['items'];\r\n /**\r\n * Type of menu\r\n */\r\n mode?: 'vertical' | 'horizontal' | 'inline';\r\n /**\r\n * Allows selection of multiple items\r\n */\r\n multiple?: boolean;\r\n /**\r\n * Called when a menu item is clicked\r\n */\r\n onClick?: MenuProps['onClick'];\r\n /**\r\n * Called when a menu item is selected\r\n */\r\n onSelect?: MenuProps['onSelect'];\r\n /*\r\n * Array with the keys of opened sub menu\r\n */\r\n selectedKeys?: MenuProps['selectedKeys'];\r\n}\r\n\r\nexport const OrMenu: React.FC<OrMenuProps> = ({\r\n mode = 'vertical',\r\n multiple = false,\r\n ...props\r\n}) => {\r\n return <StyledOrMenu>\r\n <Menu mode={mode} multiple={multiple} {...props}/>\r\n </StyledOrMenu>;\r\n};\r\n","import React from 'react';\r\nimport { OrLayout } from '../OrLayout';\r\nimport { OrSider } from '../OrSider';\r\nimport { CollapsedButton, LogoContainer, StyledMenuContainer } from './styles';\r\nimport { AtIcon, AtLogo } from '../../atoms';\r\nimport { OrMenu, OrMenuProps } from '../OrMenu';\r\n\r\nexport interface OrSiderMenuProps {\r\n /**\r\n * Indicate if the menu is collapsed\r\n */\r\n collapsed?: boolean;\r\n /**\r\n * \tMenu item content\r\n */\r\n items?: OrMenuProps['items'];\r\n /**\r\n * \tBotton menu item content\r\n */\r\n bottomItems?: OrMenuProps['items'];\r\n /**\r\n * On click collapsed button\r\n */\r\n onClickCollapsed?: () => void;\r\n /**\r\n * Called when a menu item is clicked\r\n */\r\n onClick?: OrMenuProps['onClick'];\r\n /**\r\n * Called when a bottom menu item is clicked\r\n */\r\n onClickBottomItems?: OrMenuProps['onClick'];\r\n /**\r\n * Called when a menu item is selected\r\n */\r\n onSelect?: OrMenuProps['onSelect'];\r\n /*\r\n * Array with the keys of opened sub menu\r\n */\r\n selectedKeys?: OrMenuProps['selectedKeys'];\r\n backgroundTopColor?: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrSiderMenu: React.FC<OrSiderMenuProps> = ({\r\n collapsed = false,\r\n backgroundTopColor,\r\n ...props\r\n}) => {\r\n return (\r\n <OrLayout $fullHeight>\r\n <OrSider collapsed={collapsed}>\r\n\r\n <LogoContainer style={{ backgroundColor: backgroundTopColor }}>\r\n <AtLogo width={48} color=\"white\" type=\"isotype\" />\r\n </LogoContainer>\r\n\r\n <StyledMenuContainer>\r\n <OrMenu\r\n mode=\"inline\"\r\n items={props.items}\r\n selectedKeys={props.selectedKeys}\r\n onClick={props.onClick}\r\n onSelect={props.onSelect}\r\n />\r\n <OrMenu\r\n mode=\"inline\"\r\n items={props.bottomItems}\r\n onClick={props.onClickBottomItems}\r\n />\r\n </StyledMenuContainer>\r\n\r\n <CollapsedButton\r\n type=\"text\"\r\n icon={\r\n collapsed ? (\r\n <AtIcon name=\"RightOutlined\" />\r\n ) : (\r\n <AtIcon name=\"LeftOutlined\" />\r\n )\r\n }\r\n onClick={props.onClickCollapsed}\r\n />\r\n </OrSider>\r\n <OrLayout>{props.children}</OrLayout>\r\n </OrLayout>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { Layout } from 'antd';\r\nimport { OrHeaderProps } from '.';\r\n\r\n\r\nexport const StyledHeader = styled(Layout.Header)<OrHeaderProps>`\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n ${({$backgroundColor})=>$backgroundColor ? `background-color: ${$backgroundColor};` : ''}\r\n\r\n @media (max-width: 805px) {\r\n ${({hideHeaderMobile})=>hideHeaderMobile ? 'display: none;' : ''}\r\n }\r\n`;\r\n\r\nexport const AvatarContainer = styled.div`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n`;","import React, { ReactNode } from 'react';\r\nimport { Space, SpaceProps } from 'antd';\r\n\r\nexport interface AtSpaceProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Align items\r\n */\r\n align?: 'start' | 'end' | 'center' | 'baseline';\r\n /**\r\n * The space direction\r\n */\r\n direction?: 'vertical' | 'horizontal';\r\n /**\r\n * The space size\r\n */\r\n size?: SpaceProps['size'];\r\n /**\r\n * Set split\r\n */\r\n split?: ReactNode;\r\n /**\r\n * Auto wrap line, when horizontal effective\r\n */\r\n wrap?: boolean;\r\n /**\r\n * Children of the OrSpace\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * width of the OrSpace\r\n */\r\n $width?: string;\r\n}\r\n\r\nexport const OrSpace: React.FC<AtSpaceProps> = ({\r\n direction = 'horizontal',\r\n size = 'small',\r\n wrap = false,\r\n $width,\r\n ...props\r\n}) => {\r\n return (\r\n <Space\r\n style={{ width: $width }}\r\n direction={direction}\r\n size={size}\r\n wrap={wrap}\r\n {...props}\r\n >\r\n {props.children}\r\n </Space>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n AtAvatar,\r\n AtButton,\r\n AtSelect,\r\n AtText,\r\n AtSelectProps,\r\n AtLogo,\r\n} from '../../atoms';\r\nimport { AvatarContainer, StyledHeader } from './styles';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrSpace } from '../OrSpace';\r\nimport { LogoContainer } from '../OrSiderMenu/styles';\r\n\r\nexport interface OrHeaderProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * option for select\r\n */\r\n countrySelectOptions?: { value: string; label: string; icon?: JSX.Element }[];\r\n /**\r\n * Default Value for select\r\n */\r\n selectValue?: string;\r\n /**\r\n * Placeholder for select\r\n */\r\n selectPlaceholder?: string;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelect?: AtSelectProps['onChange'];\r\n /**\r\n * buttons options\r\n */\r\n navItems?: {\r\n value?: string;\r\n label?: string;\r\n icon: JSX.Element;\r\n onclick?: React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>;\r\n }[];\r\n /**\r\n * Avatar image\r\n */\r\n avatar?: string;\r\n /**\r\n * Avatar name\r\n */\r\n avatarName?: string;\r\n /**\r\n * Avatar click\r\n */\r\n onClickAvatar?: React.MouseEventHandler<HTMLDivElement> | undefined;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /*\r\n * Background color\r\n */\r\n $backgroundColor?: string;\r\n /**\r\n * Extra information\r\n */\r\n extraInfo?: string;\r\n /**\r\n * Show logo\r\n */\r\n showLogo?: boolean;\r\n /**\r\n * Hide header on mobile\r\n */\r\n hideHeaderMobile?: boolean;\r\n /**\r\n * Logo color\r\n */\r\n logoColor?: 'violet' | 'gold' | 'white';\r\n}\r\n\r\nexport const OrHeader: React.FC<OrHeaderProps> = ({logoColor = 'white', ...props}) => (\r\n <StyledHeader $backgroundColor={props.$backgroundColor} hideHeaderMobile={props.hideHeaderMobile}>\r\n <OrRow justify={'space-between'} align={'middle'}>\r\n {props.showLogo && <LogoContainer style={{ backgroundColor: props.$backgroundColor, marginBottom: 0 }}>\r\n <AtLogo width={48} color={logoColor} type=\"isotype\" />\r\n </LogoContainer>}\r\n <OrSpace>\r\n <AtText strong={true} color=\"white\" $fontSize={14}>\r\n {props.extraInfo}\r\n </AtText>\r\n </OrSpace>\r\n <OrSpace>\r\n {props.countrySelectOptions &&\r\n props.countrySelectOptions?.length > 0 && (\r\n <AtSelect\r\n options={props.countrySelectOptions}\r\n value={props.selectValue}\r\n placeholder={props.selectPlaceholder}\r\n id={props.id}\r\n onChange={props.onSelect}\r\n bordered\r\n backgroundColor=\"violet\"\r\n $textColor=\"white\"\r\n />\r\n )}\r\n {props.navItems?.map((option) => (\r\n <AtButton\r\n key={option.value}\r\n value={option.value}\r\n icon={option.icon}\r\n shape=\"round\"\r\n size=\"middle\"\r\n ghost\r\n onClick={option.onclick}\r\n borderless\r\n />\r\n ))}\r\n {props.avatarName && (\r\n <AvatarContainer onClick={props.onClickAvatar}>\r\n <AtAvatar src={props.avatar} size=\"small\" />\r\n <AtText color=\"white\">{props.avatarName}</AtText>\r\n </AvatarContainer>\r\n )}\r\n </OrSpace>\r\n </OrRow>\r\n </StyledHeader>\r\n);\r\n","import React from 'react';\r\nimport { OrSiderMenuProps } from '../OrSiderMenu';\r\nimport { OrSiderMenu } from '../OrSiderMenu';\r\nimport { OrHeader, OrHeaderProps } from '../OrHeader';\r\nimport { OrContent } from '../OrContent';\r\n\r\nexport interface OrDashboardLayoutProps {\r\n /**\r\n * Indicate if the menu is collapsed\r\n */\r\n collapsed?: boolean;\r\n /**\r\n * Children components\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Menu items to show in sider menu\r\n */\r\n menuItems?: OrSiderMenuProps['items'];\r\n /**\r\n * On click collapsed button\r\n */\r\n onClickCollapsed?: () => void;\r\n /**\r\n * Called when a menu item is clicked\r\n */\r\n onClick?: OrSiderMenuProps['onClick'];\r\n /**\r\n * Called when a bottom menu item is clicked\r\n */\r\n onClickBottomItems?: OrSiderMenuProps['onClick'];\r\n /**\r\n * Called when a menu item is selected\r\n */\r\n onSelect?: OrSiderMenuProps['onSelect'];\r\n /**\r\n * Called when a region item is selected\r\n */\r\n onSelectCountry?: OrHeaderProps['onSelect'];\r\n /**\r\n * Header select options\r\n */\r\n countrySelectOptions?: OrHeaderProps['countrySelectOptions'];\r\n /**\r\n * Header nav items\r\n */\r\n navItems?: OrHeaderProps['navItems'];\r\n /**\r\n * Header avatar\r\n */\r\n avatar?: OrHeaderProps['avatar'];\r\n /**\r\n * Header avatar name\r\n */\r\n avatarName?: OrHeaderProps['avatarName'];\r\n /**\r\n * Default selected country\r\n */\r\n selectValue?: OrHeaderProps['selectValue'];\r\n /**\r\n * Nav item at the end of the sider\r\n */\r\n bottomItems?: OrSiderMenuProps['bottomItems'];\r\n /*\r\n * Array with the keys of opened sub menu\r\n */\r\n selectedKeys?: OrSiderMenuProps['selectedKeys'];\r\n /** \r\n * Or header props\r\n */\r\n headerProps?: OrHeaderProps;\r\n}\r\n\r\nexport const OrDashboardLayout: React.FC<OrDashboardLayoutProps> = ({\r\n menuItems = [],\r\n collapsed = false,\r\n bottomItems = [],\r\n headerProps,\r\n ...props\r\n}) => {\r\n return (\r\n <OrSiderMenu\r\n items={menuItems}\r\n collapsed={collapsed}\r\n onClickCollapsed={props.onClickCollapsed}\r\n onClick={props.onClick}\r\n onSelect={props.onSelect}\r\n bottomItems={bottomItems}\r\n onClickBottomItems={props.onClickBottomItems}\r\n selectedKeys={props.selectedKeys}\r\n backgroundTopColor={headerProps?.$backgroundColor}\r\n >\r\n <OrHeader\r\n avatar={props.avatar}\r\n avatarName={props.avatarName}\r\n countrySelectOptions={props.countrySelectOptions}\r\n navItems={props.navItems}\r\n selectValue={props.selectValue}\r\n onSelect={props.onSelectCountry}\r\n $backgroundColor={headerProps?.$backgroundColor}\r\n {...headerProps}\r\n />\r\n <OrContent $main>{props.children}</OrContent>\r\n </OrSiderMenu>\r\n );\r\n};\r\n","import { Descriptions as AntDescriptions } from 'antd';\r\nimport styled from \"styled-components\";\r\nimport { OrDescriptionsProps } from '.';\r\n\r\nexport const StyledDescriptions = styled((props: OrDescriptionsProps) => <AntDescriptions {...props} />)`\r\n & {\r\n background: white;\r\n border: 1px solid rgba(5, 5, 5, 0.06);\r\n border-radius: 6px;\r\n padding: 24px 0;\r\n\r\n .ant-descriptions-header {\r\n padding: 0 24px;\r\n padding-bottom: 24px;\r\n border-bottom: 1px solid rgba(5, 5, 5, 0.06);\r\n }\r\n\r\n .ant-descriptions-view {\r\n width: calc(100% - 48px);\r\n margin: 0 24px;\r\n margin-top: 24px;\r\n border-radius: initial!important;\r\n }\r\n }\r\n`;","import React from 'react';\r\nimport { DescriptionsProps } from 'antd/lib';\r\nimport { StyledDescriptions } from './styles';\r\n\r\nexport interface OrDescriptionsProps extends DescriptionsProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Title of the description set\r\n */\r\n title: string;\r\n /**\r\n * Whether the table has border or not\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Items to display\r\n */\r\n items: DescriptionsProps['items'];\r\n /**\r\n * Extra content to display\r\n */\r\n extra?: DescriptionsProps['extra'];\r\n}\r\n\r\nexport const OrDescriptions: React.FC<OrDescriptionsProps> = (props) => {\r\n return <StyledDescriptions {...props} />;\r\n};","import { styled } from 'styled-components';\r\n\r\nexport const PaginationContainer = styled.div`\r\n display: flex;\r\n align-items: end;\r\n margin-top: 16px;\r\n justify-content: end;\r\n \r\n`;\r\n","import { Steps } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrStepProp } from '.';\r\n\r\nexport const StyledStep = styled(Steps)<OrStepProp>`\r\n & .ant-steps-item-title {\r\n font-size: 12px;\r\n ${({ $lineHeight }) => ($lineHeight ? `line-height: ${$lineHeight};` : 'line-height: 20px;')}\r\n ${({ $margin }) => ($margin ? `margin: ${$margin};` : '')}\r\n\r\n }\r\n\r\n & .ant-steps-item-container[role='button'] {\r\n cursor: initial!important;\r\n }\r\n\r\n &.ant-steps.ant-steps-vertical .ant-steps-item-description{\r\n padding-bottom: 4px;\r\n }\r\n\r\n @media (max-width: 768px) {\r\n &.ant-steps .ant-steps-item-title::after {\r\n display: none!important;\r\n }\r\n\r\n &.ant-steps .ant-steps-item {\r\n display: block!important;\r\n }\r\n\r\n &.ant-steps.ant-steps-vertical {\r\n flex-direction: column!important;\r\n }\r\n\r\n & .ant-steps-item {\r\n display: none!important;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-process.ant-steps-item-active {\r\n display: inline-block!important;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-active + .ant-steps-item-wait {\r\n display: inline-block!important;\r\n max-width: 50px;\r\n\r\n .ant-steps-item-container {\r\n text-align: end!important;\r\n }\r\n .ant-steps-item-content {\r\n display: none!important;\r\n }\r\n }\r\n\r\n & {\r\n flex-direction: row!important;\r\n }\r\n\r\n & .ant-steps-item-title::after {\r\n display: block!important;\r\n content: \"\"!important;\r\n }\r\n }\r\n\r\n @media (max-width: 805px) {\r\n & .ant-steps-item:last-child ::after {\r\n content: none!important;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-process.ant-steps-item-active .ant-steps-item-icon {\r\n margin-inline-end: 8px;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-active + .ant-steps-item-wait {\r\n margin-inline-end: 0;\r\n margin-inline-start: 16px;\r\n }\r\n }\r\n`;\r\n","import { StepsProps } from 'antd';\r\nimport React from 'react';\r\nimport { StyledStep } from './styles';\r\n\r\nexport interface OrStepProp {\r\n /**\r\n * To set the current step, counting from 0. You can overwrite this state by using status of Step\r\n */\r\n current?: number;\r\n /**\r\n * To specify the direction of the step bar, horizontal or vertical\r\n */\r\n direction?: 'horizontal' | 'vertical';\r\n /**\r\n *\r\n */\r\n initial?: number;\r\n /**\r\n * Place title and description with horizontal or vertical direction\r\n * */\r\n labelPlacement?: 'horizontal' | 'vertical';\r\n /**\r\n * Progress circle percentage of current step in process status (only works on basic Steps)\r\n */\r\n percent?: number;\r\n /**\r\n * Steps with progress dot style, customize the progress dot by setting it to a function. labelPlacement will be vertical\r\n */\r\n progressDot?: StepsProps['progressDot'];\r\n /**\r\n * Change to vertical direction when screen width smaller than 532px\r\n */\r\n responsive?: boolean;\r\n /**\r\n * To specify the size of the step bar, default and small are currently supported\r\n */\r\n size?: 'default' | 'small';\r\n /**\r\n * To specify the status of current step, can be set to one of the following values: wait process finish error\r\n */\r\n status?: 'wait' | 'process' | 'finish' | 'error';\r\n /**\r\n * Type of steps, can be set to one of the following values: default navigation inline\r\n */\r\n type?: 'default' | 'navigation' | 'inline';\r\n /**\r\n * Trigger when Step is changed\r\n */\r\n onChange?: (current: number) => void;\r\n /**\r\n * StepItem content\r\n */\r\n items?: StepsProps['items'];\r\n /**\r\n * Element margin\r\n */\r\n $margin?: string;\r\n /**\r\n * Element line height\r\n */\r\n $lineHeight?: string;\r\n}\r\n\r\nexport const OrStep: React.FC<OrStepProp> = (props) => {\r\n return <StyledStep {...props} />;\r\n};\r\n","import React, { ReactNode } from 'react';\r\nimport {\r\n OrDrawer,\r\n OrFormItemsInline,\r\n OrTable,\r\n OrTableProps,\r\n OrFormItemsInlineProps,\r\n OrForm,\r\n OrModuleTableHeader,\r\n OrTableModuleLayout,\r\n OrModuleTableHeaderProps,\r\n OrFormProps,\r\n OrCol,\r\n} from '../../organisms';\r\nimport { AtButton, AtButtonProps, AtImage, AtTitle } from '../../atoms';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { MlPagination, MlPaginationProps } from '../../molecules';\r\nimport { PaginationContainer } from './styles';\r\nimport { OrStep } from '../../organisms/OrStep';\r\nimport { AnyObject } from 'antd/es/_util/type';\r\nimport { Store } from 'antd/es/form/interface';\r\n\r\nexport interface ICustomButtons extends AtButtonProps {\r\n label: string;\r\n hidden?: boolean;\r\n}\r\nexport interface IFormStep<T> {\r\n title: string;\r\n inputs?: OrFormItemsInlineProps['inputs'];\r\n submitButtonText?: string;\r\n image?: string;\r\n cancelButtonText?: string;\r\n onCancelClick?: () => void;\r\n formInitialItems?: T;\r\n form?: OrFormProps['form'];\r\n onFinish?: (e: any) => void;\r\n cancelBtnIcon?: ReactNode;\r\n isSubmitButtonDanger?: boolean;\r\n hiddeSubmitButton?: boolean;\r\n customButtons?: ICustomButtons[];\r\n}\r\nexport interface TmCrudPageProps<RecordType = AnyObject, FormType = any> {\r\n /**\r\n * Columns of table\r\n */\r\n columns: OrTableProps<RecordType>['columns'];\r\n /**\r\n * Data record array to be displayed\r\n */\r\n data: OrTableProps<RecordType>['dataSource'];\r\n /**\r\n * Loading status of table\r\n */\r\n loadingTable?: OrTableProps['loading'];\r\n /**\r\n * Config of pagination. You can ref table pagination config or full pagination document, hide it by setting it to false\r\n */\r\n pagination?: OrTableProps['pagination'];\r\n /**\r\n * Row's unique key, could be a string or function that returns a string\r\n */\r\n rowKey?: OrTableProps['rowKey'];\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Callback when pagination changes\r\n */\r\n onChangeTable?: OrTableProps['onChange'];\r\n /**\r\n * Extendable table TM CrudPage\r\n */\r\n expandable?: OrTableProps['expandable'];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * Page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * Page subtitle content\r\n */\r\n subContent?: string;\r\n /**\r\n * Page table title\r\n */\r\n tableTitle?: string;\r\n /**\r\n * Button value text\r\n */\r\n buttonAddText?: string;\r\n /**\r\n * Callback when add button is pressed\r\n */\r\n addButtonOnClick?: OrModuleTableHeaderProps['buttonOnClick'];\r\n /**\r\n * Callback when pagination changes\r\n */\r\n onChangePagination?: MlPaginationProps['onChange'];\r\n /**\r\n * Total table elements\r\n */\r\n total?: MlPaginationProps['total'];\r\n /**\r\n * Way to display total pagination table\r\n */\r\n showTotal?: MlPaginationProps['showTotal'];\r\n /**\r\n * Table page size\r\n */\r\n pageSize?: MlPaginationProps['pageSize'];\r\n /**\r\n * Current page table\r\n */\r\n currentPage?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * Search table elements\r\n */\r\n searchBoxOnSearch?: OrModuleTableHeaderProps['searchBoxOnSearch'];\r\n /**\r\n * title of drawer\r\n */\r\n titleLeftDrawer?: ReactNode;\r\n /**\r\n * Specify a callback that will be called when a user clicks mask, close button or Cancel button\r\n */\r\n onCloseLeftDrawer?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * whether left drawer is open or close\r\n */\r\n openLeftDrawer?: boolean;\r\n /**\r\n * Children for Left Drawer\r\n */\r\n leftDrawerContent?: React.ReactNode;\r\n /**\r\n * Custom component to render at left side of table header\r\n */\r\n tableHeaderCustomLeftElements?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n leftDrawerWidth?: number;\r\n /**\r\n * searchBox placeHolder\r\n */\r\n searchBoxPlaceholder?: string;\r\n /**\r\n * show search box\r\n */\r\n showSearchBox?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Text of first button\r\n */\r\n firstButtonText?: string;\r\n /**\r\n * Text of second button\r\n */\r\n secondButtonText?: string;\r\n /**\r\n * Function to execute when first button is clicked\r\n */\r\n onClickFirstButton?: () => void;\r\n /**\r\n * Function to execute when second button is clicked\r\n */\r\n onClickSecondButton?: () => void;\r\n /**\r\n * Show drawer content\r\n */\r\n showDrawerContent?: boolean;\r\n /**\r\n * margin\r\n */\r\n $margin?: string;\r\n /**\r\n * table title level\r\n */\r\n tableTitleLevel?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * button optional text\r\n */\r\n secondaryButtonText?: string;\r\n /**\r\n * button optional onClick\r\n */\r\n secondaryOnClick?: () => void;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /*\r\n * Callback when back button is clicked \r\n */\r\n onBack?: () => void;\r\n padding?: string;\r\n}\r\n\r\nexport const TmCrudPage = <\r\n RecordType extends AnyObject,\r\n FormType extends Store,\r\n>({\r\n columns,\r\n data,\r\n loadingTable = false,\r\n formSteps,\r\n onValuesChange,\r\n onCloseLeftDrawer,\r\n leftDrawerContent,\r\n openLeftDrawer,\r\n subtitle,\r\n subContent,\r\n open,\r\n pageSize = 10,\r\n currentPage = 1,\r\n currentFormStep = 0,\r\n titleLeftDrawer,\r\n leftDrawerWidth = 600,\r\n drawerContent,\r\n showDrawerContent = false,\r\n showSearchBox = true,\r\n drawerTitle,\r\n drawerWidth,\r\n firstButtonText,\r\n secondButtonText,\r\n onClickFirstButton,\r\n onClickSecondButton,\r\n $margin,\r\n title,\r\n tableTitle,\r\n buttonAddText,\r\n addButtonOnClick,\r\n onChangePagination,\r\n onChangeTable,\r\n total,\r\n showTotal,\r\n disabledButtons,\r\n searchBoxOnSearch,\r\n searchBoxPlaceholder,\r\n tableHeaderCustomLeftElements,\r\n pagination,\r\n handleCloseCallback,\r\n tableTitleLevel,\r\n secondaryButtonText,\r\n secondaryOnClick,\r\n showFormStepper = true,\r\n onBack,\r\n padding = '16px 24px',\r\n expandable\r\n}: TmCrudPageProps<RecordType, FormType>) => {\r\n const onChangePaginationDefault = (page: number, pageSize?: number) => {\r\n onChangeTable && onChangeTable({ current: page, pageSize, total }, {}, {}, { action: 'paginate', currentDataSource: [] })\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <OrTableModuleLayout\r\n $margin={$margin}\r\n title={title}\r\n subtitle={subtitle}\r\n subtitleContent={subContent}\r\n leftArrow={!!onBack}\r\n onClickLeftArrow={onBack}\r\n padding={padding}\r\n >\r\n <OrModuleTableHeader\r\n title={tableTitle}\r\n level={tableTitleLevel}\r\n buttonValue={buttonAddText}\r\n secondaryButtonValue={secondaryButtonText}\r\n secondaryButtonOnClick={secondaryOnClick}\r\n buttonOnClick={addButtonOnClick}\r\n searchBoxOnSearch={searchBoxOnSearch}\r\n customLeftElements={tableHeaderCustomLeftElements}\r\n searchBoxPlaceholder={searchBoxPlaceholder}\r\n showSearchBox={showSearchBox}\r\n />\r\n <OrTable<RecordType>\r\n columns={columns}\r\n dataSource={data}\r\n loading={loadingTable}\r\n pagination={pagination}\r\n onChange={onChangeTable}\r\n expandable={expandable}\r\n />\r\n <PaginationContainer>\r\n <MlPagination\r\n responsive={true}\r\n onChange={onChangeTable ? onChangePaginationDefault : onChangePagination}\r\n total={total}\r\n showTotal={showTotal}\r\n pageSize={pageSize}\r\n showSizeChanger={true}\r\n current={currentPage}\r\n disabled={!!loadingTable}\r\n />\r\n </PaginationContainer>\r\n </OrTableModuleLayout>\r\n\r\n {leftDrawerContent && (\r\n <OrDrawer\r\n open={openLeftDrawer}\r\n onClose={onCloseLeftDrawer}\r\n placement=\"left\"\r\n title={titleLeftDrawer}\r\n width={leftDrawerWidth}\r\n >\r\n {leftDrawerContent}\r\n </OrDrawer>\r\n )}\r\n\r\n <OrDrawer\r\n open={open}\r\n onClose={handleCloseCallback}\r\n title={drawerTitle}\r\n width={drawerWidth}\r\n >\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formSteps &&\r\n formSteps.map(({ customButtons = [], ...formStep }, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n {formStep.image && (\r\n <OrCol $alignItems=\"center\" $paddingBottom={30}>\r\n <AtImage\r\n src={formStep.image}\r\n preview={false}\r\n height={\"100%\"}\r\n width={250}\r\n />\r\n </OrCol>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n {customButtons.length === 0 && (\r\n <>\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n </>\r\n )}\r\n {customButtons.map((buttonProps) => (\r\n buttonProps.hidden\r\n ?\r\n <MlFormItem>\r\n <AtButton\r\n {...buttonProps}\r\n $fullWidth={true}\r\n value={buttonProps.label}\r\n />\r\n </MlFormItem>\r\n : <></>\r\n ))}\r\n </OrForm>\r\n ))}\r\n {!formSteps && (\r\n <>\r\n {!showDrawerContent && (\r\n <OrCol $gap={15}>\r\n <AtButton\r\n type=\"primary\"\r\n value={firstButtonText}\r\n onClick={onClickFirstButton}\r\n />\r\n <AtButton\r\n value={secondButtonText}\r\n onClick={onClickSecondButton}\r\n />\r\n </OrCol>\r\n )}\r\n {showDrawerContent && drawerContent}\r\n </>\r\n )}\r\n </OrDrawer>\r\n </React.Fragment>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrFormProps,\r\n OrDescriptions,\r\n OrDescriptionsProps,\r\n OrDrawer,\r\n OrStep,\r\n OrForm,\r\n OrCol,\r\n OrFormItemsInline,\r\n} from '..';\r\nimport { AtButton, AtImage, AtTitle } from '../../atoms';\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { IFormStep } from '../../templates/TmCrudPage';\r\nimport { MlFormItem } from '../../molecules';\r\n\r\nexport interface OrDetailsPageProps<FormType = any> {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Title of the description set\r\n */\r\n title: string;\r\n /**\r\n * Whether the table has border or not\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Items to display\r\n */\r\n items: OrDescriptionsProps['items'];\r\n /**\r\n * Extra content to display\r\n */\r\n extra?: OrDescriptionsProps['extra'];\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n}\r\n\r\nexport const OrDetailsPage = <FormType extends Store>({\r\n title,\r\n bordered,\r\n items,\r\n extra,\r\n formSteps,\r\n handleCloseCallback,\r\n open,\r\n drawerTitle,\r\n drawerWidth,\r\n disabledButtons,\r\n currentFormStep,\r\n showFormStepper = true,\r\n onValuesChange,\r\n}: OrDetailsPageProps<FormType>) => {\r\n return (\r\n <React.Fragment>\r\n <OrDescriptions\r\n title={title}\r\n bordered={bordered}\r\n items={items}\r\n extra={extra}\r\n style={{ width: '100%', height: '100%' }}\r\n />\r\n <OrDrawer\r\n open={open}\r\n onClose={handleCloseCallback}\r\n title={drawerTitle}\r\n width={drawerWidth}\r\n >\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formSteps &&\r\n formSteps.map(({ customButtons = [], ...formStep }, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n {formStep.image && (\r\n <OrCol $alignItems=\"center\" $paddingBottom={30}>\r\n <AtImage\r\n src={formStep.image}\r\n preview={false}\r\n height={'100%'}\r\n width={250}\r\n />\r\n </OrCol>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n {customButtons.length === 0 && (\r\n <>\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n </>\r\n )}\r\n {customButtons.map((button) => (\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n type={button.type}\r\n value={button.label}\r\n onClick={button.onClick}\r\n htmlType={button.htmlType}\r\n />\r\n </MlFormItem>\r\n ))}\r\n </OrForm>\r\n ))}\r\n </OrDrawer>\r\n </React.Fragment>\r\n );\r\n};\r\n","import { AtButton, AtIcon } from '../../atoms';\r\nimport {\r\n MlFormItem,\r\n MlFromItemProps,\r\n MlUpload,\r\n MlUploadProps,\r\n} from '../../molecules';\r\nimport { OrCol } from '../../organisms';\r\n\r\ninterface OrDownloadProps {\r\n /**\r\n * The function to call when the download button is clicked\r\n */\r\n downloadOnClick?: () => any;\r\n /**\r\n * The text to display on the download button\r\n */\r\n downloadText: string;\r\n}\r\n\r\nexport interface OrDownloadUploadProps {\r\n /**\r\n * Key identifier\r\n */\r\n inputKey: string;\r\n /**\r\n * The function to call when the value of the file changes\r\n */\r\n getValueFromEvent?: (e: any) => any;\r\n /**\r\n * The rules for the file\r\n */\r\n rules?: MlFromItemProps['rules'];\r\n /**\r\n * If the file is required\r\n */\r\n isRequired?: boolean;\r\n downloadProps: OrDownloadProps;\r\n uploadProps: MlUploadProps;\r\n disabled?: boolean;\r\n /**\r\n * The mode of the upload\r\n */\r\n mode?: 'drag' | 'basic';\r\n}\r\n\r\nexport const OrDownloadUpload: React.FC<OrDownloadUploadProps> = ({\r\n downloadProps,\r\n uploadProps,\r\n inputKey,\r\n rules,\r\n getValueFromEvent,\r\n isRequired,\r\n disabled = false,\r\n mode = 'drag',\r\n}) => {\r\n return (\r\n <>\r\n <OrCol>\r\n <AtButton\r\n icon={<AtIcon name=\"DownloadOutlined\" />}\r\n type=\"dashed\"\r\n value={downloadProps.downloadText}\r\n onClick={downloadProps.downloadOnClick}\r\n disabled={disabled}\r\n />\r\n </OrCol>\r\n <OrCol $paddingTop={16} xs={24}>\r\n <MlFormItem\r\n key={inputKey}\r\n name={`${uploadProps.name}-upload-component`}\r\n valuePropName=\"fileList\"\r\n rules={rules}\r\n getValueFromEvent={getValueFromEvent}\r\n required={isRequired}\r\n >\r\n <MlUpload\r\n mode={mode}\r\n style={{ borderStyle: 'solid' }}\r\n disabled={disabled}\r\n {...uploadProps}\r\n />\r\n </MlFormItem>\r\n </OrCol>\r\n </>\r\n );\r\n};\r\n","import React, { CSSProperties, ReactNode } from 'react';\r\nimport { Drawer } from 'antd/lib/';\r\nimport { DrawerProps } from 'antd/es/drawer';\r\nimport { AtIcon } from '../../atoms';\r\n\r\nexport interface OrDrawerProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Whether Drawer should get focused after open\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Callback after the animation ends when switching drawers\r\n */\r\n afterOpenChange?: (open: boolean) => void;\r\n /**\r\n * Style of the drawer content part\r\n */\r\n bodyStyle?: CSSProperties;\r\n /**\r\n * Config Drawer Panel className. Use rootClassName if want to config top dom style\r\n */\r\n className?: string;\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: boolean | ReactNode;\r\n /**\r\n * Style of the drawer wrapper of content part\r\n */\r\n contentWrapperStyle?: CSSProperties;\r\n /**\r\n * Whether to unmount child components on closing drawer or not\r\n */\r\n destroyOnClose?: boolean;\r\n /**\r\n * Extra actions area at corner\r\n */\r\n extra?: ReactNode;\r\n /**\r\n * The footer for Drawer\r\n */\r\n footer?: ReactNode;\r\n /**\r\n * Style of the drawer footer part\r\n */\r\n footerStyle?: CSSProperties;\r\n /**\r\n * Pre-render Drawer component forcibly\r\n */\r\n forceRender?: boolean;\r\n /**\r\n * mounted node and display window for Drawer\r\n */\r\n getContainer?: DrawerProps['getContainer'];\r\n /**\r\n * Style of the drawer header part\r\n */\r\n headerStyle?: CSSProperties;\r\n /**\r\n * Placement is top or bottom, height of the Drawer dialog\r\n */\r\n height?: string | number;\r\n /**\r\n * Whether support press esc to close\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Whether to show mask or not\r\n */\r\n mask?: boolean;\r\n /**\r\n * Clicking on the mask (area outside the Drawer) to close the Drawer or not\r\n */\r\n maskClosable?: boolean;\r\n /**\r\n * Style for Drawer's mask element\r\n */\r\n maskStyle?: CSSProperties;\r\n /**\r\n * The placement of the Drawer\r\n */\r\n placement?: 'top' | 'right' | 'bottom' | 'left';\r\n /**\r\n * Nested drawers push behavior\r\n */\r\n push?: boolean | { distance: string | number };\r\n /**\r\n * The class name of the container of the Drawer dialog\r\n */\r\n rootClassName?: string;\r\n /**\r\n * Style of wrapper element which contains mask compare to style\r\n */\r\n rootStyle?: CSSProperties;\r\n /**\r\n * Style of Drawer panel. Use bodyStyle if want to config body only\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * preset size of drawer, default 378px and large 736px\r\n */\r\n size?: 'default' | 'large';\r\n /**\r\n * The title for Drawer\r\n */\r\n title?: ReactNode;\r\n /**\r\n * Whether the Drawer dialog is visible or not\r\n */\r\n open?: boolean;\r\n /**\r\n * Width of the Drawer dialog\r\n */\r\n width?: string | number;\r\n /**\r\n * The z-index of the Drawer\r\n */\r\n zIndex?: number;\r\n /**\r\n * Specify a callback that will be called when a user clicks mask, close button or Cancel button\r\n */\r\n onClose?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * Children of the drawer\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrDrawer: React.FC<OrDrawerProps> = ({\r\n autoFocus = true,\r\n closeIcon = <AtIcon name=\"CloseOutlined\" />,\r\n destroyOnClose = false,\r\n forceRender = false,\r\n getContainer = 'body',\r\n height = 378,\r\n keyboard = true,\r\n mask = true,\r\n maskClosable = true,\r\n maskStyle = {},\r\n placement = 'right',\r\n push = { distance: 180 },\r\n size = 'default',\r\n open = false,\r\n width = 378,\r\n zIndex = 1000,\r\n ...props\r\n}) => {\r\n return (\r\n <Drawer\r\n autoFocus={autoFocus}\r\n closeIcon={closeIcon}\r\n destroyOnClose={destroyOnClose}\r\n forceRender={forceRender}\r\n getContainer={getContainer}\r\n height={height}\r\n keyboard={keyboard}\r\n mask={mask}\r\n maskClosable={maskClosable}\r\n maskStyle={maskStyle}\r\n placement={placement}\r\n push={push}\r\n size={size}\r\n open={open}\r\n width={width}\r\n zIndex={zIndex}\r\n {...props}\r\n >\r\n {props.children}\r\n </Drawer>\r\n );\r\n};\r\n","import { Empty } from \"antd\";\r\nimport { AtIcon, AtText, AtTitle } from \"../../atoms\";\r\n\r\nexport interface OrEmptyProps{\r\n /**\r\n * The main text of the empty card\r\n */ \r\n title: string;\r\n /**\r\n * The additional text of the empty card\r\n */\r\n description: string;\r\n}\r\n\r\nexport const OrEmpty: React.FC<OrEmptyProps> = ({\r\n title,\r\n description\r\n}) => {\r\n return (\r\n <Empty\r\n image={<AtIcon name=\"WarningFilled\" style={{ fontSize: 95, color: '#FFC53D' }} />}\r\n description={\r\n <>\r\n <AtTitle level={3}>{title}</AtTitle>\r\n <AtText type=\"secondary\" $fontSize={16}>{description}</AtText>\r\n </>\r\n }\r\n />\r\n )\r\n}\r\n","import React, { useMemo } from 'react';\r\nimport { OrCountryCardProps, OrCountryCard } from '../OrCountryCard';\r\nimport { Row, Col } from 'antd';\r\n\r\nexport interface OrFlagGridProps {\r\n /**\r\n * The ID for cards\r\n */\r\n id?: string;\r\n /**\r\n * Country data to show elements into the grid\r\n */\r\n data?: OrCountryCardProps[];\r\n /**\r\n * Number of items that can contain a row\r\n */\r\n itemsPerRow?: number;\r\n /**\r\n * Index selected Item\r\n */\r\n selectedItem?: number;\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onSelectCard?: (index: number) => void;\r\n}\r\n\r\nexport const OrFlagGrid: React.FC<OrFlagGridProps> = ({\r\n data = [],\r\n itemsPerRow = 2,\r\n selectedItem,\r\n onSelectCard,\r\n \r\n}) => {\r\n const span = useMemo(() => 24 / (itemsPerRow ?? 1), [itemsPerRow]);\r\n\r\n return (\r\n <Row gutter={[16, 16]} justify={'center'}>\r\n {data?.map((item, i) => (\r\n <Col key={i} xs={{ span: 24 }} md={{ span }}>\r\n <OrCountryCard\r\n selected={selectedItem === i}\r\n onClick={() => onSelectCard?.(i)}\r\n {...item}\r\n />\r\n </Col>\r\n ))}\r\n </Row>\r\n );\r\n};\r\n\r\n\r\n","import React from 'react';\r\nimport { Form, FormProps } from 'antd';\r\n\r\nexport interface OrFormProps extends FormProps {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const OrForm: React.FC<OrFormProps> = ({ children, ...props }) => {\r\n return <Form {...props}>{children}</Form>;\r\n};\r\n","import React from 'react';\r\nimport { Space } from 'antd';\r\n\r\nexport interface AtSpaceCompactProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Option to fit width to its parent's width\r\n */\r\n block?: boolean;\r\n /**\r\n * Set direction of layout\r\n */\r\n direction?: 'vertical' | 'horizontal';\r\n /**\r\n * Set child component size\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Children of the OrSpace\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrSpaceCompact: React.FC<AtSpaceCompactProps> = ({\r\n block = false,\r\n direction = 'horizontal',\r\n size = 'middle',\r\n ...props\r\n}) => {\r\n return <Space.Compact block={block} direction={direction} size={size} {...props}>{props.children}</Space.Compact>;\r\n};\r\n","import React from 'react';\r\nimport { MlFormItem, MlFromItemProps } from '../../molecules';\r\nimport { OrSpaceCompact } from '../OrSpaceCompact';\r\nimport { AtNumberInput, AtSelect, AtSelectProps } from '../../atoms';\r\n\r\nexport interface OrPhoneInputProps {\r\n /**\r\n * Name of input\r\n */\r\n name?: string;\r\n /**\r\n * Dial codes options\r\n */\r\n options: AtSelectProps['options'];\r\n /**\r\n * Disabled input\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Rules for validation\r\n * @default []\r\n */\r\n rules?: MlFromItemProps['rules'];\r\n}\r\n\r\nexport const OrPhoneInput: React.FC<OrPhoneInputProps> = ({\r\n name = \"phone\",\r\n options,\r\n disabled,\r\n rules\r\n}) => {\r\n return (\r\n <OrSpaceCompact block>\r\n <MlFormItem noStyle name={[name, 'dialCode']} rules={rules}>\r\n <AtSelect disabled={disabled} $width=\"119px\" options={options} />\r\n </MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n name={[name, 'phone']}\r\n rules={\r\n [\r\n ...rules? rules : [{ required: true, message: 'Field is required' }],\r\n {\r\n pattern: new RegExp( \r\n /^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im,\r\n ),\r\n message: 'Not valid phone',\r\n validateTrigger: 'onBlur',\r\n },\r\n ]\r\n }\r\n >\r\n <AtNumberInput disabled={disabled} $width=\"100%\" controls={false} />\r\n </MlFormItem>\r\n </OrSpaceCompact>\r\n );\r\n};\r\n","//TODO: Check PhoneInput to use this component\r\n//TODO: Improve this component OrSelectInput\r\n\r\nimport React, { useCallback } from 'react';\r\nimport { MlFormItem, MlFromItemProps } from '../../molecules';\r\nimport { OrSpaceCompact } from '../OrSpaceCompact';\r\nimport {\r\n AtNumberInput,\r\n AtNumberInputProps,\r\n AtSelect,\r\n AtSelectProps,\r\n AtTextInput,\r\n AtTextInputProps,\r\n} from '../../atoms';\r\n\r\nexport interface OrSelectInputProps {\r\n /**\r\n * Dial codes options\r\n */\r\n options: AtSelectProps['options'];\r\n /**\r\n * Disabled input\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Rules for validation\r\n * @default []\r\n */\r\n rules?: MlFromItemProps['rules'][];\r\n type?: 'number' | 'text';\r\n fieldName: string;\r\n inputProps?: AtTextInputProps | AtNumberInputProps;\r\n selectProps?: AtSelectProps;\r\n}\r\n\r\nexport const OrSelectInput: React.FC<OrSelectInputProps> = (props) => {\r\n const { options, disabled, rules, fieldName, selectProps } = props;\r\n\r\n const getInputComponent = useCallback(\r\n ({ type = 'text', ...props }: OrSelectInputProps) => {\r\n if (type === 'text') {\r\n return (\r\n <AtTextInput\r\n disabled={props.disabled}\r\n {...(props?.inputProps as AtTextInputProps)}\r\n />\r\n );\r\n } else if (type === 'number') {\r\n return (\r\n <AtNumberInput\r\n disabled={props.disabled}\r\n $width=\"100%\"\r\n controls={false}\r\n {...(props?.inputProps as AtNumberInputProps)}\r\n />\r\n );\r\n } else {\r\n return null;\r\n }\r\n },\r\n [props],\r\n );\r\n\r\n return (\r\n <OrSpaceCompact block>\r\n <MlFormItem\r\n noStyle\r\n name={[fieldName, 'select']}\r\n rules={rules && rules[0]}\r\n >\r\n <AtSelect\r\n disabled={disabled}\r\n $width=\"119px\"\r\n options={options}\r\n {...selectProps}\r\n />\r\n </MlFormItem>\r\n <MlFormItem noStyle name={[fieldName, 'input']} rules={rules && rules[1]}>\r\n {getInputComponent(props)}\r\n </MlFormItem>\r\n </OrSpaceCompact>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { AtText, AtTextProps } from '../../atoms/AtText';\r\nimport { OverlayView } from '@react-google-maps/api';\r\nimport { OrRow } from '..';\r\n\r\ntype Size = 'large' | 'middle' | 'small';\r\n\r\nconst sizes: { [key in Size]: { width: number; height: number } } = {\r\n large: {\r\n width: 40,\r\n height: 40,\r\n },\r\n middle: {\r\n width: 30,\r\n height: 30,\r\n },\r\n small: {\r\n width: 20,\r\n height: 20,\r\n },\r\n};\r\n\r\ninterface OverlayViewProps {\r\n children?: React.ReactNode | undefined;\r\n position?: google.maps.LatLng | google.maps.LatLngLiteral | undefined;\r\n getPixelPositionOffset?:\r\n | ((\r\n offsetWidth: number,\r\n offsetHeight: number,\r\n ) => {\r\n x: number;\r\n y: number;\r\n })\r\n | undefined;\r\n bounds?:\r\n | google.maps.LatLngBounds\r\n | google.maps.LatLngBoundsLiteral\r\n | undefined;\r\n zIndex?: number | undefined;\r\n onLoad?: ((overlayView: google.maps.OverlayView) => void) | undefined;\r\n onUnmount?: ((overlayView: google.maps.OverlayView) => void) | undefined;\r\n hasOverlay?: boolean;\r\n}\r\n\r\nconst CustomOverlay: React.FC<OverlayViewProps> = ({\r\n children,\r\n hasOverlay = true,\r\n ...props\r\n}) => {\r\n return hasOverlay ? (\r\n <OverlayView {...props} mapPaneName=\"overlayMouseTarget\">\r\n {children}\r\n </OverlayView>\r\n ) : (\r\n <React.Fragment>{children}</React.Fragment>\r\n );\r\n};\r\n\r\nexport interface OrMarkProps {\r\n id?: string;\r\n text?: string;\r\n color?: AtTextProps['color'];\r\n backgroundColor?: string;\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n size?: Size;\r\n position: {\r\n lat: number;\r\n lng: number;\r\n };\r\n component?: React.ReactNode;\r\n hasOverlay?: boolean;\r\n translate?: number[]\r\n}\r\n\r\nexport const OrMark: React.FC<OrMarkProps> = ({\r\n text,\r\n color,\r\n onClick,\r\n backgroundColor,\r\n size = 'middle',\r\n position,\r\n component,\r\n hasOverlay = true,\r\n translate = [0, 0]\r\n}) => {\r\n return (\r\n <CustomOverlay position={position} hasOverlay={hasOverlay}>\r\n {component ?? (\r\n <OrRow\r\n style={{\r\n ...sizes[size],\r\n backgroundColor,\r\n borderRadius: sizes[size].width / 2,\r\n transform: `translate(${translate[0]}px, ${translate[1]}px)`\r\n }}\r\n align=\"middle\"\r\n justify=\"center\"\r\n onClick={onClick}\r\n >\r\n <AtText color={color}>{text}</AtText>\r\n </OrRow>\r\n )}\r\n </CustomOverlay>\r\n );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { DirectionsRenderer, GoogleMap, GoogleMapProps } from '@react-google-maps/api';\r\nimport { OrMark, OrMarkProps } from '../OrMark';\r\n\r\nexport enum MarkSize {\r\n Large = 'large',\r\n Middle = 'middle',\r\n Small = 'small',\r\n}\r\n\r\nexport interface MarkersGroup {\r\n color?: OrMarkProps['color'];\r\n backgroundColor?: string;\r\n size?: OrMarkProps['size'];\r\n marks: OrMarkProps[];\r\n polyLine: boolean; //TODO: Check Polyline stuck on refresh\r\n}\r\n\r\nexport interface OrGoogleMapsProps extends GoogleMapProps {\r\n /**\r\n * The origin of the route.\r\n */\r\n origin?:\r\n | string\r\n | google.maps.LatLng\r\n | google.maps.Place\r\n | google.maps.LatLngLiteral;\r\n /**\r\n * The destination of the route.\r\n */\r\n destination?:\r\n | string\r\n | google.maps.LatLng\r\n | google.maps.Place\r\n | google.maps.LatLngLiteral;\r\n /**\r\n * Type of routing requested.\r\n */\r\n travelMode?: google.maps.TravelMode;\r\n /**\r\n * The stroke color.\r\n */\r\n strokeColor?: string | null;\r\n /**\r\n * The stroke opacity between 0.0 and 1.0.\r\n */\r\n strokeOpacity?: number | null;\r\n /**\r\n * The stroke width in pixels.\r\n */\r\n strokeWeight?: number | null;\r\n /**\r\n * The Google Maps API key.\r\n */\r\n GOOGLE_MAPS_API_KEY: string;\r\n /**\r\n * Static markers.\r\n */\r\n staticMarkers?: MarkersGroup[];\r\n /**\r\n * Realtime markers.\r\n */\r\n realtimeMarkers?: MarkersGroup[];\r\n}\r\n\r\nexport const OrGoogleMaps: React.FC<OrGoogleMapsProps> = ({\r\n origin,\r\n destination,\r\n travelMode = google.maps.TravelMode.DRIVING,\r\n strokeColor = '#1d57f6',\r\n strokeOpacity = 1,\r\n strokeWeight = 6,\r\n staticMarkers,\r\n realtimeMarkers,\r\n ...props\r\n}) => {\r\n const markSizes: { [key in MarkSize]: { width: number; height: number } } = {\r\n large: {\r\n width: 40,\r\n height: 40,\r\n },\r\n middle: {\r\n width: 30,\r\n height: 30,\r\n },\r\n small: {\r\n width: 20,\r\n height: 20,\r\n },\r\n };\r\n\r\n const [directionsState, setDirectionsState] =\r\n React.useState<google.maps.DirectionsResult | null>(null);\r\n\r\n useEffect(() => {\r\n if (!window.google || !origin || !destination) return;\r\n\r\n const DirectionsService = new google.maps.DirectionsService();\r\n\r\n DirectionsService.route({\r\n origin,\r\n destination,\r\n travelMode,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n },\r\n (result, status) => {\r\n if (status === google.maps.DirectionsStatus.OK) {\r\n setDirectionsState(result);\r\n } else {\r\n console.error(`error fetching directions ${result}`);\r\n }\r\n }\r\n );\r\n }, [origin, destination]);\r\n\r\n return (\r\n <GoogleMap \r\n {...props}\r\n options={{\r\n ...props.options,\r\n panControl: false,\r\n zoomControl: false,\r\n mapTypeControl: false,\r\n scaleControl: false,\r\n streetViewControl: false,\r\n rotateControl: false,\r\n disableDefaultUI: true,\r\n }}\r\n >\r\n {directionsState && (\r\n <DirectionsRenderer options={{ \r\n directions: directionsState,\r\n polylineOptions: {\r\n strokeColor,\r\n strokeOpacity,\r\n strokeWeight,\r\n },\r\n }} />\r\n )}\r\n\r\n {staticMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n )),\r\n )}\r\n {realtimeMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n\r\n )),\r\n )}\r\n </GoogleMap>\r\n );\r\n};\r\n\r\n","import { message } from 'antd';\r\n\r\nexport const useMessage = () => {\r\n return message.useMessage();\r\n};\r\n","import { useState, useMemo, useCallback } from 'react';\r\nimport { Modal, ModalFuncProps } from 'antd';\r\n\r\nexport interface ModalProps extends ModalFuncProps {\r\n variant: 'confirm' | 'warning' | 'info' | 'error';\r\n}\r\n\r\nexport const useModal = () => {\r\n const [variant, setVariant] = useState<ModalProps['variant']>('confirm');\r\n const [modal, contextHolder] = Modal.useModal();\r\n\r\n const modalVariant = useMemo(() => {\r\n switch (variant) {\r\n case 'confirm':\r\n return modal.confirm;\r\n case 'warning':\r\n return modal.warning;\r\n case 'info':\r\n return modal.info;\r\n case 'error':\r\n return modal.error;\r\n default:\r\n return modal.confirm;\r\n }\r\n }, [variant, modal]);\r\n\r\n const show = useCallback(\r\n (config: ModalFuncProps) => {\r\n return modalVariant(config);\r\n },\r\n [modalVariant],\r\n );\r\n\r\n return {\r\n show,\r\n setVariant,\r\n contextHolder,\r\n };\r\n};\r\n","import { Form } from 'antd';\r\n\r\nexport const useForm = <T = any>() => {\r\n return Form.useForm<T>();\r\n};\r\n","import { Form, FormInstance } from 'antd';\r\nimport { WatchOptions } from 'rc-field-form/es/interface';\r\n\r\nexport const useFormWatch = <T = any>(\r\n name: string | string[],\r\n form?: FormInstance | WatchOptions<FormInstance>,\r\n) => {\r\n return Form.useWatch<T>(name, form);\r\n};\r\n","export * from './useMessage';\r\nexport * from './useCodeInput';\r\nexport * from './useModal';\r\nexport * from './useForm';\r\nexport * from './useFormWatch';\r\n","import React from 'react';\r\nimport { Table, TableProps } from 'antd';\r\nimport { AnyObject } from 'antd/es/_util/type';\r\nimport { ColumnsType, TablePaginationConfig } from 'antd/es/table';\r\nimport {\r\n ExpandableConfig,\r\n FilterValue,\r\n SorterResult,\r\n TableCurrentDataSource,\r\n} from 'antd/es/table/interface';\r\n\r\nexport type OrColumnsType<T = unknown> = ColumnsType<T>;\r\n\r\nexport type OnChangeTable<RecordType = AnyObject> = (\r\n pagination: TablePaginationConfig,\r\n filters: Record<string, FilterValue | null>,\r\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[],\r\n extra: TableCurrentDataSource<RecordType>,\r\n) => void;\r\n\r\nexport interface OrTableProps<RecordType = AnyObject> {\r\n /**\r\n * Whether to show all table borders\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Columns of table\r\n */\r\n columns: TableProps<RecordType>['columns'];\r\n /**\r\n * Data record array to be displayed\r\n */\r\n dataSource: TableProps<RecordType>['dataSource'];\r\n /**\r\n * Loading status of table\r\n */\r\n loading?: TableProps<RecordType>['loading'];\r\n /**\r\n * Config of pagination. You can ref table pagination config or full pagination document, hide it by setting it to false\r\n */\r\n pagination?: TableProps<RecordType>['pagination'];\r\n /**\r\n * Row's unique key, could be a string or function that returns a string\r\n */\r\n rowKey?: TableProps<RecordType>['rowKey'];\r\n /**\r\n * \tSize of table\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Set sticky header and scroll bar\r\n */\r\n sticky?: boolean;\r\n /**\r\n * Table title renderer\r\n */\r\n title?: TableProps<RecordType>['title'];\r\n /**\r\n * Callback executed when pagination, filters or sorter is changed\r\n */\r\n onChange?: OnChangeTable<RecordType>;\r\n /**\r\n * row selection config\r\n */\r\n rowSelection?: TableProps<RecordType>['rowSelection'];\r\n /**\r\n * Set the scroll of table, could be a number that indicates the width of the scroll area, or an object that has the following properties: x number | string, y number | string\r\n */\r\n scroll?: TableProps<RecordType>['scroll'];\r\n /**\r\n * Set the expandable of table\r\n * */\r\n expandable?: ExpandableConfig<RecordType> | undefined\r\n}\r\n\r\nexport const OrTable = <RecordType extends AnyObject>({\r\n bordered = false,\r\n loading = false,\r\n pagination = false,\r\n size = 'large',\r\n sticky = false,\r\n rowSelection,\r\n ...props\r\n}: OrTableProps<RecordType>) => {\r\n return (\r\n <Table<RecordType>\r\n rowSelection={rowSelection}\r\n bordered={bordered}\r\n loading={loading}\r\n pagination={pagination}\r\n size={size}\r\n sticky={sticky}\r\n scroll={{ x: 'max-content' }}\r\n expandable={{ rowExpandable: (record) => record.expandable, }}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { Form } from 'antd';\r\nimport { useFormWatch } from '../../../hooks';\r\nimport { AtSelect, AtSelectProps } from '../../atoms';\r\nimport { MlFormItem, MlFromItemProps } from '../../molecules';\r\nimport { OrSpace } from '../OrSpace';\r\nimport { OrTable, OrTableProps } from '../OrTable';\r\nimport { useEffect, useMemo, useState } from 'react';\r\n\r\nexport type OrSelectTableOption<T = any> = {\r\n label: string;\r\n value: string;\r\n fullData: T;\r\n};\r\n\r\nexport interface OrSelectTableProps<T = any> extends AtSelectProps {\r\n columns?: OrTableProps['columns'];\r\n data?: OrTableProps['dataSource'];\r\n options?: OrSelectTableOption<T>[];\r\n fieldName: string;\r\n rules?: MlFromItemProps['rules'][];\r\n}\r\n\r\nexport const OrSelectTable: React.FC<OrSelectTableProps> = ({\r\n columns,\r\n fieldName,\r\n rules,\r\n ...props\r\n}) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [fullData, setFullData] = useState<{ [key: string]: any[] }>({});\r\n const form = Form.useFormInstance();\r\n const selectWatcher = useFormWatch([fieldName, 'select'], form);\r\n const hideSelectWatcher = useFormWatch([fieldName, 'hideSelect'], form);\r\n\r\n const options = useMemo(() => {\r\n return props.options?.filter((option) => {\r\n return !hideSelectWatcher?.includes(option.value);\r\n });\r\n }, [props.options, hideSelectWatcher]);\r\n\r\n useEffect(() => {\r\n if (form) {\r\n const selectedValues =\r\n form.getFieldValue([fieldName, 'hideSelect']) ?? [];\r\n\r\n setData(\r\n selectedValues.map((value: string) => {\r\n return fullData[value];\r\n }),\r\n );\r\n }\r\n }, [form, fullData]);\r\n\r\n useEffect(() => {\r\n if (form && selectWatcher) {\r\n const selectedValues =\r\n form.getFieldValue([fieldName, 'hideSelect']) ?? [];\r\n\r\n if (selectedValues.includes(selectWatcher)) {\r\n selectedValues.splice(selectedValues.indexOf(selectWatcher), 1);\r\n } else {\r\n selectedValues.push(selectWatcher);\r\n }\r\n\r\n setFullData((prev) => {\r\n const newFullData = {\r\n ...prev,\r\n [selectWatcher]: props.options?.find(\r\n (option) => option.value === selectWatcher,\r\n )?.fullData,\r\n };\r\n\r\n return newFullData;\r\n });\r\n\r\n form.setFieldsValue({\r\n [`${fieldName}`]: {\r\n hideSelect: selectedValues,\r\n },\r\n });\r\n form.setFieldValue([fieldName, 'select'], undefined);\r\n }\r\n }, [selectWatcher, form]);\r\n\r\n return (\r\n <OrSpace $width=\"100%\" direction=\"vertical\">\r\n <MlFormItem noStyle name={[fieldName, 'select']}>\r\n <AtSelect\r\n showSearch={props.showSearch}\r\n filterOption={props.filterOption}\r\n onSearch={props.onSearch}\r\n options={options}\r\n $width=\"100%\"\r\n disabled={\r\n props.disabled ||\r\n (props.maxCount &&\r\n hideSelectWatcher &&\r\n hideSelectWatcher.length >= props.maxCount)\r\n }\r\n />\r\n </MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n hidden\r\n name={[fieldName, 'hideSelect']}\r\n rules={rules && rules[1]}\r\n >\r\n <AtSelect\r\n options={props.options}\r\n mode=\"multiple\"\r\n $width=\"100%\"\r\n maxCount={props.maxCount}\r\n />\r\n </MlFormItem>\r\n\r\n <OrTable columns={columns} dataSource={data ?? []} scroll={{ y: 340 }} />\r\n </OrSpace>\r\n );\r\n};\r\n","import React, { CSSProperties, ReactNode, useCallback } from 'react';\r\nimport {\r\n AtDatePicker,\r\n AtDatePickerPros,\r\n AtNumberInput,\r\n AtNumberInputProps,\r\n AtSelect,\r\n AtSelectProps,\r\n AtText,\r\n AtTextInput,\r\n AtTextProps,\r\n AtDateRangePicker,\r\n AtIcon,\r\n AtQrCode,\r\n AtButton,\r\n AtButtonProps,\r\n AtImageProps,\r\n AtImage,\r\n AtTimeRangePicker,\r\n AtTimeRangePickerProps,\r\n} from '../../atoms';\r\nimport {\r\n MlFormItem,\r\n MlRadioGroup,\r\n MlRadioGroupProps,\r\n MlFromItemProps,\r\n MlUpload,\r\n MlInfoList,\r\n MlInfoListProps,\r\n MlUploadProps,\r\n MlInputList,\r\n} from '../../molecules';\r\nimport { MlCheckboxGroup } from '../../molecules/MlCheckboxGroup';\r\nimport { OrPhoneInput } from '../OrPhoneInput';\r\nimport { LabeledValue, DefaultOptionType as Option } from 'antd/es/select';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { OrCopyInfo } from '../OrCopyInfo';\r\nimport { OrSelectInput, OrSelectInputProps } from '../OrSelectInput';\r\nimport { UploadProps } from 'antd';\r\nimport { OrCollapse, OrCollapseProps } from '../OrCollapse';\r\nimport { AtInputStatus } from '../../atoms/AtInputStatus';\r\nimport { OrDownloadUpload } from '../OrDownloadUpload';\r\nimport { OrGoogleMaps, OrGoogleMapsProps } from '../OrGoogleMaps';\r\nimport {\r\n MlAutocompleteSearch,\r\n MlAutocompleteSearchProps,\r\n} from '../../molecules/MlAutocompleteSearch';\r\nimport { OrSelectTable, OrSelectTableOption } from '../OrSelectTable';\r\nimport { OrTableProps } from '../OrTable';\r\nimport { OrStep, OrStepProp } from '../OrStep';\r\nimport { MlAutocompleteSearchText } from '../../molecules/MlAutocompleteSearchText';\r\nimport { OrTabs, OrTabsProps } from '../OrTab';\r\nimport { OrDescriptions } from '../OrDescriptions';\r\nimport { DescriptionsProps } from 'antd/lib';\r\nimport { AtBadgeCard, AtBadgeCardProps } from '../../atoms/AtBadgeCard';\r\n\r\ninterface TextProps extends AtTextProps {\r\n text: string;\r\n}\r\n\r\nexport interface OrFormInLineItem {\r\n /**\r\n * Type of components available for the form\r\n */\r\n component:\r\n | 'radio'\r\n | 'number-input'\r\n | 'checkbox'\r\n | 'select'\r\n | 'select-multiple'\r\n | 'text'\r\n | 'phone'\r\n | 'date-picker'\r\n | 'date-range-picker'\r\n | 'cvc'\r\n | 'name'\r\n | 'select-input'\r\n | 'info'\r\n | 'copy-info'\r\n | 'status-info'\r\n | 'file-input'\r\n | 'collapse'\r\n | 'download-upload'\r\n | 'summary'\r\n | 'qr-code'\r\n | 'select-table'\r\n | 'google-map'\r\n | 'google-autocomplete-search'\r\n | 'stepper'\r\n | 'input-list'\r\n | 'button'\r\n | 'image'\r\n | 'time-range-picker'\r\n | 'autocomplete-search'\r\n | 'tabs'\r\n | 'descriptions-table'\r\n | 'badge-ribbon';\r\n\r\n /**\r\n * Label of the field\r\n */\r\n label?: string | string[];\r\n /**\r\n * Key identifier\r\n */\r\n key?: string;\r\n /**\r\n * Field name (develop purpose)\r\n */\r\n fieldName: string;\r\n /**\r\n * Place holder (only for inputs)\r\n */\r\n placeHolder?: string;\r\n /**\r\n * Children of the FormItems (Recursive Form)\r\n */\r\n children?: OrFormItemsInlineProps | React.ReactElement | string;\r\n /**\r\n * Specifies options for fields that allows options\r\n */\r\n options?:\r\n | MlRadioGroupProps['options']\r\n | MlCheckboxGroup['options']\r\n | AtSelectProps['options']\r\n | OrSelectTableOption[];\r\n /**\r\n * Rules for field validation. Click [here](https://ant.design/components/form#components-form-demo-basic) to see an example\r\n */\r\n rules?: MlFromItemProps['rules'];\r\n compositeRules?: [MlFromItemProps['rules'], MlFromItemProps['rules']];\r\n compositeType?: OrSelectInputProps['type'];\r\n hidden?: boolean;\r\n disabled?: boolean;\r\n styles?: CSSProperties;\r\n addonAfter?: ReactNode;\r\n onSearch?: (value: string) => any;\r\n showSearch?: boolean;\r\n onChange?: (value: any, option: Option | Array<Option>) => any;\r\n onSelect?: AtSelectProps['onSelect'];\r\n filterOption?: AtSelectProps['filterOption'];\r\n disabledDate?: AtDatePickerPros['disabledDate'];\r\n formatter?: AtNumberInputProps['formatter'];\r\n parser?: AtNumberInputProps['parser'];\r\n items?: OrCollapseProps['items'];\r\n iconItems?: MlInfoListProps['items'];\r\n /**\r\n * Format of the date\r\n */\r\n format?: string;\r\n textProps?: TextProps | Array<TextProps>;\r\n tabProps?: OrTabsProps;\r\n badgeCardProps?: AtBadgeCardProps;\r\n onClick?: () => any;\r\n /**\r\n * Limit the number of uploaded files. Will replace current one when maxCount is 1\r\n */\r\n maxCount?: number;\r\n /**\r\n * Specify how to get value from event or other onChange arguments\r\n */\r\n getValueFromEvent?: (e: any) => any;\r\n /**\r\n * Hook function which will be executed before uploading. Uploading will be stopped with false or a rejected Promise returned. When returned value is Upload.LIST_IGNORE, the list of files that have been uploaded will ignore it. Warning:this function is not supported in IE9\r\n */\r\n beforeUpload?: UploadProps['beforeUpload'];\r\n /**\r\n * Enables full width\r\n */\r\n fullWidth?: boolean;\r\n /**\r\n * Type of the status info\r\n */\r\n type?: 'success' | 'warning' | 'danger' | 'info' | 'default';\r\n /**\r\n * Tooltip of the label\r\n */\r\n tooltip?: MlFromItemProps['tooltip'];\r\n /**\r\n * Title of the download-upload\r\n */\r\n title?: string;\r\n /**\r\n * Span of the column (only for inline items)\r\n */\r\n span?: number;\r\n /**\r\n * Span of the column on medium screens (only for inline items)\r\n */\r\n md?: number;\r\n /**\r\n * MlInfoList items\r\n */\r\n summaryItems?: MlInfoListProps['items'];\r\n /**\r\n * Label column span\r\n */\r\n labelCol?: number;\r\n /**\r\n * Information to be displayed below the input\r\n */\r\n extraInfo?: string;\r\n /**\r\n * The Google Maps props\r\n */\r\n mapsProps?: OrGoogleMapsProps;\r\n /**\r\n * The Google Maps API key.\r\n */\r\n GOOGLE_MAPS_API_KEY?: string;\r\n /**\r\n * Country code\r\n */\r\n country?: string;\r\n /**\r\n * The props for the autocomplete search\r\n */\r\n autocompleteProps?: Omit<MlAutocompleteSearchProps, 'fieldName' | 'rules'>;\r\n /**\r\n * The size of the QR code\r\n */\r\n size?: number;\r\n /**\r\n * Columns for the table (select-table component)\r\n */\r\n columns?: OrTableProps['columns'];\r\n /**\r\n * Data for the table (select-table component)\r\n */\r\n data?: OrTableProps['dataSource'];\r\n /**\r\n * The picker type (date-picker component)\r\n */\r\n picker?: AtDatePickerPros['picker'];\r\n /**\r\n * file list for the file-input component\r\n */\r\n fileList?: MlUploadProps['fileList'];\r\n /**\r\n * onRemove for the file-input component\r\n */\r\n onRemoveUploadedFile?: MlUploadProps['onRemove'];\r\n noStyle?: boolean;\r\n /**\r\n * The mode of the upload\r\n */\r\n uploadMode?: 'drag' | 'basic';\r\n /**\r\n * The description of the summary component\r\n */\r\n description?: string;\r\n /**\r\n * Stepper props\r\n */\r\n stepperProps?: OrStepProp;\r\n /**\r\n * Custom select options\r\n */\r\n customOptions?: AtSelectProps['options'];\r\n /**\r\n * Adds a collapse wrapper to the current input\r\n */\r\n collapseWrapper?: boolean;\r\n /**\r\n * The orientation of the input\r\n */\r\n orientation?: 'horizontal' | 'vertical';\r\n /**\r\n * The type of the list item\r\n */\r\n listValues?: LabeledValue[];\r\n /**\r\n * The type of the list item\r\n */\r\n listItemType?: 'autocomplete' | 'text';\r\n /**\r\n * The text for the bottom button\r\n */\r\n addButtonText?: string;\r\n /**\r\n * The mode of the button\r\n */\r\n buttonType?: AtButtonProps['type'];\r\n /**\r\n * The icon of the button\r\n */\r\n icon?: AtButtonProps['icon'];\r\n /**\r\n * The function to fetch the place details\r\n */\r\n fetchPlaceDetails?: (id: string) => any;\r\n /**\r\n * The minimum number of items\r\n */\r\n minItems?: number;\r\n /**\r\n * The props for the image field\r\n */\r\n imageProps?: AtImageProps;\r\n /**\r\n * The props for the time range picker\r\n */\r\n timeRangePickerProps?: AtTimeRangePickerProps;\r\n /**\r\n * The props for the time range picker\r\n */\r\n descriptionsTableProps?: DescriptionsProps;\r\n /**\r\n * Allow auto clear for a select field\r\n */\r\n autoClearSearchValue?: boolean | undefined;\r\n}\r\n\r\nconst NO_FIELD_NAME_COMPONENTS: OrFormInLineItem['component'][] = [\r\n 'phone',\r\n 'google-autocomplete-search',\r\n //'select-input', TODO: Check this component to include rules\r\n];\r\nconst NO_INPUT_NAME_COMPONENTS: OrFormInLineItem['component'][] = [\r\n 'info',\r\n 'copy-info',\r\n 'button',\r\n];\r\nconst SPECIAL_COMPONENTS: OrFormInLineItem['component'][] = [\r\n 'download-upload',\r\n 'input-list',\r\n];\r\n\r\nexport interface OrFormItemsInlineProps {\r\n inputs?: Array<\r\n OrFormInLineItem | Array<OrFormInLineItem | OrFormInLineItem[]>\r\n >;\r\n}\r\n\r\nconst isRequired = (\r\n inputRules: OrFormInLineItem['rules'],\r\n compositeRules: OrFormInLineItem['compositeRules'],\r\n): boolean => {\r\n const rules: MlFromItemProps['rules'] = [\r\n ...(inputRules ?? []),\r\n ...(compositeRules?.at(0) ?? []),\r\n ...(compositeRules?.at(1) ?? []),\r\n ];\r\n return !!rules?.filter((rule) => rule.required).length ?? false;\r\n};\r\n\r\nexport const OrFormItemsInline: React.FC<OrFormItemsInlineProps> = ({\r\n inputs = [],\r\n}) => {\r\n const dummyRequest: UploadProps['customRequest'] = useCallback(\r\n (options: any) => {\r\n //This any is necessary in this case\r\n setTimeout(() => {\r\n if (options.onSuccess) options.onSuccess('ok');\r\n }, 0);\r\n },\r\n [],\r\n );\r\n\r\n const getValuePropName = useCallback(\r\n (input: OrFormInLineItem) => {\r\n if (input.component === 'checkbox') {\r\n return 'checked';\r\n } else if (\r\n input.component === 'file-input' ||\r\n input.component === 'download-upload'\r\n ) {\r\n return 'fileList';\r\n } else {\r\n return 'value';\r\n }\r\n },\r\n [inputs],\r\n );\r\n\r\n const getInputComponent = useCallback(\r\n (input: OrFormInLineItem) => {\r\n if (input.component === 'radio') {\r\n return (\r\n <MlRadioGroup\r\n disabled={input.disabled}\r\n options={input.options as MlRadioGroupProps['options']}\r\n orientation={input.orientation}\r\n />\r\n );\r\n } else if (input.component === 'image') {\r\n return <AtImage {...input.imageProps} />;\r\n } else if (input.component === 'button') {\r\n return (\r\n <AtButton\r\n icon={input.icon}\r\n type={input.buttonType}\r\n onClick={input.onClick}\r\n disabled={input.disabled}\r\n value={input.label as string}\r\n $width={input.fullWidth ? '100%' : undefined}\r\n />\r\n );\r\n } else if (input.component === 'summary') {\r\n return (\r\n <MlInfoList\r\n title={input.title}\r\n titleLevel={input.size as MlInfoListProps['titleLevel']}\r\n description={input.description}\r\n items={input.iconItems as MlInfoListProps['items']}\r\n />\r\n );\r\n } else if (input.component === 'number-input') {\r\n return (\r\n <AtNumberInput\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n controls={false}\r\n formatter={input.formatter}\r\n parser={input.parser}\r\n addonAfter={input.addonAfter}\r\n />\r\n );\r\n } else if (input.component === 'checkbox') {\r\n return (\r\n <MlCheckboxGroup\r\n disabled={input.disabled}\r\n $direction={input.fullWidth ? 'vertical' : 'horizontal'}\r\n options={input.options as MlCheckboxGroup['options']}\r\n />\r\n );\r\n } else if (input.component === 'select') {\r\n return (\r\n <AtSelect\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n showSearch={input.showSearch}\r\n onSearch={input.onSearch}\r\n onChange={input.onChange}\r\n onSelect={input.onSelect}\r\n filterOption={input.filterOption}\r\n autoClearSearchValue={input.autoClearSearchValue}\r\n />\r\n );\r\n } else if (input.component === 'select-multiple') {\r\n return (\r\n <AtSelect\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n mode={'multiple'}\r\n />\r\n );\r\n } else if (input.component === 'text') {\r\n return (\r\n <AtTextInput\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n addonAfter={input.addonAfter}\r\n />\r\n );\r\n } else if (input.component === 'date-picker') {\r\n return (\r\n <AtDatePicker\r\n $width=\"100%\"\r\n placeholder={input.placeHolder}\r\n style={input.styles}\r\n format={input.format || 'DD/MM/YYYY'}\r\n disabled={input.disabled}\r\n disabledDate={input.disabledDate}\r\n picker={input.picker ?? 'date'}\r\n />\r\n );\r\n } else if (input.component === 'date-range-picker') {\r\n return (\r\n <AtDateRangePicker\r\n $width=\"100%\"\r\n placeholder={input.placeHolder}\r\n style={input.styles}\r\n format={input.format || 'DD/MM/YYYY'}\r\n disabled={input.disabled}\r\n disabledDate={input.disabledDate}\r\n />\r\n );\r\n } else if (input.component === 'phone') {\r\n return (\r\n <OrPhoneInput\r\n name={input.fieldName}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n rules={input.rules}\r\n />\r\n );\r\n } else if (input.component === 'select-input') {\r\n return (\r\n <OrSelectInput\r\n type={input.compositeType}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n rules={input.compositeRules}\r\n fieldName={input.fieldName}\r\n />\r\n );\r\n } else if (input.component === 'info') {\r\n if (Array.isArray(input.textProps)) {\r\n return (\r\n <OrRow justify=\"space-between\">\r\n <OrCol span={24 / input.textProps.length}>\r\n <AtText {...input.textProps?.[0]}>\r\n {input.textProps?.[0]?.text}\r\n </AtText>\r\n </OrCol>\r\n {input.textProps?.[1]?.text && (\r\n <OrCol span={24 / input.textProps.length}>\r\n <AtText {...input.textProps?.[1]}>\r\n {input.textProps?.[1]?.text}\r\n </AtText>\r\n </OrCol>\r\n )}\r\n {input.textProps?.[2]?.text && (\r\n <OrCol span={24 / input.textProps.length} $alignItems=\"end\">\r\n <AtText {...input.textProps?.[2]}>\r\n {input.textProps?.[2]?.text}\r\n </AtText>\r\n </OrCol>\r\n )}\r\n </OrRow>\r\n );\r\n } else {\r\n return <AtText {...input.textProps}>{input.textProps?.text}</AtText>;\r\n }\r\n } else if (input.component === 'copy-info') {\r\n return (\r\n <OrCopyInfo\r\n textProps={input.textProps as TextProps}\r\n text={(input.textProps as TextProps)?.text}\r\n copyable={!input.disabled}\r\n onCopy={input?.onClick}\r\n />\r\n );\r\n } else if (input.component === 'file-input') {\r\n return (\r\n <MlUpload\r\n name={`${input.fieldName}`}\r\n maxCount={input.maxCount}\r\n beforeUpload={input.beforeUpload}\r\n customRequest={dummyRequest}\r\n listType={'picture'}\r\n $fullWidth={input.fullWidth}\r\n title={input.placeHolder}\r\n fileList={input.fileList}\r\n mode={input.uploadMode ?? 'basic'}\r\n />\r\n );\r\n } else if (input.component === 'collapse') {\r\n return <OrCollapse items={input.items} />;\r\n } else if (input.component === 'status-info') {\r\n return (\r\n <AtInputStatus\r\n type={input?.type}\r\n onClose={input?.onClick}\r\n closeIcon={<AtIcon name=\"CloseOutlined\" width={14} height={14} />}\r\n children={(input.textProps as TextProps)?.text}\r\n visible={\r\n !!(\r\n (input?.textProps as TextProps)?.text !== undefined &&\r\n (input?.textProps as TextProps)?.text !== '' &&\r\n !input.disabled !== false\r\n )\r\n }\r\n />\r\n );\r\n } else if (input.component === 'download-upload') {\r\n return (\r\n <OrDownloadUpload\r\n inputKey={`download-input_${input.key}` ?? 'download-upload'}\r\n getValueFromEvent={input.getValueFromEvent}\r\n rules={input.rules}\r\n isRequired={isRequired(input.rules, input.compositeRules)}\r\n disabled={input.disabled}\r\n downloadProps={{\r\n downloadOnClick: input?.onClick,\r\n downloadText: (input.textProps as TextProps)?.text ?? '',\r\n }}\r\n uploadProps={{\r\n name: `${input.fieldName}`,\r\n title: input.title,\r\n hint: input.placeHolder,\r\n maxCount: input.maxCount,\r\n beforeUpload: input.beforeUpload,\r\n customRequest: dummyRequest,\r\n listType: 'picture',\r\n $fullWidth: input.fullWidth,\r\n mode: input.uploadMode ?? 'drag',\r\n onRemove: input.onRemoveUploadedFile,\r\n }}\r\n />\r\n );\r\n } else if (input.component === 'google-map') {\r\n return (\r\n input.mapsProps && (\r\n <OrGoogleMaps\r\n mapContainerStyle={{\r\n width: '100%',\r\n height: '600px',\r\n }}\r\n {...input.mapsProps}\r\n />\r\n )\r\n );\r\n } else if (input.component === 'google-autocomplete-search') {\r\n return (\r\n <MlAutocompleteSearch\r\n {...input.autocompleteProps}\r\n fieldName={input.fieldName}\r\n rules={input.rules}\r\n />\r\n );\r\n } else if (input.component === 'autocomplete-search') {\r\n return (\r\n <MlAutocompleteSearchText\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n onSearch={input.onSearch}\r\n onChange={input.onChange}\r\n onSelectValue={input.onSelect}\r\n style={input.styles}\r\n />\r\n );\r\n } else if (input.component === 'qr-code') {\r\n return <AtQrCode size={input.size} text={input.placeHolder ?? ''} />;\r\n } else if (input.component === 'select-table') {\r\n return (\r\n <OrSelectTable\r\n columns={input.columns}\r\n data={input.data}\r\n options={input.options as OrSelectTableOption[]}\r\n onChange={input.onChange}\r\n fieldName={input.fieldName}\r\n showSearch={input.showSearch}\r\n filterOption={input.filterOption}\r\n onSearch={input.onSearch}\r\n rules={input.compositeRules}\r\n maxCount={input.maxCount}\r\n />\r\n );\r\n } else if (input.component === 'stepper') {\r\n return <OrStep {...input.stepperProps} />;\r\n } else if (input.component === 'input-list') {\r\n return (\r\n <MlInputList\r\n baseKey={input.key}\r\n withinForm={true}\r\n loading={false}\r\n mainLabel={input.fieldName}\r\n label={typeof input.label === 'string' ? input.label : 'Item'}\r\n rules={input.rules}\r\n list={input.listValues ?? []}\r\n listItemType={input.listItemType}\r\n country={input.country}\r\n GOOGLE_MAPS_API_KEY={input.GOOGLE_MAPS_API_KEY}\r\n placeholder={input.placeHolder}\r\n bottomButtonText={input.addButtonText}\r\n bottomButtonType={input.buttonType}\r\n bottomButtonIcon={input.icon}\r\n fetchPlaceDetails={input.fetchPlaceDetails}\r\n minItems={input.minItems}\r\n onSearch={input.onSearch}\r\n onSelect={input.onSelect}\r\n />\r\n );\r\n } else if (input.component === 'time-range-picker') {\r\n return <AtTimeRangePicker {...input.timeRangePickerProps} />;\r\n } else if (input.component === 'tabs') {\r\n return <OrTabs {...input.tabProps} />;\r\n } else if (input.component === 'descriptions-table') {\r\n return (\r\n <OrDescriptions\r\n {...input.descriptionsTableProps}\r\n items={\r\n input.descriptionsTableProps?.items as DescriptionsProps['items']\r\n }\r\n title={input.descriptionsTableProps?.title as string}\r\n />\r\n );\r\n } else if (input.component === 'badge-ribbon') {\r\n return <AtBadgeCard {...input.badgeCardProps} />;\r\n } else {\r\n return null;\r\n }\r\n },\r\n [inputs],\r\n );\r\n\r\n const getFormItemWrapper = (\r\n input: OrFormInLineItem,\r\n index: number,\r\n ): React.ReactNode => {\r\n return (\r\n <>\r\n <MlFormItem\r\n hidden={input.hidden}\r\n key={input.key || index} // Use index as a fallback if key is not provided\r\n label={\r\n typeof input.label !== 'string' || input.collapseWrapper\r\n ? undefined\r\n : input.label\r\n }\r\n labelCol={{ span: input.labelCol ?? undefined }}\r\n name={input.fieldName}\r\n valuePropName={getValuePropName(input)}\r\n rules={\r\n !NO_FIELD_NAME_COMPONENTS.includes(input.component)\r\n ? input.rules\r\n : undefined\r\n }\r\n getValueFromEvent={input.getValueFromEvent ?? undefined}\r\n tooltip={input.tooltip}\r\n required={\r\n !NO_FIELD_NAME_COMPONENTS.includes(input.component) &&\r\n isRequired(input.rules, input.compositeRules)\r\n }\r\n noStyle={input.noStyle}\r\n >\r\n {getInputComponent(input)}\r\n </MlFormItem>\r\n {input.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {input.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {inputs.map((input, index) =>\r\n Array.isArray(input) ? (\r\n <OrRow key={100 + index} gutter={[16]}>\r\n {input.map((elem, index) => {\r\n const thereIsNoArray = input.every(\r\n (elem) => !Array.isArray(elem),\r\n );\r\n\r\n let span: number, md: number;\r\n\r\n if (thereIsNoArray && !Array.isArray(elem)) {\r\n span = elem.span ?? 24;\r\n md = elem.md\r\n ? elem.md\r\n : elem.span\r\n ? elem.span\r\n : 24 / input.length;\r\n } else {\r\n span = 24;\r\n md = 24 / input.length;\r\n }\r\n\r\n return (\r\n <OrCol flex=\"auto\" span={span} sm={md}>\r\n {Array.isArray(elem) ? (\r\n <OrRow key={1000 + index} gutter={[16]}>\r\n {elem.map((innerElem, innerIndex) => {\r\n const innerSpan = innerElem.span ?? 24;\r\n const innerMd = innerElem.md\r\n ? innerElem.md\r\n : innerElem.span\r\n ? innerElem.span\r\n : 24 / input.length;\r\n\r\n return (\r\n <OrCol\r\n flex=\"auto\"\r\n span={innerSpan}\r\n md={innerMd}\r\n style={{\r\n width: innerElem.fullWidth ? '100%' : undefined,\r\n }}\r\n >\r\n <OrRow>\r\n <OrCol $paddingTop={5} span={24}>\r\n <MlFormItem\r\n hidden={innerElem.hidden}\r\n key={innerElem.key || innerIndex} // Use index as a fallback if key is not provided\r\n label={\r\n typeof innerElem.label !== 'string'\r\n ? undefined\r\n : innerElem.label\r\n }\r\n labelCol={{\r\n span: innerElem.labelCol ?? undefined,\r\n }}\r\n name={\r\n innerElem.component !== 'phone'\r\n ? innerElem.fieldName\r\n : undefined\r\n }\r\n valuePropName={getValuePropName(innerElem)}\r\n rules={\r\n !NO_FIELD_NAME_COMPONENTS.includes(\r\n innerElem.component,\r\n )\r\n ? innerElem.rules\r\n : undefined\r\n }\r\n getValueFromEvent={\r\n innerElem.getValueFromEvent ?? undefined\r\n }\r\n required={\r\n NO_FIELD_NAME_COMPONENTS.includes(\r\n innerElem.component,\r\n ) &&\r\n isRequired(\r\n innerElem.rules,\r\n innerElem.compositeRules,\r\n )\r\n }\r\n tooltip={innerElem.tooltip}\r\n >\r\n {getInputComponent(innerElem)}\r\n </MlFormItem>\r\n </OrCol>\r\n </OrRow>\r\n {innerElem.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {innerElem.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n ) : (\r\n <>\r\n <MlFormItem\r\n hidden={elem.hidden}\r\n key={elem.key || index} // Use index as a fallback if key is not provided\r\n label={\r\n typeof elem.label !== 'string'\r\n ? undefined\r\n : elem.label\r\n }\r\n labelCol={{ span: elem.labelCol ?? undefined }}\r\n name={\r\n elem.component !== 'phone'\r\n ? elem.fieldName\r\n : undefined\r\n }\r\n valuePropName={getValuePropName(elem)}\r\n rules={\r\n !NO_FIELD_NAME_COMPONENTS.includes(elem.component)\r\n ? elem.rules\r\n : undefined\r\n }\r\n getValueFromEvent={elem.getValueFromEvent}\r\n required={\r\n NO_FIELD_NAME_COMPONENTS.includes(elem.component) &&\r\n isRequired(elem.rules, elem.compositeRules)\r\n }\r\n tooltip={elem.tooltip}\r\n >\r\n {getInputComponent(elem)}\r\n </MlFormItem>\r\n {elem.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {elem.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </>\r\n )}\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n ) : NO_INPUT_NAME_COMPONENTS.includes(input.component) ? (\r\n <OrRow\r\n style={\r\n input.noStyle\r\n ? {}\r\n : {\r\n marginTop: 16,\r\n marginBottom: 16,\r\n }\r\n }\r\n >\r\n {getInputComponent(input)}\r\n {input.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {input.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </OrRow>\r\n ) : SPECIAL_COMPONENTS.includes(input.component) ? (\r\n <MlFormItem\r\n label={\r\n typeof input.label !== 'string' ||\r\n input.component === 'input-list'\r\n ? undefined\r\n : `${input.label}`\r\n }\r\n required={isRequired(input.rules, input.compositeRules)}\r\n tooltip={input.tooltip}\r\n noStyle={input.noStyle}\r\n >\r\n {getInputComponent(input)}\r\n {input.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {input.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </MlFormItem>\r\n ) : input.collapseWrapper ? (\r\n <OrRow>\r\n <OrCol $paddingBottom={24} span={24}>\r\n <OrCollapse\r\n items={[\r\n {\r\n key: input.key,\r\n label: input.label,\r\n children: getFormItemWrapper(input, index),\r\n },\r\n ]}\r\n />\r\n </OrCol>\r\n </OrRow>\r\n ) : (\r\n getFormItemWrapper(input, index)\r\n ),\r\n )}\r\n </>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { AtText, AtTextProps } from '../../atoms/AtText';\r\nimport { OrCol, OrRow } from '..';\r\n\r\ntype Size = 'large' | 'middle' | 'small';\r\n\r\nconst sizes: { [key in Size]: { gap: number } } = {\r\n large: {\r\n gap: 10,\r\n },\r\n middle: {\r\n gap: 5,\r\n },\r\n small: {\r\n gap: 0,\r\n },\r\n};\r\n\r\nexport interface OrLabelTextBoxProps {\r\n title?: string;\r\n text?: string;\r\n id?: string;\r\n size?: Size;\r\n color?: AtTextProps['color'];\r\n}\r\n\r\nexport const OrLabelTextBox: React.FC<OrLabelTextBoxProps> = ({\r\n text,\r\n title,\r\n id,\r\n size = 'middle',\r\n color = 'black',\r\n}) => {\r\n return (\r\n <OrCol key={id} $gap={sizes[size].gap}>\r\n <OrRow>\r\n <AtText $fontSize={18} strong={true} color={color}>\r\n {title}\r\n </AtText>\r\n </OrRow>\r\n <OrRow key={id}>\r\n <AtText $fontSize={18} color={color}>\r\n {text}\r\n </AtText>\r\n </OrRow>\r\n </OrCol>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrLabelTextBox,\r\n OrLabelTextBoxProps,\r\n} from '../../organisms/OrLabelTextBox';\r\nimport { OrCol } from '../OrCol';\r\nimport { OrRow } from '../OrRow';\r\nimport { AtImage } from '../../atoms';\r\nimport { gray } from '../../../theme';\r\n\r\nexport interface OrInfoCardProps {\r\n data?: OrLabelTextBoxProps[];\r\n id?: string;\r\n image?: string;\r\n}\r\n\r\nexport const OrInfoCard: React.FC<OrInfoCardProps> = ({ data, image }) => {\r\n return (\r\n <OrRow\r\n align={'middle'}\r\n justify={'space-between'}\r\n $gap={24}\r\n $paddingLeft={24}\r\n $paddingRight={5}\r\n $paddingVertical={16}\r\n $backgroundColor={gray[3]}\r\n style={{ borderRadius: 8 }}\r\n >\r\n {!!image && (\r\n <OrCol>\r\n <AtImage width={40} height={40} src={image} preview={false} />\r\n </OrCol>\r\n )}\r\n {data?.map((item) => (\r\n <OrCol>\r\n <OrLabelTextBox {...item} color={item.color} />\r\n </OrCol>\r\n ))}\r\n </OrRow>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { MlCardProps } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtButton, AtIcon } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\nimport { Breadcrumb } from 'antd';\r\nimport { BreadcrumbProps } from 'antd/lib';\r\n\r\nexport interface OrInfoHeaderCardProps extends MlCardProps {\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Breadcrumb items\r\n */\r\n breadcrumbItems?: BreadcrumbProps['items'];\r\n /**\r\n * Breadcrumb items\r\n */\r\n leftElement?: React.ReactElement;\r\n /**\r\n * Breadcrumb items\r\n */\r\n rightElement?: React.ReactElement;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrInfoHeaderCard: React.FC<OrInfoHeaderCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n onClickLeftArrow,\r\n breadcrumbItems = [],\r\n leftElement,\r\n rightElement,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n {breadcrumbItems && (\r\n <OrRow style={{ marginBottom: 17 }}>\r\n <Breadcrumb items={breadcrumbItems} />\r\n </OrRow>\r\n )}\r\n <OrRow justify={'space-between'}>\r\n <OrCol $flexDirection=\"row\" $alignItems=\"center\" $gap={10}>\r\n {onClickLeftArrow && (\r\n <AtButton\r\n onClick={onClickLeftArrow}\r\n icon={<AtIcon name=\"ArrowLeftOutlined\" />}\r\n borderless\r\n type=\"ghost\"\r\n />\r\n )}\r\n {leftElement}\r\n </OrCol>\r\n <OrCol>{rightElement}</OrCol>\r\n </OrRow>\r\n </StyledCard>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const ModuleContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const Container = styled.div<{ $padding?: string }>`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 15px;\r\n ${({ $padding }) => (`padding: ${$padding};`)}\r\n`;\r\n","import React from 'react';\r\nimport { AtButton, AtTitle } from '../../atoms';\r\nimport { ModuleContainer, Container } from './styles';\r\nimport { MlSearchBox } from '../../molecules';\r\n\r\nexport interface OrModuleTableHeaderProps {\r\n /**\r\n * Title of the module table header\r\n */\r\n title?: string;\r\n /**\r\n * Search box placeholder\r\n */\r\n searchBoxPlaceholder?: string;\r\n /**\r\n * Search box value\r\n */\r\n searchBoxValue?: string;\r\n /**\r\n * Search box onChange\r\n */\r\n searchBoxOnChange?:\r\n | ((e: React.ChangeEvent<HTMLInputElement>) => void)\r\n | undefined;\r\n /**\r\n * Search box onSearch\r\n */\r\n searchBoxOnSearch?:\r\n | ((\r\n value: string,\r\n event?:\r\n | React.ChangeEvent<HTMLInputElement>\r\n | React.MouseEvent<HTMLElement, MouseEvent>\r\n | React.KeyboardEvent<HTMLInputElement>\r\n | undefined,\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Search box onPressEnter\r\n */\r\n searchBoxOnPressEnter?:\r\n | ((event: React.KeyboardEvent<HTMLInputElement>) => void)\r\n | undefined;\r\n /**\r\n * Button value\r\n */\r\n buttonValue?: string;\r\n /**\r\n * Button onClick\r\n */\r\n buttonOnClick?:\r\n | (React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>)\r\n | undefined;\r\n /**\r\n * Custom component to render at left side\r\n */\r\n customLeftElements?: React.ReactNode;\r\n /**\r\n * Show search box\r\n */\r\n showSearchBox?: boolean;\r\n /**\r\n * Level of title\r\n */\r\n level?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * Button value\r\n */\r\n secondaryButtonValue?: string;\r\n /**\r\n * Button onClick\r\n */\r\n secondaryButtonOnClick?:\r\n | (React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>)\r\n | undefined;\r\n /**\r\n * Icon for first button\r\n */\r\n buttonIcon?: string;\r\n\r\n /**\r\n * Icon for second button\r\n */\r\n secondaryButtonIcon?: string;\r\n}\r\n\r\nexport const OrModuleTableHeader: React.FC<OrModuleTableHeaderProps> = ({\r\n title,\r\n customLeftElements,\r\n showSearchBox = true,\r\n searchBoxPlaceholder,\r\n searchBoxOnChange,\r\n searchBoxOnSearch,\r\n buttonValue,\r\n buttonOnClick,\r\n level = 5,\r\n secondaryButtonValue,\r\n secondaryButtonOnClick,\r\n buttonIcon,\r\n secondaryButtonIcon,\r\n}) => {\r\n return (\r\n <ModuleContainer>\r\n <Container>\r\n <AtTitle level={level} $margin=\"0\">\r\n {title}\r\n </AtTitle>\r\n {customLeftElements}\r\n </Container>\r\n <Container $padding=\"16px 8px\">\r\n {showSearchBox && (\r\n <MlSearchBox\r\n placeholder={searchBoxPlaceholder}\r\n onChange={searchBoxOnChange}\r\n onSearch={searchBoxOnSearch}\r\n />\r\n )}\r\n {secondaryButtonValue && (\r\n <AtButton\r\n icon={secondaryButtonIcon}\r\n value={secondaryButtonValue}\r\n onClick={secondaryButtonOnClick}\r\n />\r\n )}\r\n {!!buttonValue && (\r\n <AtButton\r\n icon={buttonIcon}\r\n value={buttonValue}\r\n type=\"primary\"\r\n onClick={buttonOnClick}\r\n />\r\n )}\r\n </Container>\r\n </ModuleContainer>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { AtButton, AtSelect, AtSelectProps, AtText } from '../../atoms';\r\nimport { OrModuleTableHeaderProps } from '../OrModuleTableHeader';\r\nimport { OrTable, OrTableProps } from '../OrTable';\r\nimport { TableRowSelection } from 'antd/es/table/interface';\r\nimport { AnyObject } from 'antd/es/_util/type';\r\nimport { OrRow } from '../OrRow';\r\nimport { Container } from '../OrModuleTableHeader/styles';\r\nimport { OrAlert } from '../OrAlert';\r\nimport { DefaultOptionType } from 'antd/es/select';\r\n\r\nexport interface OrListSelectionProps {\r\n /**\r\n * Text of button to add\r\n */\r\n buttonAddText?: string;\r\n /**\r\n * Function to execute when button to add is clicked\r\n */\r\n onAddButtonOnClick?: OrModuleTableHeaderProps['buttonOnClick'];\r\n /**\r\n * Function to execute when search box is searched\r\n */\r\n searchBoxOnSearch?: OrModuleTableHeaderProps['searchBoxOnSearch'];\r\n /**\r\n * Placeholder of search box\r\n */\r\n searchBoxPlaceholder?: string;\r\n /**\r\n * onChange rowSelection\r\n */\r\n onChangeRowSelection?: TableRowSelection<AnyObject>['onChange'];\r\n /**\r\n * Columns of table\r\n */\r\n columns: OrTableProps['columns'];\r\n /**\r\n * Data record array to be displayed\r\n */\r\n data?: OrTableProps['dataSource'];\r\n /**\r\n * Loading status of table\r\n */\r\n loadingTable?: OrTableProps['loading'];\r\n /**\r\n * Config of pagination. You can ref table pagination config or full pagination document, hide it by setting it to false\r\n */\r\n pagination?: OrTableProps['pagination'];\r\n /**\r\n * Title of table\r\n */\r\n tableTitle?: string;\r\n /**\r\n * Title of remove button\r\n */\r\n removeBtnTitle?: string;\r\n /**\r\n * Disabled status of remove button\r\n */\r\n removeBtnDisabled?: boolean;\r\n /**\r\n * dangerBtn status of remove button\r\n */\r\n dangerBtn?: boolean;\r\n /**\r\n * Function to execute when remove button is clicked\r\n */\r\n onRemoveClick?: () => void;\r\n /**\r\n * type of alert display\r\n */\r\n alertType?: 'success' | 'info' | 'error' | 'warning';\r\n /**\r\n * Description of alert display\r\n */\r\n alertDescription?: string;\r\n /**\r\n * select value \r\n */\r\n selectValue?: AtSelectProps['value']\r\n /**\r\n * select on change\r\n */\r\n selectOnChange?: AtSelectProps['onChange']\r\n /**\r\n * select options\r\n */\r\n selectOptions?: DefaultOptionType[]\r\n /**\r\n * not found select element\r\n */\r\n selectNotFoundContent?: React.ReactNode;\r\n}\r\n\r\nexport const OrListSelection: React.FC<OrListSelectionProps> = ({\r\n buttonAddText,\r\n onAddButtonOnClick,\r\n searchBoxOnSearch,\r\n searchBoxPlaceholder,\r\n onChangeRowSelection,\r\n columns,\r\n data,\r\n loadingTable,\r\n pagination,\r\n tableTitle,\r\n removeBtnTitle,\r\n removeBtnDisabled = false,\r\n onRemoveClick,\r\n alertType,\r\n alertDescription,\r\n selectOnChange,\r\n dangerBtn = false,\r\n selectValue,\r\n selectOptions,\r\n selectNotFoundContent\r\n}) => {\r\n return ( \r\n <>\r\n <Container $padding='16px 0px'>\r\n <AtSelect\r\n $width='100%'\r\n backgroundColor='white'\r\n showSearch\r\n filterOption={false}\r\n defaultActiveFirstOption={false}\r\n value={selectValue}\r\n placeholder={searchBoxPlaceholder}\r\n onSearch={searchBoxOnSearch}\r\n options={selectOptions}\r\n onChange={selectOnChange}\r\n notFoundContent={selectNotFoundContent}\r\n />\r\n <AtButton\r\n value={buttonAddText}\r\n type=\"primary\"\r\n onClick={onAddButtonOnClick}\r\n />\r\n </Container>\r\n {\r\n alertDescription &&\r\n <OrAlert type={alertType} closable showIcon message={alertDescription} />\r\n }\r\n <OrRow justify='space-between' $paddingBottom={15} $paddingTop={25} align='middle'>\r\n <AtText $fontSize={16} strong>{tableTitle}</AtText>\r\n <AtButton $width='auto' danger={dangerBtn} type={dangerBtn ? 'primary' : 'default'} disabled={removeBtnDisabled} value={removeBtnTitle} onClick={onRemoveClick}/>\r\n </OrRow>\r\n <OrTable\r\n rowSelection={\r\n {\r\n type: 'checkbox',\r\n onChange: onChangeRowSelection,\r\n }\r\n }\r\n columns={columns}\r\n dataSource={data}\r\n loading={loadingTable}\r\n pagination={pagination}\r\n />\r\n </>\r\n\r\n );\r\n}","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledContainer = styled.div`\r\n & {\r\n display: flex;\r\n background-color: ${gray[1]};\r\n height: 100vh;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const StyledCarouselImageContainer = styled.div`\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { StyledCarouselImageContainer, StyledContainer } from './styles';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { MlCarousel } from '../../molecules';\r\nimport { AtImage, AtText, AtTextProps } from '../../atoms';\r\n\r\nexport interface OrLoginLayoutProps {\r\n /**\r\n * Carousel image background source\r\n */\r\n $carouselBackgroundSrc?: string;\r\n /**\r\n * Images to show into carousel\r\n */\r\n carouselImages:\r\n | string[]\r\n | { src?: string; component?: React.ReactNode; text?: string }[];\r\n /**\r\n * Carousel text props\r\n */\r\n carouselTextProps?: AtTextProps;\r\n /**\r\n * Content to render into layout\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrLoginLayout: React.FC<OrLoginLayoutProps> = ({\r\n $carouselBackgroundSrc,\r\n carouselImages,\r\n carouselTextProps,\r\n children,\r\n}) => {\r\n return (\r\n <StyledContainer>\r\n <OrRow align=\"stretch\" justify=\"center\">\r\n <OrCol\r\n $justify=\"start\"\r\n xs={{ span: 24, $paddingHorizontal: 20, $paddingTop: 40 }}\r\n md={{ span: 14, $paddingHorizontal: 64, $paddingTop: 120 }}\r\n >\r\n {children}\r\n </OrCol>\r\n\r\n <OrCol\r\n xs={{ hidden: true }}\r\n md={{ span: 10 }}\r\n $justify=\"center\"\r\n $backgroundSrc={$carouselBackgroundSrc}\r\n >\r\n <MlCarousel\r\n dots={true}\r\n autoplay={true}\r\n waitForAnimate={true}\r\n dotPosition=\"bottom\"\r\n centerMode={true}\r\n >\r\n {carouselImages.map((elem, key) => {\r\n return (\r\n <div key={key}>\r\n {typeof elem === 'string' ? (\r\n <StyledCarouselImageContainer>\r\n <AtImage src={elem} preview={false} alt=\"Test image\" />\r\n </StyledCarouselImageContainer>\r\n ) : (\r\n <StyledCarouselImageContainer>\r\n {elem.src ? (\r\n <AtImage\r\n src={elem.src}\r\n preview={false}\r\n alt=\"Test image\"\r\n />\r\n ) : (\r\n elem.component\r\n )}\r\n {!!elem.text && (\r\n <OrRow\r\n $paddingHorizontal={50}\r\n justify=\"center\"\r\n style={{\r\n marginBottom: '3em',\r\n }}\r\n >\r\n <AtText {...carouselTextProps}>{elem.text}</AtText>\r\n </OrRow>\r\n )}\r\n </StyledCarouselImageContainer>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </MlCarousel>\r\n </OrCol>\r\n </OrRow>\r\n </StyledContainer>\r\n );\r\n};\r\n\r\nexport default OrLoginLayout;\r\n","import React from 'react';\r\nimport { Modal, ModalFuncProps, ModalProps } from 'antd';\r\n\r\ntype ConfigUpdate =\r\n | ModalFuncProps\r\n | ((prevConfig: ModalFuncProps) => ModalFuncProps);\r\nexport type instanceModal = {\r\n destroy: () => void;\r\n update: (configUpdate: ConfigUpdate) => void;\r\n} | null;\r\ninterface OrModalProps {\r\n /**\r\n * Specify a function that will be called when modal is closed completely\r\n */\r\n afterClose?: () => void;\r\n /**\r\n * Body style for modal body element. Such as height, padding etc\r\n */\r\n bodyStyle?: React.CSSProperties;\r\n /**\r\n * The cancel button props\r\n */\r\n cancelButtonProps?: ModalProps['cancelButtonProps'];\r\n /**\r\n * Text of the Cancel button\r\n */\r\n cancelText?: React.ReactNode;\r\n /**\r\n * Centered Modal\r\n */\r\n centered?: boolean;\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: React.ReactNode;\r\n /**\r\n * Whether to apply loading visual effect for OK button or not\r\n */\r\n confirmLoading?: boolean;\r\n /**\r\n * Whether to unmount child components on onClose\r\n */\r\n destroyOnClose?: boolean;\r\n /**\r\n * Footer content, set as footer={null} when you don't need default buttons\r\n */\r\n footer?: React.ReactNode;\r\n /**\r\n * Force render Modal\r\n */\r\n forceRender?: boolean;\r\n /**\r\n * The mounted node for Modal but still display at fullscreen\r\n */\r\n getContainer?: ModalProps['getContainer'];\r\n /**\r\n * Whether support press esc to close\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Whether show mask or not\r\n */\r\n mask?: boolean;\r\n /**\r\n * Whether to close the modal dialog when the mask (area outside the modal) is clicked\r\n */\r\n maskClosable?: boolean;\r\n /**\r\n * Style for modal's mask element\r\n */\r\n maskStyle?: React.CSSProperties;\r\n /**\r\n * Custom modal content render\r\n */\r\n modalRender?: (node: React.ReactNode) => React.ReactNode;\r\n /**\r\n * The ok button props\r\n */\r\n okButtonProps?: ModalProps['okButtonProps'];\r\n /**\r\n * Text of the OK button\r\n */\r\n okText?: React.ReactNode;\r\n /**\r\n * Button type of the OK button\r\n */\r\n okType?: ModalProps['okType'];\r\n /**\r\n * The modal dialog's title\r\n */\r\n title?: ModalProps['title'];\r\n /**\r\n * Whether the modal dialog is visible or not\r\n */\r\n visible?: boolean;\r\n /**\r\n * Open Modal with async logic\r\n */\r\n open?: boolean;\r\n /**\r\n * Width of the modal dialog\r\n */\r\n width?: string | number;\r\n /**\r\n * The class name of the container of the modal dialog\r\n */\r\n wrapClassName?: string;\r\n /**\r\n * The z-index of the Modal\r\n */\r\n zIndex?: number;\r\n /**\r\n * Specify a function that will be called when a user clicks mask, close button on top right or Cancel button\r\n */\r\n onCancel?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Specify a function that will be called when a user clicks the OK button\r\n */\r\n onOk?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Callback when the animation ends when Modal is turned on and off\r\n */\r\n afterOpenChange?: ((open: boolean) => void) | undefined;\r\n /**\r\n * children of Modal\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Content of the confirm dialog\r\n */\r\n content?: string | React.ReactNode;\r\n}\r\n\r\nexport const OrModal: React.FC<OrModalProps> = (props) => {\r\n return <Modal {...props}>{props.children}</Modal>;\r\n};\r\n\r\nOrModal.defaultProps = {\r\n open: false,\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrFormProps,\r\n OrTabsModuleLayout,\r\n OrTabs,\r\n OrTabsProps,\r\n} from '../../organisms';\r\nimport { AtIconProps } from '../../atoms';\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { IFormStep } from '../TmCrudPage';\r\n\r\nexport interface TmCustomTabsPageProps<FormType = any> {\r\n /**\r\n * Avatar image\r\n */\r\n avatar?: string;\r\n /**\r\n * User name\r\n */\r\n username: string;\r\n /**\r\n * User phone number\r\n */\r\n phone: string;\r\n /**\r\n * Balance ticket label\r\n */\r\n balanceLabel: string;\r\n /**\r\n * Balance ticket value\r\n */\r\n balanceValue: string;\r\n /**\r\n * Icon for the info part\r\n */\r\n infoIcon?: AtIconProps['name'];\r\n /**\r\n * Info label\r\n */\r\n infoLabel?: string;\r\n /**\r\n * Info value\r\n */\r\n infoValue?: string;\r\n /**\r\n * Main button label\r\n */\r\n mainButtonLabel: string;\r\n /**\r\n * Main button icon\r\n */\r\n mainButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Main action click event\r\n */\r\n onClickMainAction?: () => void;\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Tabs props\r\n */\r\n tabsProps: OrTabsProps;\r\n}\r\n\r\nexport const TmCustomTabsPage = <\r\n FormType extends Store,\r\n>({\r\n avatar,\r\n username,\r\n phone,\r\n balanceLabel,\r\n balanceValue,\r\n infoIcon = 'FileDoneOutlined',\r\n infoLabel,\r\n infoValue,\r\n mainButtonLabel,\r\n mainButtonIcon = 'FileDoneOutlined',\r\n onClickLeftArrow,\r\n onClickMainAction,\r\n formSteps,\r\n handleCloseCallback,\r\n open,\r\n drawerTitle,\r\n drawerWidth,\r\n disabledButtons,\r\n currentFormStep,\r\n showFormStepper = true,\r\n onValuesChange,\r\n tabsProps,\r\n }: TmCustomTabsPageProps<FormType>) => {\r\n return (\r\n <React.Fragment>\r\n <OrTabsModuleLayout\r\n avatar={avatar}\r\n username={username}\r\n phone={phone}\r\n balanceLabel={balanceLabel}\r\n balanceValue={balanceValue}\r\n infoIcon={infoIcon}\r\n infoLabel={infoLabel}\r\n infoValue={infoValue}\r\n mainButtonLabel={mainButtonLabel}\r\n mainButtonIcon={mainButtonIcon}\r\n onClickLeftArrow={onClickLeftArrow}\r\n onClickMainAction={onClickMainAction}\r\n formSteps={formSteps}\r\n handleCloseCallback={handleCloseCallback}\r\n open={open}\r\n drawerTitle={drawerTitle}\r\n drawerWidth={drawerWidth}\r\n disabledButtons={disabledButtons}\r\n currentFormStep={currentFormStep}\r\n showFormStepper={showFormStepper}\r\n onValuesChange={onValuesChange}\r\n >\r\n <OrTabs {...tabsProps} type='card'/>\r\n </OrTabsModuleLayout>\r\n </React.Fragment>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrFormProps, OrCol, OrRow } from '../../organisms';\r\nimport {\r\n OrDetailsPage,\r\n OrDetailsPageProps,\r\n} from '../../organisms/OrDetailsPage';\r\n\r\nexport interface TmDescriptionsPageProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Whether the table has border or not\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Items to display\r\n */\r\n items: Array<OrDetailsPageProps | Array<OrDetailsPageProps>>;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Custom header page template\r\n */\r\n header?: React.ReactElement;\r\n}\r\n\r\nexport const TmDescriptionsPage = ({\r\n items,\r\n header,\r\n}: TmDescriptionsPageProps) => {\r\n return (\r\n <React.Fragment>\r\n {header}\r\n {items.map((item) => {\r\n return (\r\n <>\r\n {Array.isArray(item) ? (\r\n <OrRow\r\n style={{\r\n display: 'grid',\r\n gridTemplateColumns: `repeat(${item.length}, 1fr)`,\r\n gap: 8,\r\n marginBlock: 8,\r\n }}\r\n >\r\n {item.map((columnItem: OrDetailsPageProps) => {\r\n return (\r\n <OrCol style={{ height: '100%' }}>\r\n <OrDetailsPage {...columnItem} />\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n ) : (\r\n <OrRow>\r\n <OrDetailsPage {...item} />\r\n </OrRow>\r\n )}\r\n </>\r\n );\r\n })}\r\n </React.Fragment>\r\n );\r\n};\r\n","import {\r\n OrCard,\r\n OrCol,\r\n OrForm,\r\n OrFormItemsInline,\r\n OrFormProps,\r\n OrRow,\r\n OrStep,\r\n OrStepProp\r\n} from '../../organisms';\r\n\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { IFormStep } from '../TmCrudPage';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { AtButton, AtButtonProps, AtTitle } from '../../atoms';\r\nimport { gray } from '../../../theme';\r\n\r\n\r\nexport interface TmFormListPageProps<FormType = any> {\r\n formList?: {\r\n title?: string,\r\n formStepProps?: IFormStep<FormType>[],\r\n formProps?: OrFormProps,\r\n stepProps?: OrStepProp,\r\n disabledButtons?: boolean,\r\n formButtonProps?: AtButtonProps\r\n }[];\r\n}\r\n\r\nexport const TmFormListPage = <FormType extends Store>({\r\n formList,\r\n}: TmFormListPageProps<FormType>) => {\r\n\r\n\r\n return (\r\n <OrCol>\r\n {\r\n formList?.map(({ title, formStepProps, formProps, stepProps, disabledButtons, formButtonProps }, index) => {\r\n return (\r\n <OrCol $gap={8}>\r\n <OrRow style={{\r\n borderColor: gray[3],\r\n backgroundColor: gray[0],\r\n borderWidth: 1,\r\n borderRadius: 8,\r\n borderStyle: 'solid',\r\n padding: 16,\r\n }} ><AtTitle $margin='0' level={4} >{title}</AtTitle>\r\n </OrRow>\r\n <OrCard\r\n key={index}\r\n >\r\n {formStepProps && formStepProps?.length > 1 && (\r\n <OrStep\r\n current={stepProps?.current}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formStepProps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formStepProps &&\r\n formStepProps.map((formStep, index) => (\r\n <OrForm\r\n hidden={stepProps?.current !== index}\r\n form={formProps?.form}\r\n onFinish={formProps?.onFinish}\r\n onValuesChange={formProps?.onValuesChange}\r\n name={title}\r\n layout=\"vertical\"\r\n initialValues={formProps?.initialValues}\r\n >\r\n <OrRow align={'bottom'} gutter={8}>\r\n <OrCol>\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n </OrCol>\r\n <OrCol>\r\n {formButtonProps?.onClick && <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n {...formButtonProps}\r\n />\r\n </MlFormItem>}\r\n </OrCol>\r\n </OrRow>\r\n\r\n </OrForm>\r\n\r\n ))}\r\n </OrCard>\r\n </OrCol>\r\n )\r\n })\r\n }\r\n </OrCol>\r\n );\r\n};\r\n","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\nimport { OrLayout } from '../../organisms';\r\n\r\nexport const StyledContainer = styled(OrLayout)`\r\n & {\r\n background-color: ${gray[1]};\r\n min-height: 100vh;\r\n }\r\n & h2 {\r\n text-align: center;\r\n }\r\n`;\r\n","import { styled } from 'styled-components';\r\nimport { StyledHeader as StyledHeaderImported } from '../OrHeader/styles';\r\n\r\nexport const LogoContainer = styled.div`\r\n padding-top: 69px;\r\n padding-bottom: 69px;\r\n`;\r\n\r\nexport const StyledHeader = styled(StyledHeaderImported)`\r\n height: auto;\r\n padding-inline: 0;\r\n`;\r\n","import React from 'react';\r\nimport { AtLogo } from '../../atoms';\r\nimport { OrRow } from '../OrRow';\r\nimport { LogoContainer, StyledHeader } from './styles';\r\nexport interface OrSimpleBannerProps {\r\n /**\r\n * Id of the OrSimpleBannerProps\r\n */\r\n id?: string;\r\n /**\r\n * Background image for banner\r\n */\r\n $backgroundSrc?: string;\r\n}\r\n\r\nexport const OrSimpleBanner: React.FC<OrSimpleBannerProps> = (props) => {\r\n return (\r\n <StyledHeader>\r\n <OrRow justify={'center'} {...props}>\r\n <LogoContainer>\r\n <AtLogo color={props.$backgroundSrc ? 'white' : 'violet'} />\r\n </LogoContainer>\r\n </OrRow>\r\n </StyledHeader>\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport { OrFlagGrid } from '../../organisms/OrFlagGrid';\r\nimport { AtTitle } from '../../atoms';\r\nimport { StyledContainer } from './styles';\r\nimport { OrCountryCardProps } from '../../organisms/OrCountryCard';\r\nimport { OrSimpleBanner } from '../../organisms/OrSimpleBanner';\r\nimport { OrRow, OrCol, OrContent } from '../../organisms';\r\nexport interface TmLoginCountryProps {\r\n data?: OrCountryCardProps[];\r\n title?: string;\r\n itemsPerRow?: number;\r\n $backgroundSrc?: string;\r\n /**\r\n * Index selected Item\r\n */\r\n selectedItem?: number;\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onSelectCard?: (index: number) => void;\r\n}\r\n\r\nexport const TmLoginCountry: React.FC<TmLoginCountryProps> = ({\r\n data,\r\n $backgroundSrc,\r\n itemsPerRow,\r\n title,\r\n selectedItem,\r\n onSelectCard,\r\n}) => {\r\n return (\r\n <StyledContainer>\r\n <OrSimpleBanner $backgroundSrc={$backgroundSrc} />\r\n <OrContent>\r\n <OrRow justify={'center'} gutter={[0, 16]}>\r\n <OrCol span={24}>\r\n <AtTitle level={2}>{title}</AtTitle>\r\n </OrCol>\r\n <OrCol span={16}>\r\n <OrRow justify={'center'}>\r\n <OrFlagGrid\r\n data={data}\r\n itemsPerRow={itemsPerRow}\r\n selectedItem={selectedItem}\r\n onSelectCard={onSelectCard}\r\n />\r\n </OrRow>\r\n </OrCol>\r\n </OrRow>\r\n </OrContent>\r\n </StyledContainer>\r\n );\r\n};\r\n\r\nTmLoginCountry.defaultProps = {\r\n data: [],\r\n itemsPerRow: 2,\r\n};\r\n","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledContainer = styled.div`\r\n & {\r\n display: flex;\r\n background-color: ${gray[1]};\r\n height: 100vh;\r\n }\r\n`;\r\n\r\nexport const StyledMainContainer = styled.div`\r\n max-width: 365px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n height: 100%;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledTitleContainer = styled.div`\r\n margin-bottom: 45px;\r\n`;\r\n\r\nexport const StyledButtonContainer = styled.div`\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const StyledCarouselImageContainer = styled.div`\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport {\r\n AtButton,\r\n AtLogo,\r\n AtNumberInput,\r\n AtSelect,\r\n AtTitle,\r\n} from '../../atoms';\r\nimport { OrSpaceCompact, OrRow, OrCol, OrForm } from '../../organisms';\r\nimport { violet } from '../../../theme';\r\nimport { Select, FormProps } from 'antd';\r\nimport {\r\n StyledButtonContainer,\r\n StyledMainContainer,\r\n StyledTitleContainer,\r\n} from './styles';\r\nimport { MlFormItem } from '../../molecules';\r\n\r\nexport interface IRegion {\r\n id: string;\r\n countryName: string;\r\n region: string;\r\n city: string;\r\n}\r\n\r\nexport interface IFormData {\r\n phone: {\r\n dialCode: string;\r\n phone: string;\r\n };\r\n}\r\n\r\nexport interface TmLoginPhoneProps {\r\n countrySelectOptions?: IRegion[];\r\n /**\r\n * Welcome title\r\n */\r\n title?: string;\r\n /**\r\n * Highlighted text into title\r\n */\r\n highlightedTitle?: string;\r\n /**\r\n * Submit button text\r\n */\r\n buttonText: string;\r\n /**\r\n * Form init values\r\n */\r\n initialValues?: IFormData;\r\n /**\r\n * Dial codes available\r\n */\r\n dialCodes: string[];\r\n /**\r\n * Phone regex validation\r\n */\r\n phoneRegex?: RegExp;\r\n /**\r\n * Phone validation message\r\n */\r\n phoneValidationMessage?: string;\r\n /**\r\n * Phone validation input message\r\n */\r\n ruleMessage?: string;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Show country select\r\n */\r\n showCountrySelect?: boolean;\r\n}\r\n\r\nexport const TmLoginPhone: React.FC<TmLoginPhoneProps> = ({\r\n countrySelectOptions,\r\n title,\r\n highlightedTitle,\r\n buttonText,\r\n initialValues,\r\n dialCodes,\r\n phoneRegex,\r\n phoneValidationMessage,\r\n onFinish,\r\n form,\r\n ruleMessage,\r\n showCountrySelect = false,\r\n}) => {\r\n return (\r\n <OrForm\r\n form={form}\r\n initialValues={initialValues}\r\n onFinish={onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n }}\r\n >\r\n <OrRow\r\n gutter={[0, 20]}\r\n justify={{ xs: 'center', sm: 'center', lg: 'space-between' }}\r\n align={'middle'}\r\n >\r\n <OrCol>\r\n <AtLogo color=\"violet\" />\r\n </OrCol>\r\n {showCountrySelect && (\r\n <OrCol>\r\n <MlFormItem name=\"region\" noStyle>\r\n <AtSelect size=\"large\">\r\n {countrySelectOptions?.map((elem) => (\r\n <Select.Option\r\n key={elem.id}\r\n label={elem.countryName}\r\n value={elem.region}\r\n >\r\n {elem.countryName}\r\n </Select.Option>\r\n ))}\r\n </AtSelect>\r\n </MlFormItem>\r\n </OrCol>\r\n )}\r\n </OrRow>\r\n <StyledMainContainer>\r\n <OrCol $justify={'center'}>\r\n <StyledTitleContainer>\r\n <AtTitle>\r\n {title}{' '}\r\n <span style={{ color: violet[5] }}>{highlightedTitle}</span>\r\n </AtTitle>\r\n </StyledTitleContainer>\r\n <MlFormItem>\r\n <OrSpaceCompact block>\r\n <MlFormItem\r\n noStyle\r\n name={['phone', 'dialCode']}\r\n rules={[{ required: true, message: ruleMessage }]}\r\n >\r\n <AtSelect $width=\"119px\" size=\"large\">\r\n {dialCodes?.map((elem) => (\r\n <Select.Option key={elem} label={elem} value={elem}>\r\n {elem}\r\n </Select.Option>\r\n ))}\r\n </AtSelect>\r\n </MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n name={['phone', 'phone']}\r\n rules={[\r\n { required: true, message: ruleMessage },\r\n {\r\n pattern: phoneRegex,\r\n message: phoneValidationMessage,\r\n validateTrigger: 'onBlur',\r\n },\r\n ]}\r\n >\r\n <AtNumberInput $width=\"100%\" size=\"large\" controls={false} />\r\n </MlFormItem>\r\n </OrSpaceCompact>\r\n </MlFormItem>\r\n <StyledButtonContainer>\r\n <MlFormItem noStyle>\r\n <AtButton\r\n block\r\n type=\"primary\"\r\n size=\"large\"\r\n value={buttonText}\r\n htmlType=\"submit\"\r\n />\r\n </MlFormItem>\r\n </StyledButtonContainer>\r\n </OrCol>\r\n </StyledMainContainer>\r\n </OrForm>\r\n );\r\n};\r\n\r\nTmLoginPhone.defaultProps = {\r\n countrySelectOptions: [],\r\n phoneRegex: new RegExp(\r\n /^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im,\r\n ),\r\n phoneValidationMessage: 'This field must be a phone',\r\n ruleMessage: 'This field is required',\r\n};\r\n","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledContainer = styled.div`\r\n & {\r\n display: flex;\r\n background-color: ${gray[1]};\r\n height: 100vh;\r\n }\r\n`;\r\n\r\nexport const StyledMainContainer = styled.div`\r\n max-width: 365px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n height: 100%;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledTitleContainer = styled.div`\r\n margin-bottom: 32px;\r\n`;\r\n\r\nexport const StyledButtonContainer = styled.div`\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const StyledCarouselImageContainer = styled.div`\r\n text-align: center;\r\n`;\r\n\r\nexport const StyledCountdownContainer = styled.div`\r\n margin-bottom: 24px;\r\n display: flex;\r\n flex-direction: row;\r\n gap: 10px;\r\n`;\r\n\r\nexport const StyledTextContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n gap: 5px;\r\n cursor: pointer;\r\n`;\r\n","import { FormProps } from 'antd';\r\nimport React from 'react';\r\nimport { OrCol, OrForm, OrRow } from '../../organisms';\r\nimport { AtButton, AtLogo, AtText, AtTitle } from '../../atoms';\r\nimport {\r\n StyledButtonContainer,\r\n StyledCountdownContainer,\r\n StyledMainContainer,\r\n StyledTextContainer,\r\n StyledTitleContainer,\r\n} from './styles';\r\nimport { violet } from '../../../theme';\r\nimport { MlCodeInput, MlFormItem } from '../../molecules';\r\nimport { AtCountdown } from '../../atoms/AtCountdown';\r\n\r\nexport interface TmLoginPhoneCodeProps {\r\n /**\r\n * Page title\r\n */\r\n title: string;\r\n /**\r\n * Page title highlighted\r\n */\r\n highlightedTitle: string;\r\n /**\r\n * Page description\r\n */\r\n description: string;\r\n /**\r\n * Button text\r\n */\r\n buttonText: string;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Countdown description\r\n */\r\n countdownDescription?: string;\r\n /**\r\n * Countdown value\r\n */\r\n countdownValue?: number;\r\n /**\r\n * Countdown format\r\n */\r\n countdownFormat?: string;\r\n /**\r\n * Indicate if the count down ended\r\n */\r\n countdownEnded?: boolean;\r\n /**\r\n * Callback triggered when countdown ends\r\n */\r\n onFinishCountdown?: () => void;\r\n /**\r\n * Countdown text part\r\n */\r\n countdownText?: [string, string];\r\n /**\r\n * Send again text\r\n */\r\n sendAgainText?: string;\r\n /**\r\n * Function to call when resend is press it\r\n */\r\n onResendPress?: () => void;\r\n}\r\n\r\nexport const TmLoginPhoneCode: React.FC<TmLoginPhoneCodeProps> = ({\r\n title,\r\n highlightedTitle,\r\n description,\r\n buttonText,\r\n onFinish,\r\n form,\r\n countdownText,\r\n countdownDescription,\r\n countdownValue,\r\n countdownFormat = 'mm:ss',\r\n countdownEnded = false,\r\n onFinishCountdown,\r\n sendAgainText,\r\n onResendPress,\r\n}) => {\r\n return (\r\n <OrForm\r\n form={form}\r\n initialValues={{ code: '' }}\r\n onFinish={onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n }}\r\n >\r\n <OrRow\r\n gutter={[0, 20]}\r\n justify={{ xs: 'center', sm: 'center', lg: 'space-between' }}\r\n align={'middle'}\r\n >\r\n <OrCol>\r\n <AtLogo color=\"violet\" />\r\n </OrCol>\r\n </OrRow>\r\n <StyledMainContainer>\r\n <OrCol $justify={'center'}>\r\n <StyledTitleContainer>\r\n <AtTitle>\r\n {title}{' '}\r\n <span style={{ color: violet[5] }}>{highlightedTitle}</span>\r\n </AtTitle>\r\n <AtTitle level={5}>{description}</AtTitle>\r\n </StyledTitleContainer>\r\n <MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n name={'code'}\r\n rules={[{ required: true, message: 'Field is required' }]}\r\n >\r\n <MlCodeInput />\r\n </MlFormItem>\r\n </MlFormItem>\r\n <StyledCountdownContainer>\r\n <AtText>{countdownDescription}</AtText>\r\n {countdownEnded ? (\r\n <StyledTextContainer onClick={onResendPress}>\r\n <AtText color={'violet'}>{sendAgainText}</AtText>\r\n </StyledTextContainer>\r\n ) : (\r\n <StyledTextContainer>\r\n <AtText color={'violet'}>{countdownText?.[0]}</AtText>\r\n <AtCountdown\r\n $color=\"primary\"\r\n value={countdownValue}\r\n format={countdownFormat}\r\n $fontSize={14}\r\n onFinish={onFinishCountdown}\r\n />\r\n <AtText color={'violet'}>{countdownText?.[1]}</AtText>\r\n </StyledTextContainer>\r\n )}\r\n </StyledCountdownContainer>\r\n <StyledButtonContainer>\r\n <MlFormItem noStyle>\r\n <AtButton\r\n block\r\n type=\"primary\"\r\n size=\"large\"\r\n value={buttonText}\r\n htmlType=\"submit\"\r\n />\r\n </MlFormItem>\r\n </StyledButtonContainer>\r\n </OrCol>\r\n </StyledMainContainer>\r\n </OrForm>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrCol,\r\n OrDrawer,\r\n OrDrawerProps,\r\n OrMark,\r\n OrMarkProps,\r\n OrRow\r\n} from '../../organisms';\r\nimport { AtButton, AtButtonProps, AtSelect, AtSelectProps } from '../../atoms';\r\nimport {\r\n GoogleMap,\r\n GoogleMapProps,\r\n useJsApiLoader,\r\n} from '@react-google-maps/api';\r\n\r\nexport interface MarkersArray {\r\n color?: OrMarkProps['color'];\r\n backgroundColor?: string;\r\n size?: OrMarkProps['size'];\r\n marks: OrMarkProps[];\r\n polyLine: boolean; //TODO: Check Polyline stuck on refresh\r\n}\r\n\r\nexport interface TmMapPageProps {\r\n rightDrawer?: OrDrawerProps;\r\n topLeftSelect: AtSelectProps;\r\n topLeftButton?: AtButtonProps;\r\n map: GoogleMapProps & {\r\n GOOGLE_MAPS_API_KEY: string;\r\n ref?: React.RefObject<GoogleMap>;\r\n };\r\n staticMarkers?: MarkersArray[];\r\n realtimeMarkers?: MarkersArray[];\r\n}\r\n\r\nexport const TmMapPage: React.FC<TmMapPageProps> = ({\r\n rightDrawer,\r\n topLeftSelect,\r\n topLeftButton,\r\n map,\r\n staticMarkers,\r\n realtimeMarkers,\r\n}) => {\r\n /* if (!map.GOOGLE_MAPS_API_KEY) return <AtText>Map api key not set</AtText>; */\r\n\r\n const { isLoaded } = useJsApiLoader({\r\n id: 'google-map-script',\r\n googleMapsApiKey: map.GOOGLE_MAPS_API_KEY,\r\n });\r\n\r\n type Size = 'large' | 'middle' | 'small';\r\n\r\n const markSizes: { [key in Size]: { width: number; height: number } } = {\r\n large: {\r\n width: 40,\r\n height: 40,\r\n },\r\n middle: {\r\n width: 30,\r\n height: 30,\r\n },\r\n small: {\r\n width: 20,\r\n height: 20,\r\n },\r\n };\r\n\r\n return (\r\n <React.Fragment>\r\n <OrCol flex={1} $position=\"relative\">\r\n {isLoaded && (\r\n <GoogleMap\r\n {...map}\r\n options={{\r\n ...map.options,\r\n mapTypeControl: false,\r\n fullscreenControl: false,\r\n rotateControl: false,\r\n streetViewControl: false,\r\n }}\r\n >\r\n {staticMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n )),\r\n )}\r\n {realtimeMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n\r\n )),\r\n )}\r\n </GoogleMap>\r\n )}\r\n <OrCol $position=\"absolute\" $paddingTop={52} $paddingLeft={64}>\r\n <OrRow $gap={8}>\r\n <AtSelect $width=\"300px\" {...topLeftSelect} />\r\n {topLeftButton && <AtButton {...topLeftButton} />}\r\n </OrRow>\r\n </OrCol>\r\n </OrCol>\r\n <OrDrawer {...rightDrawer} width={750} />\r\n </React.Fragment>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrHeader } from '../OrHeader';\r\nimport { OrContent } from '../OrContent';\r\n\r\nexport interface OrRentalLayoutProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Background source\r\n */\r\n $backgroundSrc?: string;\r\n}\r\n\r\nexport const OrRentalLayout: React.FC<OrRentalLayoutProps> = (props) => (\r\n <>\r\n <OrHeader\r\n $backgroundColor='white'\r\n showLogo={true}\r\n hideHeaderMobile={true}\r\n logoColor='violet'\r\n />\r\n <OrContent $backgroundSrc={props.$backgroundSrc} $main>{props.children}</OrContent>\r\n </>\r\n);\r\n","import React from \"react\";\r\nimport { OrRentalLayout } from \"../../organisms/OrRentalLayout\";\r\nimport { OrCard, OrCol, OrRentalResult, OrRentalResultProps, OrRentalVehicleItem, OrRentalVehicleItemProps, OrRow} from \"../../organisms\";\r\nimport { MlLoading } from \"../../molecules\";\r\nimport { AtButton, AtIcon, AtText } from \"../../atoms\";\r\n\r\nexport interface TmQuoteResultPageProps {\r\n /**\r\n * Background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Rental result\r\n */\r\n rentalResult: OrRentalResultProps;\r\n /**\r\n * Rental vehicle item\r\n */\r\n rentalVehicleItem: OrRentalVehicleItemProps | null;\r\n /**\r\n * Loading status\r\n */\r\n loading?: boolean;\r\n /**\r\n * Empty message\r\n */\r\n emptyMessage?: string;\r\n /**\r\n * Empty button text\r\n */\r\n emptyButtonText?: string;\r\n /**\r\n * Empty callback\r\n */\r\n emptyCallback?: () => void;\r\n}\r\n\r\nexport const TmQuoteResultPage = ({\r\n $backgroundSrc,\r\n rentalResult,\r\n rentalVehicleItem = null,\r\n loading = false,\r\n emptyMessage,\r\n emptyButtonText,\r\n emptyCallback,\r\n}: TmQuoteResultPageProps) => {\r\n return (\r\n <React.Fragment>\r\n <OrRentalLayout $backgroundSrc={$backgroundSrc}>\r\n {\r\n loading ? <MlLoading /> : (\r\n <OrRow>\r\n <OrCol span={24} $gapVertical={16}> \r\n <OrRentalResult {...rentalResult} />\r\n {\r\n rentalVehicleItem ? <OrRentalVehicleItem {...rentalVehicleItem}/> :\r\n <OrCard $padding={0} $maxWidth={1080} $alignSelf=\"center\" $shadow=\"0px 4px 8px 0px #0000001A\">\r\n <OrRow align=\"middle\">\r\n <OrCol span={24} $alignItems=\"center\" $gap={20}>\r\n <AtIcon name=\"WarningFilled\" style={{ fontSize: 70, color: \"#FFC53D\" }} />\r\n <AtText $fontSize={18}>{emptyMessage}</AtText>\r\n <AtButton type=\"primary\" value={emptyButtonText} onClick={emptyCallback}/>\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n }\r\n </OrCol>\r\n </OrRow>)\r\n }\r\n </OrRentalLayout>\r\n </React.Fragment>\r\n );\r\n};","export const amountFormatter = (amount: number) => {\r\n const parts = amount.toFixed(2).split('.');\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\r\n return parts.join(',');\r\n};","import React, { ReactNode, useEffect, useMemo, useState } from 'react';\r\nimport { FormProps } from 'antd';\r\nimport {\r\n OrCard,\r\n OrCol,\r\n OrForm,\r\n OrPaymentMethods,\r\n OrRow,\r\n OrTableModuleLayout,\r\n PaymentMethod,\r\n} from '../../organisms';\r\nimport { IFormData } from '../TmLoginPhone';\r\nimport { MlFormItem, MlFromItemProps, MlRadioGroup } from '../../molecules';\r\nimport { CheckboxChangeEvent } from 'antd/es/checkbox';\r\nimport { IFormStep } from '../TmCrudPage';\r\nimport { Store } from 'antd/es/form/interface';\r\nimport {\r\n AtButton,\r\n AtDivider,\r\n AtNumberInput,\r\n AtText,\r\n AtTitle,\r\n} from '../../atoms';\r\nimport { gray } from '../../../theme';\r\nimport { useFormWatch } from '../../../hooks';\r\nimport { amountFormatter } from '../../../utils/numberProcessing';\r\nexport interface TmRechargePageProps<FormType = any> {\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * page subtitle content\r\n */\r\n balance?: string;\r\n /**\r\n * The title of the card\r\n */\r\n cardTitle: string;\r\n /**\r\n * number of digits (input) to show\r\n */\r\n digits?: number;\r\n /**\r\n * The input content value\r\n */\r\n value?: number;\r\n /**\r\n * Custom values for amounts\r\n */\r\n values?: { label: string; value: number; type: 'VALUE' | 'PERCENTAGE' }[];\r\n /**\r\n * font size of the input\r\n */\r\n fontSize?: string;\r\n /**\r\n * height of the input\r\n */\r\n height?: string;\r\n /**\r\n * rule for the amount input\r\n */\r\n ruleAmount?: MlFromItemProps['rules'];\r\n /**\r\n * rule for the coupon input\r\n */\r\n ruleCoupon?: MlFromItemProps['rules'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Form init values\r\n */\r\n initialValues?: IFormData;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Coupon button text\r\n */\r\n couponBtn?: string;\r\n /**\r\n * Amount placeholder\r\n */\r\n amountPlaceholder?: string;\r\n /**\r\n * Coupon placeholder\r\n */\r\n couponPlaceholder?: string;\r\n /**\r\n * Radio group items\r\n */\r\n currenciesOptions?: Array<{\r\n label: ReactNode;\r\n value: string;\r\n disabled?: boolean;\r\n symbol?: string;\r\n }>;\r\n /**\r\n * Radio group default value\r\n */\r\n defaultCurrency?: number;\r\n /**\r\n * Amount to pay text\r\n */\r\n amountToPayText?: string;\r\n /**\r\n * Amount to pay\r\n */\r\n amountToPay?: number;\r\n /**\r\n * Coupon text\r\n */\r\n couponText?: string;\r\n /**\r\n * Discount\r\n */\r\n discount?: number;\r\n /**\r\n * Total text\r\n */\r\n totalText?: string;\r\n /**\r\n * Total\r\n */\r\n total?: number;\r\n /**\r\n * Tax text\r\n */\r\n taxText?: string;\r\n /**\r\n * Tax\r\n */\r\n tax?: number;\r\n /**\r\n * Pay button text\r\n */\r\n payBtn?: string;\r\n /**\r\n * Apply coupon click\r\n */\r\n applyCouponClick?: () => void;\r\n /**\r\n * The title of the drawer\r\n */\r\n drawerTitle?: string;\r\n /**\r\n * Whether the Drawer dialog is visible or not\r\n */\r\n open?: boolean;\r\n /**\r\n * payment Methods\r\n */\r\n paymentMethods: PaymentMethod[];\r\n /**\r\n * Form Steps info\r\n */\r\n currentPaymentSelectedFields: IFormStep<FormType>;\r\n /**\r\n * Disable continue button drawer\r\n */\r\n disabledButton?: boolean;\r\n /**\r\n * Show payment methods\r\n */\r\n showPaymentMethods?: boolean;\r\n /**\r\n * terms and conditions disclaimer\r\n */\r\n termsDisclaimer?: string;\r\n /**\r\n * terms and conditions change\r\n */\r\n termsChange?: ((e: CheckboxChangeEvent) => void) | undefined;\r\n /**\r\n * onCloseDrawer function\r\n */\r\n onCloseDrawer?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * whether to show left arrow\r\n */\r\n showLeftArrow?: boolean;\r\n /**\r\n * left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /*\r\n * Editable input\r\n */\r\n editable?: boolean;\r\n /*\r\n * Exchange currency rate\r\n */\r\n rate?: number;\r\n /*\r\n * Currencies enable/disable\r\n */\r\n currenciesEnabled?: boolean;\r\n}\r\n\r\nexport const TmRechargePage = <FormType extends Store>({\r\n title,\r\n subtitle,\r\n balance,\r\n cardTitle,\r\n fontSize,\r\n height,\r\n ruleAmount,\r\n // ruleCoupon,\r\n form,\r\n initialValues,\r\n onFinish,\r\n // couponBtn,\r\n amountPlaceholder,\r\n // couponPlaceholder,\r\n currenciesOptions,\r\n defaultCurrency = 0,\r\n amountToPayText,\r\n amountToPay = 0,\r\n couponText,\r\n discount = 0,\r\n totalText,\r\n taxText,\r\n tax = 0,\r\n payBtn,\r\n // applyCouponClick,\r\n drawerTitle,\r\n open,\r\n paymentMethods,\r\n currentPaymentSelectedFields,\r\n disabledButton,\r\n showPaymentMethods = true,\r\n termsDisclaimer,\r\n onCloseDrawer,\r\n showLeftArrow,\r\n onClickLeftArrow,\r\n editable = true,\r\n rate = 1,\r\n values = [],\r\n currenciesEnabled = true\r\n}: TmRechargePageProps<FormType>) => {\r\n const symbolForm = useFormWatch('currency', form);\r\n const amountForm = useFormWatch('amount', form);\r\n const [computedAmount, setComputedAmount] = useState(0);\r\n const symbol = useMemo(\r\n () =>\r\n currenciesOptions?.find((el) => el.value === symbolForm)?.symbol ?? '',\r\n [symbolForm],\r\n );\r\n useEffect(() => {\r\n let amount = 0;\r\n if (values.length > 0){\r\n values.forEach((value) => {\r\n if (value.type === 'VALUE') {\r\n amount += value.value;\r\n } else {\r\n amount += amountForm * (value.value / 100);\r\n }\r\n });\r\n }\r\n setComputedAmount(amountForm + amount + tax - discount || 0);\r\n }, [rate, symbolForm, amountForm]);\r\n\r\n return (\r\n <>\r\n <OrCard size=\"small\" $marginBottom={20}>\r\n <OrTableModuleLayout\r\n leftArrow={showLeftArrow}\r\n onClickLeftArrow={onClickLeftArrow}\r\n title={title}\r\n subtitle={subtitle}\r\n subtitleContent={\r\n balance && parseFloat(balance)\r\n ? amountFormatter(parseFloat(balance))\r\n : balance\r\n }\r\n />\r\n </OrCard>\r\n\r\n <OrCard>\r\n <OrCol $gap={15}>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {cardTitle}\r\n </AtTitle>\r\n <OrForm\r\n form={form}\r\n initialValues={{\r\n currency: currenciesOptions\r\n ? currenciesOptions[defaultCurrency].value\r\n : undefined,\r\n amount: `${amountToPay}`,\r\n ...initialValues,\r\n }}\r\n onFinish={onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '15px',\r\n flex: 1,\r\n }}\r\n >\r\n <MlFormItem noStyle name={'amount'} rules={ruleAmount}>\r\n <AtNumberInput\r\n $fontSize={fontSize}\r\n $height={height}\r\n placeholder={amountPlaceholder}\r\n min={0}\r\n controls={false}\r\n disabled={!editable}\r\n />\r\n </MlFormItem>\r\n {/* <OrRow wrap={false} $gap={15}>\r\n <MlFormItem\r\n noStyle\r\n name={'discountCode'}\r\n rules={ruleCoupon}\r\n >\r\n <AtTextInput placeholder={couponPlaceholder} />\r\n </MlFormItem>\r\n <AtButton $width='auto' value={couponBtn} onClick={applyCouponClick} />\r\n </OrRow> */}\r\n <MlFormItem\r\n name={'currency'}\r\n hidden={\r\n !!currenciesOptions &&\r\n !!currenciesOptions[defaultCurrency] &&\r\n !(currenciesOptions.length > 1)\r\n }\r\n >\r\n <MlRadioGroup\r\n options={currenciesOptions}\r\n optionType={'button'}\r\n buttonStyle={'solid'}\r\n disabled={!currenciesEnabled}\r\n />\r\n </MlFormItem>\r\n\r\n <OrCard type=\"inner\" $backgroundColor={gray[3]}>\r\n <OrRow justify=\"space-between\">\r\n <AtText>{amountToPayText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(amountForm * rate || 0)}\r\n </AtText>\r\n </OrRow>\r\n {\r\n values.map((item, index) => (\r\n <OrRow key={index} justify=\"space-between\">\r\n <AtText>{item.label} { item.type === 'PERCENTAGE' ? `(${item.value}%)` : '' }</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(\r\n (item.type === 'VALUE' ? item.value : amountForm * (item.value / 100)) * rate \r\n )}\r\n </AtText>\r\n </OrRow>\r\n ))\r\n }\r\n {!!discount && (\r\n <OrRow justify=\"space-between\">\r\n <AtText>{couponText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(discount * rate * -1)}\r\n </AtText>\r\n </OrRow>\r\n )}\r\n {!!tax && (\r\n <OrRow justify=\"space-between\">\r\n <AtText>{taxText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(tax * rate || 0)}\r\n </AtText>\r\n </OrRow>\r\n )}\r\n <AtDivider $margin={10} />\r\n <OrRow justify=\"space-between\">\r\n <AtText>{totalText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(computedAmount * rate)}\r\n </AtText>\r\n </OrRow>\r\n </OrCard>\r\n <OrRow justify=\"end\" $paddingTop={25} wrap>\r\n <MlFormItem>\r\n <AtButton\r\n $width=\"203px\"\r\n value={payBtn}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={typeof computedAmount !== 'number' || computedAmount <= 0}\r\n />\r\n </MlFormItem>\r\n </OrRow>\r\n </OrForm>\r\n </OrCol>\r\n </OrCard>\r\n\r\n <OrPaymentMethods\r\n drawerTitle={drawerTitle}\r\n open={open}\r\n paymentMethods={paymentMethods}\r\n currentPaymentSelectedFields={currentPaymentSelectedFields}\r\n disabledButton={disabledButton}\r\n showPaymentMethods={showPaymentMethods}\r\n termsDisclaimer={termsDisclaimer}\r\n onCloseDrawer={onCloseDrawer}\r\n />\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const ButtonContainer = styled.div`\r\n width: 100%;\r\n display: flex;\r\n align-items: end;\r\n justify-content: end;\r\n gap: 8px;\r\n`;\r\n\r\nexport const DisclaimerContainer = styled.div`\r\n padding-top: 15px;\r\n`;","import React from \"react\";\r\nimport { OrRentalLayout } from \"../../organisms/OrRentalLayout\";\r\nimport { OrCard, OrCol, OrForm, OrFormItemsInline, OrFormProps, OrRow, OrStep } from \"../../organisms\";\r\nimport { AtButton, AtLink, AtText, AtTitle } from \"../../atoms\";\r\nimport { MlFormItem } from \"../../molecules\";\r\nimport { IFormStep } from \"../TmCrudPage\";\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { ButtonContainer, DisclaimerContainer } from \"./styles\";\r\n\r\n\r\nexport interface TmRentalsPageProps<FormType = any> {\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * Disabled buttons\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * Background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Disclaimer text\r\n */\r\n disclaimer?: string;\r\n /**\r\n * Disclaimer href\r\n */\r\n disclaimerHref?: string;\r\n /**\r\n * Disclaimer message\r\n */\r\n disclaimerMessage?: string;\r\n}\r\n\r\nexport const TmRentalsPage = <\r\n FormType extends Store,\r\n>({\r\n formSteps,\r\n onValuesChange,\r\n currentFormStep = 0,\r\n disabledButtons,\r\n showFormStepper = true,\r\n $backgroundSrc,\r\n disclaimer,\r\n disclaimerHref,\r\n disclaimerMessage,\r\n}: TmRentalsPageProps<FormType>) => {\r\n return (\r\n <React.Fragment>\r\n <OrRentalLayout $backgroundSrc={$backgroundSrc}>\r\n <OrRow>\r\n <OrCol span={24} $gapVertical={16}>\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrCard $maxWidth={1080} $alignSelf=\"center\">\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0\"\r\n $lineHeight=\"32px\"\r\n labelPlacement=\"horizontal\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n </OrCard>\r\n )}\r\n <OrCard $maxWidth={1080} $alignSelf=\"center\">\r\n {formSteps &&\r\n formSteps.map((formStep, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n <ButtonContainer>\r\n {currentFormStep > 0 && (\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n )}\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n </ButtonContainer>\r\n </OrForm>\r\n ))\r\n }\r\n </OrCard>\r\n </OrCol>\r\n </OrRow>\r\n {disclaimer &&\r\n <OrRow justify='center' align='middle'>\r\n <OrCol $gapHorizontal={0} $flexDirection=\"column\" $alignItems=\"start\" $justify=\"start\">\r\n <DisclaimerContainer>\r\n <AtText>{disclaimer}</AtText>\r\n <AtLink href={disclaimerHref} target='_blank'>{disclaimerMessage}</AtLink>\r\n </DisclaimerContainer>\r\n </OrCol>\r\n </OrRow>}\r\n </OrRentalLayout>\r\n </React.Fragment>\r\n );\r\n};","import React from 'react';\r\nimport { OrCol, OrRow } from '../../organisms';\r\nimport { AtButton, AtIcon, AtIconProps, AtText } from '../../atoms';\r\n\r\nexport interface TmRequestsPageProps {\r\n username?: string;\r\n /**\r\n * Main button label\r\n */\r\n mainButtonLabel?: string;\r\n /**\r\n * Main button icon\r\n */\r\n mainButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Main button label\r\n */\r\n cancelButtonLabel?: string;\r\n /**\r\n * cancel button icon\r\n */\r\n cancelButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Main action click event\r\n */\r\n onClickMainAction?: () => void;\r\n /**\r\n * cancel action click event\r\n */\r\n onClickCancelAction?: () => void;\r\n /**\r\n * disabled cancel Button\r\n */\r\n disabledCancelButton?: boolean;\r\n /**\r\n * disabled Main Button\r\n */\r\n disabledMainButton?: boolean;\r\n /**\r\n * left column content\r\n */\r\n firstColumnContent: React.ReactNode;\r\n /**\r\n * right column content\r\n */\r\n secondColumnContent: React.ReactNode;\r\n /**\r\n * isEditing request\r\n */\r\n isEditing?: boolean;\r\n}\r\n\r\nexport const TmRequestsPage: React.FC<TmRequestsPageProps> = ({\r\n username,\r\n mainButtonLabel,\r\n onClickMainAction,\r\n mainButtonIcon,\r\n cancelButtonLabel,\r\n onClickCancelAction,\r\n cancelButtonIcon,\r\n firstColumnContent,\r\n secondColumnContent,\r\n disabledCancelButton = false,\r\n disabledMainButton = false,\r\n onClickLeftArrow,\r\n}) => {\r\n return (\r\n <OrCol>\r\n {\r\n <OrRow\r\n justify={'space-between'}\r\n align={'middle'}\r\n style={{ marginBottom: 8, paddingInline: 8, paddingBlock: 16 }}\r\n >\r\n <OrCol $flexDirection=\"row\" $alignItems=\"center\" $gap={10}>\r\n {onClickLeftArrow && (\r\n <AtButton\r\n onClick={onClickLeftArrow}\r\n icon={<AtIcon name=\"ArrowLeftOutlined\" />}\r\n borderless\r\n type=\"ghost\"\r\n />\r\n )}\r\n <AtText $fontSize={24} strong>\r\n {username}\r\n </AtText>{' '}\r\n </OrCol>\r\n <OrCol $flexDirection=\"row\" $gap={10}>\r\n {onClickCancelAction && (\r\n <AtButton\r\n value={cancelButtonLabel}\r\n onClick={onClickCancelAction}\r\n disabled={disabledCancelButton}\r\n icon={\r\n cancelButtonIcon ? <AtIcon name={cancelButtonIcon} /> : null\r\n }\r\n />\r\n )}\r\n {onClickMainAction && (\r\n <AtButton\r\n value={mainButtonLabel}\r\n onClick={onClickMainAction}\r\n disabled={disabledMainButton}\r\n icon={mainButtonIcon ? <AtIcon name={mainButtonIcon} /> : null}\r\n type=\"primary\"\r\n />\r\n )}\r\n </OrCol>\r\n </OrRow>\r\n }\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, 1fr)',\r\n gap: 8,\r\n }}\r\n >\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {firstColumnContent}\r\n </OrCol>\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {secondColumnContent}\r\n </OrCol>\r\n </OrRow>\r\n </OrCol>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrCol, OrRow } from '../../organisms';\r\nimport { AtButton, AtIcon, AtText } from '../../atoms';\r\nimport { TmRequestsPageProps } from '../TmRequestsPage';\r\n\r\nexport const TmRequestsForm: React.FC<TmRequestsPageProps> = ({\r\n username,\r\n mainButtonLabel,\r\n onClickMainAction,\r\n mainButtonIcon,\r\n cancelButtonLabel,\r\n onClickCancelAction,\r\n cancelButtonIcon,\r\n firstColumnContent,\r\n secondColumnContent,\r\n disabledCancelButton = false,\r\n disabledMainButton = false,\r\n}) => {\r\n return (\r\n <React.Fragment>\r\n <OrRow\r\n justify={'space-between'}\r\n align={'middle'}\r\n style={{ marginBottom: 8, paddingInline: 8, paddingBlock: 16 }}\r\n >\r\n <AtText $fontSize={24} strong>\r\n {username}\r\n </AtText>\r\n <OrCol $flexDirection=\"row\" $gap={10}>\r\n {onClickCancelAction && (\r\n <AtButton\r\n value={cancelButtonLabel}\r\n onClick={onClickCancelAction}\r\n disabled={disabledCancelButton}\r\n icon={\r\n cancelButtonIcon ? <AtIcon name={cancelButtonIcon} /> : null\r\n }\r\n />\r\n )}\r\n {onClickMainAction && (\r\n <AtButton\r\n value={mainButtonLabel}\r\n onClick={onClickMainAction}\r\n disabled={disabledMainButton}\r\n icon={mainButtonIcon ? <AtIcon name={mainButtonIcon} /> : null}\r\n type=\"primary\"\r\n />\r\n )}\r\n </OrCol>\r\n </OrRow>\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, 1fr)',\r\n gap: 8,\r\n }}\r\n >\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {firstColumnContent}\r\n </OrCol>\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {secondColumnContent}\r\n </OrCol>\r\n </OrRow>\r\n </React.Fragment>\r\n );\r\n};\r\n","export * from './TmCrudPage';\nexport * from './TmCustomTabsPage';\nexport * from './TmDescriptionsPage';\nexport * from './TmFormListPage';\nexport * from './TmLoginCountry';\nexport * from './TmLoginPhone';\nexport * from './TmLoginPhoneCode';\nexport * from './TmMapPage';\nexport * from './TmQuoteResultPage';\nexport * from './TmRechargePage';\nexport * from './TmRentalsPage';\nexport * from './TmRequestsForm';\nexport * from './TmRequestsPage';\n","import { styled } from 'styled-components';\r\nimport { AtCheckbox } from '../../atoms';\r\n\r\nexport const StyledCheckBox = styled(AtCheckbox)`\r\n margin-bottom: 21px ;\r\n font-size: 12px !important;\r\n\r\n`;\r\n","import React from 'react';\r\nimport { OrDrawer } from '../OrDrawer';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtButton, AtImage } from '../../atoms';\r\nimport { OrForm } from '../OrForm';\r\nimport { OrFormItemsInline } from '../OrFormItemsInline';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { IFormStep } from '../../templates';\r\nimport { StyledCheckBox } from './styles';\r\nimport { useFormWatch } from '../../../hooks';\r\nimport { Store } from 'antd/es/form/interface';\r\nexport interface PaymentMethod {\r\n value: string;\r\n icon?: React.ReactNode;\r\n onClick: (value: string) => void;\r\n}\r\n\r\nexport interface OrPaymentMethodsProps<FormType = any> {\r\n /**\r\n * The title of the drawer\r\n */\r\n drawerTitle?: string;\r\n /**\r\n * Whether the Drawer dialog is visible or not\r\n */\r\n open?: boolean;\r\n /**\r\n * payment Methods\r\n */\r\n paymentMethods: PaymentMethod[];\r\n /**\r\n * Form Steps info\r\n */\r\n currentPaymentSelectedFields?: IFormStep<FormType>; //TODO: check this @JesusWebTs if you are looking this please type it\r\n /**\r\n * Disable continue button drawer\r\n */\r\n disabledButton?: boolean;\r\n /**\r\n * Show payment methods\r\n */\r\n showPaymentMethods?: boolean;\r\n /**\r\n * terms and conditions disclaimer\r\n */\r\n termsDisclaimer?: string;\r\n /**\r\n * onCloseDrawer function\r\n */\r\n onCloseDrawer?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n}\r\n\r\nexport const OrPaymentMethods = <\r\n FormType extends Store\r\n>({\r\n drawerTitle,\r\n open,\r\n paymentMethods,\r\n currentPaymentSelectedFields,\r\n showPaymentMethods = true,\r\n termsDisclaimer,\r\n onCloseDrawer,\r\n disabledButton = false,\r\n}: OrPaymentMethodsProps<FormType>) => {\r\n const termsAndConditions = useFormWatch(\"termsAndConditions\", currentPaymentSelectedFields?.form)\r\n return (\r\n <OrDrawer\r\n width={400}\r\n open={open}\r\n title={drawerTitle}\r\n onClose={onCloseDrawer}\r\n >\r\n <OrCol $gap={18} $alignItems=\"center\">\r\n {showPaymentMethods &&\r\n paymentMethods.map((paymentMethod, index) => {\r\n return (\r\n <AtButton\r\n key={index}\r\n value={paymentMethod.value}\r\n icon={paymentMethod.icon}\r\n $fullWidth={true}\r\n onClick={() => {\r\n paymentMethod.onClick(paymentMethod.value);\r\n }}\r\n />\r\n );\r\n })}\r\n\r\n {currentPaymentSelectedFields && !showPaymentMethods && (\r\n <>\r\n <AtImage\r\n src={currentPaymentSelectedFields.image}\r\n preview={false}\r\n height={36}\r\n width={153}\r\n />\r\n <OrForm\r\n form={currentPaymentSelectedFields.form}\r\n onFinish={currentPaymentSelectedFields.onFinish}\r\n name={currentPaymentSelectedFields.title}\r\n layout=\"vertical\"\r\n initialValues={currentPaymentSelectedFields.formInitialItems}\r\n >\r\n <OrFormItemsInline inputs={currentPaymentSelectedFields.inputs} />\r\n <MlFormItem\r\n name={'termsAndConditions'}\r\n initialValue={termsAndConditions}\r\n >\r\n <StyledCheckBox value=\"terms\" checked={termsAndConditions} onChange={() => {\r\n currentPaymentSelectedFields.form?.setFieldValue('termsAndConditions', !termsAndConditions)\r\n }}>\r\n {termsDisclaimer}\r\n </StyledCheckBox>\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={currentPaymentSelectedFields.submitButtonText}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={!termsAndConditions || disabledButton}\r\n />\r\n </MlFormItem>\r\n {\r\n !!currentPaymentSelectedFields.onCancelClick && <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={currentPaymentSelectedFields.cancelButtonText}\r\n onClick={currentPaymentSelectedFields.onCancelClick}\r\n icon={currentPaymentSelectedFields.cancelBtnIcon}\r\n type=\"default\"\r\n />\r\n </MlFormItem>\r\n }\r\n </OrForm>\r\n </>\r\n )}\r\n </OrCol>\r\n </OrDrawer>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const Container = styled.div<{padding: string}>`\r\n margin: 0px 12px;\r\n ${({ padding }) => (padding ? `padding: ${padding} !important` : '')};\r\n background-color: ${gray[0]};\r\n`;\r\n\r\nexport const Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nexport const BalanceContainer = styled.div`\r\n display: flex; \r\n flex-direction: column;\r\n`;\r\n\r\nexport const TitleContainer = styled.div`\r\n display: flex; \r\n flex-direction: row; \r\n align-items: baseline; \r\n gap: 10px; \r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { AtButton, AtIcon, AtText, AtTitle } from '../../atoms';\r\nimport { BalanceContainer, Container, Header, TitleContainer } from './styles';\r\n\r\nexport interface OrTableModuleLayoutProps {\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * subtitle Content\r\n */\r\n subtitleContent?: string;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * margin\r\n */\r\n $margin?: string;\r\n /**\r\n * padding\r\n */\r\n padding?: string;\r\n /**\r\n * whether to show left arrow\r\n */\r\n leftArrow?: boolean;\r\n /**\r\n * left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n}\r\n\r\nexport const OrTableModuleLayout: React.FC<OrTableModuleLayoutProps> = (\r\n {\r\n $margin,\r\n title,\r\n subtitle,\r\n subtitleContent,\r\n children,\r\n padding = '16px 24px',\r\n leftArrow,\r\n onClickLeftArrow,\r\n },\r\n) => {\r\n return (\r\n <Container padding={padding}>\r\n <Header>\r\n <TitleContainer>\r\n {\r\n leftArrow && (\r\n <AtButton onClick={onClickLeftArrow} icon={<AtIcon name='ArrowLeftOutlined' />} borderless />\r\n )\r\n }\r\n <AtTitle level={4} $margin={$margin}>{title}</AtTitle>\r\n </TitleContainer>\r\n <BalanceContainer style={{\r\n\r\n }}>\r\n <AtText $fontSize={14} color='lightGray'>{subtitle}</AtText>\r\n <AtText $fontSize={24} $textAlign='right'>{subtitleContent}</AtText>\r\n </BalanceContainer>\r\n </Header>\r\n {children}\r\n </Container>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n MlFormItem,\r\n MlFromItemProps,\r\n MlRadioGroup,\r\n MlRadioGroupProps,\r\n} from '../../molecules';\r\nimport {\r\n AtButton,\r\n AtDivider,\r\n AtNumberInput,\r\n AtText,\r\n AtTextInput,\r\n AtTitle,\r\n} from '../../atoms';\r\nimport { OrForm } from '../OrForm';\r\nimport { FormProps } from 'antd';\r\nimport { IFormData } from '../../templates/TmLoginPhone';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { OrTableModuleLayout } from '../OrTableModuleLayout';\r\nimport { gray } from '../../../theme';\r\nimport { OrCard } from '../OrCard';\r\n\r\nexport interface OrRechargeProps {\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * page subtitle content\r\n */\r\n balance?: string;\r\n /**\r\n * The title of the card\r\n */\r\n cardTitle: string;\r\n /**\r\n * number of digits (input) to show\r\n */\r\n digits?: number;\r\n /**\r\n * The input content value\r\n */\r\n value?: number;\r\n /**\r\n * Callback when user input amount\r\n */\r\n onChangeAmount?: ((value: string | number | null) => void) | undefined;\r\n /**\r\n * Callback when user input coupon\r\n */\r\n couponOnChange?:\r\n | ((e: React.ChangeEvent<HTMLInputElement>) => void)\r\n | undefined;\r\n /**\r\n * font size of the input\r\n */\r\n fontSize?: string;\r\n /**\r\n * height of the input\r\n */\r\n height?: string;\r\n /**\r\n * rule for the amount input\r\n */\r\n ruleAmount?: MlFromItemProps['rules'];\r\n /**\r\n * rule for the coupon input\r\n */\r\n ruleCoupon?: MlFromItemProps['rules'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Form init values\r\n */\r\n initialValues?: IFormData;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Coupon button text\r\n */\r\n couponBtn?: string;\r\n /**\r\n * Amount placeholder\r\n */\r\n amountPlaceholder?: string;\r\n /**\r\n * Coupon placeholder\r\n */\r\n couponPlaceholder?: string;\r\n /**\r\n * Radio group items\r\n */\r\n radioGroupItems?: MlRadioGroupProps['options'];\r\n /**\r\n * Radio group default value\r\n */\r\n radioDefaultValue?: string;\r\n /**\r\n * Amount to pay text\r\n */\r\n amountToPayText?: string;\r\n /**\r\n * Amount to pay\r\n */\r\n amountToPay?: string;\r\n /**\r\n * Coupon text\r\n */\r\n couponText?: string;\r\n /**\r\n * Discount\r\n */\r\n discount?: string;\r\n /**\r\n * Total text\r\n */\r\n totalText?: string;\r\n /**\r\n * Total\r\n */\r\n total?: string;\r\n /**\r\n * Tax text\r\n */\r\n taxText?: string;\r\n /**\r\n * Tax\r\n */\r\n tax?: string;\r\n /**\r\n * Pay button text\r\n */\r\n payBtn?: string;\r\n /**\r\n * Apply coupon click\r\n */\r\n applyCouponClick?: () => void;\r\n /**\r\n * Pay click\r\n */\r\n payClick?: () => void;\r\n /**\r\n * onChange radio group\r\n */\r\n onChangeRadio?: MlRadioGroupProps['onChange'];\r\n}\r\n\r\nexport const OrRecharge: React.FC<OrRechargeProps> = (props) => {\r\n return (\r\n <>\r\n <OrCard size=\"small\" $marginBottom={20} $padding={0}>\r\n <OrTableModuleLayout\r\n title={props.title}\r\n subtitle={props.subtitle}\r\n subtitleContent={props.balance}\r\n />\r\n </OrCard>\r\n <OrCard>\r\n <OrCol $gap={15}>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {props.cardTitle}\r\n </AtTitle>\r\n <OrForm\r\n form={props.form}\r\n initialValues={props.initialValues}\r\n onFinish={props.onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '15px',\r\n flex: 1,\r\n }}\r\n >\r\n <MlFormItem noStyle name={'amount'} rules={props.ruleAmount}>\r\n <AtNumberInput\r\n $fontSize={props.fontSize}\r\n $height={props.height}\r\n id=\"quantity\"\r\n placeholder={props.amountPlaceholder}\r\n min={0}\r\n controls={false}\r\n onChange={props.onChangeAmount}\r\n />\r\n </MlFormItem>\r\n <OrRow wrap={false} $gap={15}>\r\n <MlFormItem\r\n noStyle\r\n name={'discountCode'}\r\n rules={props.ruleCoupon}\r\n >\r\n <AtTextInput\r\n onChange={props.couponOnChange}\r\n placeholder={props.couponPlaceholder}\r\n />\r\n </MlFormItem>\r\n <AtButton\r\n value={props.couponBtn}\r\n onClick={props.applyCouponClick}\r\n />\r\n </OrRow>\r\n </OrForm>\r\n {!!props.radioGroupItems && !!props.radioDefaultValue && (\r\n <MlRadioGroup\r\n onChange={props.onChangeRadio}\r\n options={props.radioGroupItems}\r\n optionType={'button'}\r\n defaultValue={props.radioDefaultValue}\r\n buttonStyle={'solid'}\r\n />\r\n )}\r\n <OrCard type=\"inner\" $backgroundColor={gray[3]}>\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.amountToPayText}</AtText>\r\n <AtText>{props.amountToPay}</AtText>\r\n </OrRow>\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.couponText}</AtText>\r\n <AtText>{props.discount}</AtText>\r\n </OrRow>\r\n {props.totalText && (\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.taxText}</AtText>\r\n <AtText>{props.tax}</AtText>\r\n </OrRow>\r\n )}\r\n <AtDivider $margin={10} />\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.totalText}</AtText>\r\n <AtText>{props.total}</AtText>\r\n </OrRow>\r\n </OrCard>\r\n <OrRow justify=\"end\" $paddingTop={25}>\r\n <AtButton\r\n value={props.payBtn}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n onClick={props.payClick}\r\n />\r\n </OrRow>\r\n </OrCol>\r\n </OrCard>\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { OrRentalResultProps } from '.';\r\n\r\nexport const StyledOrRentalResult = styled.div<OrRentalResultProps>`\r\n align-self: center;\r\n width: 100%;\r\n\r\n & .hide-desktop {\r\n display: none;\r\n }\r\n & .content .ant-typography {\r\n font-size: 20px;\r\n }\r\n\r\n @media (max-width: 767px) {\r\n & .hide-mobile {\r\n display: none!important;\r\n }\r\n & .hide-desktop {\r\n display: flex;\r\n }\r\n & .ant-card{\r\n border-radius: 0;\r\n }\r\n & .content .ant-typography {\r\n font-size: 16px;\r\n }\r\n }\r\n\r\n`","import React from 'react';\r\nimport { OrCard } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtButton, AtIcon, AtText } from '../../atoms';\r\nimport { MlIconText } from '../../molecules';\r\nimport { StyledOrRentalResult } from './styles';\r\n\r\nexport interface OrRentalResultProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * The address from\r\n */\r\n addressFrom: string;\r\n /**\r\n * The address to\r\n */\r\n addressTo: string;\r\n /**\r\n * The date of the search\r\n */\r\n date?: string;\r\n /**\r\n * The edit rental search form callback\r\n */\r\n editOnClick: () => void;\r\n /**\r\n * The delete rental search form callback\r\n */\r\n deleteOnClick: () => void;\r\n /**\r\n * Number of minimum passengers required\r\n */\r\n minPassengersRequired: string;\r\n /**\r\n * The max width of the card\r\n */\r\n $maxWidth?: number;\r\n}\r\n\r\nexport const OrRentalResult: React.FC<OrRentalResultProps> = ({ $maxWidth = 1080, ...props }) => (\r\n <StyledOrRentalResult {...props}>\r\n <OrCard $margin='auto' $alignSelf=\"center\" $maxWidth={$maxWidth} $backgroundColor='#4C2375'>\r\n <OrRow align='middle'>\r\n <OrCol span={14} md={12} onClick={props.editOnClick}>\r\n <OrRow>\r\n <OrCol className='content' $gapHorizontal={5} style={{ flexDirection: 'row' }}>\r\n <AtText $maxWidth={150} ellipsis color='white'>{props.addressFrom}</AtText>\r\n <AtIcon name='ArrowRightOutlined' style={{ color: '#FAAD14', fontSize: 16 }} />\r\n <AtText $maxWidth={150} ellipsis color='white'>{props.addressTo}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n {props.date && <OrRow className='hide-desktop'>\r\n <MlIconText iconProps={{ name: 'CalendarOutlined', style: { color: 'white' } }} text={props.date} textProps={{ color: 'white' }}/>\r\n </OrRow>}\r\n </OrCol>\r\n <OrCol className='hide-mobile' span={8} onClick={props.editOnClick}>\r\n {props.date && <MlIconText iconProps={{ name: 'CalendarOutlined', style: { marginLeft: 10, color: 'white' } }} text={props.date} textProps={{ color: 'white' }}/>}\r\n </OrCol>\r\n <OrCol style={{ flexDirection: 'row' }} $alignItems='center' $justify='end' $gapHorizontal={10} span={10} md={4}>\r\n <MlIconText iconProps={{ name: 'UserOutlined', style: {color: 'white'} }} text={props.minPassengersRequired} textProps={{ color: 'white' }} />\r\n <AtButton shape='circle' icon={<AtIcon name='CloseOutlined' />} onClick={props.deleteOnClick} />\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n </StyledOrRentalResult>\r\n);\r\n","import { styled } from 'styled-components';\r\nimport { OrRentalVehicleItemProps } from '.';\r\n\r\nexport const StyledOrRentalVehicleItem = styled.div<OrRentalVehicleItemProps>`\r\n align-self: center;\r\n & .ant-btn-primary {\r\n width: 150px;\r\n }\r\n & .hide-desktop {\r\n display: none;\r\n }\r\n & .main-title {\r\n flex: 1;\r\n }\r\n & .row-content {\r\n align-items: center;\r\n }\r\n\r\n @media (max-width: 767px) {\r\n & .hide-mobile {\r\n display: none!important;\r\n }\r\n & .hide-desktop {\r\n display: flex;\r\n }\r\n & .main-title {\r\n margin: 0;\r\n }\r\n & .ant-btn-primary {\r\n width: 100%;\r\n max-width: 330px;\r\n margin: auto;\r\n }\r\n }\r\n\r\n`","import { AtButton, AtIconProps, AtImage, AtTag, AtText, AtTitle } from \"../../atoms\";\r\nimport { MlIconText } from \"../../molecules\";\r\nimport { OrCard } from \"../OrCard\";\r\nimport { OrCol } from \"../OrCol\";\r\nimport { OrRow } from \"../OrRow\";\r\nimport { StyledOrRentalVehicleItem } from \"./styles\";\r\n\r\nexport interface OrRentalVehicleItemProps {\r\n /**\r\n * The title of the vehicle\r\n */\r\n title: string;\r\n /**\r\n * The tag of the vehicle\r\n */\r\n tag?: string;\r\n /**\r\n * The main image of the vehicle\r\n */\r\n imageSrc: string;\r\n /**\r\n * The items of the vehicle\r\n */\r\n items: { icon: AtIconProps['name'], text: string }[];\r\n /**\r\n * The extras of the vehicle\r\n */\r\n extras: { label: string, text: string }[];\r\n /**\r\n * The price of the vehicle\r\n */\r\n price: string;\r\n /**\r\n * The on click event\r\n */\r\n onClick?: () => void;\r\n /**\r\n * The max width of the card\r\n */\r\n $maxWidth?: number;\r\n /**\r\n * The select text\r\n */\r\n selectText?: string;\r\n}\r\n\r\nexport const OrRentalVehicleItem: React.FC<OrRentalVehicleItemProps> = (props) => {\r\n const {title, tag, imageSrc, price, items, extras, $maxWidth = 1080, selectText} = props;\r\n const {onClick, ...stylesProps} = props;\r\n return (\r\n <StyledOrRentalVehicleItem {...stylesProps}>\r\n <OrCard $padding={0} $maxWidth={$maxWidth} $alignSelf=\"center\" $shadow=\"0px 4px 8px 0px #0000001A\">\r\n <OrRow align=\"middle\">\r\n <OrCol className=\"hide-mobile\" span={9} $paddingRight={30}>\r\n <AtImage\r\n src={imageSrc}\r\n preview={false}\r\n />\r\n </OrCol>\r\n <OrCol span={24} md={6}>\r\n {tag && <OrRow>\r\n <AtTag color=\"purple\" bordered={true}>{tag}</AtTag>\r\n </OrRow>}\r\n <OrRow className=\"row-content\">\r\n <AtTitle className=\"main-title\" level={4}>{title}</AtTitle>\r\n <OrCol className=\"hide-desktop\">\r\n <AtText $fontSize={24} $textAlign='right' strong={true}>{price}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n <OrRow className=\"hide-mobile\">\r\n {items && items.map((item, i) => <OrCol style={{ flexDirection: 'row' }} span={8} md={24} key={i}>\r\n <MlIconText iconProps={{ name: item.icon, style: { color: '#8C8C8C' } }} text={item.text} textProps={{ color: 'black', $opacity: .85 }}/>\r\n </OrCol>)}\r\n </OrRow>\r\n <OrRow className=\"hide-mobile\" $paddingTop={10}>\r\n {extras && extras.map((extra, i) => <OrCol style={{ flexDirection: 'row' }} span={8} md={24} key={i}>\r\n <AtText>{`${extra.label}: ${extra.text}`}</AtText>\r\n </OrCol>)}\r\n </OrRow>\r\n </OrCol>\r\n <OrCol className=\"hide-mobile\" md={4} $alignItems=\"start\">\r\n <AtText $fontSize={24} $textAlign='right' strong={true}>{price}</AtText>\r\n </OrCol>\r\n <OrCol span={24} md={5} $paddingTop={12}>\r\n <OrRow className=\"hide-desktop\" $gapHorizontal={8} $gapVertical={2}>\r\n {items && items.map((item) => <OrCol style={{ flexDirection: 'row' }}>\r\n <MlIconText iconProps={{ name: item.icon, style: { color: '#8C8C8C'} }} text={item.text} textProps={{ color: 'black', $opacity: .85 }}/>\r\n </OrCol>)}\r\n </OrRow>\r\n \r\n <OrRow className=\"hide-desktop\">\r\n <AtImage\r\n wrapperStyle={{ maxWidth: 300, margin: 'auto'}}\r\n src={imageSrc}\r\n preview={false}\r\n />\r\n </OrRow>\r\n <AtButton \r\n type='primary' \r\n size='large'\r\n shape='round'\r\n value={selectText}\r\n onClick={onClick}\r\n />\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n </StyledOrRentalVehicleItem>\r\n )\r\n}","import React, { useMemo } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport { MlRadioGroup, MlSubscriptionCardProps } from '../../molecules';\r\nimport { MlServicesCard } from '../../molecules/MlServicesCard';\r\n\r\nexport interface OrServiceCardsProps {\r\n /**\r\n * subscriptions onChange event\r\n */\r\n onChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * services\r\n */\r\n options: Array<MlSubscriptionCardProps>;\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n /**\r\n * disable card icons\r\n */\r\n disabled?: boolean;\r\n}\r\n\r\nexport const OrServiceCards: React.FC<OrServiceCardsProps> = ({\r\n options,\r\n onChange,\r\n value,\r\n disabled = false,\r\n}) => {\r\n const services = useMemo(\r\n () =>\r\n options.map((subscription) => ({\r\n label: <MlServicesCard {...subscription} />,\r\n value: subscription.value,\r\n disabled: subscription.disabled,\r\n })),\r\n [options],\r\n );\r\n return (\r\n <>\r\n <MlRadioGroup\r\n onChange={onChange}\r\n options={services}\r\n bordered\r\n size=\"large\"\r\n fullWidth={true}\r\n disabled={disabled}\r\n padding=\"16px\"\r\n value={value}\r\n buttonStyle=\"outline\"\r\n cardChecked={true}\r\n />\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const Container = styled.div`\r\n margin: 0px 12px;\r\n background-color: #f5f5f5;\r\n padding: 18px;\r\n`;\r\n\r\nexport const Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 10px;\r\n background-color: ${gray[0]};\r\n padding: 21.5px 24px;\r\n`;\r\n\r\nexport const UserContainer = styled.div`\r\n display: flex; \r\n flex-direction: row;\r\n position: relative;\r\n padding-left: 10px;\r\n align-items: center;\r\n`;\r\n\r\nexport const BalanceContainer = styled.div`\r\n display: flex; \r\n flex-direction: column;\r\n position: relative;\r\n padding-left: 40px;\r\n\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n width: 1px;\r\n height: calc(100% - 16px);\r\n background-color: black;\r\n position: absolute;\r\n top: 8px;\r\n left: 19.5px;\r\n }\r\n`;\r\n\r\nexport const InfoContainer = styled.div`\r\n display: flex; \r\n flex-direction: row;\r\n position: relative;\r\n padding-left: 40px;\r\n\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n width: 1px;\r\n height: calc(100% - 16px);\r\n background-color: black;\r\n position: absolute;\r\n top: 8px;\r\n left: 19.5px;\r\n }\r\n`;\r\n\r\nexport const MainContainer = styled.div`\r\n flex-direction: row;\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const ButtonContainer = styled.div`\r\n`;\r\n\r\nexport const TextContainer = styled.div`\r\n display: flex; \r\n flex-direction: column;\r\n margin-left: 10px;\r\n`;\r\n","import React, { useMemo } from 'react';\r\nimport { AtAvatar, AtButton, AtIcon, AtIconProps, AtImage, AtText, AtTitle } from '../../atoms';\r\nimport { Container, Header, UserContainer, BalanceContainer, InfoContainer, MainContainer, ButtonContainer, TextContainer } from './styles';\r\nimport { OrDrawer } from '../OrDrawer';\r\nimport { OrStep } from '../OrStep';\r\nimport { OrForm, OrFormProps } from '../OrForm';\r\nimport { OrFormItemsInline } from '../OrFormItemsInline';\r\nimport { OrCol } from '../OrCol';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { IFormStep } from '../../templates/TmCrudPage';\r\n\r\nexport interface OrTabsModuleLayoutProps<FormType = any> {\r\n /**\r\n * Avatar image\r\n */\r\n avatar?: string;\r\n /**\r\n * User name\r\n */\r\n username: string;\r\n /**\r\n * User phone number\r\n */\r\n phone: string;\r\n /**\r\n * Balance ticket label\r\n */\r\n balanceLabel: string;\r\n /**\r\n * Balance ticket value\r\n */\r\n balanceValue: string;\r\n /**\r\n * Icon for the info part\r\n */\r\n infoIcon?: AtIconProps['name'];\r\n /**\r\n * Info label\r\n */\r\n infoLabel?: string;\r\n /**\r\n * Info value\r\n */\r\n infoValue?: string;\r\n /**\r\n * Main button label\r\n */\r\n mainButtonLabel: string;\r\n /**\r\n * Main button icon\r\n */\r\n mainButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Main action click event\r\n */\r\n onClickMainAction?: () => void;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n}\r\n\r\nexport const OrTabsModuleLayout: React.FC<OrTabsModuleLayoutProps> = (\r\n {\r\n avatar,\r\n username,\r\n phone,\r\n balanceLabel,\r\n balanceValue,\r\n infoIcon = 'FileDoneOutlined',\r\n infoLabel,\r\n infoValue,\r\n mainButtonLabel,\r\n mainButtonIcon = 'FileDoneOutlined',\r\n onClickLeftArrow,\r\n onClickMainAction,\r\n children,\r\n formSteps,\r\n handleCloseCallback,\r\n open,\r\n drawerTitle,\r\n drawerWidth,\r\n disabledButtons,\r\n currentFormStep,\r\n showFormStepper = true,\r\n onValuesChange\r\n },\r\n) => {\r\n const letters = useMemo(\r\n () => {\r\n const name = username.split(' ');\r\n if(name.length > 1) {\r\n return name[0][0] + name[1][0];\r\n } else {\r\n return name[0][0];\r\n }\r\n }, \r\n [username]);\r\n\r\n return (\r\n <React.Fragment>\r\n <Container>\r\n <Header>\r\n <MainContainer>\r\n {\r\n onClickLeftArrow && (\r\n <AtButton onClick={onClickLeftArrow} icon={<AtIcon name='ArrowLeftOutlined' />} borderless />\r\n )\r\n }\r\n <UserContainer>\r\n {\r\n avatar ? <AtAvatar \r\n src={avatar} \r\n alt='avatar' \r\n size={32}\r\n shape='circle'\r\n /> :\r\n <AtAvatar \r\n icon={letters}\r\n alt='avatar' \r\n size={32}\r\n shape='circle'\r\n />\r\n }\r\n <TextContainer>\r\n <AtText $fontSize={16} strong>{username}</AtText>\r\n <AtText $fontSize={14}>{phone}</AtText>\r\n </TextContainer>\r\n </UserContainer>\r\n <BalanceContainer>\r\n <AtText $fontSize={14}>{balanceLabel}</AtText>\r\n <AtText $fontSize={16} strong>{balanceValue}</AtText>\r\n </BalanceContainer>\r\n {infoLabel && infoValue && (\r\n <InfoContainer>\r\n {infoIcon && <AtIcon style={{ fontSize: '24px' }} name={infoIcon} />}\r\n <TextContainer>\r\n <AtText $fontSize={16} strong>{infoLabel}</AtText>\r\n <AtText $fontSize={16}>{infoValue}</AtText>\r\n </TextContainer>\r\n </InfoContainer>\r\n )}\r\n </MainContainer>\r\n <ButtonContainer>\r\n <AtButton type='primary' icon={<AtIcon name={mainButtonIcon} />} onClick={onClickMainAction} value={mainButtonLabel}/>\r\n </ButtonContainer>\r\n </Header>\r\n {children}\r\n </Container>\r\n <OrDrawer\r\n open={open}\r\n onClose={handleCloseCallback}\r\n title={drawerTitle}\r\n width={drawerWidth}\r\n >\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formSteps &&\r\n formSteps.map(({customButtons = [], ...formStep}, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n {formStep.image && (\r\n <OrCol $alignItems=\"center\" $paddingBottom={30}>\r\n <AtImage\r\n src={formStep.image}\r\n preview={false}\r\n height={\"100%\"}\r\n width={250}\r\n />\r\n </OrCol>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n {customButtons.length === 0 && (\r\n <>\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n </>\r\n )}\r\n {customButtons.map((button) => (\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n type={button.type}\r\n value={button.label}\r\n onClick={button.onClick}\r\n htmlType={button.htmlType}\r\n />\r\n </MlFormItem>\r\n ))}\r\n </OrForm>\r\n ))}\r\n </OrDrawer>\r\n </React.Fragment>\r\n );\r\n};\r\n","export * from './OrActiveCards';\nexport * from './OrAlert';\nexport * from './OrAssignBalance';\nexport * from './OrBasicUserInfoCard';\nexport * from './OrCard';\nexport * from './OrCardDetails';\nexport * from './OrCardIconsGroup';\nexport * from './OrCardRequestSummary';\nexport * from './OrCoinTable';\nexport * from './OrCol';\nexport * from './OrCollapse';\nexport * from './OrContent';\nexport * from './OrCopyInfo';\nexport * from './OrCountryCard';\nexport * from './OrDashboardLayout';\nexport * from './OrDescriptions';\nexport * from './OrDetailsPage';\nexport * from './OrDownloadUpload';\nexport * from './OrDrawer';\nexport * from './OrEmpty';\nexport * from './OrFlagGrid';\nexport * from './OrForm';\nexport * from './OrFormItemsInline';\nexport * from './OrGoogleMaps';\nexport * from './OrHeader';\nexport * from './OrInfoCard';\nexport * from './OrInfoHeaderCard';\nexport * from './OrLabelTextBox';\nexport * from './OrLayout';\nexport * from './OrListSelection';\nexport * from './OrLoginLayout';\nexport * from './OrMark';\nexport * from './OrMenu';\nexport * from './OrModal';\nexport * from './OrModuleTableHeader';\nexport * from './OrPaymentMethods';\nexport * from './OrPhoneInput';\nexport * from './OrPlanCards';\nexport * from './OrRecharge';\nexport * from './OrRentalLayout';\nexport * from './OrRentalResult';\nexport * from './OrRentalVehicleItem';\nexport * from './OrRow';\nexport * from './OrSelectInput';\nexport * from './OrSelectTable';\nexport * from './OrServiceCards';\nexport * from './OrSider';\nexport * from './OrSiderMenu';\nexport * from './OrSimpleBanner';\nexport * from './OrSpace';\nexport * from './OrSpaceCompact';\nexport * from './OrStep';\nexport * from './OrTab';\nexport * from './OrTable';\nexport * from './OrTableModuleLayout';\nexport * from './OrTabsModuleLayout';\nexport * from './OrTicketCard';\nexport * from './OrTickets';\nexport * from './OrTwoButtons';\n","import React from \"react\";\r\nimport { OrRow, OrSpace } from \"../../organisms\";\r\nimport { AtText } from \"../AtText\";\r\nimport { gold, red, green, geekblue } from '@ant-design/colors';\r\nimport { violet } from \"../../../theme\";\r\nimport { AtIcon } from \"../AtIcon\";\r\n\r\nexport interface AtInputStatusProps {\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: React.ReactNode;\r\n /**\r\n * Set the icon of tag\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * Callback executed when tag is closed\r\n */\r\n onClose?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Tag text\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Status type\r\n */\r\n type?: 'success' | 'warning' | 'danger' | 'info' | 'default';\r\n visible?: boolean;\r\n}\r\n\r\nexport const AtInputStatus: React.FC<AtInputStatusProps> = (\r\n {\r\n children,\r\n closeIcon,\r\n icon,\r\n type = 'danger',\r\n onClose,\r\n visible,\r\n ...props\r\n }\r\n) => {\r\n const typeColorMap = {\r\n success: green,\r\n warning: gold,\r\n danger: red,\r\n info: violet,\r\n default: geekblue,\r\n }\r\n\r\n return visible ?\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n padding: 14,\r\n fontSize: 14,\r\n backgroundColor: type && typeColorMap[type][0],\r\n color: type && typeColorMap[type][4],\r\n borderWidth: 1,\r\n borderColor: type && typeColorMap[type][1],\r\n borderStyle: 'solid',\r\n borderRadius: 8,\r\n }}\r\n {...props}\r\n >\r\n <OrRow style={{\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n gap: 15,\r\n flex: 1,\r\n width: '100%',\r\n }}>\r\n <OrSpace>\r\n {\r\n icon ?? type === 'success' ? \r\n <AtIcon name='CheckCircleFilled' width={14} height={14} /> : \r\n type === 'warning' ? \r\n <AtIcon name='ExclamationCircleFilled' width={14} height={14} /> :\r\n type === 'info' || type === 'danger' ? \r\n <AtIcon name='CloseCircleFilled' width={14} height={14} /> :\r\n <></>\r\n }\r\n <AtText color=\"black\">{children}</AtText>\r\n </OrSpace >\r\n </OrRow >\r\n {!!onClose ? <div onClick={onClose} style={{\r\n cursor: 'pointer',\r\n width: 14,\r\n height: 14,\r\n padding: 5,\r\n color: '#00000073',\r\n }}>\r\n {closeIcon}\r\n </div> : <></>}\r\n </OrRow > :\r\n <></>\r\n}","import Link, { LinkProps } from 'antd/es/typography/Link';\r\nimport React from 'react';\r\n\r\nexport interface AtLinkProps extends LinkProps{\r\n /**\r\n * The href of the link\r\n */\r\n href?: LinkProps['href'];\r\n /**\r\n * The target type of the link\r\n */\r\n target?: LinkProps['target'];\r\n}\r\n\r\nexport const AtLink: React.FC<AtLinkProps> = ({\r\n ...props\r\n}) => {\r\n return (\r\n <Link \r\n {...props}\r\n />\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { AtLogoProps } from '.';\r\nimport { violet } from '../../../theme';\r\nimport { gold } from '@ant-design/colors';\r\nimport SVG from 'react-inlinesvg';\r\n\r\ntype LogoAttrs = AtLogoProps & {\r\n width?: number;\r\n height?: number;\r\n};\r\n\r\nconst colorMap = {\r\n violet: violet[5],\r\n gold: gold[5],\r\n white: '#FFFFFF',\r\n};\r\n\r\nexport const Logo = styled(SVG)<LogoAttrs>`\r\n & svg {\r\n width: ${({ width, type }) => width ?? (type === 'logo' ? 243 : 90)};\r\n height: ${({ height, type }) => height ?? (type === 'logo' ? 50 : 38)};\r\n }\r\n & path {\r\n fill: ${({ color }) => (color ? colorMap[color] : colorMap.violet)};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport WaWaLogo from '../../../assets/icons/wawa-logo.svg';\r\nimport WaWaIsotype from '../../../assets/icons/wawa-isotype.svg';\r\nimport { Logo } from './styles';\r\n\r\nexport interface AtLogoProps {\r\n width?: number;\r\n height?: number;\r\n color?: 'violet' | 'gold' | 'white';\r\n type?: 'logo' | 'isotype';\r\n}\r\n\r\nexport const AtLogo: React.FC<AtLogoProps> = ({color = \"violet\", type = \"logo\", ...props}) => {\r\n return (\r\n <Logo\r\n type={type}\r\n color={color}\r\n {...props}\r\n src={\r\n type === 'logo' ? (WaWaLogo as string) : (WaWaIsotype as string)\r\n }\r\n />\r\n );\r\n};\r\n\r\n","import { Input } from 'antd';\r\nimport React from 'react';\r\nimport { AtTextInputProps } from '../AtTextInput';\r\n\r\ntype AtPasswordInputProp = AtTextInputProps & {\r\n iconRender?: (visible: boolean) => React.ReactNode;\r\n};\r\n\r\nexport const AtPasswordInput: React.FC<AtPasswordInputProp> = (props) => {\r\n return <Input.Password {...props} />;\r\n};\r\n","import React from 'react';\r\nimport { QRCode } from 'antd';\r\n\r\nexport interface AtQrCodeProps {\r\n /**\r\n * The text to encode\r\n */\r\n text: string;\r\n /**\r\n * The size of the QR code\r\n */\r\n size?: number;\r\n}\r\n\r\nexport const AtQrCode: React.FC<AtQrCodeProps> = ({\r\n text,\r\n size\r\n}) => <QRCode value={text} size={size} />;\r\n","import React from 'react';\r\nimport { Radio } from 'antd';\r\nimport { RadioChangeEvent } from 'antd/es/radio';\r\n\r\nexport interface AtRadioProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Specifies whether the radio is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * Specifies the initial state: whether or not the radio is selected\r\n */\r\n defaultChecked?: boolean;\r\n /**\r\n * Disable radio\r\n */\r\n disabled?: boolean;\r\n /**\r\n * According to value for comparison, to determine whether the selected\r\n */\r\n value?: any;\r\n /**\r\n * Children of the AtRadio\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * On select option callback\r\n */\r\n onChange?: ((e: RadioChangeEvent) => void) | undefined;\r\n}\r\n\r\nexport const AtRadio: React.FC<AtRadioProps> = ({\r\n checked = false,\r\n defaultChecked = false,\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return <Radio checked={checked} defaultChecked={defaultChecked} disabled={disabled} {...props} />;\r\n};\r\n\r\n","import React from 'react';\r\nimport { Radio } from 'antd';\r\n\r\n\r\nexport interface AtRadioButtonsProps {\r\n /**\r\n * The title of the button\r\n */\r\n title: string;\r\n /**\r\n * The value of the button\r\n */\r\n value: string;\r\n}\r\n\r\nexport const AtRadioButtons: React.FC<AtRadioButtonsProps> = ({ title, value }) => {\r\n return (\r\n <Radio.Button value={value} type='solid'>{title}</Radio.Button>\r\n );\r\n}","import { Result } from \"antd\";\r\nimport React from \"react\";\r\n\r\nexport interface AtResultProps {\r\n /**\r\n * Icon to show in result\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * Title to show in result\r\n */\r\n title?: React.ReactNode;\r\n /**\r\n * Extra content to show in result\r\n */\r\n extra?: React.ReactNode;\r\n}\r\n\r\nexport const AtResult: React.FC<AtResultProps> = ({ icon, title, extra }) => {\r\n return (\r\n <Result\r\n icon={icon}\r\n title={title}\r\n extra={extra}\r\n />\r\n )\r\n}","import React from 'react';\r\nimport Segmented, { SegmentedProps, SegmentedValue } from 'antd/lib/segmented';\r\n\r\nexport interface AtSegmentedProps {\r\n /**\r\n * State for the current value of the segmented\r\n */\r\n value?: SegmentedValue;\r\n /**\r\n * On change callback\r\n */\r\n onChange?: (value: SegmentedValue) => void;\r\n /**\r\n * List of options for the segmented\r\n */\r\n options: SegmentedProps['options'];\r\n /**\r\n * Disable the segmented\r\n */\r\n disabled?: SegmentedProps['disabled'];\r\n}\r\n\r\nexport const AtSegmented: React.FC<AtSegmentedProps> = ({\r\n options,\r\n value,\r\n onChange,\r\n disabled\r\n}) => {\r\n return <Segmented options={options} disabled={disabled} value={value} onChange={onChange} />;\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\nimport { Select } from 'antd';\r\nimport { AtSelectProps } from '.';\r\nimport { violet, gray } from '../../../theme';\r\nconst colors = {\r\n violet: violet[5],\r\n white: gray[0],\r\n}\r\n\r\nexport const StyledAtSelect = styled(Select)<AtSelectProps>`\r\n ${({ $height }) => ($height ? `height: ${$height};` : '')}\r\n ${({ $width }) => ($width ? `width: ${$width} !important;` : '')}\r\n ${({ $textColor }) => ($textColor \r\n ? `\r\n .ant-select-selector {\r\n color: ${colors[$textColor]} !important;\r\n }\r\n .ant-select-arrow {\r\n color: ${colors[$textColor]} !important;\r\n }\r\n `\r\n : '')}\r\n ${({ backgroundColor }) => (backgroundColor \r\n ? `\r\n .ant-select-selector {\r\n background-color: ${colors[backgroundColor]} !important;\r\n }\r\n `\r\n : '')}\r\n`;","import React, {\r\n CSSProperties,\r\n JSXElementConstructor,\r\n ReactElement,\r\n ReactNode,\r\n useMemo,\r\n} from 'react';\r\nimport { SelectProps } from 'antd';\r\nimport { DefaultOptionType as Option, LabeledValue } from 'antd/es/select';\r\nimport { StyledAtSelect } from './styles';\r\n\r\nexport interface AtSelectProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Show clear button\r\n */\r\n allowClear?: boolean;\r\n /**\r\n * Whether the current search will be cleared on selecting an item. Only applies when mode is set to multiple or tags\r\n */\r\n autoClearSearchValue?: boolean;\r\n /**\r\n * Get focus by default\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * The custom clear icon\r\n */\r\n clearIcon?: ReactNode;\r\n /**\r\n * Whether active first option by default\r\n */\r\n defaultActiveFirstOption?: boolean;\r\n /**\r\n * Initial selected option\r\n */\r\n defaultValue?:\r\n | string\r\n | string[]\r\n | number\r\n | number[]\r\n | LabeledValue\r\n | LabeledValue[];\r\n /**\r\n * Whether disabled select\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Determine whether the popup menu and the select input are the same width. Default set\r\n * min-width same as input. Will ignore when value less than select width. false\r\n * will disable virtual scroll\r\n */\r\n popupMatchSelectWidth?: boolean | number;\r\n /**\r\n * Customize dropdown content\r\n */\r\n dropdownRender?: (\r\n originNode: ReactNode,\r\n ) => ReactElement<any, string | JSXElementConstructor<any>>;\r\n /**\r\n * The style of dropdown menu\r\n */\r\n dropdownStyle?: CSSProperties;\r\n /**\r\n * Customize node label, value, options,groupLabel field name\r\n */\r\n fieldNames?: object;\r\n /**\r\n * If true, filter options by input, if function, filter options against it. The function will receive two arguments, inputValue and option, if the function returns true, the option will be included in the filtered set; Otherwise, it will be excluded\r\n */\r\n filterOption?: SelectProps['filterOption'];\r\n /**\r\n * Sort function for search options sorting, see Array.sort's\r\n * compareFunction\r\n */\r\n filterSort?: (optionA: Option, optionB: Option) => number;\r\n /**\r\n * Whether to embed label in value, turn the format of value from string to { value: string,\r\n * label: ReactNode }\r\n */\r\n labelInValue?: boolean;\r\n /**\r\n * Config popup height\r\n */\r\n listHeight?: number;\r\n /**\r\n * Indicate loading state\r\n */\r\n loading?: boolean;\r\n /**\r\n * Select height\r\n */\r\n $height?: string;\r\n /**\r\n * Max tag count to show. responsive will cost render performance\r\n */\r\n maxTagCount?: number | 'responsive';\r\n /**\r\n * The custom menuItemSelected icon with multiple options\r\n */\r\n menuItemSelectedIcon?: ReactNode;\r\n /**\r\n * Set mode of Select\r\n */\r\n mode?: 'multiple' | 'tags';\r\n /**\r\n * Specify content to show when no result matches\r\n */\r\n notFoundContent?: ReactNode;\r\n /**\r\n * Controlled open state of dropdown\r\n */\r\n open?: boolean;\r\n /**\r\n * Which prop value of option will be used for filter if filterOption is true. If options is\r\n set, it should be set to label\r\n */\r\n optionFilterProp?: string;\r\n /**\r\n * Which prop value of option will render as content of select. Example\r\n */\r\n optionLabelProp?: string;\r\n /**\r\n * Select options. Will get better perf than jsx definition\r\n */\r\n options?: SelectProps['options'];\r\n /**\r\n * Placeholder of select\r\n */\r\n placeholder?: ReactNode;\r\n /**\r\n * The current input \"search\" text\r\n */\r\n searchValue?: string;\r\n /**\r\n * Whether select is searchable\r\n */\r\n showSearch?: boolean;\r\n /**\r\n * Size of Select input\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Set validation status\r\n */\r\n status?: 'error' | 'warning';\r\n /**\r\n * Styles\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * Current selected option (considered as a immutable array)\r\n */\r\n value?: string | string[] | number | number[] | LabeledValue | LabeledValue[];\r\n /**\r\n * Called when blur\r\n */\r\n onBlur?: () => any;\r\n /**\r\n * Called when select an option or input value change\r\n */\r\n onChange?: (value: any, option: Option | Array<Option>) => any;\r\n /**\r\n * Called when clear\r\n */\r\n onClear?: () => any;\r\n /**\r\n * Called when an option is deselected, param is the selected option's value. Only called for\r\n * multiple or tags, effective in multiple or tags mode only\r\n */\r\n onDeselect?: (value: string | number | LabeledValue) => any;\r\n /**\r\n * Called when dropdown open\r\n */\r\n onDropdownVisibleChange?: (open: boolean) => any;\r\n /**\r\n * Called when focus\r\n */\r\n onFocus?: () => any;\r\n /**\r\n * Callback function that is fired when input changed\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelect?: SelectProps['onSelect'];\r\n /**\r\n * Select width\r\n */\r\n $width?: string;\r\n /**\r\n * Children\r\n */\r\n children?: ReactNode;\r\n /**\r\n * background color\r\n */\r\n backgroundColor?: 'violet' | 'white';\r\n /**\r\n * text color\r\n */\r\n $textColor?: 'white' | 'violet';\r\n /**\r\n * variant\r\n */\r\n variant?: SelectProps['variant'];\r\n /**\r\n * maxCount\r\n */\r\n maxCount?: SelectProps['maxCount'];\r\n}\r\nexport const AtSelect: React.FC<AtSelectProps> = ({\r\n allowClear = false,\r\n autoClearSearchValue = true,\r\n autoFocus = false,\r\n variant = 'outlined',\r\n defaultActiveFirstOption = true,\r\n fieldNames = {\r\n label: 'label',\r\n value: 'value',\r\n options: 'options',\r\n groupLabel: 'label',\r\n },\r\n filterOption = true,\r\n labelInValue = false,\r\n listHeight = 256,\r\n loading = false,\r\n $textColor,\r\n size = 'middle',\r\n popupMatchSelectWidth = true,\r\n options,\r\n ...props\r\n}) => {\r\n const optionsWithIcons = useMemo(\r\n () =>\r\n options?.map((option) => {\r\n return {\r\n ...option,\r\n label: (\r\n <>\r\n {option.icon ?? null} {option.label}\r\n </>\r\n ),\r\n };\r\n }),\r\n [options],\r\n );\r\n\r\n return (\r\n <StyledAtSelect\r\n allowClear={allowClear}\r\n $textColor={$textColor}\r\n autoClearSearchValue={autoClearSearchValue}\r\n autoFocus={autoFocus}\r\n variant={variant}\r\n defaultActiveFirstOption={defaultActiveFirstOption}\r\n fieldNames={fieldNames}\r\n filterOption={filterOption}\r\n labelInValue={labelInValue}\r\n listHeight={listHeight}\r\n loading={loading}\r\n searchValue={props.searchValue}\r\n size={size}\r\n popupMatchSelectWidth={popupMatchSelectWidth}\r\n options={optionsWithIcons}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { Spin, SpinProps } from 'antd';\r\n\r\nexport interface AtSpinProps extends SpinProps {}\r\n\r\nexport const AtSpin: React.FC<AtSpinProps> = (props) => {\r\n return <Spin {...props} />;\r\n};\r\n","import { Switch } from 'antd';\r\nimport { SwitchProps } from 'antd/lib';\r\n\r\nexport interface AtSwitchProps extends SwitchProps{\r\n /**\r\n * Whether get focus when component mounted\r\n */\r\n autoFocus?: boolean\r\n /**\r\n * Determine whether the Switch is checked\r\n */\r\n checked?: boolean\r\n /**\r\n * Determine whether the Switch is checked\r\n */\r\n disabled?: boolean\r\n /**\r\n * Trigger when the checked state is changing\r\n */\r\n onChange?: SwitchProps['onChange']\r\n}\r\n\r\nexport const AtSwitch: React.FC<AtSwitchProps> = ({\r\n autoFocus = false,\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return (\r\n <Switch \r\n autoFocus={autoFocus}\r\n disabled={disabled}\r\n {...props}\r\n />\r\n )\r\n}\r\n","import React from \"react\";\r\nimport { Tag, TagProps} from 'antd';\r\n\r\n\r\nexport interface AtTagProps {\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: React.ReactNode;\r\n /**\r\n * Tag color\r\n */\r\n color?: TagProps['color'];\r\n /**\r\n * Set the icon of tag\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Callback executed when tag is closed\r\n */\r\n onClose?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Tag text\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const AtTag: React.FC<AtTagProps> = (\r\n {\r\n children, \r\n closeIcon,\r\n color,\r\n icon,\r\n bordered,\r\n onClose,\r\n ...props\r\n }\r\n ) => {\r\n return <Tag \r\n closeIcon={closeIcon}\r\n color={color}\r\n icon={icon}\r\n bordered={bordered}\r\n onClose={onClose}\r\n {...props}\r\n >{children}</Tag>;\r\n}","import { TimePicker } from \"antd\";\r\nimport { RangePickerTimeProps } from \"antd/lib/time-picker\";\r\nimport { Dayjs } from \"dayjs\";\r\n\r\ninterface RangePicker extends RangePickerTimeProps<Dayjs> {}\r\n\r\nexport interface AtTimeRangePickerProps {\r\n /**\r\n * Whether the time picker is clearable\r\n */\r\n allowClear?: RangePicker['allowClear'];\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: RangePicker['autoFocus'];\r\n /**\r\n * Custom rendering function for picker cells\r\n */\r\n cellRender?: RangePicker['cellRender'];\r\n /**\r\n * Trigger selection when scroll the column\r\n */\r\n changeOnScroll?: RangePicker['changeOnScroll'];\r\n /**\r\n * The className of picker\r\n */\r\n className?: RangePicker['className'];\r\n /**\r\n * To set default time\r\n */\r\n defaultValue?: RangePicker['defaultValue'];\r\n /**\r\n * Whether the time picker is disabled\r\n */\r\n disabled?: RangePicker['disabled'];\r\n /**\r\n * To specify the time that cannot be selected\r\n */\r\n disabledTime?: RangePicker['disabledTime'];\r\n /**\r\n * To set the time format\r\n */\r\n format?: RangePicker['format'];\r\n /**\r\n * To set the container of the floating layer, while the default is to create a div element in body\r\n */\r\n getPopupContainer?: RangePicker['getPopupContainer'];\r\n /**\r\n * Whether to popup panel\r\n */\r\n open?: RangePicker['open'];\r\n /**\r\n * Display when there's no value\r\n */\r\n placeholder?: RangePicker['placeholder'];\r\n /**\r\n * The position where the selection box pops up\r\n */\r\n placement?: RangePicker['placement'];\r\n /**\r\n * To determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32px\r\n */\r\n size?: RangePicker['size'];\r\n /**\r\n * Whether the time picker is disabled\r\n */\r\n status?: RangePicker['status'];\r\n /**\r\n * Display as 12 hours format, with default format h:mm:ss a\r\n */\r\n use12Hours?: RangePicker['use12Hours'];\r\n /**\r\n * To set time\r\n */\r\n value?: RangePicker['value'];\r\n /**\r\n * Variants of picker\r\n */\r\n variant?: RangePicker['variant'];\r\n /**\r\n * Callback function, can be executed when the start time or the end time of the range is changing.\r\n */\r\n onCalendarChange?: RangePicker['onCalendarChange'];\r\n /**\r\n * A callback function, can be executed when the selected time is changing\r\n */\r\n onChange?: RangePicker['onChange'];\r\n /**\r\n * A callback function which will be called while panel opening/closing\r\n */\r\n onOpenChange?: RangePicker['onOpenChange'];\r\n}\r\n\r\nexport const AtTimeRangePicker: React.FC<AtTimeRangePickerProps> = ({ ...props }) => (\r\n <TimePicker.RangePicker { ...props } />\r\n)","import { Typography } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { colorMap } from '../../../utils/colorMap';\r\nimport { AtTitleProps } from '.';\r\n\r\nexport const StyledTitle = styled(Typography.Title)<AtTitleProps>`\r\n ${({ color }) => (color \r\n ? `color: ${colorMap[color]};` \r\n : ''\r\n )}\r\n ${({ $margin }) => ($margin\r\n ? `margin: ${$margin};`\r\n : ''\r\n )}\r\n &.ant-typography {\r\n ${({ $margin }) => ($margin\r\n ? `margin: ${$margin};`\r\n : ''\r\n )}\r\n }\r\n ${({ $textAlign }) => ($textAlign\r\n ? `text-align: ${$textAlign};`\r\n : ''\r\n )}\r\n`;\r\n","import React, { ReactNode } from 'react';\r\nimport { BlockProps, EllipsisConfig, BaseType } from 'antd/es/typography/Base';\r\nimport { StyledTitle } from './styles';\r\n\r\nexport interface AtTitleProps {\r\n /**\r\n * Code style\r\n */\r\n code?: boolean;\r\n /**\r\n * Whether to be copyable, customize it via setting an object\r\n */\r\n copyable?: boolean | BlockProps['copyable'];\r\n /**\r\n * Deleted line style\r\n */\r\n delete?: boolean;\r\n /**\r\n * Disabled content\r\n */\r\n disabled?: boolean;\r\n /**\r\n * If editable. Can control edit state when is object\r\n */\r\n editable?: boolean | BlockProps['editable'];\r\n /**\r\n * Display ellipsis when text overflows, can configure rows and expandable by using object\r\n */\r\n ellipsis?: boolean | EllipsisConfig;\r\n /**\r\n * Set content importance. Match with h1, h2, h3, h4, h5\r\n */\r\n level?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * Whether the text is mark or not\r\n */\r\n mark?: boolean;\r\n /**\r\n * Set the handler to handle click event\r\n */\r\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\r\n /**\r\n * Whether the text is italic or not\r\n */\r\n italic?: boolean;\r\n /**\r\n * Content type\r\n */\r\n type?: BaseType;\r\n /**\r\n * Whether the text is underline or not\r\n */\r\n underline?: boolean;\r\n /**\r\n * Additional content to include\r\n */\r\n children?: ReactNode;\r\n /**\r\n * Color of the title\r\n */\r\n color?: 'violet' | 'gold' | 'white';\r\n /**\r\n * Margin\r\n */\r\n $margin?: string;\r\n /**\r\n * Text Align\r\n */\r\n $textAlign?: string;\r\n /**\r\n * Custom class name\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const AtTitle: React.FC<AtTitleProps> = ({\r\n code = false,\r\n copyable = false,\r\n delete: deleteProp = false,\r\n editable = false,\r\n level = 1,\r\n mark = false,\r\n italic = false,\r\n underline = false,\r\n $margin,\r\n $textAlign,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledTitle\r\n $textAlign={$textAlign}\r\n $margin={$margin}\r\n code={code}\r\n copyable={copyable}\r\n delete={deleteProp}\r\n editable={editable}\r\n level={level}\r\n mark={mark}\r\n italic={italic}\r\n underline={underline}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledTitle>\r\n );\r\n};\r\n\r\n","export * from './AtAvatar';\nexport * from './AtBadgeCard';\nexport * from './AtButton';\nexport * from './AtCheckBox';\nexport * from './AtCountdown';\nexport * from './AtDateMultiplePicker';\nexport * from './AtDatePicker';\nexport * from './AtDateRangePicker';\nexport * from './AtDivider';\nexport * from './AtIcon';\nexport * from './AtImage';\nexport * from './AtInputStatus';\nexport * from './AtLink';\nexport * from './AtLogo';\nexport * from './AtNumberInput';\nexport * from './AtPasswordInput';\nexport * from './AtQrCode';\nexport * from './AtRadio';\nexport * from './AtRadioButton';\nexport * from './AtResult';\nexport * from './AtSegmented';\nexport * from './AtSelect';\nexport * from './AtSpin';\nexport * from './AtSwitch';\nexport * from './AtTag';\nexport * from './AtText';\nexport * from './AtTextInput';\nexport * from './AtTimeRangePicker';\nexport * from './AtTitle';\n","export * from './atoms';\r\nexport * from './molecules';\r\nexport * from './organisms';\r\nexport * from './templates';\r\n","/// <reference types=\"./custom.d.ts\" />\r\n\r\nexport * from './stories';\r\nexport * from './theme';\r\nexport * from './hooks';\r\n"],"names":[],"version":3,"file":"index.d.ts.map"}
1
+ {"mappings":"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","sources":["stories/atoms/AtAvatar/index.tsx","stories/atoms/AtBadgeCard/index.tsx","stories/atoms/AtButton/styles.ts","stories/atoms/AtButton/index.tsx","stories/atoms/AtCheckBox/index.tsx","constants.ts","theme.tsx","stories/atoms/AtCountdown/styles.tsx","stories/atoms/AtCountdown/index.tsx","stories/atoms/AtDateMultiplePicker/index.tsx","stories/atoms/AtDatePicker/styles.tsx","stories/atoms/AtDatePicker/index.tsx","stories/atoms/AtDateRangePicker/styles.tsx","stories/atoms/AtDateRangePicker/index.tsx","stories/atoms/AtDivider/styles.tsx","stories/atoms/AtDivider/index.tsx","stories/atoms/AtIcon/index.tsx","utils/colorMap.ts","stories/atoms/AtText/styles.tsx","stories/atoms/AtText/index.tsx","stories/atoms/AtImage/index.tsx","stories/molecules/MlPlanCard/styles.tsx","stories/molecules/MlPlanCard/index.tsx","stories/organisms/OrActiveCards/styles.ts","stories/organisms/OrActiveCards/index.tsx","stories/organisms/OrAlert/index.tsx","stories/organisms/OrTab/styles.ts","stories/organisms/OrTab/index.tsx","stories/organisms/OrTicketCard/styles.tsx","stories/organisms/OrCard/styles.tsx","stories/organisms/OrCard/index.tsx","stories/organisms/OrTicketCard/index.tsx","stories/molecules/MlSubscriptionCard/styles.ts","stories/molecules/MlSubscriptionCard/index.tsx","stories/molecules/MlFormItem/styles.tsx","stories/molecules/MlFormItem/index.tsx","stories/molecules/MlAutocompleteSearch/index.tsx","stories/molecules/MlAutocompleteSearchText/index.tsx","stories/molecules/MlBreadCrumb/index.tsx","stories/molecules/MlCardIcon/styles.ts","stories/molecules/MlCardIcon/index.tsx","stories/molecules/MlCarousel/index.tsx","stories/molecules/MlCheckboxGroup/styles.tsx","stories/molecules/MlCheckboxGroup/index.tsx","stories/atoms/AtNumberInput/styles.tsx","stories/atoms/AtNumberInput/index.tsx","stories/molecules/MlCodeInput/styles.tsx","hooks/useCodeInput.ts","stories/molecules/MlCodeInput/index.tsx","stories/molecules/MlDropdown/index.tsx","stories/molecules/MlIconText/styles.tsx","stories/molecules/MlIconText/index.tsx","stories/molecules/MlInfoList/styles.tsx","stories/molecules/MlInfoList/index.tsx","stories/molecules/MlInputList/styles.tsx","stories/molecules/MlInputList/index.tsx","stories/molecules/MlLoading/styles.ts","stories/molecules/MlLoading/index.tsx","stories/molecules/MlPagination/index.tsx","stories/molecules/MlRadioGroup/styles.tsx","stories/molecules/MlRadioGroup/index.tsx","stories/atoms/AtTextInput/index.tsx","stories/molecules/MlSearchBox/index.tsx","stories/molecules/MlServicesCard/styles.ts","stories/molecules/MlServicesCard/index.tsx","stories/molecules/MlTooltip/index.tsx","stories/molecules/MlUpload/styles.ts","stories/molecules/MlUpload/index.tsx","stories/molecules/index.ts","stories/organisms/OrPlanCards/index.tsx","stories/organisms/OrCoinTable/styles.ts","stories/organisms/OrCoinTable/index.tsx","stories/organisms/OrTickets/index.tsx","stories/organisms/OrRow/styles.ts","stories/organisms/OrRow/index.tsx","stories/organisms/OrTwoButtons/index.tsx","stories/organisms/OrAssignBalance/index.tsx","stories/organisms/OrCol/styles.ts","stories/organisms/OrCol/index.tsx","stories/organisms/OrBasicUserInfoCard/index.tsx","stories/organisms/OrCardDetails/index.tsx","stories/organisms/OrCardIconsGroup/index.tsx","stories/organisms/OrCardRequestSummary/index.tsx","stories/organisms/OrCollapse/index.tsx","stories/organisms/OrContent/styles.ts","stories/organisms/OrContent/index.tsx","stories/organisms/OrCopyInfo/index.tsx","stories/organisms/OrCountryCard/index.tsx","stories/organisms/OrLayout/styles.tsx","stories/organisms/OrLayout/index.tsx","stories/organisms/OrSider/styles.tsx","stories/organisms/OrSider/index.tsx","stories/organisms/OrSiderMenu/styles.ts","stories/organisms/OrMenu/styles.tsx","stories/organisms/OrMenu/index.tsx","stories/organisms/OrSiderMenu/index.tsx","stories/organisms/OrHeader/styles.ts","stories/organisms/OrSpace/index.tsx","stories/organisms/OrHeader/index.tsx","stories/organisms/OrDashboardLayout/index.tsx","stories/organisms/OrDescriptions/styles.tsx","stories/organisms/OrDescriptions/index.tsx","stories/templates/TmCrudPage/styles.ts","stories/organisms/OrStep/styles.ts","stories/organisms/OrStep/index.tsx","stories/templates/TmCrudPage/index.tsx","stories/organisms/OrDetailsPage/index.tsx","stories/organisms/OrDownloadUpload/index.tsx","stories/organisms/OrDrawer/index.tsx","stories/organisms/OrEmpty/index.tsx","stories/organisms/OrFlagGrid/index.tsx","stories/organisms/OrForm/index.tsx","stories/organisms/OrSpaceCompact/index.tsx","stories/organisms/OrPhoneInput/index.tsx","stories/organisms/OrSelectInput/index.tsx","stories/organisms/OrMark/index.tsx","stories/organisms/OrGoogleMaps/index.tsx","hooks/useMessage.ts","hooks/useModal.ts","hooks/useForm.ts","hooks/useFormWatch.ts","hooks/index.ts","stories/organisms/OrTable/index.tsx","stories/organisms/OrSelectTable/index.tsx","stories/organisms/OrFormItemsInline/index.tsx","stories/organisms/OrLabelTextBox/index.tsx","stories/organisms/OrInfoCard/index.tsx","stories/organisms/OrInfoHeaderCard/index.tsx","stories/organisms/OrModuleTableHeader/styles.ts","stories/organisms/OrModuleTableHeader/index.tsx","stories/organisms/OrListSelection/index.tsx","stories/organisms/OrLoginLayout/styles.tsx","stories/organisms/OrLoginLayout/index.tsx","stories/organisms/OrModal/index.tsx","stories/templates/TmCustomTabsPage/index.tsx","stories/templates/TmDescriptionsPage/index.tsx","stories/templates/TmFormListPage/index.tsx","stories/templates/TmLoginCountry/styles.tsx","stories/organisms/OrSimpleBanner/styles.ts","stories/organisms/OrSimpleBanner/index.tsx","stories/templates/TmLoginCountry/index.tsx","stories/templates/TmLoginPhone/styles.tsx","stories/templates/TmLoginPhone/index.tsx","stories/templates/TmLoginPhoneCode/styles.tsx","stories/templates/TmLoginPhoneCode/index.tsx","stories/templates/TmMapPage/index.tsx","stories/organisms/OrRentalLayout/index.tsx","stories/templates/TmQuoteResultPage/index.tsx","utils/numberProcessing.ts","stories/templates/TmRechargePage/index.tsx","stories/templates/TmRentalsPage/styles.tsx","stories/templates/TmRentalsPage/index.tsx","stories/templates/TmRequestsPage/index.tsx","stories/templates/TmRequestsForm/index.tsx","stories/templates/index.ts","stories/organisms/OrPaymentMethods/styles.tsx","stories/organisms/OrPaymentMethods/index.tsx","stories/organisms/OrTableModuleLayout/styles.ts","stories/organisms/OrTableModuleLayout/index.tsx","stories/organisms/OrRecharge/index.tsx","stories/organisms/OrRentalResult/styles.ts","stories/organisms/OrRentalResult/index.tsx","stories/organisms/OrRentalVehicleItem/styles.ts","stories/organisms/OrRentalVehicleItem/index.tsx","stories/organisms/OrServiceCards/index.tsx","stories/organisms/OrTabsModuleLayout/styles.ts","stories/organisms/OrTabsModuleLayout/index.tsx","stories/organisms/index.ts","stories/atoms/AtInputStatus/index.tsx","stories/atoms/AtLink/index.tsx","stories/atoms/AtLogo/styles.ts","stories/atoms/AtLogo/index.tsx","stories/atoms/AtPasswordInput/index.tsx","stories/atoms/AtQrCode/index.tsx","stories/atoms/AtRadio/index.tsx","stories/atoms/AtRadioButton/index.tsx","stories/atoms/AtResult/index.tsx","stories/atoms/AtSegmented/index.tsx","stories/atoms/AtSelect/styles.tsx","stories/atoms/AtSelect/index.tsx","stories/atoms/AtSpin/index.tsx","stories/atoms/AtSwitch/index.tsx","stories/atoms/AtTag/index.tsx","stories/atoms/AtTimeRangePicker/index.tsx","stories/atoms/AtTitle/styles.ts","stories/atoms/AtTitle/index.tsx","stories/atoms/index.ts","stories/index.ts","index.ts"],"sourcesContent":["import React from 'react';\r\nimport { Avatar as AntAvatar } from 'antd';\r\n\r\nexport interface AtAvatarProps {\r\n /**\r\n * This attribute defines the alternative text describing the image\r\n */\r\n alt?: string;\r\n /**\r\n * Letter type unit distance between left and right sides\r\n */\r\n gap?: number;\r\n /**\r\n * Custom icon type for an icon avatar\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * The shape of avatar\r\n */\r\n shape?: 'circle' | 'square';\r\n /**\r\n * The size of the avatar\r\n */\r\n size?: 'large' | 'small' | 'default' | number;\r\n /**\r\n * The address of the image for an image avatar or image element\r\n */\r\n src?: string;\r\n /**\r\n * Whether the picture is allowed to be dragged\r\n */\r\n draggable?: boolean;\r\n /**\r\n * CORS settings attributes\r\n */\r\n crossOrigin?: 'anonymous' | 'use-credentials';\r\n}\r\n\r\nexport const AtAvatar: React.FC<AtAvatarProps> = ({ shape = 'circle', size = 'default', ...restProps }) => {\r\n return <AntAvatar shape={shape} size={size} {...restProps} />;\r\n};\r\n","import React from 'react';\r\nimport { Badge, Card } from 'antd';\r\n\r\nexport interface AtBadgeCardProps {\r\n /**\r\n * Placeholder text to display into the input\r\n */\r\n ribbonText?: string;\r\n /**\r\n * The input content value\r\n */\r\n cardText?: string;\r\n /**\r\n * The color of the ribbon badge\r\n */\r\n color?: string;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const AtBadgeCard: React.FC<AtBadgeCardProps> = ({\r\n ribbonText,\r\n cardText,\r\n color,\r\n}) => {\r\n return (\r\n <Badge.Ribbon text={ribbonText} color={color}>\r\n <Card size=\"small\">{cardText}</Card>\r\n </Badge.Ribbon>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { AtButtonProps } from '.';\r\nimport { Button } from 'antd';\r\n\r\ntype AtButtonAttrs = AtButtonProps;\r\n\r\nexport const StyledButton = styled(Button)<AtButtonAttrs>`\r\n ${({ borderless }) => (borderless ? 'border: none;' : '')}\r\n ${({ $fullWidth }) => ($fullWidth ? 'width: 100%' : '')};\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n ${({ type }) =>\r\n type === 'success'\r\n ? 'background-color: #D9F7BE; border-color: #52C41A; color: #52C41A;'\r\n : type === 'warning'\r\n ? 'background-color: #FFCCC7; border-color: #F5222D; color: #F5222D;'\r\n : ''};\r\n ${({ bgTransparent }) =>\r\n bgTransparent ? 'background-color: transparent;' : ''}\r\n &, \r\n &.ant-btn-primary,\r\n &.ant-btn-primary.ant-btn-dangerous {\r\n box-shadow: none;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { ButtonShape, ButtonSize, ButtonType } from 'antd/es/button';\r\nimport { StyledButton } from './styles';\r\nimport { ButtonProps } from 'antd/lib';\r\n\r\nexport interface AtButtonProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The button content value\r\n */\r\n value?: string;\r\n /**\r\n * Hide button borders\r\n */\r\n borderless?: boolean;\r\n /**\r\n *Option to fit button width to its parent width\r\n */\r\n block?: boolean;\r\n /**\r\n *Set the danger status of button\r\n */\r\n danger?: boolean;\r\n /**\r\n * Disabled state of button\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Set the original html type of button, see: MDN\r\n */\r\n htmlType?: string;\r\n /**\r\n * Set the loading status of button\r\n */\r\n loading?: boolean;\r\n /**\r\n * Can be set button\r\n */\r\n shape?: ButtonShape;\r\n /**\r\n * Set the size of button\r\n */\r\n size?: ButtonSize;\r\n /**\r\n * Can be set to primary ghost dashed link text\r\n */\r\n type?: ButtonType | 'success' | 'warning' | 'ghost';\r\n /**\r\n * Set the handler to handle click\r\n */\r\n onClick?: React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>;\r\n /**\r\n * Expand button full container width\r\n */\r\n $fullWidth?: boolean;\r\n /**\r\n * set button in ghost mode\r\n */\r\n ghost?: boolean;\r\n /**\r\n * Set the button width\r\n */\r\n $width?: string | number;\r\n /**\r\n * Set the button icon\r\n */\r\n icon?: ButtonProps['icon'];\r\n /**\r\n * Set background button transparent\r\n */\r\n bgTransparent?: boolean;\r\n}\r\n\r\nexport const AtButton: React.FC<AtButtonProps> = ({\r\n value,\r\n block = false,\r\n danger = false,\r\n disabled = false,\r\n shape = 'default',\r\n size = 'middle',\r\n type = 'default',\r\n htmlType = 'button',\r\n $width,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledButton\r\n block={block}\r\n danger={danger}\r\n disabled={disabled}\r\n shape={shape}\r\n size={size}\r\n type={type}\r\n htmlType={htmlType}\r\n $width={$width}\r\n {...props}\r\n >\r\n {value}\r\n </StyledButton>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Checkbox as AntCheckbox, CheckboxProps } from 'antd';\r\n\r\nexport interface AtCheckboxProps extends CheckboxProps {\r\n /**\r\n * Specifies whether the checkbox is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * Specifies the initial state: whether or not the checkbox is selected\r\n */\r\n defaultChecked?: boolean;\r\n /**\r\n * If disable checkbox\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The indeterminate checked state of checkbox\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * The callback function that is triggered when the state changes\r\n */\r\n onChange?: CheckboxProps['onChange'];\r\n /**\r\n * children of checkbox\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const AtCheckbox: React.FC<AtCheckboxProps> = ({\r\n disabled = false,\r\n indeterminate = false,\r\n ...props\r\n}) => {\r\n return <AntCheckbox disabled={disabled} indeterminate={indeterminate} {...props} />;\r\n};\r\n\r\n","export const PRIMARY_COLOR = '#6C369C';\r\n","import React, { useMemo } from 'react';\r\nimport { ConfigProvider } from 'antd';\r\nimport { generate } from '@ant-design/colors';\r\nimport { PRIMARY_COLOR } from './constants';\r\nimport '@fontsource/ibm-plex-sans/500.css';\r\nimport '@fontsource/ibm-plex-sans/700.css';\r\n\r\ninterface Props {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const violet = generate(PRIMARY_COLOR);\r\nexport const gray = [\r\n '#ffffff',\r\n '#fafafa',\r\n '#f5f5f5',\r\n '#f0f0f0',\r\n '#d9d9d9',\r\n '#bfbfbf',\r\n '#8c8c8c',\r\n '#595959',\r\n '#434343',\r\n '#262626',\r\n '#1f1f1f',\r\n '#141414 ',\r\n '#000000',\r\n];\r\n\r\nexport const WaWaThemeProvider: React.FC<Props> = ({ children }) => {\r\n const violetColor = useMemo(() => violet, [violet]);\r\n\r\n return (\r\n <>\r\n <ConfigProvider\r\n theme={{\r\n token: {\r\n fontFamily: 'IBM Plex sans',\r\n colorPrimary: violetColor[5],\r\n colorLink: violet[5],\r\n colorLinkHover: violet[6],\r\n colorLinkActive: violet[5],\r\n },\r\n components: {\r\n Select: {\r\n colorBgContainer: gray[2],\r\n },\r\n Menu: {\r\n itemSelectedBg: violet[5],\r\n itemSelectedColor: gray[0],\r\n },\r\n Layout: {\r\n colorBgHeader: violet[8],\r\n },\r\n Table: {\r\n colorBgContainer: gray[0],\r\n },\r\n },\r\n }}\r\n >\r\n {children}\r\n </ConfigProvider>\r\n </>\r\n );\r\n};\r\n\r\nexport default WaWaThemeProvider;\r\n","import { Statistic } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { AtCountdownProps } from '.';\r\nimport { violet } from '../../../theme';\r\n\r\nexport const StyledAtCountdown = styled(Statistic.Countdown)<AtCountdownProps>`\r\n & span {\r\n ${({ $color }) =>\r\n $color === 'primary' ? `color: ${violet[5]} !important;` : ''}\r\n ${({ $fontSize }) => ($fontSize ? `font-size: ${$fontSize}px;` : '')}\r\n }\r\n\r\n & .ant-statistic-content {\r\n font-size: 0;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport type { CountdownProps } from 'antd';\r\nimport { StyledAtCountdown } from './styles';\r\n\r\nexport interface AtCountdownProps {\r\n /**\r\n * Format as dayjs\tstring\r\n */\r\n format?: string;\r\n /**\r\n * The prefix node of value\r\n */\r\n prefix?: React.ReactNode;\r\n /**\r\n * The suffix node of value\r\n */\r\n suffix?: React.ReactNode;\r\n /**\r\n * The suffix node of value\r\n */\r\n title?: React.ReactNode;\r\n /**\r\n * Set target countdown time\tnumber\r\n */\r\n value?: CountdownProps['value'];\r\n /**\r\n * Set value section style\tCSSProperties\r\n */\r\n valueStyle?: React.CSSProperties;\r\n /**\r\n * Trigger when time's up\r\n */\r\n onFinish?: () => void;\r\n /**\r\n * Trigger when time's changing\r\n */\r\n onChange?: (value: CountdownProps['value']) => void;\r\n /**\r\n * Font color\r\n */\r\n $color?: 'normal' | 'primary';\r\n /**\r\n * Font size\r\n */\r\n $fontSize?: number;\r\n}\r\n\r\nexport const AtCountdown: React.FC<AtCountdownProps> = ({\r\n format = 'HH:mm:ss',\r\n $color = 'normal',\r\n ...props\r\n}) => {\r\n return <StyledAtCountdown format={format} $color={$color} {...props} />;\r\n};\r\n","import React, { useState } from \"react\";\r\nimport dayjs from \"dayjs\";\r\nimport { DatePicker, Button } from \"antd\";\r\nimport { DatePickerProps } from \"antd/lib\";\r\n\r\nexport const MultipleDatePicker = () => {\r\n const [selectedDate, setSelectedDate] = useState<number[]>([])\r\n\r\n const onValueChange = (date: string) => {\r\n const newDate = dayjs(date).startOf('day').valueOf()\r\n if (selectedDate.includes(newDate)) {\r\n setSelectedDate([...selectedDate.filter(item => item !== newDate)])\r\n } else {\r\n setSelectedDate([...selectedDate, newDate])\r\n }\r\n };\r\n\r\n const dateRender: DatePickerProps['cellRender'] = (currentDate) => {\r\n const isSelected = selectedDate.includes(dayjs(currentDate as dayjs.Dayjs).startOf(\"day\").valueOf())\r\n const parsedDate = dayjs(currentDate as dayjs.Dayjs);\r\n return (<div style={ isSelected ? {\r\n position: 'relative',\r\n zIndex: 2,\r\n display: 'inlineBlock',\r\n width: \"24px\",\r\n height: \"22px\",\r\n lineHeight: \"22px\",\r\n backgroundColor: \"#1890ff\",\r\n color: \"#fff\",\r\n margin: \"auto\",\r\n borderRadius: \"2px\",\r\n transition: \"background 0.3s, border 0.3s\"\r\n } : {} } > {parsedDate.date()} </div >)\r\n }\r\n\r\n return (\r\n <>\r\n <div>\r\n <DatePicker\r\n open\r\n cellRender={dateRender}\r\n onChange={onValueChange}\r\n showToday={false}\r\n value={\"\"}\r\n />\r\n <Button type='primary' onClick={() => alert(selectedDate)}>确定</Button>\r\n </div>\r\n </>\r\n )\r\n}","\r\n\r\nimport { styled } from 'styled-components';\r\n\r\nimport { DatePicker } from 'antd';\r\nimport { AtDatePickerPros } from '.';\r\nimport React from 'react';\r\n\r\n\r\nexport const StyledDatePicker: React.FC<AtDatePickerPros> = \r\n styled(DatePicker)<AtDatePickerPros>`\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n`;\r\n","import React, { CSSProperties, useMemo } from 'react';\r\nimport { DatePickerProps } from 'antd';\r\nimport { Dayjs } from 'dayjs';\r\nimport { StyledDatePicker } from './styles';\r\n\r\nexport interface AtDatePickerPros {\r\n /**\r\n * If true, the date picker will be disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Whether to show clear button\r\n */\r\n allowClear?: boolean;\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Trigger change when blur. e.g. datetime picker no need click confirm button\r\n */\r\n changeOnBlur?: boolean;\r\n /**\r\n * Specify the date that cannot be selected\r\n */\r\n disabledDate?: (currentDate: Dayjs) => boolean;\r\n /**\r\n * Specify the time that cannot be selected\r\n */\r\n disabledTime?: DatePickerProps['disabledTime'];\r\n /**\r\n * To set the date format, support multi-format matching when it is an array, display the first one shall prevail. refer to dayjs#format. for example: Custom Format\r\n */\r\n format?: string | string[];\r\n /**\r\n * Set the readonly attribute of the input tag (avoids virtual keyboard on touch devices)\r\n */\r\n inputReadOnly?: boolean;\r\n /**\r\n * Localization configuration\r\n */\r\n locale?: DatePickerProps['locale'];\r\n /**\r\n * The picker panel mode( Cannot select year or month anymore? )\r\n */\r\n mode?: 'time' | 'date' | 'month' | 'year' | 'decade';\r\n /**\r\n * The open state of picker\r\n */\r\n open?: boolean;\r\n /**\r\n * Set picker type\r\n */\r\n picker?: DatePickerProps['picker'];\r\n /**\r\n * Placeholder of the input\r\n */\r\n placeholder?: string;\r\n /**\r\n * The position where the selection box pops up\r\n */\r\n placement?: DatePickerProps['placement'];\r\n /**\r\n * The preset ranges for quick selection\r\n */\r\n presents?: DatePickerProps['presets'];\r\n /**\r\n * Show time on date\r\n */\r\n showTime?: boolean;\r\n /**\r\n * To determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32px\r\n */\r\n size?: DatePickerProps['size'];\r\n /**\r\n * Set validation status\r\n */\r\n status?: DatePickerProps['status'];\r\n /**\r\n * Callback function, can be executed whether the popup calendar is popped up or closed\r\n */\r\n onOpenChange?: (status: boolean) => void;\r\n /**\r\n * Callback when picker panel mode is changed\r\n */\r\n onPanelChange?: (value: Dayjs | null, mode: DatePickerProps['mode']) => void;\r\n /**\r\n * set format on 12h\r\n */\r\n use12Hours?: boolean;\r\n /**\r\n * The computed style of the svg element\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * width of the input box\r\n */\r\n $width?: string;\r\n}\r\n\r\nconst AtDatePicker: React.FC<AtDatePickerPros> = ({\r\n autoFocus = false,\r\n bordered = true,\r\n changeOnBlur = false,\r\n inputReadOnly = false,\r\n format,\r\n picker,\r\n use12Hours = true,\r\n showTime = false,\r\n $width,\r\n ...props\r\n}) => {\r\n const getDefaultFormat = useMemo(() => {\r\n let mergedFormat = format;\r\n if (!mergedFormat) {\r\n switch (picker) {\r\n case 'time':\r\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\r\n break;\r\n\r\n case 'week':\r\n mergedFormat = 'gggg-wo';\r\n break;\r\n\r\n case 'month':\r\n mergedFormat = 'YYYY-MM';\r\n break;\r\n\r\n case 'quarter':\r\n mergedFormat = 'YYYY-[Q]Q';\r\n break;\r\n\r\n case 'year':\r\n mergedFormat = 'YYYY';\r\n break;\r\n\r\n default:\r\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\r\n }\r\n }\r\n\r\n return mergedFormat;\r\n }, [props]);\r\n\r\n return (\r\n <StyledDatePicker\r\n $width={$width}\r\n autoFocus={autoFocus}\r\n bordered={bordered}\r\n changeOnBlur={changeOnBlur}\r\n inputReadOnly={inputReadOnly}\r\n format={getDefaultFormat}\r\n picker={picker}\r\n use12Hours={use12Hours}\r\n showTime={showTime}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\nexport { AtDatePicker }","\r\n\r\nimport { styled } from 'styled-components';\r\n\r\nimport { AtDateRangePickerProps } from '.';\r\nimport { DatePicker } from 'antd';\r\n\r\n\r\nexport const StyledDatePicker: React.FC<AtDateRangePickerProps> = \r\n styled(DatePicker.RangePicker) <AtDateRangePickerProps>`\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n`;\r\n","import React, { CSSProperties, useMemo } from 'react';\r\nimport { DatePickerProps } from 'antd';\r\nimport { Dayjs } from 'dayjs';\r\nimport { StyledDatePicker } from './styles';\r\nimport { RangePickerProps } from 'antd/lib/date-picker';\r\n\r\nexport interface AtDateRangePickerProps {\r\n /**\r\n * If true, the date picker will be disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Whether to show clear button\r\n */\r\n allowClear?: boolean;\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Trigger change when blur. e.g. datetime picker no need click confirm button\r\n */\r\n changeOnBlur?: boolean;\r\n /**\r\n * Specify the date that cannot be selected\r\n */\r\n disabledDate?: (currentDate: Dayjs) => boolean;\r\n /**\r\n * To set the date format, support multi-format matching when it is an array, display the first one shall prevail. refer to dayjs#format. for example: Custom Format\r\n */\r\n format?: string | string[];\r\n /**\r\n * Set the readonly attribute of the input tag (avoids virtual keyboard on touch devices)\r\n */\r\n inputReadOnly?: boolean;\r\n /**\r\n * Localization configuration\r\n */\r\n locale?: DatePickerProps['locale'];\r\n /**\r\n * The picker panel mode( Cannot select year or month anymore? )\r\n */\r\n mode?: 'time' | 'date' | 'month' | 'year' | 'decade';\r\n /**\r\n * The open state of picker\r\n */\r\n open?: boolean;\r\n /**\r\n * Set picker type\r\n */\r\n picker?: DatePickerProps['picker'];\r\n /**\r\n * Placeholder of the input\r\n */\r\n placeholder?: string;\r\n /**\r\n * The position where the selection box pops up\r\n */\r\n placement?: DatePickerProps['placement'];\r\n /**\r\n * The preset ranges for quick selection\r\n */\r\n presents?: DatePickerProps['presets'];\r\n /**\r\n * Show time on date\r\n */\r\n showTime?: boolean;\r\n /**\r\n * To determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32px\r\n */\r\n size?: DatePickerProps['size'];\r\n /**\r\n * Set validation status\r\n */\r\n status?: DatePickerProps['status'];\r\n /**\r\n * Callback function, can be executed whether the popup calendar is popped up or closed\r\n */\r\n onOpenChange?: (status: boolean) => void;\r\n /**\r\n * Callback when picker panel mode is changed\r\n */\r\n onPanelChange?: (value: Dayjs | null, mode: DatePickerProps['mode']) => void;\r\n /**\r\n * set format on 12h\r\n */\r\n use12Hours?: boolean;\r\n /**\r\n * The computed style of the svg element\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * width of the input box\r\n */\r\n $width?: string;\r\n /**\r\n * The date value of the input\r\n */\r\n pickerValue?: RangePickerProps['value'];\r\n /**\r\n * The default date of the input\r\n */\r\n defaultValue?: RangePickerProps['defaultPickerValue'];\r\n /**\r\n * The date value of the input\r\n */\r\n onChange?: RangePickerProps['onChange'];\r\n}\r\n\r\nexport const AtDateRangePicker: React.FC<AtDateRangePickerProps> = ({\r\n autoFocus = false,\r\n bordered = true,\r\n changeOnBlur = false,\r\n inputReadOnly = false,\r\n format,\r\n picker,\r\n use12Hours = true,\r\n showTime = false,\r\n $width,\r\n ...props\r\n}) => {\r\n const getDefaultFormat = useMemo(() => {\r\n let mergedFormat = format;\r\n if (!mergedFormat) {\r\n switch (picker) {\r\n case 'time':\r\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\r\n break;\r\n\r\n case 'week':\r\n mergedFormat = 'gggg-wo';\r\n break;\r\n\r\n case 'month':\r\n mergedFormat = 'YYYY-MM';\r\n break;\r\n\r\n case 'quarter':\r\n mergedFormat = 'YYYY-[Q]Q';\r\n break;\r\n\r\n case 'year':\r\n mergedFormat = 'YYYY';\r\n break;\r\n\r\n default:\r\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\r\n }\r\n }\r\n\r\n return mergedFormat;\r\n }, [props]);\r\n\r\n return (\r\n <StyledDatePicker\r\n $width={$width}\r\n autoFocus={autoFocus}\r\n bordered={bordered}\r\n changeOnBlur={changeOnBlur}\r\n inputReadOnly={inputReadOnly}\r\n format={getDefaultFormat}\r\n picker={picker}\r\n use12Hours={use12Hours}\r\n showTime={showTime}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\nimport { Divider } from 'antd';\r\nimport { AtDividerProps } from '.';\r\n\r\nexport const StyledDivider = styled(Divider)<AtDividerProps>`\r\n ${({ $margin }) => ($margin ? `margin: ${$margin}px;` : '')}\r\n\r\n`;","import React, { ReactNode } from 'react';\r\nimport { StyledDivider } from './styles';\r\n\r\nexport interface AtDividerProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The wrapped title\r\n */\r\n children?: ReactNode;\r\n /**\r\n * Whether line is dashed\r\n */\r\n dashed?: boolean;\r\n /**\r\n * The position of title inside divider\r\n */\r\n orientation?: 'left' | 'right' | 'center';\r\n /**\r\n * The margin-left/right between the title and its closest border, while the orientation must be left or right, If a numeric value of type string is provided without a unit, it is assumed to be in pixels (px) by default.\r\n */\r\n orientationMargin?: string | number;\r\n /**\r\n * Divider text show as plain style\r\n */\r\n plain?: boolean;\r\n /**\r\n * The direction type of divider\r\n */\r\n type?: 'horizontal' | 'vertical';\r\n /**\r\n * margin of the divider\r\n */\r\n $margin?: number;\r\n}\r\n\r\nexport const AtDivider: React.FC<AtDividerProps> = ({\r\n dashed = false,\r\n orientation = 'center',\r\n plain = true,\r\n type = 'horizontal',\r\n $margin,\r\n ...props\r\n}) => {\r\n return <StyledDivider $margin={$margin} dashed={dashed} orientation={orientation} plain={plain} type={type} {...props} />;\r\n};\r\n\r\n\r\n","import React, { CSSProperties } from 'react';\r\n\r\nimport Icon from '@ant-design/icons';\r\nimport { IconComponentProps } from '@ant-design/icons/lib/components/Icon';\r\nimport * as Icons from '@ant-design/icons';\r\n\r\nexport interface AtIconProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Name of the icon\r\n */\r\n name?: keyof typeof Icons;\r\n /**\r\n * Define the color used to paint the svg element\r\n */\r\n fill?: string;\r\n /**\r\n * The computed style of the svg element\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * The height of the svg element\r\n */\r\n height?: string | number;\r\n /**\r\n * The width of the svg element\r\n */\r\n width?: string | number;\r\n /**\r\n * Define extra properties to the component\r\n */\r\n extraCommonProps?: { [key: string]: any };\r\n /**\r\n * The URL generated by iconfont.cn project. Support string[] after @ant-design/icons@4.1.0\r\n */\r\n scriptUrl?: string | string[];\r\n /**\r\n * The component used for the root node\r\n */\r\n component?: IconComponentProps['component'];\r\n /**\r\n * Rotate degrees (not working in IE9)\r\n */\r\n rotate?: number;\r\n /**\r\n * Rotate icon with animation\r\n */\r\n spin?: boolean;\r\n /**\r\n * Color of the icon\r\n */\r\n twoToneColor?: string;\r\n}\r\n\r\nexport const AtIcon: React.FC<AtIconProps> = ({\r\n name = 'HomeOutlined',\r\n width = 'auto',\r\n height = 'auto',\r\n fill = 'black',\r\n ...props\r\n}) => {\r\n return (\r\n <Icon\r\n {...props}\r\n component={\r\n props.component ?? (Icons[name] as React.ForwardRefExoticComponent<any>)\r\n }\r\n style={{ width, height, fill, ...props.style }}\r\n />\r\n );\r\n};\r\n","import { violet } from '../theme';\r\nimport { gold } from '@ant-design/colors';\r\n\r\nexport const colorMap = {\r\n violet: violet[5],\r\n gold: gold[5],\r\n white: '#FFFFFF',\r\n gray: '#f0f0f0',\r\n lightGray: '#00000073',\r\n black: '#000000',\r\n};\r\n","import { Typography } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { colorMap } from '../../../utils/colorMap';\r\nimport { AtTextProps } from '.';\r\n\r\nexport const StyledText = styled(Typography.Text) <AtTextProps>`\r\n ${({ color }) => (color ? `color: ${colorMap[color]};` : '')}\r\n ${({ $width }) => ($width ? `width: ${typeof $width === \"number\" ? `${$width}px;` : `${$width};`}` : '')}\r\n ${({ $maxWidth }) => ($maxWidth ? `max-width: ${typeof $maxWidth === \"number\" ? `${$maxWidth}px!important;` : `${$maxWidth}!important;`}` : '')}\r\n ${({ $fontSize }) => ($fontSize ? `font-size: ${$fontSize}px;` : '')} \r\n ${({ $textAlign }) => ($textAlign ? `text-align: ${$textAlign};` : '')}\r\n ${({ $opacity }) => ($opacity ? `opacity: ${$opacity};` : '')}\r\n ${({ $lineHeight }) => ($lineHeight ? `line-height: ${$lineHeight};` : '')}\r\n ${({ strong }) => (strong ? `font-weight: bold` : '')}\r\n`;\r\n","import React from 'react';\r\nimport { BlockProps } from 'antd/es/typography/Base';\r\nimport { StyledText } from './styles';\r\nimport { colorMap } from '../../../utils/colorMap';\r\nimport { TextProps } from 'antd/es/typography/Text';\r\n\r\nexport interface AtTextProps {\r\n /**\r\n * Content type\r\n */\r\n type?: 'secondary' | 'success' | 'warning' | 'danger';\r\n /**\r\n * Whether the text is strong or not\r\n */\r\n strong?: boolean;\r\n /**\r\n * Whether the text is italic or not\r\n */\r\n italic?: boolean;\r\n /**\r\n * Whether the text is underline or not\r\n */\r\n underline?: boolean;\r\n /**\r\n * Whether the text is mark or not\r\n */\r\n mark?: boolean;\r\n /**\r\n * If editable. Can control edit state when is object\r\n */\r\n editable?: boolean | BlockProps['editable'];\r\n /**\r\n * Whether to be copyable, customize it via setting an object\r\n */\r\n copyable?: boolean | BlockProps['copyable'];\r\n /**\r\n * Keyboard style\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Code style\r\n */\r\n code?: boolean;\r\n /**\r\n * children\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Color of the text\r\n */\r\n color?: keyof typeof colorMap;\r\n /**\r\n * Element width\r\n */\r\n $width?: number | string;\r\n /**\r\n * Element max width\r\n */\r\n $maxWidth?: number | string;\r\n /**\r\n * font size\r\n */\r\n $fontSize?: number;\r\n /**\r\n * textAlign\r\n */\r\n $textAlign?: \"center\" | \"left\" | \"right\" | \"justify\" | \"initial\" | \"inherit\" | \"unset\";\r\n /**\r\n * opacity\r\n */\r\n $opacity?: number;\r\n /**\r\n * ellipsis\r\n */\r\n ellipsis?: TextProps['ellipsis'];\r\n /**\r\n * line height\r\n */\r\n $lineHeight?: number;\r\n}\r\n\r\nexport const AtText: React.FC<AtTextProps> = ({\r\n strong = false,\r\n italic = false,\r\n underline = false,\r\n mark = false,\r\n editable = false,\r\n copyable = false,\r\n keyboard = false,\r\n code = false,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledText\r\n strong={strong}\r\n italic={italic}\r\n underline={underline}\r\n mark={mark}\r\n editable={editable}\r\n copyable={copyable}\r\n keyboard={keyboard}\r\n code={code}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledText>\r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { Image as AntImage, ImageProps } from 'antd';\r\nimport { AtIcon } from '../AtIcon';\r\nimport { AtText } from '../AtText';\r\nimport { Card } from 'antd/lib';\r\n\r\nexport interface AtImageProps {\r\n /**\r\n * Image description\r\n */\r\n alt?: string;\r\n /**\r\n * Load failure fault-tolerant src\r\n */\r\n fallback?: string;\r\n /**\r\n * Image height\r\n */\r\n height?: string | number;\r\n /**\r\n * Image path\r\n */\r\n src?: string;\r\n /**\r\n * Image width\r\n */\r\n width?: string | number;\r\n /**\r\n * Load failed callback\r\n */\r\n onError?: ImageProps['onError'];\r\n /**\r\n * Load placeholder, use default placeholder when set true\r\n */\r\n placeholder?: ImageProps['placeholder'];\r\n /**\r\n * preview config, disabled when false\r\n */\r\n preview?: ImageProps['preview'];\r\n /**\r\n * Image wrapper style\r\n */\r\n wrapperStyle?: ImageProps['wrapperStyle'];\r\n}\r\n\r\nexport const AtImage: React.FC<AtImageProps> = (props) => {\r\n const [isValidUrl, setIsValidUrl] = useState(true);\r\n\r\n const handleError: ImageProps['onError'] = () => {\r\n setIsValidUrl(false);\r\n };\r\n\r\n return (\r\n <>\r\n {isValidUrl && props.src ? (\r\n <AntImage {...props} onError={handleError} />\r\n ) : props.src ? (\r\n <Card\r\n style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n borderColor: '#D7D8E4',\r\n cursor: 'pointer',\r\n }}\r\n onClick={() => window.open(props.src, '_blank')}\r\n >\r\n <AtIcon\r\n name=\"FileOutlined\"\r\n style={{\r\n fontSize: 24,\r\n color: '#414CE9',\r\n marginRight: 16,\r\n }}\r\n fill=\"rgb(230, 244, 255)\"\r\n />\r\n <AtText>{props.alt || 'file'}</AtText>\r\n </Card>\r\n ) : (\r\n <></>\r\n )}\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCard = styled.div`\r\n border-radius: 10px;\r\n border: 3px dotted #E5E5E5;\r\n padding-bottom: 20px;\r\n padding-left: 20px;\r\n width: 100%;\r\n flex: 42%;\r\n`;","import React from \"react\";\r\nimport { StyledCard } from \"./styles\";\r\nimport { AtText, AtTitle } from \"../../atoms\";\r\n\r\nexport interface MlPlanCardProps {\r\n title: string;\r\n description: string;\r\n $color?: 'violet' | 'gold' | 'white'\r\n $type?: \"secondary\" | \"success\" | \"warning\" | \"danger\" | undefined\r\n $fontSize?: number;\r\n}\r\n\r\nexport const MlPlanCard: React.FC<MlPlanCardProps> = ({\r\n title,\r\n description,\r\n $color,\r\n $type,\r\n $fontSize,\r\n}) => {\r\n return (\r\n <StyledCard >\r\n <AtTitle level={4}>{title}</AtTitle>\r\n <AtText $fontSize={$fontSize} type={$type} color={$color} strong>{description}</AtText>\r\n </StyledCard>\r\n );\r\n}","import { styled } from 'styled-components';\r\n\r\n\r\nexport const StyledActiveSubscriptionCard = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n margin-bottom: 20px;\r\n flex-wrap: wrap;\r\n gap: 10px;\r\n`","import { MlPlanCard, MlPlanCardProps } from \"../../molecules/MlPlanCard\";\r\nimport { StyledActiveSubscriptionCard } from \"./styles\";\r\n\r\nexport interface OrActiveCardsProps {\r\n items: Array<{title: string, description: string}> | undefined; \r\n type?: MlPlanCardProps['$type']; \r\n fontSize?: number\r\n}\r\n\r\nexport const OrActiveCards: React.FC<OrActiveCardsProps> = ({items, type, fontSize} ) => {\r\n return (\r\n <StyledActiveSubscriptionCard>\r\n {\r\n items?.map(( { title, description }, i ) => {\r\n return <MlPlanCard key={i} $fontSize={fontSize} $type={type} $color='violet' title={title} description={description} />\r\n })\r\n }\r\n </StyledActiveSubscriptionCard>\r\n )\r\n}","import React from 'react';\r\nimport { Alert, AlertProps } from 'antd';\r\n\r\nexport interface OrAlertProps {\r\n /**\r\n * The action of Alert\r\n */\r\n action?: AlertProps['action'];\r\n /**\r\n * Called when close animation is finished\r\n */\r\n afterClose?: AlertProps['afterClose'];\r\n /**\r\n * Whether to show as banner\r\n */\r\n banner?: boolean;\r\n /**\r\n * Custom close icon, >=5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: boolean | React.ReactNode;\r\n /**\r\n * Closable text to show\r\n */\r\n closable?: AlertProps['closable'];\r\n /**\r\n * Additional content of Alert\r\n */\r\n description?: AlertProps['description'];\r\n /**\r\n * Custom icon, effective when showIcon is true\r\n */\r\n icon?: AlertProps['icon'];\r\n /**\r\n * Content of Alert\r\n */\r\n message?: AlertProps['message'];\r\n /**\r\n * Whether to show icon\r\n */\r\n showIcon?: boolean;\r\n /**\r\n * Type of Alert styles, options: success, info, warning, error\r\n */\r\n type?: AlertProps['type'];\r\n /**\r\n * Callback when Alert is closed\r\n */\r\n onClose?: AlertProps['onClose'];\r\n /**\r\n * Children of Alert\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrAlert: React.FC<OrAlertProps> = (props) => {\r\n return <Alert {...props}>{props.children}</Alert>;\r\n};\r\n\r\nOrAlert.defaultProps = {\r\n afterClose: undefined,\r\n banner: false,\r\n};\r\n","import { Tabs } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrTabsProps } from '.';\r\n\r\nexport const StyledTabs = styled(Tabs)<OrTabsProps>`\r\n ${({ type }) => (type === 'card' ? `\r\n & .ant-tabs-nav-list .ant-tabs-tab {\r\n border-radius: 2px 2px 0 0!important;\r\n } \r\n\r\n & .ant-tabs-nav-list :not(first-child) .ant-tabs-tab {\r\n background: red;\r\n }\r\n ` : ``)}\r\n`","import { TabsProps } from 'antd/es/tabs';\r\nimport { AtIcon } from '../../atoms';\r\nimport { StyledTabs } from './styles';\r\n\r\nexport interface OrTabsProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Current TabPane's key\r\n */\r\n activeKey?: string;\r\n /**\r\n * Customize add icon\r\n */\r\n addIcon?: React.ReactNode;\r\n /**\r\n * Whether to change tabs with animation. Only works while tabPosition=\"top\"\r\n */\r\n animated?: boolean | { inkBar: boolean; tabPane: boolean };\r\n /**\r\n * Centers tabs\r\n */\r\n centered?: boolean;\r\n /**\r\n * Initial active TabPane's key, if activeKey is not set\r\n */\r\n defaultActiveKey?: string;\r\n /**\r\n * Hide plus icon or not. Only works while type=\"editable-card\"\r\n */\r\n hideAdd?: boolean;\r\n /**\r\n * Configure tab content\r\n */\r\n items?: TabsProps['items'];\r\n /**\r\n * The custom icon of ellipsis\r\n */\r\n moreIcon?: React.ReactNode;\r\n /**\r\n * className for more dropdown.\r\n */\r\n popupClassName?: string;\r\n /**\r\n * Preset tab bar size\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Extra content in tab bar\r\n */\r\n tabBarExtraContent?:\r\n | React.ReactNode\r\n | { left?: React.ReactNode; right?: React.ReactNode };\r\n /**\r\n * The gap between tabs\r\n */\r\n tabBarGutter?: number;\r\n /**\r\n * Position of tabs\r\n */\r\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\r\n /**\r\n * Whether destroy inactive TabPane when change tab\r\n */\r\n destroyInactiveTabPane?: boolean;\r\n /**\r\n * Basic style of tabs\r\n */\r\n type?: 'line' | 'card' | 'editable-card';\r\n /**\r\n * Callback executed when active tab is changed\r\n */\r\n onChange?: (activeKey: string) => void;\r\n /**\r\n * Callback executed when tab is added or removed. Only works while type=\"editable-card\"\r\n */\r\n onEdit?:\r\n | ((\r\n e:\r\n | string\r\n | React.MouseEvent<Element, MouseEvent>\r\n | React.KeyboardEvent<Element>,\r\n action: 'add' | 'remove',\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Callback executed when tab is clicked\r\n */\r\n onTabClick?:\r\n | ((\r\n activeKey: string,\r\n e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Trigger when tab scroll\r\n */\r\n onTabScroll?: (info: {\r\n direction: 'left' | 'right' | 'top' | 'bottom';\r\n }) => void;\r\n /**\r\n * Children of the tabs\r\n */\r\n children?: React.ReactElement | React.ReactElement[];\r\n /**\r\n * hide extra content in tab bar\r\n */\r\n hideExtra?: boolean;\r\n}\r\n\r\nexport const OrTabs: React.FC<OrTabsProps> = ({\r\n animated = { inkBar: true, tabPane: false },\r\n centered = false,\r\n hideAdd = false,\r\n items = [],\r\n moreIcon = <AtIcon name=\"EllipsisOutlined\" />,\r\n size = 'middle',\r\n tabPosition = 'top',\r\n destroyInactiveTabPane = false,\r\n type = 'line',\r\n hideExtra = false,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledTabs\r\n animated={animated}\r\n centered={centered}\r\n hideAdd={hideAdd}\r\n size={size}\r\n tabPosition={tabPosition}\r\n destroyInactiveTabPane={destroyInactiveTabPane}\r\n type={type}\r\n tabBarExtraContent={hideExtra || (items.length > 0 && moreIcon)}\r\n items={items}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledTabs>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledDiv = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n gap: 10px;\r\n`;\r\n","import { styled } from 'styled-components';\r\nimport { Card } from 'antd';\r\nimport { MlCardProps } from '.';\r\nimport { violet } from '../../../theme';\r\nimport { colorMap } from '../../../utils/colorMap';\r\n\r\nexport const StyledCard = styled(Card)<MlCardProps>`\r\n ${({ $margin }) => ($margin === 'auto' ? `margin: auto;` : $margin ? `margin: ${$margin}px;` : '')}\r\n ${({ $width }) => ($width ? `width: ${$width};` : '')}\r\n ${({ $maxWidth }) => ($maxWidth ? `max-width: ${$maxWidth}px; width: 100%;` : '')}\r\n ${({ $alignSelf }) => ($alignSelf ? `align-self: ${$alignSelf};` : '')}\r\n ${({ $backgroundColor }) => ($backgroundColor ? `background-color: ${$backgroundColor};` : '')}\r\n ${({ $marginBottom }) => ($marginBottom ? `margin-bottom: ${$marginBottom}px;` : '')}\r\n ${({ $shadow }) => ($shadow ? `box-shadow: ${$shadow};` : '')}\r\n &.ant-card-small >.ant-card-body {\r\n ${({ $padding }) => ($padding ? `padding: ${$padding}px; !important` : 'padding: 0px !important')}\r\n }\r\n ${({ $borderColor }) => ($borderColor ? `border-color: ${colorMap[$borderColor]};` : '')}\r\n ${({ selected }) =>\r\n selected\r\n ? `\r\n border-color: ${violet[5]};\r\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\r\n `\r\n : ''}\r\n\r\n &:hover * {\r\n ${({ hoverable }) => (hoverable ? `color: ${violet[5]};` : '')}\r\n }\r\n\r\n & * {\r\n ${({ selected }) => (selected ? `color: ${violet[5]};` : '')}\r\n }\r\n`;\r\n","import React, { CSSProperties, ReactNode } from 'react';\r\nimport { CardTabListType } from 'antd/es/card';\r\nimport { CardType } from 'antd/es/card/Card';\r\nimport { TabsProps } from 'antd/es/tabs';\r\nimport { StyledCard } from './styles';\r\n\r\nexport interface MlCardProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The action list, shows at the bottom of the Card\r\n */\r\n actions?: Array<ReactNode>;\r\n /**\r\n * Current TabPane's key\r\n */\r\n activeTabKey?: string;\r\n /**\r\n * Inline style to apply to the card content\tCSSProperties\r\n */\r\n bodyStyle?: CSSProperties;\r\n /**\r\n * Toggles rendering of the border around the card\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Card cover\r\n */\r\n cover?: ReactNode;\r\n /**\r\n * Initial active TabPane's key, if activeTabKey is not set\r\n */\r\n defaultActiveTabKey?: string;\r\n /**\r\n * Content to render in the top-right corner of the card\r\n */\r\n extra?: ReactNode;\r\n /**\r\n * Lift up when hovering card\r\n */\r\n hoverable?: boolean;\r\n /**\r\n * Shows a loading indicator while the contents of the card are being fetched\r\n */\r\n loading?: boolean;\r\n /**\r\n * Mark item as selected\r\n */\r\n selected?: boolean;\r\n /**\r\n * Size of card\r\n */\r\n size?: 'default' | 'small';\r\n /**\r\n * Extra content in tab bar\r\n */\r\n tabBarExtraContent?: ReactNode;\r\n /**\r\n * List of TabPane's head\r\n */\r\n tabList?: CardTabListType[];\r\n /**\r\n * Tabs\r\n */\r\n tabProps?: TabsProps;\r\n /**\r\n * Card title\r\n */\r\n title?: ReactNode;\r\n /**\r\n * Card style type, can be set to inner or not set\r\n */\r\n type?: CardType;\r\n /**\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n /**\r\n * Callback when tab is switched\r\n */\r\n onTabChange?: (key: string) => void;\r\n children?: React.ReactNode;\r\n /**\r\n * Card width\r\n */\r\n $width?: number;\r\n /**\r\n * border color for the card\r\n */\r\n $borderColor?: 'violet' | 'gold' | 'white' | 'gray';\r\n /**\r\n * margin bottom for the card\r\n */\r\n $marginBottom?: number;\r\n /**\r\n * padding for the card\r\n */\r\n $padding?: number;\r\n /**\r\n * background color for the card\r\n */\r\n $backgroundColor?: string;\r\n /**\r\n * shadow color for the card\r\n */\r\n $shadow?: string;\r\n /**\r\n * max width for the card\r\n */\r\n $maxWidth?: number;\r\n /**\r\n * align self for the card\r\n */\r\n $alignSelf?: 'center' | 'flex-start' | 'flex-end' | 'stretch' | 'baseline';\r\n /**\r\n * margin for the card\r\n */\r\n $margin?: number | 'auto';\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrCard: React.FC<MlCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { StyledDiv } from './styles';\r\nimport { AtButton, AtNumberInput, AtText, AtTitle, AtImage } from '../../atoms';\r\nimport { OrCard } from '../OrCard';\r\n\r\nexport interface OrTicketCardProps {\r\n /**\r\n * Image source\r\n */\r\n src?: string;\r\n /**\r\n * Title children\r\n */\r\n title?: React.ReactNode;\r\n /**\r\n * Text children\r\n */\r\n description?: React.ReactNode;\r\n /**\r\n * button value\r\n */\r\n value?: number;\r\n /**\r\n * Used for setting the currently selected value for the input card custom type\r\n */\r\n inputValue?: any;\r\n /**\r\n * Button Value\r\n */\r\n buttonText?: string;\r\n /**\r\n * display input\r\n */\r\n type?: 'custom' | 'static';\r\n /**\r\n * border color for the card\r\n */\r\n $borderColor?: 'violet' | 'gold' | 'white' | 'gray';\r\n /**\r\n * On change callback\r\n */\r\n onChange?: (\r\n e:\r\n | string\r\n | React.MouseEvent<HTMLAnchorElement, MouseEvent>\r\n | React.MouseEvent<HTMLButtonElement, MouseEvent>\r\n | number\r\n | null,\r\n ) => void;\r\n}\r\n\r\nexport const OrTicketCard: React.FC<OrTicketCardProps> = ({\r\n type = 'static',\r\n ...props\r\n}) => {\r\n return (\r\n <OrCard\r\n $width={172}\r\n size=\"small\"\r\n $alignSelf=\"center\"\r\n bodyStyle={{ justifyContent: 'center' }}\r\n $padding={16}\r\n $borderColor={props.$borderColor}\r\n >\r\n <AtImage width={'100%'} src={props.src} preview={false} />\r\n <AtTitle $textAlign=\"center\" children={props.title} level={5} />\r\n <StyledDiv>\r\n <AtText\r\n $textAlign=\"center\"\r\n type=\"secondary\"\r\n children={props.description}\r\n />\r\n {type === 'custom' ? (\r\n <AtNumberInput\r\n $width=\"100%\"\r\n onChange={props.onChange}\r\n value={props.inputValue}\r\n min={1}\r\n />\r\n ) : (\r\n <AtButton\r\n type=\"primary\"\r\n value={props.buttonText}\r\n onClick={() =>\r\n props.onChange ? props.onChange(props.value ?? null) : null\r\n }\r\n />\r\n )}\r\n </StyledDiv>\r\n </OrCard>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledSubscriptionCard = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n margin: 12px 0;\r\n gap: 5px;\r\n width: 100%;\r\n`;\r\nexport const StyledContainer = styled.div`\r\n margin-left: 16px;\r\n width: 80%;\r\n`;\r\n\r\nexport const StyledContainerText = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: end;\r\n width: 20%;\r\n`;\r\n","import React from 'react';\r\nimport {\r\n StyledSubscriptionCard,\r\n StyledContainer,\r\n StyledContainerText,\r\n} from './styles';\r\nimport { AtText, AtTitle } from '../../atoms';\r\n\r\nexport interface MlSubscriptionCardProps {\r\n title: string;\r\n description: string;\r\n price: number;\r\n value: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const MlSubscriptionCard: React.FC<MlSubscriptionCardProps> = ({\r\n title,\r\n description,\r\n price,\r\n}) => {\r\n return (\r\n <StyledSubscriptionCard key={title}>\r\n <StyledContainer>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {title}\r\n </AtTitle>\r\n <AtText $width={14}>{description}</AtText>\r\n </StyledContainer>\r\n <StyledContainerText>\r\n <AtText color=\"violet\" $fontSize={20}>\r\n ${price}\r\n </AtText>\r\n </StyledContainerText>\r\n </StyledSubscriptionCard>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { MlFromItemProps } from '.';\r\nimport FormItem from 'antd/es/form/FormItem';\r\n\r\nexport const StyledFormItem = styled(FormItem)<MlFromItemProps>`\r\n ${({ $margin }) => ($margin ? `margin: ${$margin};` : '')}\r\n`;\r\n","import React from 'react';\r\nimport { NamePath, Store, StoreValue } from 'antd/es/form/interface';\r\nimport { ColProps } from 'antd';\r\nimport { RuleObject } from 'antd/es/form';\r\nimport { LabelTooltipType } from 'antd/es/form/FormItemLabel';\r\nimport { StyledFormItem } from './styles';\r\n\r\nexport interface MlFromItemProps {\r\n /**\r\n * Set the dependencies field by names\r\n */\r\n dependencies?: string[];\r\n /**\r\n * The extra prompt message. It is similar to help. Usage example: to display error message and prompt message at the same time\r\n */\r\n extra?: string;\r\n /**\r\n * Used with validateStatus, this option specifies the validation status icon. Recommended to be used only with Input\r\n */\r\n hasFeedback?: boolean;\r\n /**\r\n * The prompt message. If not provided, the prompt message will be generated by the validation rule.\r\n */\r\n help?: string;\r\n /**\r\n * Whether to hide Form.Item (still collect and validate value)\r\n */\r\n hidden?: boolean;\r\n /**\r\n * Config sub default value. Form initialValues get higher priority when conflict\r\n */\r\n initialValue?: string;\r\n /**\r\n * Label text\r\n */\r\n label?: string;\r\n /**\r\n * The layout of label. You can set span offset to something like {span: 3, offset: 12} or sm: {span: 3, offset: 12} same as with <Col>. You can set labelCol on Form which will not affect nest Item. If both exists, use Item first\r\n */\r\n labelCol?: ColProps;\r\n /**\r\n * The default validate field info\r\n */\r\n messageVariables?: Record<string, string>;\r\n /**\r\n * Field name, support array\r\n */\r\n name?: NamePath;\r\n /**\r\n * No style for true, used as a pure field control\r\n */\r\n noStyle?: boolean;\r\n /**\r\n * Normalize value from component value before passing to Form instance. Do not support async\r\n */\r\n normalize?: (\r\n value: StoreValue,\r\n prevValue: StoreValue,\r\n allValues: Store,\r\n ) => StoreValue;\r\n /**\r\n * Display required style. It will be generated by the validation rule\r\n */\r\n required?: boolean;\r\n /**\r\n * Rules for field validation. Click [here](https://ant.design/components/form#components-form-demo-basic) to see an example\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * Config tooltip info\r\n */\r\n tooltip?: LabelTooltipType;\r\n /**\r\n * The validation status. If not provided, it will be generated by validation rule. options: success warning error validating\r\n */\r\n validateStatus?: 'success' | 'warning' | 'error' | 'validating' | undefined;\r\n /**\r\n * When to validate the value of children node\r\n */\r\n validateTrigger?: string | string[] | false;\r\n /**\r\n * The layout for input controls, same as labelCol. You can set wrapperCol on Form which will not affect nest Item. If both exists, use Item first\r\n */\r\n wrapperCol?: ColProps;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Props of children node, for example, the prop of Switch is 'checked'. This prop is an encapsulation of getValueProps, which will be invalid after customizing getValueProps\r\n */\r\n valuePropName?: string;\r\n /**\r\n * margin of component\r\n */\r\n $margin?: string;\r\n /**\r\n * Specify how to get value from event or other onChange arguments\r\n */\r\n getValueFromEvent?: (e: any) => any;\r\n /**\r\n * Fullwidth button\r\n */\r\n $fullWidth?: boolean;\r\n /**\r\n * Layout of the label\r\n */\r\n layout?: 'horizontal' | 'vertical';\r\n}\r\n\r\nexport const MlFormItem: React.FC<MlFromItemProps> = ({\r\n children,\r\n hasFeedback = false,\r\n hidden = false,\r\n required = false,\r\n noStyle = false,\r\n valuePropName = 'value',\r\n getValueFromEvent,\r\n $margin,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledFormItem\r\n $margin={$margin}\r\n hasFeedback={hasFeedback}\r\n hidden={hidden}\r\n required={required}\r\n noStyle={noStyle}\r\n valuePropName={valuePropName}\r\n getValueFromEvent={getValueFromEvent}\r\n {...props}\r\n >\r\n {children}\r\n </StyledFormItem>\r\n );\r\n};\r\n","import React, { useCallback, useState } from 'react';\r\nimport { AtSelect, AtSelectProps } from '../../atoms';\r\nimport { MlFormItem } from '../MlFormItem';\r\nimport { RuleObject } from 'antd/es/form';\r\n\r\nexport interface MlAutocompleteSearchProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Google api key\r\n */\r\n GOOGLE_MAPS_API_KEY?: string;\r\n /**\r\n * Country code\r\n */\r\n country?: string;\r\n /**\r\n * Select props\r\n */\r\n selectProps?: AtSelectProps;\r\n /**\r\n * Field name\r\n */\r\n fieldName?: string;\r\n /**\r\n * Rules\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * Custom options\r\n */\r\n customOptions?: AtSelectProps['options'];\r\n /**\r\n * Fetch place details\r\n */\r\n fetchPlaceDetails?: (id: any) => any;\r\n /**\r\n * Default options\r\n */\r\n defaultOptions?: AtSelectProps['options'];\r\n /**\r\n * Callback function that is fired when input changed in order to fetch places\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelectValue?: AtSelectProps['onSelect'];\r\n}\r\n\r\nexport const MlAutocompleteSearch: React.FC<MlAutocompleteSearchProps> = ({\r\n id,\r\n customOptions = [],\r\n fetchPlaceDetails,\r\n defaultOptions = [],\r\n onSearch,\r\n onSelectValue,\r\n ...props\r\n}) => {\r\n const [list, setList] = useState<AtSelectProps['options']>(\r\n [...customOptions, ...defaultOptions] ?? [],\r\n );\r\n\r\n const fetchSearch = useCallback(async (localInput: string) => {\r\n try {\r\n const data = onSearch ? await onSearch(localInput) : null;\r\n setList([\r\n ...(customOptions ?? []),\r\n ...data.predictions.map((prediction: any) => ({\r\n value: prediction.place_id,\r\n label: prediction.description,\r\n })),\r\n ]);\r\n } catch (error) {\r\n console.error(error);\r\n setList([]);\r\n }\r\n }, []);\r\n\r\n const onSelect: AtSelectProps['onSelect'] = async (value) => {\r\n try {\r\n const data = fetchPlaceDetails ? await fetchPlaceDetails(value) : null;\r\n onSelectValue && onSelectValue(data, value);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n return (\r\n <MlFormItem\r\n noStyle\r\n name={props.fieldName}\r\n rules={props.rules ?? ([] as RuleObject[])}\r\n >\r\n <AtSelect\r\n {...props.selectProps}\r\n id={id}\r\n filterOption={false}\r\n onSearch={fetchSearch}\r\n options={list}\r\n showSearch={true}\r\n onSelect={fetchPlaceDetails ? onSelect : undefined}\r\n />\r\n </MlFormItem>\r\n );\r\n};\r\n","import React, { ReactNode, useCallback } from 'react';\r\nimport { MlFormItem } from '../MlFormItem';\r\nimport { RuleObject } from 'antd/es/form';\r\nimport { AutoComplete } from 'antd';\r\nimport { DefaultOptionType as Option } from 'antd/es/select';\r\nimport { AutoCompleteProps } from 'antd/lib';\r\n\r\nexport interface MlAutocompleteSearchTextProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Select props\r\n */\r\n selectProps?: AutoCompleteProps;\r\n /**\r\n * Field name\r\n */\r\n fieldName?: string;\r\n /**\r\n * Rules\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * Custom options\r\n */\r\n options?: AutoCompleteProps['options'];\r\n /**\r\n * Placeholder of select\r\n */\r\n placeholder?: ReactNode;\r\n /**\r\n * Whether disabled select\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The size of the input box. Note: in the context of a form, the middle size is used\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Custom styles properties\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * Default options\r\n */\r\n defaultOptions?: AutoCompleteProps['options'];\r\n /**\r\n * Callback function that is fired when input changed in order to fetch places\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Callback function that is fired when input changed in order to fetch places\r\n */\r\n onChange?: (value: any, option: Option | Array<Option>) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelectValue?: AutoCompleteProps['onSelect'];\r\n}\r\n\r\nexport const MlAutocompleteSearchText: React.FC<\r\n MlAutocompleteSearchTextProps\r\n> = ({\r\n onSearch,\r\n onChange,\r\n onSelectValue,\r\n options,\r\n size = 'middle',\r\n ...props\r\n}) => {\r\n const [list, setList] = React.useState<AutoCompleteProps['options']>(\r\n options ?? [],\r\n );\r\n\r\n const handleSearch = useCallback(async (value: string) => {\r\n const data = onSearch ? await onSearch(value) : [];\r\n setList([...data]);\r\n }, []);\r\n\r\n const onSelect: AutoCompleteProps['onSelect'] = async (value) => {\r\n try {\r\n onSelectValue\r\n ? onSelectValue(\r\n value,\r\n list?.find((item) => item.value === value)?.fullData ?? {},\r\n )\r\n : null;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n return (\r\n <MlFormItem\r\n noStyle\r\n name={props.fieldName}\r\n rules={props.rules ?? ([] as RuleObject[])}\r\n >\r\n <AutoComplete\r\n {...props}\r\n options={list}\r\n onSelect={onSelect}\r\n onSearch={options ? onSearch : handleSearch} // condition to help the render memoization in rental\r\n onChange={onChange}\r\n size={size}\r\n />\r\n </MlFormItem>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Breadcrumb, BreadcrumbProps } from 'antd';\r\n\r\nexport interface MlBreadcrumbProps {\r\n /**\r\n * Custom item renderer\r\n */\r\n itemRender?: BreadcrumbProps['itemRender'];\r\n /**\r\n * Routing parameters\r\n */\r\n params?: Record<string, string>;\r\n /**\r\n * The routing stack information of router\r\n */\r\n items: BreadcrumbProps['items'];\r\n /**\r\n * Separator character\r\n */\r\n separator?: BreadcrumbProps['separator'];\r\n}\r\n\r\nexport const MlBreadcrumb: React.FC<MlBreadcrumbProps> = ({separator = '/', ...props}) => {\r\n return <Breadcrumb separator={separator} {...props} />;\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCard = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n margin: 12px 0;\r\n gap: 5px;\r\n`;\r\n","import React from 'react';\r\nimport { StyledCard } from './styles';\r\nimport { AtIcon, AtIconProps, AtText } from '../../atoms';\r\n\r\nexport interface MlCardIconProps {\r\n title: string;\r\n icon: AtIconProps['name'];\r\n value: string;\r\n}\r\n\r\nexport const MlCardIcon: React.FC<MlCardIconProps> = ({\r\n title,\r\n icon,\r\n value,\r\n}) => {\r\n return (\r\n <StyledCard key={value}>\r\n <AtIcon name={icon} style={{ fontSize: 20 }} />\r\n <AtText>{title}</AtText>\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Carousel } from 'antd';\r\nimport { DotPosition } from 'antd/es/carousel';\r\n\r\nexport interface MlCarouselProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Whether to scroll automatically\r\n */\r\n autoplay?: boolean;\r\n /**\r\n * Delay between each auto scroll (in milliseconds)\r\n */\r\n autoplaySpeed?: number;\r\n /**\r\n * Center elements into carousel\r\n */\r\n centerMode?: boolean;\r\n /**\r\n * The position of the dots, which can be one of top bottom left right\r\n */\r\n dotPosition?: DotPosition;\r\n /**\r\n * Whether to show the dots at the bottom of the gallery, object for dotsClass and any others\r\n */\r\n dots?: boolean;\r\n /**\r\n * Whether to wait for the animation when switching\r\n */\r\n waitForAnimate?: boolean;\r\n /**\r\n * Transition interpolation function name\r\n */\r\n easing?: string;\r\n /**\r\n * Transition effect\r\n */\r\n effect?: 'scrollx' | 'fade';\r\n /**\r\n * Callback function called after the current index changes\r\n */\r\n afterChange?: (current: number) => void;\r\n /**\r\n * Callback function called before the current index changes\r\n */\r\n beforeChange?: (current: number, next: number) => void;\r\n /**\r\n * Fade effect in transition\r\n */\r\n fade?: boolean;\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const MlCarousel: React.FC<MlCarouselProps> = ({\r\n autoplay = false,\r\n autoplaySpeed = 5000,\r\n dotPosition = 'bottom',\r\n dots = true,\r\n waitForAnimate = false,\r\n easing = 'linear',\r\n effect = 'scrollx',\r\n centerMode = true,\r\n fade = true,\r\n ...props\r\n}) => (\r\n <Carousel\r\n autoplay={autoplay}\r\n autoplaySpeed={autoplaySpeed}\r\n dotPosition={dotPosition}\r\n dots={dots}\r\n waitForAnimate={waitForAnimate}\r\n easing={easing}\r\n effect={effect}\r\n fade={fade}\r\n centerMode={centerMode}\r\n {...props}\r\n >\r\n {props.children}\r\n </Carousel>\r\n);\r\n","import { Checkbox } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { MlCheckboxGroup } from '.';\r\n\r\nexport const StyledCheckboxGroup = styled(Checkbox.Group)<MlCheckboxGroup>`\r\n ${({ $direction }) => ($direction === 'vertical' ? `\r\n .ant-checkbox-wrapper {\r\n width: 100%;\r\n margin-bottom: 8px;\r\n }\r\n ` : '')}\r\n`;","import React from 'react';\r\nimport { CheckboxGroupProps } from 'antd/es/checkbox/Group';\r\nimport { StyledCheckboxGroup } from './styles';\r\n\r\nexport interface MlCheckboxGroup {\r\n /**\r\n * Default selected value\r\n * */\r\n defaultValue?: (string | number)[];\r\n /**\r\n * If disable all checkboxes\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The name property of all input[type=\"checkbox\"] children\r\n */\r\n name?: string;\r\n /**\r\n * Specifies options\r\n */\r\n options?: CheckboxGroupProps['options'];\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: (string | number | boolean)[];\r\n /**\r\n * The callback function that is triggered when the state changes\r\n */\r\n onChange?: CheckboxGroupProps['onChange'];\r\n /**\r\n * The direction of checkbox group\r\n */\r\n $direction?: 'horizontal' | 'vertical';\r\n}\r\n\r\nexport const MlCheckboxGroup: React.FC<MlCheckboxGroup> = ({\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return <StyledCheckboxGroup disabled={disabled} {...props} />;\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { AtNumberInputProps } from '.';\r\nimport { InputNumber } from 'antd';\r\n\r\nexport const StyledInputNumber = styled(InputNumber)<AtNumberInputProps>`\r\n ${({ $width }) => ($width ? `width: ${$width}` : '')};\r\n ${({ $height }) => ($height ? `height: ${$height}` : '')};\r\n ${({ $fontSize }) => ($fontSize ? `font-size: ${$fontSize}` : '')};\r\n ${({ $textAlign }) =>\r\n $textAlign\r\n ? `\r\n .ant-input-number-input-wrap > input.ant-input-number-input {\r\n text-align: ${$textAlign};\r\n }`\r\n : ''};\r\n`;\r\n","import React, { ChangeEvent, ReactNode } from 'react';\r\nimport { ValueType } from '@rc-component/mini-decimal';\r\nimport { StyledInputNumber } from './styles';\r\nimport { InputNumberProps } from 'antd';\r\n\r\nexport interface AtNumberInputProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The label text displayed after (on the right side of) the input field\r\n */\r\n addonAfter?: ReactNode;\r\n /**\r\n * The label text displayed before (on the left side of) the input field\r\n */\r\n addonBefore?: ReactNode;\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Whether to show +- controls, or set custom arrows icon\r\n */\r\n controls?: boolean | { upIcon?: React.ReactNode; downIcon?: React.ReactNode };\r\n /**\r\n * Decimal separator\r\n */\r\n decimalSeparator?: string;\r\n /**\r\n * The initial value\r\n */\r\n defaultValue?: number;\r\n /**\r\n * If disable the input\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Specifies the format of the value presented\r\n */\r\n formatter?: InputNumberProps['formatter'];\r\n /**\r\n * If enable keyboard behavior\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * The max value\r\n */\r\n max?: number;\r\n /**\r\n * The min value\r\n */\r\n min?: number;\r\n /**\r\n * Specifies the value extracted from formatter\r\n */\r\n parser?: InputNumberProps['parser'];\r\n /**\r\n * The precision of input value. Will use formatter when config of formatter\r\n */\r\n precision?: number;\r\n /**\r\n * If readonly the input\r\n */\r\n readOnly?: boolean;\r\n /**\r\n * Set validation status\r\n */\r\n status?: 'error' | 'warning';\r\n /**\r\n * The prefix icon for the Input\r\n */\r\n prefix?: ReactNode;\r\n /**\r\n * The height of input box\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * The number to which the current value is increased or decreased. It can be an integer or decimal\r\n */\r\n step?: number | string;\r\n /**\r\n * Set value as string to support high precision decimals. Will return string value by onChange\r\n */\r\n stringMode?: boolean;\r\n /**\r\n * The current value\r\n */\r\n value?: number;\r\n /**\r\n * The callback triggered when the value is changed\r\n */\r\n onChange?: (value: number | string | null) => void;\r\n /**\r\n * The callback function that is triggered when Enter key is pressed\r\n */\r\n onPressEnter?: (e: ChangeEvent<EventTarget>) => void;\r\n /**\r\n * The callback function that is triggered when click up or down buttons\r\n */\r\n onStep?: (\r\n value: number,\r\n info: {\r\n offset: ValueType;\r\n type: 'up' | 'down';\r\n },\r\n ) => void;\r\n /**\r\n * Element width\r\n */\r\n $width?: string;\r\n /**\r\n * Element height\r\n */\r\n $height?: string;\r\n /**\r\n * Text align\r\n */\r\n $textAlign?: 'left' | 'center' | 'right';\r\n /**\r\n * Font size\r\n */\r\n $fontSize?: string;\r\n /**\r\n * on Input\r\n */\r\n onInput?: InputNumberProps['onInput'];\r\n /**\r\n * max length\r\n */\r\n maxLength?: number;\r\n /**\r\n * key down\r\n */\r\n onKeyDown?: InputNumberProps['onKeyDown'];\r\n /**\r\n * On focus\r\n */\r\n onFocus?: InputNumberProps['onFocus'];\r\n /**\r\n * placeholder\r\n */\r\n placeholder?: string;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const AtNumberInput: React.FC<AtNumberInputProps> = ({\r\n autoFocus = false,\r\n bordered = true,\r\n disabled = false,\r\n keyboard = true,\r\n max = Number.MAX_SAFE_INTEGER,\r\n min = Number.MIN_SAFE_INTEGER,\r\n readOnly = false,\r\n step = 1,\r\n stringMode = false,\r\n $width = '100%',\r\n placeholder,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledInputNumber\r\n placeholder={placeholder}\r\n type=\"number\"\r\n autoFocus={autoFocus}\r\n bordered={bordered}\r\n disabled={disabled}\r\n keyboard={keyboard}\r\n max={max}\r\n min={min}\r\n readOnly={readOnly}\r\n step={step}\r\n stringMode={stringMode}\r\n $width={$width}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCodeInput = styled.div`\r\n display: flex;\r\n gap: 10px;\r\n`;\r\n","import { useCallback, useState } from 'react';\r\n\r\ninterface UseInputOTPProps {\r\n onChange?: (value: Array<string | undefined> ) => void;\r\n}\r\n\r\nexport const useCodeInput = ({\r\n onChange,\r\n}: UseInputOTPProps) => {\r\n const [otpValue, setOtpValue] = useState<Array<string | undefined>>([]);\r\n\r\n const getSibling = useCallback(\r\n (index: number) =>\r\n ({\r\n prev: document.getElementById(\r\n `numberInput-${index - 1}`,\r\n ) as HTMLInputElement,\r\n next: document.getElementById(\r\n `numberInput-${index + 1}`,\r\n ) as HTMLInputElement,\r\n }) as Record<'prev' | 'next', (EventTarget & HTMLInputElement) | null>,\r\n [],\r\n );\r\n\r\n // * Comes from antd to make field select all value\r\n // * when clicked (focus).\r\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>) => {\r\n e?.currentTarget?.select();\r\n }, []);\r\n\r\n const handleChange = useCallback(\r\n ( index: number) => {\r\n\r\n const nextInput = getSibling(index).next;\r\n const currInput = document.getElementById(\r\n `numberInput-${index}`,\r\n ) as HTMLInputElement;\r\n const currInputIdx = index;\r\n const value: string = currInput.value;\r\n if (value.length > 1) return;\r\n\r\n if (!otpValue) return;\r\n \r\n const newOtpValue = [...otpValue];\r\n\r\n if (currInputIdx !== null && currInputIdx !== undefined) {\r\n if (value.length === 0) {\r\n newOtpValue[currInputIdx] = undefined;\r\n } else {\r\n newOtpValue[currInputIdx] = value;\r\n }\r\n }\r\n\r\n setOtpValue(newOtpValue);\r\n onChange?.(newOtpValue);\r\n\r\n if (!nextInput || !currInput || !value) return;\r\n\r\n if (nextInput) nextInput.select();\r\n else if (!nextInput) currInput.blur();\r\n },\r\n [onChange, otpValue],\r\n );\r\n\r\n const handleKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>, index: number) => {\r\n const prevInput = getSibling(index).prev;\r\n const currInput = document.getElementById(`numberInput-${index}`) as HTMLInputElement;\r\n const value: string = currInput.value;\r\n\r\n if (e.key === \"Backspace\" && !value) {\r\n if (prevInput) {\r\n prevInput.focus();\r\n prevInput.select();\r\n }\r\n }\r\n },\r\n []\r\n )\r\n\r\n return {\r\n handleChange,\r\n handleFocus,\r\n handleKeyDown,\r\n otpValue,\r\n };\r\n};\r\n","import React from 'react';\r\nimport { AtNumberInput } from '../../atoms/AtNumberInput';\r\nimport { StyledCodeInput } from './styles';\r\nimport { useCodeInput } from '../../../hooks/useCodeInput';\r\n\r\nexport interface CodeInputProps {\r\n /**\r\n * number of digits (input) to show\r\n */\r\n digits?: number;\r\n /**\r\n * The input content value\r\n */\r\n value?: number;\r\n /**\r\n * Callback when user input\r\n */\r\n onChange?: (value: Array<string | undefined>) => void;\r\n /**\r\n * font size of the input\r\n */\r\n fontSize?: string;\r\n /**\r\n * height of the input\r\n */\r\n height?: string;\r\n}\r\n\r\nexport const MlCodeInput: React.FC<CodeInputProps> = ({\r\n digits = 4,\r\n ...props\r\n}) => {\r\n const { handleChange, otpValue, handleKeyDown, handleFocus } = useCodeInput({\r\n onChange: props.onChange,\r\n });\r\n return (\r\n <StyledCodeInput>\r\n {Array.from({ length: digits }, (_, index) => (\r\n <AtNumberInput\r\n $fontSize={props.fontSize}\r\n $height={props.height}\r\n key={index}\r\n id={`numberInput-${index}`}\r\n value={Number(otpValue[index]) ?? undefined}\r\n controls={false}\r\n $textAlign=\"center\"\r\n maxLength={1}\r\n onInput={() => handleChange(index)}\r\n onFocus={handleFocus}\r\n onKeyDown={(e) => handleKeyDown(e, index)}\r\n size=\"large\"\r\n />\r\n ))}\r\n </StyledCodeInput>\r\n );\r\n};\r\n\r\nMlCodeInput.defaultProps = {\r\n digits: 4,\r\n fontSize: '40px',\r\n height: '70px',\r\n};\r\n","import React, { ReactNode } from 'react';\r\nimport { Dropdown, DropdownProps, MenuProps } from 'antd';\r\n\r\nexport interface AtDropdownProps extends DropdownProps {\r\n /**\r\n * If true, an arrow will be shown\r\n */\r\n arrow?: boolean;\r\n\r\n /**\r\n * Whether to adjust popup placement automatically in case of overflow\r\n */\r\n autoAdjustOverflow?: boolean;\r\n\r\n /**\r\n * If true, the dropdown will be disabled\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * A function used to render the dropdown menu\r\n */\r\n dropdownRender?: (menu: ReactNode) => ReactNode;\r\n\r\n /**\r\n * Style of the dropdown menu\r\n */\r\n overlayStyle?: React.CSSProperties;\r\n\r\n /**\r\n * Placement of the dropdown menu. Possible values: 'topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight'\r\n */\r\n placement?:\r\n | 'topLeft'\r\n | 'topCenter'\r\n | 'topRight'\r\n | 'bottomLeft'\r\n | 'bottomCenter'\r\n | 'bottomRight';\r\n\r\n /**\r\n * Triggers for showing the overlay. Possible values: 'click', 'hover', 'contextMenu'\r\n */\r\n trigger?: ('click' | 'hover' | 'contextMenu')[];\r\n\r\n /**\r\n * If true, the dropdown is opened\r\n */\r\n open?: boolean;\r\n\r\n /**\r\n * A function to be called when visible changes\r\n */\r\n onOpenChange?: (visible: boolean) => void;\r\n\r\n /**\r\n * Child elements of the Dropdown component\r\n */\r\n children?: ReactNode;\r\n\r\n /**\r\n * Menu items\r\n */\r\n menu?: MenuProps;\r\n\r\n /**\r\n * If true, the loading icon will be shown\r\n */\r\n loading?: boolean;\r\n\r\n /**\r\n * If true, the dropdown will be shown as a button\r\n */\r\n button?: boolean;\r\n\r\n /**\r\n * when button is true, the onClick function will be called\r\n */\r\n onClick?: () => void;\r\n}\r\n\r\nexport const MIDropdown: React.FC<AtDropdownProps> = ({\r\n arrow = false,\r\n autoAdjustOverflow = true,\r\n disabled = false,\r\n overlayStyle = {},\r\n placement = 'bottomLeft',\r\n trigger = ['hover'],\r\n loading = false,\r\n ...props\r\n}) => {\r\n if (loading || props.button) {\r\n return (\r\n <Dropdown.Button\r\n arrow={arrow}\r\n autoAdjustOverflow={autoAdjustOverflow}\r\n disabled={disabled}\r\n overlayStyle={overlayStyle}\r\n placement={placement}\r\n trigger={trigger}\r\n loading={loading}\r\n {...props}\r\n >\r\n {props.children}\r\n </Dropdown.Button>\r\n );\r\n }\r\n return (\r\n <Dropdown\r\n arrow={arrow}\r\n autoAdjustOverflow={autoAdjustOverflow}\r\n disabled={disabled}\r\n overlayStyle={overlayStyle}\r\n placement={placement}\r\n trigger={trigger}\r\n {...props}\r\n >\r\n {props.children}\r\n </Dropdown>\r\n );\r\n};\r\n\r\n\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledMlIconText = styled.div`\r\n`;\r\n","import React from 'react';\r\nimport { AtIcon, AtIconProps, AtText, AtTextProps } from '../../atoms';\r\nimport { StyledMlIconText } from './styles';\r\n\r\nexport interface MlIconTextProps {\r\n /**\r\n * The icon properties\r\n */\r\n iconProps: AtIconProps;\r\n /**\r\n * The text of the icon\r\n */\r\n text: string;\r\n /**\r\n * The text properties\r\n */\r\n textProps?: AtTextProps;\r\n}\r\n\r\nexport const MlIconText: React.FC<MlIconTextProps> = ({ iconProps: { style = {}, ...iconProps }, text, textProps = {} }) => {\r\n return <StyledMlIconText> \r\n <AtIcon {...iconProps} style={{ marginRight: 5, height: 20, ...style }} />\r\n <AtText {...textProps}>{text}</AtText>\r\n </StyledMlIconText>\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledMlInfoList = styled.div`\r\n & .description {\r\n margin-bottom: 25px;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { StyledMlInfoList } from './styles';\r\nimport { AtIcon, AtIconProps, AtText, AtTitle } from '../../atoms';\r\nimport { OrCol, OrRow } from '../../organisms';\r\nimport { MlIconText } from '../MlIconText';\r\n\r\n\r\nexport interface MlInfoListProps {\r\n /**\r\n * Component title\r\n */\r\n title?: string;\r\n /**\r\n * Component title level\r\n */\r\n titleLevel?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * Component description\r\n */\r\n description?: string;\r\n /**\r\n * List of label value pairs\r\n */\r\n items?: {icon: AtIconProps['name']; value: string | (() => React.ReactElement);}[];\r\n}\r\n\r\nexport const MlInfoList: React.FC<MlInfoListProps> = ({title, titleLevel = 4, description, items}) => {\r\n return <StyledMlInfoList>\r\n {title && <AtTitle level={titleLevel}>{title}</AtTitle>}\r\n {description && <AtText>{description}</AtText>}\r\n {items?.map((item, index) => {\r\n return <OrRow $paddingTop={10}>\r\n <OrCol span={24} key={index} style={{ flexDirection: 'row' }}>\r\n {\r\n typeof item.value === 'string' \r\n ? <MlIconText iconProps={{ name: item.icon }} text={item.value} />\r\n : <>\r\n <AtIcon name={item.icon} style={{ marginRight: 5 }}/>\r\n <>{item.value()}</>\r\n </>\r\n }\r\n </OrCol>\r\n </OrRow>;\r\n })}\r\n </StyledMlInfoList>;\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\nimport List from 'antd/es/list';\r\nimport { LabeledValue } from 'antd/es/select';\r\n\r\nexport const StyledList = styled(List<LabeledValue>)`\r\n & .ant-form-item-label{\r\n padding-top: 10px;\r\n }\r\n\r\n & .add-btn{\r\n margin: 0 auto;\r\n display: flex;\r\n }\r\n \r\n & .ant-form-item {\r\n margin-bottom: 0;\r\n }\r\n\r\n & .ant-form-item .ant-list-item-action li {\r\n padding: 0;\r\n }\r\n\r\n & .ant-form-item .ant-form-item-control-input-content li{\r\n padding-top: 0;\r\n }\r\n\r\n & .ant-col.ant-form-item-label {\r\n padding: 0;\r\n }\r\n\r\n & .ant-list-item .ant-list-item-action {\r\n margin-left: 5px;\r\n }\r\n \r\n & .ant-list-item .ant-select {\r\n flex: 1;\r\n }\r\n\r\n &.ant-list > button{\r\n display: flex;\r\n margin: 15px auto;\r\n margin-bottom: 0;\r\n width: 100%;\r\n }\r\n\r\n & .ant-list-empty-text {\r\n display: none!important;\r\n }\r\n`;","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { List, Skeleton } from 'antd';\r\nimport { AtButton, AtButtonProps, AtIcon, AtText, AtTextInput } from '../../atoms';\r\nimport { MlFormItem, MlFromItemProps } from '../MlFormItem';\r\nimport Form, { RuleObject } from 'antd/es/form';\r\nimport { MlAutocompleteSearch } from '../MlAutocompleteSearch';\r\nimport { LabeledValue } from 'antd/es/select';\r\nimport { OrRow } from '../../organisms';\r\nimport { StyledList } from './styles';\r\nimport { SelectProps } from 'antd';\r\n//TODO: Variant for the type text is not working properly, it needs to be fixed\r\nexport interface MlInputListProps{\r\n /**\r\n * The base key for the input list\r\n */\r\n baseKey?: string;\r\n /**\r\n * If the input list is within a form\r\n */\r\n withinForm?: boolean;\r\n /**\r\n * If the input list is loading\r\n */\r\n loading?: boolean;\r\n /**\r\n * The list of items\r\n */\r\n list: LabeledValue[];\r\n /**\r\n * The label for the input list\r\n */\r\n rules?: RuleObject[];\r\n /**\r\n * The label for the input list\r\n */\r\n label: string;\r\n /**\r\n * The main label for the input list\r\n */\r\n mainLabel?: string;\r\n /**\r\n * The type of the list item\r\n */\r\n listItemType?: 'autocomplete' | 'text';\r\n /**\r\n * The country code\r\n */\r\n country?: string,\r\n /**\r\n * The google maps api key\r\n */\r\n GOOGLE_MAPS_API_KEY?: string,\r\n /**\r\n * The placeholder for the input\r\n */\r\n placeholder?: string,\r\n /**\r\n * The text for the bottom button\r\n */\r\n bottomButtonText?: string,\r\n /**\r\n * The type for the bottom button\r\n */\r\n bottomButtonType?: AtButtonProps['type'],\r\n /**\r\n * The icon for the bottom button\r\n */\r\n bottomButtonIcon?: React.ReactNode,\r\n /**\r\n * The function to fetch the place details\r\n */\r\n fetchPlaceDetails?: (id: string) => any;\r\n /**\r\n * The minimum number of items\r\n */\r\n minItems?: number;\r\n /**\r\n * Callback function that is fired when input changed\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelect?: SelectProps['onSelect'];\r\n}\r\n\r\nexport const MlInputList: React.FC<MlInputListProps> = ({\r\n baseKey = 'MlInputList',\r\n withinForm = false,\r\n loading = false,\r\n mainLabel,\r\n label,\r\n rules,\r\n list,\r\n listItemType = 'text',\r\n country,\r\n GOOGLE_MAPS_API_KEY,\r\n placeholder,\r\n bottomButtonText = 'Add',\r\n bottomButtonType = 'dashed',\r\n bottomButtonIcon,\r\n fetchPlaceDetails,\r\n minItems = 0,\r\n onSearch, \r\n onSelect\r\n}) => {\r\n const form = Form.useFormInstance();\r\n const [lastIndex, setLastIndex] = useState(list.length);\r\n const [inputValues, setInputValues] = useState<LabeledValue[]>(\r\n () => {\r\n return list.map((item, index) => ({ label: item.label, value: item.value, key: `${baseKey}-${index}` }))\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n const map = new Map();\r\n const keys = form ? Object.keys(form.getFieldsValue()).filter((key) => key.includes(baseKey)) : [];\r\n keys.forEach((key) => {\r\n map.set(key, false);\r\n })\r\n\r\n const fieldValuesCheck: any = inputValues.reduce((acc, item, index) => {\r\n map.set(`${baseKey}-${index}`, true);\r\n return {\r\n ...acc,\r\n [`${baseKey}-${index}`]: item.value\r\n }\r\n }, {})\r\n\r\n keys.forEach((key) => {\r\n if(!map.get(key)){\r\n fieldValuesCheck[key] = undefined;\r\n }\r\n })\r\n\r\n form && form.setFieldsValue(fieldValuesCheck)\r\n }, [inputValues])\r\n\r\n const onDelete = useCallback((index: number) => {\r\n setInputValues((prev) => {\r\n return prev.length > minItems ? \r\n prev.filter((item, currentIndex) => currentIndex !== index) :\r\n prev;\r\n })\r\n }, [])\r\n\r\n const onAdd = useCallback(() => {\r\n setInputValues((prev) => {\r\n return [...prev, { label: '', value: '', key: `${baseKey}-${lastIndex}` }]\r\n })\r\n setLastIndex((prev) => prev + 1);\r\n }, [lastIndex]);\r\n\r\n const getFormItemWrapper = (item: LabeledValue, index: number): React.ReactNode => {\r\n const mlFormItemProps: MlFromItemProps = {\r\n name: `${baseKey}-${index}`,\r\n rules: rules,\r\n label: `${label} ${index + 1}`,\r\n required: rules?.some((rule) => rule.required) ? true : false,\r\n }\r\n\r\n if(item.value) mlFormItemProps.initialValue = item.value as string;\r\n\r\n return <MlFormItem\r\n key={`${baseKey}-${index}`}\r\n {...mlFormItemProps}\r\n >\r\n {getListItem(item, index)}\r\n </MlFormItem>\r\n }\r\n\r\n const getListItem = (item: LabeledValue, index: number): React.ReactNode => {\r\n return <List.Item\r\n actions={[<AtButton icon={<AtIcon name='DeleteOutlined' />} onClick={() => onDelete(index)} />]}\r\n >\r\n {\r\n listItemType === 'text' ?\r\n <AtTextInput\r\n id={`${baseKey}-list-${item.key}`}\r\n value={item.label as string}\r\n onChange={(e) => {\r\n setInputValues((prev) => {\r\n return prev.map((prevItem) => {\r\n if (prevItem.key === item.key) {\r\n return { ...prevItem, value: e.target.value }\r\n }\r\n return prevItem;\r\n })\r\n })\r\n }}\r\n /> :\r\n <MlAutocompleteSearch\r\n id={`${baseKey}-list-${item.key}`}\r\n fieldName={`${baseKey}-${index}`}\r\n country={country}\r\n GOOGLE_MAPS_API_KEY={GOOGLE_MAPS_API_KEY}\r\n onSearch={onSearch}\r\n fetchPlaceDetails={fetchPlaceDetails}\r\n onSelectValue={(value, place_id) => {\r\n onSelect && onSelect(value, place_id)\r\n setInputValues((prev) => {\r\n return prev.map((prevItem) => {\r\n if (prevItem.key === item.key) {\r\n return { ...prevItem, value: value.place_id, label: value.name}\r\n }\r\n return prevItem;\r\n })\r\n })\r\n }}\r\n defaultOptions={item.value !== \"\" ? [ item ] : []}\r\n selectProps={{ \r\n placeholder: placeholder,\r\n }}\r\n />\r\n }\r\n </List.Item>\r\n }\r\n\r\n const getRenderItem = useCallback((item: LabeledValue, index: number) => {\r\n return withinForm ?\r\n getFormItemWrapper(item, index) :\r\n getListItem(item, index);\r\n }, [withinForm])\r\n\r\n return (\r\n <>\r\n {mainLabel && \r\n <OrRow $paddingBottom={20}>\r\n <AtText>{mainLabel}</AtText>\r\n </OrRow>\r\n }\r\n <StyledList\r\n className=\"input-list\"\r\n loading={loading}\r\n itemLayout=\"horizontal\"\r\n loadMore={\r\n loading ? \r\n <Skeleton avatar title={false} paragraph={{ rows: 1 }} active /> : \r\n <AtButton \r\n value={bottomButtonText} \r\n type={bottomButtonType}\r\n onClick={onAdd}\r\n icon={bottomButtonIcon}\r\n />\r\n }\r\n dataSource={inputValues}\r\n renderItem={getRenderItem}\r\n />\r\n </>\r\n );\r\n};","import { styled } from 'styled-components';\r\nimport {MlLoadingProps} from '.';\r\n\r\nexport const Container = styled.div<MlLoadingProps>`\r\n width: 100%;\r\n height: 100vh;\r\n ${({ $zIndex }) => ($zIndex ? `z-index: ${$zIndex};` : '')}\r\n background-color: #fafafa4d;\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n`;\r\n\r\nexport const LoadingContainer = styled.div`\r\n width: 25%;\r\n height: 25%;\r\n`;\r\n","import React from 'react';\r\nimport { Container, LoadingContainer } from './styles';\r\nimport Lottie from 'lottie-react';\r\nimport Loading from '../../../assets/lootieFiles/loading.json';\r\n\r\nexport interface MlLoadingProps {\r\n /**\r\n * zIndex of the loading\r\n */\r\n $zIndex?: number;\r\n}\r\n\r\nexport const MlLoading: React.FC<MlLoadingProps> = (props: MlLoadingProps) => {\r\n return (\r\n <Container {...props}>\r\n <LoadingContainer>\r\n <Lottie animationData={Loading} loop={true} />\r\n </LoadingContainer>\r\n </Container>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Pagination, PaginationProps } from 'antd';\r\n\r\nexport interface MlPaginationProps {\r\n /**\r\n * Current page number. (Controlled)\r\n */\r\n current?: number;\r\n\r\n /**\r\n * Default initial page number when the component is uncontrolled.\r\n */\r\n defaultCurrent?: number;\r\n\r\n /**\r\n * Default number of data items per page when the component is uncontrolled.\r\n */\r\n defaultPageSize?: number;\r\n\r\n /**\r\n * Disable pagination interaction.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Whether to hide the pager when there is only one page of data.\r\n */\r\n hideOnSinglePage?: boolean;\r\n\r\n /**\r\n * To customize the HTML content of the pagination item.\r\n * @param page The current page number.\r\n * @param type Type of the pagination item: 'page', 'prev', or 'next'.\r\n * @param originalElement The original React element.\r\n */\r\n itemRender?: PaginationProps['itemRender'];\r\n\r\n /**\r\n * Number of data items per page.\r\n */\r\n pageSize?: number;\r\n\r\n /**\r\n * Specify the size changer options for the pageSize select.\r\n */\r\n pageSizeOptions?: string[] | number[];\r\n\r\n /**\r\n * If true and size is not specified, the pagination will resize according to the window width.\r\n */\r\n responsive?: boolean;\r\n\r\n /**\r\n * Show fewer page items.\r\n */\r\n showLessItems?: boolean;\r\n\r\n /**\r\n * Determine whether to show the quick jumper input to directly jump to pages.\r\n * Can also be an object with the 'goButton' prop to customize the go button.\r\n */\r\n showQuickJumper?: boolean | { goButton: React.ReactNode };\r\n\r\n /**\r\n * Determine whether to show the pageSize select.\r\n * It will be true when the total number of items is greater than 50.\r\n */\r\n showSizeChanger?: boolean;\r\n\r\n /**\r\n * Show title for the page item.\r\n */\r\n showTitle?: boolean;\r\n\r\n /**\r\n * Custom function to display the total number of data items and the current range displayed.\r\n * @param total Total number of data items.\r\n * @param range Range of data items currently displayed, represented as [start, end].\r\n */\r\n showTotal?: (total: number, range: [number, number]) => React.ReactNode;\r\n\r\n /**\r\n * Whether to use simple mode for the pagination.\r\n */\r\n simple?: boolean;\r\n\r\n /**\r\n * Specify the size of the pagination component.\r\n * Can be set to 'default' or 'small'.\r\n */\r\n size?: 'default' | 'small';\r\n\r\n /**\r\n * Total number of data items.\r\n */\r\n total?: PaginationProps['total'];\r\n\r\n /**\r\n * Called when the page number or pageSize is changed.\r\n * @param page The resulting page number.\r\n * @param pageSize The resulting number of data items per page.\r\n */\r\n onChange?: (page: number, pageSize: number) => void;\r\n\r\n /**\r\n * Called when the pageSize is changed.\r\n * @param current The current page number.\r\n * @param size The new number of data items per page.\r\n */\r\n onShowSizeChange?: (current: number, size: number) => void;\r\n}\r\n\r\nexport const MlPagination: React.FC<MlPaginationProps> = ({defaultCurrent = 1, ...props}) => {\r\n return <Pagination defaultCurrent={defaultCurrent} {...props} />\r\n}\r\n\r\n","import { Radio } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { MlRadioGroupProps } from '.';\r\n\r\nexport const StyledRadioGroup = styled(Radio.Group)<MlRadioGroupProps>`\r\n ${({ orientation }) =>\r\n orientation === 'vertical' &&\r\n `&{\r\n flex-direction: column!important;\r\n display: flex!important;\r\n }`}\r\n\r\n ${({ fullWidth }) =>\r\n fullWidth\r\n ? ` .ant-radio-wrapper span.ant-radio+* {\r\n width: 100%;}`\r\n : ''}\r\n\r\n ${({ bordered, padding }) =>\r\n bordered\r\n ? `\r\n .ant-radio-wrapper {\r\n border: 1px solid #d9d9d9;\r\n border-radius: 10px;\r\n padding: ${padding};\r\n margin-bottom: 12px;\r\n width: 100%;\r\n }\r\n `\r\n : ''}\r\n\r\n ${({ cardChecked }) =>\r\n cardChecked\r\n ? ` \r\n .ant-radio-wrapper-checked {\r\n border: 1px solid #531DAB;\r\n }\r\n \r\n .ant-radio {\r\n position: absolute;\r\n left: -9999px;\r\n overflow: hidden;\r\n }`\r\n : ''}\r\n \r\n ${({ cardsIconOrientation }) =>\r\n cardsIconOrientation === 'row' &&\r\n `&{\r\n flex-direction: row!important;\r\n display: flex!important;\r\n }`}\r\n`;\r\n","import React, { ReactNode } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport { StyledRadioGroup } from './styles';\r\n\r\nexport interface MlRadioGroupProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The style type of radio button\r\n */\r\n buttonStyle?: 'outline' | 'solid';\r\n /**\r\n * Default selected value\r\n */\r\n defaultValue?: any;\r\n /**\r\n * Disable all radio buttons\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The name property of all input[type=\"radio\"] children\r\n */\r\n name?: string;\r\n /**\r\n * Set children optional\r\n */\r\n options?:\r\n | string[]\r\n | number[]\r\n | Array<{ label: ReactNode; value: string; disabled?: boolean }>;\r\n /**\r\n * Set Radio optionType\r\n */\r\n optionType?: 'default' | 'button';\r\n /**\r\n * The size of radio button style\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n /**\r\n * The callback function that is triggered when the state changes\r\n */\r\n onChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * border box\r\n */\r\n bordered?: boolean;\r\n /**\r\n * padding\r\n */\r\n padding?: string;\r\n /**\r\n * orientation\r\n */\r\n orientation?: 'horizontal' | 'vertical';\r\n /**\r\n * card icons group direction\r\n */\r\n cardsIconOrientation?: 'row' | 'column';\r\n /**\r\n * full width\r\n */\r\n fullWidth?: boolean;\r\n /**\r\n * display card checked border\r\n */\r\n cardChecked?: boolean;\r\n}\r\n\r\nexport const MlRadioGroup: React.FC<MlRadioGroupProps> = ({\r\n buttonStyle = 'outline',\r\n disabled = false,\r\n optionType = 'default',\r\n size = 'middle',\r\n padding = '5px 10px',\r\n orientation = 'horizontal',\r\n fullWidth = false,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledRadioGroup\r\n fullWidth={fullWidth}\r\n orientation={orientation}\r\n buttonStyle={buttonStyle}\r\n disabled={disabled}\r\n optionType={optionType}\r\n size={size}\r\n padding={padding}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import React, { ChangeEvent, ReactNode } from 'react';\r\nimport { Input } from 'antd';\r\n\r\nexport interface AtTextInputProps {\r\n /**\r\n * The label text displayed after (on the right side of) the input field\r\n */\r\n addonAfter?: ReactNode;\r\n /**\r\n * The label text displayed before (on the left side of) the input field\r\n */\r\n addonBefore?: ReactNode;\r\n /**\r\n * If allow to remove input content with clear icon\r\n */\r\n allowClear?: boolean | { clearIcon?: ReactNode };\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * The initial input content\r\n */\r\n defaultValue?: string;\r\n /**\r\n * Whether the input is disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * The maximum number of characters in Input\r\n */\r\n maxLength?: number;\r\n /**\r\n * Set validation status\r\n */\r\n status?: 'error' | 'warning' | undefined;\r\n /**\r\n * Whether to show character count\r\n */\r\n showCount?: boolean;\r\n /**\r\n * Placeholder text to display into the input\r\n */\r\n placeholder?: string;\r\n /**\r\n * The prefix icon for the Input\r\n */\r\n prefix?: ReactNode;\r\n /**\r\n * The size of the input box. Note: in the context of a form, the middle size is used\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * The suffix icon for the Input\r\n */\r\n suffix?: ReactNode;\r\n /**\r\n * The input content value\r\n */\r\n value?: string;\r\n /**\r\n * Callback when user input\r\n */\r\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const AtTextInput: React.FC<AtTextInputProps> = ({\r\n allowClear = false,\r\n bordered = true,\r\n size = 'middle',\r\n status,\r\n disabled = false,\r\n showCount = false,\r\n placeholder,\r\n ...props\r\n}) => {\r\n return <Input\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n bordered={bordered}\r\n size={size}\r\n status={status}\r\n disabled={disabled}\r\n showCount={showCount}\r\n {...props} />;\r\n};\r\n","import React from 'react';\r\nimport { AtTextInputProps } from '../../atoms/AtTextInput';\r\nimport { Input } from 'antd';\r\n\r\nexport interface MlSearchBoxProps extends AtTextInputProps {\r\n /**\r\n * Prefix on search Input\r\n */\r\n inputPrefixCls?: string;\r\n /**\r\n * On search function\r\n */\r\n onSearch?: (\r\n value: string,\r\n event?:\r\n | React.ChangeEvent<HTMLInputElement>\r\n | React.MouseEvent<HTMLElement>\r\n | React.KeyboardEvent<HTMLInputElement>,\r\n ) => void;\r\n /**\r\n * Input loading on search\r\n */\r\n loading?: boolean;\r\n /**\r\n * Element for enter button\r\n */\r\n enterButton?: React.ReactNode;\r\n}\r\n\r\nexport const MlSearchBox: React.FC<MlSearchBoxProps> = ({\r\n allowClear = false,\r\n bordered = true,\r\n disabled = false,\r\n showCount = false,\r\n loading = false,\r\n ...props\r\n}) => {\r\n return (\r\n <Input.Search\r\n allowClear={allowClear}\r\n bordered={bordered}\r\n disabled={disabled}\r\n showCount={showCount}\r\n loading={loading}\r\n {...props}\r\n type=\"search\"\r\n />\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCard = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n margin: 12px 0;\r\n gap: 5px;\r\n width: 100%;\r\n`;\r\nexport const StyledContainer = styled.div`\r\n margin-left: 16px;\r\n width: 80%;\r\n`;\r\n\r\nexport const StyledContainerText = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n min-width: 60px;\r\n height: 60px;\r\n border-radius: 50%;\r\n background-color: #6c369c;\r\n`;\r\n","import React from 'react';\r\nimport { StyledCard, StyledContainer, StyledContainerText } from './styles';\r\nimport { AtText, AtTitle } from '../../atoms';\r\n\r\nexport interface MlServicesCardProps {\r\n title: string;\r\n description: string;\r\n price: number;\r\n value: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const MlServicesCard: React.FC<MlServicesCardProps> = ({\r\n title,\r\n description,\r\n price,\r\n}) => {\r\n return (\r\n <StyledCard key={title}>\r\n <StyledContainerText>\r\n <AtText color=\"white\" $fontSize={20}>\r\n {price}\r\n </AtText>\r\n </StyledContainerText>\r\n <StyledContainer>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {title}\r\n </AtTitle>\r\n <AtText $width={14}>{description}</AtText>\r\n </StyledContainer>\r\n </StyledCard>\r\n );\r\n};\r\n","import { Tooltip, TooltipProps } from 'antd';\r\nimport React from 'react';\r\n\r\nexport interface MlTooltipProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Tooltip text\r\n */\r\n title?: TooltipProps['title'];\r\n /**\r\n * Tooltip trigger mode. Could be multiple by passing an array\r\n */\r\n trigger?: TooltipProps['trigger'];\r\n /**\r\n * The position of the tooltip relative to the target, which can be one of top left right bottom topLeft topRight bottomLeft bottomRight leftTop leftBottom rightTop rightBottom\r\n */\r\n placement?: TooltipProps['placement'];\r\n}\r\n\r\nexport const MlTooltip: React.FC<MlTooltipProps> = ({ children, ...props }) => {\r\n return <Tooltip {...props}>{children}</Tooltip>;\r\n};\r\n","import { Upload } from \"antd\";\r\nimport { styled } from \"styled-components\";\r\nimport { MlUploadProps } from \".\";\r\n\r\nexport const StyledUpload = styled(Upload)<MlUploadProps>`\r\n & .ant-upload.ant-upload-select {\r\n ${({ $fullWidth }) => ($fullWidth ? 'width: 100%' : '')};\r\n }\r\n`;","import { UploadProps } from 'antd';\r\nimport { useCallback } from 'react';\r\nimport { AtButton, AtIcon, AtText } from '../../atoms';\r\nimport { StyledUpload } from './styles';\r\nimport { OrCol } from '../../organisms';\r\nimport Dragger from 'antd/lib/upload/Dragger';\r\n\r\nexport interface MlUploadProps extends UploadProps {\r\n /**\r\n * The type of upload\r\n */\r\n mode?: 'drag' | 'basic';\r\n /**\r\n * The title of the upload\r\n */\r\n title?: string;\r\n /**\r\n * The hint of the upload\r\n */\r\n hint?: string;\r\n /**\r\n * The width of the upload\r\n */\r\n $fullWidth?: boolean;\r\n /**\r\n * The maximum number of files to upload\r\n */\r\n maxCount?: number;\r\n /**\r\n * The name of the field\r\n */\r\n fieldName?: string;\r\n /**\r\n * The type of the list\r\n */\r\n listType?: UploadProps['listType'];\r\n /**\r\n * The list of files\r\n */\r\n fileList?: [any];\r\n}\r\n\r\nexport const MlUpload: React.FC<MlUploadProps> = ({\r\n mode,\r\n title,\r\n hint,\r\n fileList,\r\n ...props\r\n}) => {\r\n const dummyRequest: UploadProps['customRequest'] = useCallback(\r\n (options: any) => {\r\n setTimeout(() => {\r\n if (options.onSuccess) options.onSuccess('ok');\r\n }, 0);\r\n },\r\n [],\r\n );\r\n\r\n const getUploadComponent = useCallback(\r\n ({ mode, title, hint, $fullWidth, ...props }: MlUploadProps) => {\r\n if (mode === 'drag') {\r\n return (\r\n <Dragger\r\n name={`${props.fieldName ?? 'Upload'}File`}\r\n customRequest={dummyRequest}\r\n {...props}\r\n >\r\n <AtIcon\r\n style={{ fontSize: 36, color: '#6C369C' }}\r\n name=\"InboxOutlined\"\r\n />\r\n <OrCol $paddingTop={15}>\r\n {title && <AtText strong={false}>{title}</AtText>}\r\n {hint && <AtText type=\"secondary\">{hint}</AtText>}\r\n </OrCol>\r\n </Dragger>\r\n );\r\n } else {\r\n return (\r\n <StyledUpload\r\n name={`${props.fieldName ?? 'Upload'}File`}\r\n customRequest={dummyRequest}\r\n $fullWidth={$fullWidth}\r\n fileList={fileList}\r\n isImageUrl={(file) => {\r\n const fileAux = fileList?.find((f) => f.uid === file.uid);\r\n let isValid = true;\r\n if (fileAux && fileAux.isImage === false) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n }}\r\n {...props}\r\n >\r\n <AtButton\r\n $fullWidth={$fullWidth}\r\n icon={<AtIcon name=\"UploadOutlined\" />}\r\n value={title}\r\n />\r\n </StyledUpload>\r\n );\r\n }\r\n },\r\n [props],\r\n );\r\n\r\n return getUploadComponent({ mode, title, hint, ...props });\r\n};\r\n","export * from './MlAutocompleteSearch';\nexport * from './MlAutocompleteSearchText';\nexport * from './MlBreadCrumb';\nexport * from './MlCardIcon';\nexport * from './MlCarousel';\nexport * from './MlCheckboxGroup';\nexport * from './MlCodeInput';\nexport * from './MlDropdown';\nexport * from './MlFormItem';\nexport * from './MlIconText';\nexport * from './MlInfoList';\nexport * from './MlInputList';\nexport * from './MlLoading';\nexport * from './MlPagination';\nexport * from './MlPlanCard';\nexport * from './MlRadioGroup';\nexport * from './MlSearchBox';\nexport * from './MlServicesCard';\nexport * from './MlSubscriptionCard';\nexport * from './MlTooltip';\nexport * from './MlUpload';\n","import React, { useMemo } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport {\r\n MlRadioGroup,\r\n MlSubscriptionCard,\r\n MlSubscriptionCardProps,\r\n} from '../../molecules';\r\nimport { OrActiveCards } from '../OrActiveCards';\r\n\r\nexport interface OrPlanCardsProps {\r\n /**\r\n * Active subscriptions\r\n */\r\n activeSubscriptions?: Array<{ title: string; description: string }>;\r\n /**\r\n * subscriptions onChange event\r\n */\r\n subscriptionOnChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * Plans and Subscriptions\r\n */\r\n subscriptions: Array<MlSubscriptionCardProps>;\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n}\r\n\r\nexport const OrPlanCards: React.FC<OrPlanCardsProps> = ({\r\n subscriptions,\r\n activeSubscriptions,\r\n subscriptionOnChange,\r\n value,\r\n}) => {\r\n const subscriptionFixed = useMemo(\r\n () =>\r\n subscriptions.map((subscription) => ({\r\n label: <MlSubscriptionCard {...subscription} />,\r\n value: subscription.value,\r\n disabled: subscription.disabled,\r\n })),\r\n [subscriptions],\r\n );\r\n return (\r\n <>\r\n <OrActiveCards items={activeSubscriptions} type=\"secondary\" />\r\n <MlRadioGroup\r\n onChange={subscriptionOnChange}\r\n options={subscriptionFixed}\r\n bordered\r\n size=\"large\"\r\n fullWidth={true}\r\n padding=\"24px\"\r\n value={value}\r\n />\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const StyledCoinsContainer = styled.div`\r\n display: grid;\r\n grid-template-columns: repeat(3, 1fr);\r\n gap: 16px;\r\n`;\r\n","import React from 'react';\r\nimport { OrTicketCardProps, OrTicketCard } from '../OrTicketCard';\r\nimport { StyledCoinsContainer } from './styles';\r\n\r\nexport interface OrCoinTableProps {\r\n /**\r\n * List of coins available\r\n */\r\n coinsAvailable: Array<OrTicketCardProps>;\r\n /**\r\n * coins onClick | onChange event\r\n */\r\n coinsOnChange?: OrTicketCardProps['onChange'];\r\n /**\r\n * item selected\r\n */\r\n itemSelected?: number;\r\n /**\r\n * Used for setting the currently selected value for the input card custom type\r\n */\r\n inputValue?: any;\r\n}\r\n\r\nexport const OrCoinTable: React.FC<OrCoinTableProps> = ({\r\n coinsAvailable,\r\n coinsOnChange,\r\n itemSelected,\r\n inputValue,\r\n}) => {\r\n return (\r\n <StyledCoinsContainer>\r\n {coinsAvailable?.map((coinDetails, i) => {\r\n return (\r\n <OrTicketCard\r\n $borderColor={itemSelected === i ? 'violet' : 'gray'}\r\n key={i}\r\n {...coinDetails}\r\n onChange={coinsOnChange}\r\n inputValue={inputValue}\r\n />\r\n );\r\n })}\r\n </StyledCoinsContainer>\r\n );\r\n};\r\n","import { AtTitle } from '../../atoms';\r\nimport { OrActiveCards } from '../OrActiveCards';\r\nimport { OrCoinTable } from '../OrCoinTable';\r\nimport { OrTicketCardProps } from '../OrTicketCard';\r\n\r\nexport interface OrTicketsProps {\r\n /**\r\n * Tickets Title\r\n */\r\n title?: string;\r\n /**\r\n * Active Tickets\r\n */\r\n activeTickets?: Array<{ title: string; description: string }>;\r\n /**\r\n * Coins available\r\n */\r\n coinsAvailable: Array<OrTicketCardProps>;\r\n /**\r\n * coins onClick | onChange event\r\n */\r\n onChange?: OrTicketCardProps['onChange'];\r\n /**\r\n * item selected\r\n */\r\n itemSelected?: number;\r\n /**\r\n * Used for setting the currently selected value for the input card custom type\r\n */\r\n inputValue?: any;\r\n}\r\n\r\nexport const OrTickets: React.FC<OrTicketsProps> = ({\r\n itemSelected,\r\n title,\r\n activeTickets,\r\n onChange,\r\n coinsAvailable,\r\n inputValue,\r\n}) => (\r\n <>\r\n <AtTitle level={5}>{title}</AtTitle>\r\n <OrActiveCards items={activeTickets} fontSize={16} />\r\n <OrCoinTable\r\n itemSelected={itemSelected}\r\n coinsAvailable={coinsAvailable}\r\n coinsOnChange={onChange}\r\n inputValue={inputValue}\r\n />\r\n </>\r\n);\r\n","import { styled } from 'styled-components';\r\nimport { OrRowProps } from '.';\r\nimport { Row } from 'antd';\r\n\r\nexport const StyledRow = styled(Row)<OrRowProps>`\r\n flex: 1;\r\n ${({ $backgroundColor }) =>\r\n $backgroundColor ? `background-color: ${$backgroundColor}` : ''};\r\n ${({ $backgroundSrc }) =>\r\n $backgroundSrc ? `background-image: url(${$backgroundSrc})` : ''};\r\n object-fit: cover;\r\n ${({ $paddingTop }) => ($paddingTop ? `padding-top: ${$paddingTop}px` : '')};\r\n ${({ $paddingBottom }) =>\r\n $paddingBottom ? `padding-bottom: ${$paddingBottom}px` : ''};\r\n ${({ $paddingRight }) =>\r\n $paddingRight ? `padding-right: ${$paddingRight}px` : ''};\r\n ${({ $paddingLeft }) =>\r\n $paddingLeft ? `padding-left: ${$paddingLeft}px` : ''};\r\n ${({ $paddingVertical }) =>\r\n $paddingVertical\r\n ? `padding-top: ${$paddingVertical}px; padding-bottom: ${$paddingVertical}px`\r\n : ''};\r\n ${({ $paddingHorizontal }) =>\r\n $paddingHorizontal\r\n ? `padding-left: ${$paddingHorizontal}px; padding-right: ${$paddingHorizontal}px`\r\n : ''};\r\n ${({ $gap }) => ($gap ? `gap: ${$gap}px` : '')}\r\n ${({ $gapVertical }) =>\r\n $gapVertical ? `row-gap: ${$gapVertical}px` : ''};\r\n ${({ $gapHorizontal }) =>\r\n $gapHorizontal ? `column-gap: ${$gapHorizontal}px` : ''};\r\n`;\r\n","import React from 'react';\r\nimport { Gutter } from 'antd/es/grid/row';\r\nimport { StyledRow } from './styles';\r\nimport { RowProps } from 'antd';\r\n\r\nexport interface OrRowProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Vertical alignment\r\n */\r\n align?: RowProps['align'];\r\n /**\r\n * Container background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Spacing between grids, could be a number or a object like { xs: 8, sm: 16, md: 24}. Or you can use array to make horizontal and vertical spacing work at the same time [horizontal, vertical]\r\n */\r\n gutter?: Gutter | object | [Gutter, Gutter];\r\n /**\r\n * Horizontal arrangement\r\n */\r\n justify?: RowProps['justify'];\r\n /**\r\n * Auto wrap line\r\n */\r\n wrap?: boolean;\r\n /**\r\n * Children of OrRow\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Container padding top in px\r\n */\r\n $paddingTop?: number;\r\n /**\r\n * Container padding Bottom in px\r\n */\r\n $paddingBottom?: number;\r\n /**\r\n * Container padding Right in px\r\n */\r\n $paddingRight?: number;\r\n /**\r\n * Container padding Left in px\r\n */\r\n $paddingLeft?: number;\r\n /**\r\n * Container padding Vertical in px\r\n */\r\n $paddingVertical?: number;\r\n /**\r\n * Container padding Horizontal in px\r\n */\r\n $paddingHorizontal?: number;\r\n /**\r\n * gap\r\n */\r\n $gap?: number;\r\n /**\r\n * gap vertical\r\n */\r\n $gapVertical?: number;\r\n /**\r\n * gap horizontal\r\n */\r\n $gapHorizontal?: number;\r\n /**\r\n * Custom styles properties\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * On click event\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n /**\r\n * Background color\r\n */\r\n $backgroundColor?: string;\r\n /**\r\n * Custom class name\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const OrRow: React.FC<OrRowProps> = ({\r\n align = 'top',\r\n gutter = 0,\r\n justify = 'start',\r\n wrap = true,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledRow\r\n align={align}\r\n gutter={gutter}\r\n justify={justify}\r\n wrap={wrap}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledRow>\r\n );\r\n};\r\n","import { RowProps } from \"antd\";\r\nimport { AtButton } from \"../../atoms\";\r\nimport { OrRow } from \"../OrRow\";\r\n\r\nexport interface OrTwoButtons {\r\n /**\r\n * Cancel button title\r\n */\r\n leftButtonTitle: string;\r\n /**\r\n * Confirm button title\r\n */\r\n rightButtonTitle: string;\r\n /**\r\n * Cancel onClick Event\r\n */\r\n leftButtonOnClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * Confirm onClick Event\r\n */\r\n rightButtonOnClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * gap between buttons\r\n */\r\n gap?: number;\r\n /**\r\n * justify buttons\r\n */\r\n justify?: RowProps['justify']\r\n}\r\n\r\nexport const OrTwoButtons: React.FC<OrTwoButtons> = (\r\n {\r\n leftButtonTitle, \r\n justify = 'end', \r\n leftButtonOnClick, \r\n rightButtonOnClick, \r\n rightButtonTitle, \r\n gap = 20\r\n }\r\n ) => (\r\n <OrRow wrap={false} justify={justify} $gap={gap} $paddingTop={20}>\r\n <AtButton type='default' value={leftButtonTitle} onClick={leftButtonOnClick} />\r\n <AtButton type='primary' value={rightButtonTitle} onClick={rightButtonOnClick} />\r\n </OrRow>\r\n);","import React, { ReactNode } from 'react';\r\nimport { OrTabs } from '../OrTab';\r\nimport { RadioChangeEvent, TabsProps } from 'antd';\r\nimport { OrTicketCardProps } from '../OrTicketCard';\r\nimport { MlSubscriptionCardProps } from '../../molecules/MlSubscriptionCard';\r\nimport { OrPlanCards } from '../OrPlanCards';\r\nimport { OrTickets } from '../OrTickets';\r\nimport { OrTwoButtons } from '../OrTwoButtons';\r\n\r\nexport interface OrAssignBalanceProps {\r\n /**\r\n * Tickets page title\r\n */\r\n ticketTitle: string;\r\n /**\r\n * Width of the Drawer dialog\r\n */\r\n width?: string | number;\r\n /**\r\n * The z-index of the Drawer\r\n */\r\n zIndex?: number;\r\n /**\r\n * tab1 title\r\n */\r\n firstTabTitle: ReactNode;\r\n /**\r\n * tab2 title\r\n */\r\n secondTabTitle: ReactNode;\r\n /**\r\n * Active subscriptions\r\n */\r\n activeSubscriptions?: Array<{ title: string, description: string }>\r\n /**\r\n * Active Tickets\r\n */\r\n activeTickets?: Array<{ title: string, description: string }>\r\n /**\r\n * Coins available\r\n */\r\n coinsAvailable: Array<OrTicketCardProps>\r\n /**\r\n * Cancel button title\r\n */\r\n cancelTitle: string;\r\n /**\r\n * Confirm button title\r\n */\r\n confirmTitle: string;\r\n /**\r\n * Plans and Subscriptions\r\n */\r\n subscriptions: Array<MlSubscriptionCardProps>;\r\n /**\r\n * Cancel onClick Event\r\n */\r\n cancelClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * Confirm onClick Event\r\n */\r\n confirmClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * subscriptions onChange event\r\n */\r\n subscriptionOnChange?: ((e: RadioChangeEvent) => void)\r\n /**\r\n * coins onClick | onChange event\r\n */\r\n coinsOnChange?: OrTicketCardProps['onChange']\r\n /**\r\n * item selected\r\n */\r\n coinSelected?: number;\r\n}\r\n\r\nexport const OrAssignBalance: React.FC<OrAssignBalanceProps> = (props) => {\r\n const {\r\n ticketTitle,\r\n activeSubscriptions,\r\n subscriptions,\r\n activeTickets,\r\n coinsAvailable,\r\n firstTabTitle,\r\n secondTabTitle,\r\n cancelTitle,\r\n confirmTitle,\r\n cancelClick,\r\n confirmClick,\r\n coinsOnChange,\r\n subscriptionOnChange,\r\n coinSelected\r\n } = props;\r\n\r\n const items: TabsProps['items'] = [\r\n {\r\n active: true,\r\n label: firstTabTitle,\r\n key: '1',\r\n children: <OrPlanCards activeSubscriptions={activeSubscriptions} subscriptions={subscriptions} subscriptionOnChange={subscriptionOnChange} />\r\n },\r\n {\r\n label: secondTabTitle,\r\n key: '2',\r\n children: <OrTickets itemSelected={coinSelected} title={ticketTitle} activeTickets={activeTickets} coinsAvailable={coinsAvailable} onChange={coinsOnChange} />\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n <OrTabs items={items} hideExtra />\r\n <OrTwoButtons leftButtonTitle={cancelTitle} rightButtonTitle={confirmTitle} leftButtonOnClick={cancelClick} rightButtonOnClick={confirmClick} />\r\n </>\r\n )\r\n}","import { styled } from 'styled-components';\r\nimport { OrColProps } from '.';\r\nimport { Col } from 'antd';\r\n\r\nexport const StyledCol = styled(Col)<OrColProps>`\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n ${({ $position }) => ($position ? `position: ${$position}` : '')};\r\n ${({ $gap }) => ($gap ? `gap: ${$gap}px` : '')};\r\n ${({ $gapVertical }) =>\r\n $gapVertical ? `row-gap: ${$gapVertical}px` : ''};\r\n ${({ $gapHorizontal }) =>\r\n $gapHorizontal ? `column-gap: ${$gapHorizontal}px` : ''};\r\n ${({ xs }) =>\r\n (xs as any)?.hidden === true || (xs as number) === 0\r\n ? ''\r\n : 'display: flex;'}\r\n ${({ $flexDirection }) => \r\n $flexDirection ? `flex-direction: ${$flexDirection}` : ''};\r\n ${({ $backgroundSrc }) =>\r\n $backgroundSrc ? `background-image: url(${$backgroundSrc})` : ''};\r\n ${({ $justify }) => ($justify ? `justify-content: ${$justify}` : '')};\r\n ${({ $alignItems }) => ($alignItems ? ` align-items: ${$alignItems}` : '')};\r\n ${({ xs, $paddingTop }) =>\r\n (xs as any)?.$paddingTop || $paddingTop !== undefined\r\n ? `padding-top: ${(xs as any)?.$paddingTop ?? $paddingTop}px`\r\n : ''};\r\n ${({ xs, $paddingBottom }) =>\r\n (xs as any)?.$paddingBottom || $paddingBottom !== undefined\r\n ? `padding-bottom: ${(xs as any)?.$paddingBottom ?? $paddingBottom}px`\r\n : ''};\r\n ${({ xs, $paddingRight }) =>\r\n (xs as any)?.$paddingRight || $paddingRight !== undefined\r\n ? `padding-right: ${(xs as any)?.$paddingRight ?? $paddingRight}px`\r\n : ''};\r\n ${({ xs, $paddingLeft }) =>\r\n (xs as any)?.$paddingLeft || $paddingLeft !== undefined\r\n ? `padding-left: ${(xs as any)?.$paddingLeft ?? $paddingLeft}px`\r\n : ''};\r\n ${({ xs, $paddingVertical }) =>\r\n (xs as any)?.$paddingVertical || $paddingVertical !== undefined\r\n ? `padding-top: ${\r\n (xs as any)?.$paddingVertical ?? $paddingVertical\r\n }px; padding-bottom: ${\r\n (xs as any)?.$paddingVertical ?? $paddingVertical\r\n }px`\r\n : ''};\r\n ${({ xs, $paddingHorizontal }) =>\r\n (xs as any)?.$paddingHorizontal\r\n ? `padding-left: ${\r\n (xs as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px; padding-right: ${\r\n (xs as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px`\r\n : ''};\r\n\r\n @media (min-width: 768px) {\r\n ${({ md }) =>\r\n (md as any)?.hidden === true || (md as number) === 0\r\n ? ''\r\n : 'display: flex;'}\r\n ${({ md, $paddingTop }) =>\r\n (md as any)?.$paddingTop || $paddingTop !== undefined\r\n ? `padding-top: ${(md as any)?.$paddingTop ?? $paddingTop}px`\r\n : ''};\r\n ${({ md, $paddingBottom }) =>\r\n (md as any)?.$paddingBottom || $paddingBottom !== undefined\r\n ? `padding-bottom: ${(md as any)?.$paddingBottom ?? $paddingBottom}px`\r\n : ''};\r\n ${({ md, $paddingRight }) =>\r\n (md as any)?.$paddingRight || $paddingRight !== undefined\r\n ? `padding-right: ${(md as any)?.$paddingRight ?? $paddingRight}px`\r\n : ''};\r\n ${({ md, $paddingLeft }) =>\r\n (md as any)?.$paddingLeft || $paddingLeft !== undefined\r\n ? `padding-left: ${(md as any)?.$paddingLeft ?? $paddingLeft}px`\r\n : ''};\r\n ${({ md, $paddingVertical }) =>\r\n (md as any)?.$paddingVertical || $paddingVertical !== undefined\r\n ? `padding-top: ${\r\n (md as any)?.$paddingVertical ?? $paddingVertical\r\n }px; padding-bottom: ${\r\n (md as any)?.$paddingVertical ?? $paddingVertical\r\n }px`\r\n : ''};\r\n ${({ md, $paddingHorizontal }) =>\r\n (md as any)?.$paddingHorizontal\r\n ? `padding-left: ${\r\n (md as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px; padding-right: ${\r\n (md as any)?.$paddingHorizontal ?? $paddingHorizontal\r\n }px`\r\n : ''};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { StyledCol } from './styles';\r\n\r\nexport interface OrColProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Flex layout style\r\n */\r\n flex?: string | number;\r\n /**\r\n * The number of cells to offset Col from the left\r\n */\r\n offset?: number;\r\n /**\r\n * Raster order\r\n */\r\n order?: number;\r\n /**\r\n * The number of cells that raster is moved to the left\r\n */\r\n pull?: number;\r\n /**\r\n * The number of cells that raster is moved to the right\r\n */\r\n push?: number;\r\n /**\r\n * Raster number of cells to occupy, 0 corresponds to display: none\r\n */\r\n span?: number;\r\n /**\r\n * screen < 576px and also default setting, could be a span value or an object containing above props\r\n */\r\n xs?: number | object;\r\n /**\r\n * screen ≥ 576px, could be a span value or an object containing above props\r\n */\r\n sm?: number | object;\r\n /**\r\n * screen ≥ 768px, could be a span value or an object containing above props\r\n */\r\n md?: number | object;\r\n /**\r\n * screen ≥ 1200px, could be a span value or an object containing above props\r\n */\r\n xl?: number | object;\r\n /**\r\n * screen ≥ 1600px, could be a span value or an object containing above props\r\n */\r\n xxl?: number | object;\r\n /**\r\n * Children of Columns\r\n */\r\n\r\n children?: React.ReactNode;\r\n /**\r\n * Container background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Justify content\r\n */\r\n $justify?:\r\n | 'start'\r\n | 'end'\r\n | 'center'\r\n | 'space-around'\r\n | 'space-between'\r\n | 'space-evenly';\r\n /**\r\n * Container padding top in px\r\n */\r\n $paddingTop?: number;\r\n /**\r\n * Container padding Bottom in px\r\n */\r\n $paddingBottom?: number;\r\n /**\r\n * Container padding Right in px\r\n */\r\n $paddingRight?: number;\r\n /**\r\n * Container padding Left in px\r\n */\r\n $paddingLeft?: number;\r\n /**\r\n * Container padding Vertical in px\r\n */\r\n $paddingVertical?: number;\r\n /**\r\n * Container padding Horizontal in px\r\n */\r\n $paddingHorizontal?: number;\r\n /**\r\n * gap between columns\r\n */\r\n $gap?: number;\r\n /**\r\n * gap between columns horizontally\r\n */\r\n $gapVertical?: number;\r\n /**\r\n * gap between columns vertically\r\n */\r\n $gapHorizontal?: number;\r\n /**\r\n * align items\r\n */\r\n $alignItems?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';\r\n /**\r\n * Container position type (relative, absolute, fixed, sticky)\r\n */\r\n $position?: 'relative' | 'absolute' | 'fixed' | 'sticky';\r\n /**\r\n * onClick event\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n /**\r\n * Custom styles properties\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * Custom class name\r\n */\r\n className?: string;\r\n /**\r\n * Flex direction\r\n */\r\n $flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';\r\n}\r\n\r\nexport const OrCol: React.FC<OrColProps> = ({\r\n offset = 0,\r\n order = 0,\r\n pull = 0,\r\n push = 0,\r\n span = 0,\r\n $gap,\r\n $flexDirection = 'column',\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCol\r\n $gap={$gap}\r\n offset={offset}\r\n order={order}\r\n pull={pull}\r\n push={push}\r\n span={span}\r\n $flexDirection={$flexDirection}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledCol>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { MlCardProps } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtAvatar, AtText } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\n\r\nexport interface OrBasicUserInfoCardProps extends MlCardProps {\r\n /**\r\n * User first name\r\n */\r\n firstName: string;\r\n /**\r\n * User last name\r\n */\r\n lastName: string;\r\n /**\r\n * User phone\r\n */\r\n phone?: string;\r\n /**\r\n * User email\r\n */\r\n email?: string;\r\n /**\r\n * User avatar\r\n */\r\n avatar?: string;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrBasicUserInfoCard: React.FC<OrBasicUserInfoCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n firstName,\r\n lastName,\r\n phone,\r\n email,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 30,\r\n marginBottom: 16,\r\n }}\r\n >\r\n <OrCol>\r\n <AtAvatar\r\n icon={`${firstName.charAt(0)}${lastName.charAt(0)}`}\r\n size=\"large\"\r\n />\r\n </OrCol>\r\n <OrCol>\r\n <AtText $fontSize={20} strong>\r\n {`${firstName} ${lastName}`}\r\n </AtText>\r\n <AtText>{phone}</AtText>\r\n <AtText>{email}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { MlCardProps } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtText } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\n\r\nexport interface MlDetailsCardProps extends MlCardProps {\r\n /**\r\n * The items to display\r\n */\r\n items?: {\r\n title: React.ReactNode;\r\n content: React.ReactNode;\r\n }[];\r\n /**\r\n * the direction of the card details\r\n */\r\n direction?: 'row' | 'column';\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrCardDetails: React.FC<MlDetailsCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n items,\r\n direction = 'row',\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n {direction === 'row' ? (\r\n <>\r\n {items?.map(({ content, title }) => {\r\n return (\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'grid',\r\n gridTemplateColumns: '30% 70%',\r\n gap: 8,\r\n marginBottom: 16,\r\n }}\r\n >\r\n <AtText $fontSize={16} strong>\r\n {title}\r\n </AtText>\r\n <OrCol $alignItems=\"end\">{content}</OrCol>\r\n </OrRow>\r\n );\r\n })}\r\n </>\r\n ) : (\r\n <>\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n }}\r\n >\r\n {items?.map(({ content, title }) => {\r\n return (\r\n <OrCol>\r\n <AtText $fontSize={16} strong>\r\n {title}\r\n </AtText>\r\n <OrCol>{content}</OrCol>\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n </>\r\n )}\r\n </StyledCard>\r\n );\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport { MlRadioGroup } from '../../molecules';\r\nimport { MlCardIcon, MlCardIconProps } from '../../molecules/MlCardIcon';\r\n\r\nexport interface OrCardIconsGroupProps {\r\n /**\r\n * options onChange event\r\n */\r\n onChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * options\r\n */\r\n options: Array<MlCardIconProps>;\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n /**\r\n * card icons group direction\r\n */\r\n cardsIconOrientation?: 'row' | 'column';\r\n /**\r\n * disable card icons\r\n */\r\n disabled?: boolean;\r\n}\r\n\r\nexport const OrCardIconsGroup: React.FC<OrCardIconsGroupProps> = ({\r\n options,\r\n onChange,\r\n value,\r\n cardsIconOrientation = 'column',\r\n disabled = false,\r\n}) => {\r\n const optionsFixed = useMemo(\r\n () =>\r\n options.map((subscription) => ({\r\n label: <MlCardIcon {...subscription} />,\r\n value: subscription.value,\r\n })),\r\n [options],\r\n );\r\n return (\r\n <>\r\n <MlRadioGroup\r\n cardsIconOrientation={cardsIconOrientation}\r\n onChange={onChange}\r\n options={optionsFixed}\r\n disabled={disabled}\r\n bordered\r\n size=\"large\"\r\n fullWidth={true}\r\n padding=\"4px 10px\"\r\n value={value}\r\n buttonStyle=\"outline\"\r\n cardChecked={true}\r\n />\r\n </>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtIcon, AtText } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\nimport { MlCardProps } from '../OrCard';\r\n\r\nexport interface MlRequestCardProps extends MlCardProps {\r\n /**\r\n * The from direction\r\n */\r\n fromText: string;\r\n /**\r\n * The to direction\r\n */\r\n toText: string;\r\n /**\r\n * The pickup time\r\n */\r\n fromTime: string;\r\n /**\r\n * The dropoff time\r\n */\r\n toTime: string;\r\n /**\r\n * vehicle spare\r\n */\r\n vehicle?: React.ReactNode;\r\n /**\r\n * The request date\r\n */\r\n date?: string;\r\n /**\r\n * The component status\r\n */\r\n leftBadgeStatus?: React.ReactNode;\r\n}\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrCardRequestSummary: React.FC<MlRequestCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n fromText,\r\n fromTime,\r\n toText,\r\n toTime,\r\n date,\r\n vehicle,\r\n leftBadgeStatus,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n <OrRow\r\n justify={'space-between'}\r\n align={'middle'}\r\n style={{ marginBottom: 8 }}\r\n >\r\n <OrCol>{leftBadgeStatus}</OrCol>\r\n <OrCol $flexDirection=\"row\" $gapHorizontal={4} $alignItems=\"center\">\r\n <AtText>{vehicle}</AtText>\r\n <AtText>{date}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n <OrRow $gapHorizontal={20} align={'middle'}>\r\n <OrCol>\r\n <AtText $fontSize={16} strong>\r\n {fromText}\r\n </AtText>\r\n <AtText>{fromTime}</AtText>\r\n </OrCol>\r\n <OrCol>\r\n <AtIcon name=\"ArrowRightOutlined\" style={{ fontSize: '22px' }} />\r\n </OrCol>\r\n <OrCol>\r\n <AtText $fontSize={16} strong>\r\n {toText}\r\n </AtText>\r\n <AtText>{toTime}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n </StyledCard>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Collapse, CollapseProps } from 'antd';\r\n\r\nexport interface OrCollapseProps {\r\n /**\r\n * If true, Collapse renders as an Accordion.\r\n */\r\n accordion?: boolean;\r\n\r\n /**\r\n * Key of the active panel.\r\n * - In accordion mode, it's the key of the first panel.\r\n */\r\n activeKey?: string[] | string | number[] | number;\r\n\r\n /**\r\n * Toggles rendering of the border around the collapse block.\r\n */\r\n bordered?: boolean;\r\n\r\n /**\r\n * Specify whether the panels of children should be collapsible or the trigger area of collapsible.\r\n */\r\n collapsible?: 'header' | 'icon' | 'disabled';\r\n\r\n /**\r\n * Key of the initial active panel.\r\n */\r\n defaultActiveKey?: string[] | string | number[] | number;\r\n\r\n /**\r\n * Destroy inactive panel to improve performance.\r\n */\r\n destroyInactivePanel?: boolean;\r\n\r\n /**\r\n * Allow to customize the collapse icon.\r\n */\r\n expandIcon?: (panelProps: any) => React.ReactNode;\r\n\r\n /**\r\n * Set expand icon position.\r\n */\r\n expandIconPosition?: 'start' | 'end';\r\n\r\n /**\r\n * Make the collapse borderless and its background transparent.\r\n */\r\n ghost?: boolean;\r\n\r\n /**\r\n * Set the size of collapse.\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n\r\n /**\r\n * Callback function executed when the active panel is changed.\r\n */\r\n onChange?: (key: string | string[] | number | number[]) => void;\r\n\r\n /**\r\n * Collapse items content.\r\n * (You'll need to define ItemType according to the structure of your collapse items content).\r\n */\r\n items?: CollapseProps['items'];\r\n /**\r\n * Children of the collapse\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrCollapse: React.FC<OrCollapseProps> = ({ items, ...props }) => {\r\n return <Collapse items={items} {...props} />;\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { Layout } from 'antd';\r\nimport { OrContentProps } from '.';\r\n\r\nexport const StyledContent = styled(Layout)<OrContentProps>`\r\n ${({ $main }) => ($main ? `padding: 16px 20px;` : '')}\r\n ${({ $backgroundSrc }) => (\r\n $backgroundSrc ? `\r\n background: url(${$backgroundSrc}) no-repeat;\r\n background-size: 100% 400px;\r\n background-position: top;\r\n ` : ''\r\n )}\r\n overflow: auto;\r\n`;\r\n","import React from 'react';\r\nimport { LayoutProps } from 'antd';\r\nimport { StyledContent } from './styles';\r\n\r\nexport interface OrContentProps extends LayoutProps {\r\n /**\r\n * Is main content\r\n */\r\n $main?: boolean;\r\n /**\r\n * Image source background\r\n */\r\n $backgroundSrc?: string;\r\n}\r\n\r\nexport const OrContent: React.FC<OrContentProps> = (props) => (\r\n <StyledContent {...props}>{props.children}</StyledContent>\r\n);\r\n","import React from 'react';\r\nimport { AtText, AtTextProps } from '../../atoms/AtText';\r\n\r\nimport { OrCol, OrRow } from '..';\r\nimport { AtIcon } from '../../atoms';\r\nimport { gray } from \"../../../theme\"\r\n\r\nexport type Size = 'large' | 'middle' | 'small';\r\n\r\nconst sizes: { [key in Size]: { fontSize: number, height: number } } = {\r\n large: {\r\n fontSize: 20,\r\n height: 55\r\n },\r\n middle: {\r\n fontSize: 16,\r\n height: 48\r\n },\r\n small: {\r\n fontSize: 12,\r\n height: 30\r\n },\r\n};\r\n\r\nexport interface OrCopyInfoProps {\r\n text?: string;\r\n copyable?: boolean;\r\n size?: keyof typeof sizes\r\n id?: string;\r\n onCopy?: () => {}\r\n textProps?: AtTextProps\r\n}\r\n\r\nexport const OrCopyInfo: React.FC<OrCopyInfoProps> = ({\r\n text,\r\n copyable = true,\r\n size = \"middle\",\r\n onCopy,\r\n textProps\r\n}) => {\r\n return <OrRow\r\n $backgroundColor={gray[3]}\r\n $paddingVertical={8}\r\n $paddingHorizontal={8}\r\n justify={\"space-between\"}\r\n align={\"middle\"}\r\n style={{\r\n borderRadius: 8,\r\n height: sizes[size].height,\r\n }}>\r\n <OrCol\r\n $alignItems='center'\r\n $justify='center'\r\n flex={1}\r\n >\r\n <AtText\r\n {...textProps}\r\n $fontSize={sizes[size].fontSize}\r\n >\r\n {text}\r\n </AtText>\r\n </OrCol>\r\n {\r\n (copyable || textProps?.copyable) && <OrCol onClick={() => {\r\n navigator.clipboard.writeText(text ?? \"\")\r\n onCopy?.()\r\n }}\r\n style={{\r\n cursor: \"pointer\"\r\n }}\r\n >\r\n <AtIcon name='CopyOutlined' style={{\r\n fontSize: sizes[size].fontSize,\r\n }}\r\n height={sizes[size].fontSize}\r\n width={sizes[size].fontSize}\r\n />\r\n </OrCol>\r\n }\r\n </OrRow >\r\n\r\n};\r\n","import React from 'react';\r\nimport { OrCard } from '../../organisms';\r\nimport { AtText } from '../../atoms/AtText';\r\nimport SVG from 'react-inlinesvg';\r\nimport { OrRow, OrCol } from '../../organisms';\r\nexport interface OrCountryCardProps {\r\n /**\r\n * The ID for card\r\n */\r\n id?: string;\r\n /**\r\n * Country name\r\n **/\r\n name: string;\r\n /**\r\n * Country flag url\r\n **/\r\n flagSrc: string;\r\n /**\r\n * Mark item as selected\r\n */\r\n selected?: boolean;\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n}\r\n\r\nexport const OrCountryCard: React.FC<OrCountryCardProps> = ({\r\n selected = false,\r\n ...props\r\n}) => {\r\n return (\r\n <OrCard\r\n selected={selected}\r\n hoverable={true}\r\n bodyStyle={{ padding: '12px 24px' }}\r\n onClick={props.onClick}\r\n >\r\n <OrRow\r\n align={'middle'}\r\n justify={{ xs: 'center', md: 'start' }}\r\n gutter={24}\r\n >\r\n <OrCol>\r\n <SVG width={72} height={48} src={props.flagSrc} />\r\n </OrCol>\r\n <OrCol xs={{ offset: 1 }}>\r\n <AtText>{props.name}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n );\r\n};\r\n","import { Layout } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrLayoutProps } from '.';\r\nimport { gray, violet } from '../../../theme';\r\n\r\nexport const StyledLayout = styled(Layout)<OrLayoutProps>`\r\n ${({ $fullHeight }) => ($fullHeight ? `min-height: 100vh;` : '')}\r\n\r\n &\r\n .ant-layout-sider-children\r\n .ant-menu.ant-menu-inline-collapsed\r\n .ant-menu-submenu-selected\r\n > .ant-menu-submenu-title {\r\n color: ${gray[0]};\r\n background-color: ${violet[5]};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { StyledLayout } from './styles';\r\n\r\nexport interface OrLayoutProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Indicate if layout fill the height\r\n */\r\n $fullHeight?: boolean;\r\n /**\r\n * Whether contain Sider in children, don't have to assign it normally. Useful in ssr avoid style flickering\r\n */\r\n hasSider?: boolean;\r\n}\r\n\r\nexport const OrLayout: React.FC<OrLayoutProps> = (props) => (\r\n <StyledLayout {...props}>{props.children}</StyledLayout>\r\n);\r\n","import { Layout } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrSiderProps } from '.';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledSider = styled(Layout.Sider)<OrSiderProps>`\r\n ${({ $boxShadow }) => ($boxShadow ? `box-shadow: ${$boxShadow};` : '')}\r\n background-color: ${gray[0]} !important;\r\n`;\r\n","import React from 'react';\r\nimport { SiderProps } from 'antd';\r\nimport { StyledSider } from './styles';\r\n\r\nexport interface OrSiderProps {\r\n /**\r\n * Breakpoints of the responsive layout\r\n */\r\n breakpoint?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\r\n /**\r\n * Styled box shadow\r\n */\r\n $boxShadow?: string;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * To set the current status\tboolean\r\n */\r\n collapsed?: boolean;\r\n /**\r\n * Width of the collapsed sidebar, by setting to 0 a special trigger will appear\r\n */\r\n collapsedWidth?: number;\r\n /**\r\n * To set the initial status\r\n */\r\n defaultCollapsed?: boolean;\r\n /**\r\n * Width of the sidebar\r\n */\r\n width?: number | string;\r\n /**\r\n * The callback function, executed when breakpoints changed\r\n */\r\n onBreakpoint?: (broken: boolean) => void;\r\n /**\r\n * The callback function, executed by clicking the trigger or activating the responsive layout\r\n */\r\n onCollapse?: SiderProps['onCollapse'];\r\n}\r\n\r\nexport const OrSider: React.FC<OrSiderProps> = ({\r\n $boxShadow = '0px 2px 8px 0px rgba(0, 0, 0, 0.15);',\r\n collapsedWidth = 81,\r\n width = 200,\r\n ...props\r\n}) => (\r\n <StyledSider\r\n $boxShadow={$boxShadow}\r\n width={width}\r\n collapsedWidth={collapsedWidth}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledSider>\r\n);\r\n","import { Button } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { gray, violet } from '../../../theme';\r\n\r\nexport const CollapsedButton = styled(Button)`\r\n font-size: 16px;\r\n width: 20px !important;\r\n position: absolute;\r\n height: 66px !important;\r\n right: -19px;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto 0;\r\n background-color: ${gray[0]};\r\n border-radius: 0;\r\n\r\n & svg {\r\n font-size: 10px;\r\n }\r\n\r\n &:hover {\r\n background-color: ${gray[0]} !important;\r\n }\r\n\r\n &:after,\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n height: 0;\r\n width: 0;\r\n border-style: solid;\r\n }\r\n &:before {\r\n top: -1px;\r\n left: -2px;\r\n border-color: transparent ${gray[2]};\r\n border-width: 0px 33px 10px 0;\r\n }\r\n &:after {\r\n bottom: -1px;\r\n left: -2px;\r\n border-color: ${gray[2]} transparent;\r\n border-width: 0px 0px 10px 33px;\r\n }\r\n`;\r\n\r\nexport const LogoContainer = styled.div`\r\n height: 64px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: ${violet[8]};\r\n margin-bottom: 12px;\r\n`;\r\n\r\nexport const StyledMenuContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n height: calc(100% - 76px);\r\n overflow-y: auto;\r\n max-height: 100vh;\r\n`;\r\n","import { styled } from 'styled-components';\r\nimport { gray, violet } from '../../../theme';\r\n\r\nexport const StyledOrMenu = styled.div`\r\n & .ant-menu-submenu-selected > .ant-menu-submenu-title {\r\n color: ${violet[5]};\r\n }\r\n\r\n & .ant-menu-item {\r\n color: ${gray[12]};\r\n\r\n & path {\r\n fill: ${gray[12]};\r\n }\r\n\r\n &.ant-menu-item-selected {\r\n color: ${gray[0]};\r\n }\r\n }\r\n\r\n & .ant-menu-item-selected path {\r\n fill: ${gray[0]};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Menu, MenuProps } from 'antd';\r\nimport { StyledOrMenu } from './styles';\r\n\r\nexport interface OrMenuProps {\r\n /**\r\n * Array with the keys of default opened sub menus\r\n */\r\n defaultOpenKeys?: string[];\r\n /**\r\n * Array with the keys of default selected menu items\r\n */\r\n defaultSelectedKeys?: string[];\r\n /**\r\n * custom expand icon of submenu\r\n */\r\n expandIcon?: MenuProps['expandIcon'];\r\n /**\r\n * \tMenu item content\r\n */\r\n items?: MenuProps['items'];\r\n /**\r\n * Type of menu\r\n */\r\n mode?: 'vertical' | 'horizontal' | 'inline';\r\n /**\r\n * Allows selection of multiple items\r\n */\r\n multiple?: boolean;\r\n /**\r\n * Called when a menu item is clicked\r\n */\r\n onClick?: MenuProps['onClick'];\r\n /**\r\n * Called when a menu item is selected\r\n */\r\n onSelect?: MenuProps['onSelect'];\r\n /*\r\n * Array with the keys of opened sub menu\r\n */\r\n selectedKeys?: MenuProps['selectedKeys'];\r\n}\r\n\r\nexport const OrMenu: React.FC<OrMenuProps> = ({\r\n mode = 'vertical',\r\n multiple = false,\r\n ...props\r\n}) => {\r\n return <StyledOrMenu>\r\n <Menu mode={mode} multiple={multiple} {...props}/>\r\n </StyledOrMenu>;\r\n};\r\n","import React from 'react';\r\nimport { OrLayout } from '../OrLayout';\r\nimport { OrSider } from '../OrSider';\r\nimport { CollapsedButton, LogoContainer, StyledMenuContainer } from './styles';\r\nimport { AtIcon, AtLogo } from '../../atoms';\r\nimport { OrMenu, OrMenuProps } from '../OrMenu';\r\n\r\nexport interface OrSiderMenuProps {\r\n /**\r\n * Indicate if the menu is collapsed\r\n */\r\n collapsed?: boolean;\r\n /**\r\n * \tMenu item content\r\n */\r\n items?: OrMenuProps['items'];\r\n /**\r\n * \tBotton menu item content\r\n */\r\n bottomItems?: OrMenuProps['items'];\r\n /**\r\n * On click collapsed button\r\n */\r\n onClickCollapsed?: () => void;\r\n /**\r\n * Called when a menu item is clicked\r\n */\r\n onClick?: OrMenuProps['onClick'];\r\n /**\r\n * Called when a bottom menu item is clicked\r\n */\r\n onClickBottomItems?: OrMenuProps['onClick'];\r\n /**\r\n * Called when a menu item is selected\r\n */\r\n onSelect?: OrMenuProps['onSelect'];\r\n /*\r\n * Array with the keys of opened sub menu\r\n */\r\n selectedKeys?: OrMenuProps['selectedKeys'];\r\n backgroundTopColor?: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrSiderMenu: React.FC<OrSiderMenuProps> = ({\r\n collapsed = false,\r\n backgroundTopColor,\r\n ...props\r\n}) => {\r\n return (\r\n <OrLayout $fullHeight>\r\n <OrSider collapsed={collapsed}>\r\n\r\n <LogoContainer style={{ backgroundColor: backgroundTopColor }}>\r\n <AtLogo width={48} color=\"white\" type=\"isotype\" />\r\n </LogoContainer>\r\n\r\n <StyledMenuContainer>\r\n <OrMenu\r\n mode=\"inline\"\r\n items={props.items}\r\n selectedKeys={props.selectedKeys}\r\n onClick={props.onClick}\r\n onSelect={props.onSelect}\r\n />\r\n <OrMenu\r\n mode=\"inline\"\r\n items={props.bottomItems}\r\n onClick={props.onClickBottomItems}\r\n />\r\n </StyledMenuContainer>\r\n\r\n <CollapsedButton\r\n type=\"text\"\r\n icon={\r\n collapsed ? (\r\n <AtIcon name=\"RightOutlined\" />\r\n ) : (\r\n <AtIcon name=\"LeftOutlined\" />\r\n )\r\n }\r\n onClick={props.onClickCollapsed}\r\n />\r\n </OrSider>\r\n <OrLayout>{props.children}</OrLayout>\r\n </OrLayout>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { Layout } from 'antd';\r\nimport { OrHeaderProps } from '.';\r\n\r\n\r\nexport const StyledHeader = styled(Layout.Header)<OrHeaderProps>`\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n ${({$backgroundColor})=>$backgroundColor ? `background-color: ${$backgroundColor};` : ''}\r\n\r\n @media (max-width: 805px) {\r\n ${({hideHeaderMobile})=>hideHeaderMobile ? 'display: none;' : ''}\r\n }\r\n`;\r\n\r\nexport const AvatarContainer = styled.div`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n`;","import React, { ReactNode } from 'react';\r\nimport { Space, SpaceProps } from 'antd';\r\n\r\nexport interface AtSpaceProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Align items\r\n */\r\n align?: 'start' | 'end' | 'center' | 'baseline';\r\n /**\r\n * The space direction\r\n */\r\n direction?: 'vertical' | 'horizontal';\r\n /**\r\n * The space size\r\n */\r\n size?: SpaceProps['size'];\r\n /**\r\n * Set split\r\n */\r\n split?: ReactNode;\r\n /**\r\n * Auto wrap line, when horizontal effective\r\n */\r\n wrap?: boolean;\r\n /**\r\n * Children of the OrSpace\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * width of the OrSpace\r\n */\r\n $width?: string;\r\n}\r\n\r\nexport const OrSpace: React.FC<AtSpaceProps> = ({\r\n direction = 'horizontal',\r\n size = 'small',\r\n wrap = false,\r\n $width,\r\n ...props\r\n}) => {\r\n return (\r\n <Space\r\n style={{ width: $width }}\r\n direction={direction}\r\n size={size}\r\n wrap={wrap}\r\n {...props}\r\n >\r\n {props.children}\r\n </Space>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n AtAvatar,\r\n AtButton,\r\n AtSelect,\r\n AtText,\r\n AtSelectProps,\r\n AtLogo,\r\n} from '../../atoms';\r\nimport { AvatarContainer, StyledHeader } from './styles';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrSpace } from '../OrSpace';\r\nimport { LogoContainer } from '../OrSiderMenu/styles';\r\n\r\nexport interface OrHeaderProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * option for select\r\n */\r\n countrySelectOptions?: { value: string; label: string; icon?: JSX.Element }[];\r\n /**\r\n * Default Value for select\r\n */\r\n selectValue?: string;\r\n /**\r\n * Placeholder for select\r\n */\r\n selectPlaceholder?: string;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelect?: AtSelectProps['onChange'];\r\n /**\r\n * buttons options\r\n */\r\n navItems?: {\r\n value?: string;\r\n label?: string;\r\n icon: JSX.Element;\r\n onclick?: React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>;\r\n }[];\r\n /**\r\n * Avatar image\r\n */\r\n avatar?: string;\r\n /**\r\n * Avatar name\r\n */\r\n avatarName?: string;\r\n /**\r\n * Avatar click\r\n */\r\n onClickAvatar?: React.MouseEventHandler<HTMLDivElement> | undefined;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /*\r\n * Background color\r\n */\r\n $backgroundColor?: string;\r\n /**\r\n * Extra information\r\n */\r\n extraInfo?: string;\r\n /**\r\n * Show logo\r\n */\r\n showLogo?: boolean;\r\n /**\r\n * Hide header on mobile\r\n */\r\n hideHeaderMobile?: boolean;\r\n /**\r\n * Logo color\r\n */\r\n logoColor?: 'violet' | 'gold' | 'white';\r\n}\r\n\r\nexport const OrHeader: React.FC<OrHeaderProps> = ({logoColor = 'white', ...props}) => (\r\n <StyledHeader $backgroundColor={props.$backgroundColor} hideHeaderMobile={props.hideHeaderMobile}>\r\n <OrRow justify={'space-between'} align={'middle'}>\r\n {props.showLogo && <LogoContainer style={{ backgroundColor: props.$backgroundColor, marginBottom: 0 }}>\r\n <AtLogo width={48} color={logoColor} type=\"isotype\" />\r\n </LogoContainer>}\r\n <OrSpace>\r\n <AtText strong={true} color=\"white\" $fontSize={14}>\r\n {props.extraInfo}\r\n </AtText>\r\n </OrSpace>\r\n <OrSpace>\r\n {props.countrySelectOptions &&\r\n props.countrySelectOptions?.length > 0 && (\r\n <AtSelect\r\n options={props.countrySelectOptions}\r\n value={props.selectValue}\r\n placeholder={props.selectPlaceholder}\r\n id={props.id}\r\n onChange={props.onSelect}\r\n bordered\r\n backgroundColor=\"violet\"\r\n $textColor=\"white\"\r\n />\r\n )}\r\n {props.navItems?.map((option) => (\r\n <AtButton\r\n key={option.value}\r\n value={option.value}\r\n icon={option.icon}\r\n shape=\"round\"\r\n size=\"middle\"\r\n ghost\r\n onClick={option.onclick}\r\n borderless\r\n />\r\n ))}\r\n {props.avatarName && (\r\n <AvatarContainer onClick={props.onClickAvatar}>\r\n <AtAvatar src={props.avatar} size=\"small\" />\r\n <AtText color=\"white\">{props.avatarName}</AtText>\r\n </AvatarContainer>\r\n )}\r\n </OrSpace>\r\n </OrRow>\r\n </StyledHeader>\r\n);\r\n","import React from 'react';\r\nimport { OrSiderMenuProps } from '../OrSiderMenu';\r\nimport { OrSiderMenu } from '../OrSiderMenu';\r\nimport { OrHeader, OrHeaderProps } from '../OrHeader';\r\nimport { OrContent } from '../OrContent';\r\n\r\nexport interface OrDashboardLayoutProps {\r\n /**\r\n * Indicate if the menu is collapsed\r\n */\r\n collapsed?: boolean;\r\n /**\r\n * Children components\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Menu items to show in sider menu\r\n */\r\n menuItems?: OrSiderMenuProps['items'];\r\n /**\r\n * On click collapsed button\r\n */\r\n onClickCollapsed?: () => void;\r\n /**\r\n * Called when a menu item is clicked\r\n */\r\n onClick?: OrSiderMenuProps['onClick'];\r\n /**\r\n * Called when a bottom menu item is clicked\r\n */\r\n onClickBottomItems?: OrSiderMenuProps['onClick'];\r\n /**\r\n * Called when a menu item is selected\r\n */\r\n onSelect?: OrSiderMenuProps['onSelect'];\r\n /**\r\n * Called when a region item is selected\r\n */\r\n onSelectCountry?: OrHeaderProps['onSelect'];\r\n /**\r\n * Header select options\r\n */\r\n countrySelectOptions?: OrHeaderProps['countrySelectOptions'];\r\n /**\r\n * Header nav items\r\n */\r\n navItems?: OrHeaderProps['navItems'];\r\n /**\r\n * Header avatar\r\n */\r\n avatar?: OrHeaderProps['avatar'];\r\n /**\r\n * Header avatar name\r\n */\r\n avatarName?: OrHeaderProps['avatarName'];\r\n /**\r\n * Default selected country\r\n */\r\n selectValue?: OrHeaderProps['selectValue'];\r\n /**\r\n * Nav item at the end of the sider\r\n */\r\n bottomItems?: OrSiderMenuProps['bottomItems'];\r\n /*\r\n * Array with the keys of opened sub menu\r\n */\r\n selectedKeys?: OrSiderMenuProps['selectedKeys'];\r\n /** \r\n * Or header props\r\n */\r\n headerProps?: OrHeaderProps;\r\n}\r\n\r\nexport const OrDashboardLayout: React.FC<OrDashboardLayoutProps> = ({\r\n menuItems = [],\r\n collapsed = false,\r\n bottomItems = [],\r\n headerProps,\r\n ...props\r\n}) => {\r\n return (\r\n <OrSiderMenu\r\n items={menuItems}\r\n collapsed={collapsed}\r\n onClickCollapsed={props.onClickCollapsed}\r\n onClick={props.onClick}\r\n onSelect={props.onSelect}\r\n bottomItems={bottomItems}\r\n onClickBottomItems={props.onClickBottomItems}\r\n selectedKeys={props.selectedKeys}\r\n backgroundTopColor={headerProps?.$backgroundColor}\r\n >\r\n <OrHeader\r\n avatar={props.avatar}\r\n avatarName={props.avatarName}\r\n countrySelectOptions={props.countrySelectOptions}\r\n navItems={props.navItems}\r\n selectValue={props.selectValue}\r\n onSelect={props.onSelectCountry}\r\n $backgroundColor={headerProps?.$backgroundColor}\r\n {...headerProps}\r\n />\r\n <OrContent $main>{props.children}</OrContent>\r\n </OrSiderMenu>\r\n );\r\n};\r\n","import { Descriptions as AntDescriptions } from 'antd';\r\nimport styled from \"styled-components\";\r\nimport { OrDescriptionsProps } from '.';\r\n\r\nexport const StyledDescriptions = styled((props: OrDescriptionsProps) => <AntDescriptions {...props} />)`\r\n & {\r\n background: white;\r\n border: 1px solid rgba(5, 5, 5, 0.06);\r\n border-radius: 6px;\r\n padding: 24px 0;\r\n\r\n .ant-descriptions-header {\r\n padding: 0 24px;\r\n padding-bottom: 24px;\r\n border-bottom: 1px solid rgba(5, 5, 5, 0.06);\r\n }\r\n\r\n .ant-descriptions-view {\r\n width: calc(100% - 48px);\r\n margin: 0 24px;\r\n margin-top: 24px;\r\n border-radius: initial!important;\r\n }\r\n }\r\n`;","import React from 'react';\r\nimport { DescriptionsProps } from 'antd/lib';\r\nimport { StyledDescriptions } from './styles';\r\n\r\nexport interface OrDescriptionsProps extends DescriptionsProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Title of the description set\r\n */\r\n title: string;\r\n /**\r\n * Whether the table has border or not\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Items to display\r\n */\r\n items: DescriptionsProps['items'];\r\n /**\r\n * Extra content to display\r\n */\r\n extra?: DescriptionsProps['extra'];\r\n}\r\n\r\nexport const OrDescriptions: React.FC<OrDescriptionsProps> = (props) => {\r\n return <StyledDescriptions {...props} />;\r\n};","import { styled } from 'styled-components';\r\n\r\nexport const PaginationContainer = styled.div`\r\n display: flex;\r\n align-items: end;\r\n margin-top: 16px;\r\n justify-content: end;\r\n \r\n`;\r\n","import { Steps } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { OrStepProp } from '.';\r\n\r\nexport const StyledStep = styled(Steps)<OrStepProp>`\r\n & .ant-steps-item-title {\r\n font-size: 12px;\r\n ${({ $lineHeight }) => ($lineHeight ? `line-height: ${$lineHeight};` : 'line-height: 20px;')}\r\n ${({ $margin }) => ($margin ? `margin: ${$margin};` : '')}\r\n\r\n }\r\n\r\n & .ant-steps-item-container[role='button'] {\r\n cursor: initial!important;\r\n }\r\n\r\n &.ant-steps.ant-steps-vertical .ant-steps-item-description{\r\n padding-bottom: 4px;\r\n }\r\n\r\n @media (max-width: 768px) {\r\n &.ant-steps .ant-steps-item-title::after {\r\n display: none!important;\r\n }\r\n\r\n &.ant-steps .ant-steps-item {\r\n display: block!important;\r\n }\r\n\r\n &.ant-steps.ant-steps-vertical {\r\n flex-direction: column!important;\r\n }\r\n\r\n & .ant-steps-item {\r\n display: none!important;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-process.ant-steps-item-active {\r\n display: inline-block!important;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-active + .ant-steps-item-wait {\r\n display: inline-block!important;\r\n max-width: 50px;\r\n\r\n .ant-steps-item-container {\r\n text-align: end!important;\r\n }\r\n .ant-steps-item-content {\r\n display: none!important;\r\n }\r\n }\r\n\r\n & {\r\n flex-direction: row!important;\r\n }\r\n\r\n & .ant-steps-item-title::after {\r\n display: block!important;\r\n content: \"\"!important;\r\n }\r\n }\r\n\r\n @media (max-width: 805px) {\r\n & .ant-steps-item:last-child ::after {\r\n content: none!important;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-process.ant-steps-item-active .ant-steps-item-icon {\r\n margin-inline-end: 8px;\r\n }\r\n\r\n & .ant-steps-item.ant-steps-item-active + .ant-steps-item-wait {\r\n margin-inline-end: 0;\r\n margin-inline-start: 16px;\r\n }\r\n }\r\n`;\r\n","import { StepsProps } from 'antd';\r\nimport React from 'react';\r\nimport { StyledStep } from './styles';\r\n\r\nexport interface OrStepProp {\r\n /**\r\n * To set the current step, counting from 0. You can overwrite this state by using status of Step\r\n */\r\n current?: number;\r\n /**\r\n * To specify the direction of the step bar, horizontal or vertical\r\n */\r\n direction?: 'horizontal' | 'vertical';\r\n /**\r\n *\r\n */\r\n initial?: number;\r\n /**\r\n * Place title and description with horizontal or vertical direction\r\n * */\r\n labelPlacement?: 'horizontal' | 'vertical';\r\n /**\r\n * Progress circle percentage of current step in process status (only works on basic Steps)\r\n */\r\n percent?: number;\r\n /**\r\n * Steps with progress dot style, customize the progress dot by setting it to a function. labelPlacement will be vertical\r\n */\r\n progressDot?: StepsProps['progressDot'];\r\n /**\r\n * Change to vertical direction when screen width smaller than 532px\r\n */\r\n responsive?: boolean;\r\n /**\r\n * To specify the size of the step bar, default and small are currently supported\r\n */\r\n size?: 'default' | 'small';\r\n /**\r\n * To specify the status of current step, can be set to one of the following values: wait process finish error\r\n */\r\n status?: 'wait' | 'process' | 'finish' | 'error';\r\n /**\r\n * Type of steps, can be set to one of the following values: default navigation inline\r\n */\r\n type?: 'default' | 'navigation' | 'inline';\r\n /**\r\n * Trigger when Step is changed\r\n */\r\n onChange?: (current: number) => void;\r\n /**\r\n * StepItem content\r\n */\r\n items?: StepsProps['items'];\r\n /**\r\n * Element margin\r\n */\r\n $margin?: string;\r\n /**\r\n * Element line height\r\n */\r\n $lineHeight?: string;\r\n}\r\n\r\nexport const OrStep: React.FC<OrStepProp> = (props) => {\r\n return <StyledStep {...props} />;\r\n};\r\n","import React, { ReactNode } from 'react';\r\nimport {\r\n OrDrawer,\r\n OrFormItemsInline,\r\n OrTable,\r\n OrTableProps,\r\n OrFormItemsInlineProps,\r\n OrForm,\r\n OrModuleTableHeader,\r\n OrTableModuleLayout,\r\n OrModuleTableHeaderProps,\r\n OrFormProps,\r\n OrCol,\r\n} from '../../organisms';\r\nimport { AtButton, AtButtonProps, AtImage, AtTitle } from '../../atoms';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { MlPagination, MlPaginationProps } from '../../molecules';\r\nimport { PaginationContainer } from './styles';\r\nimport { OrStep } from '../../organisms/OrStep';\r\nimport { AnyObject } from 'antd/es/_util/type';\r\nimport { Store } from 'antd/es/form/interface';\r\n\r\nexport interface ICustomButtons extends AtButtonProps {\r\n label: string;\r\n hidden?: boolean;\r\n}\r\nexport interface IFormStep<T> {\r\n title: string;\r\n inputs?: OrFormItemsInlineProps['inputs'];\r\n submitButtonText?: string;\r\n image?: string;\r\n cancelButtonText?: string;\r\n onCancelClick?: () => void;\r\n formInitialItems?: T;\r\n form?: OrFormProps['form'];\r\n onFinish?: (e: any) => void;\r\n cancelBtnIcon?: ReactNode;\r\n isSubmitButtonDanger?: boolean;\r\n hiddeSubmitButton?: boolean;\r\n customButtons?: ICustomButtons[];\r\n}\r\nexport interface TmCrudPageProps<RecordType = AnyObject, FormType = any> {\r\n /**\r\n * Columns of table\r\n */\r\n columns: OrTableProps<RecordType>['columns'];\r\n /**\r\n * Data record array to be displayed\r\n */\r\n data: OrTableProps<RecordType>['dataSource'];\r\n /**\r\n * Loading status of table\r\n */\r\n loadingTable?: OrTableProps['loading'];\r\n /**\r\n * Config of pagination. You can ref table pagination config or full pagination document, hide it by setting it to false\r\n */\r\n pagination?: OrTableProps['pagination'];\r\n /**\r\n * Row's unique key, could be a string or function that returns a string\r\n */\r\n rowKey?: OrTableProps['rowKey'];\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Callback when pagination changes\r\n */\r\n onChangeTable?: OrTableProps['onChange'];\r\n /**\r\n * Extendable table TM CrudPage\r\n */\r\n expandable?: OrTableProps['expandable'];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * Page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * Page subtitle content\r\n */\r\n subContent?: string;\r\n /**\r\n * Page table title\r\n */\r\n tableTitle?: string;\r\n /**\r\n * Button value text\r\n */\r\n buttonAddText?: string;\r\n /**\r\n * Callback when add button is pressed\r\n */\r\n addButtonOnClick?: OrModuleTableHeaderProps['buttonOnClick'];\r\n /**\r\n * Callback when pagination changes\r\n */\r\n onChangePagination?: MlPaginationProps['onChange'];\r\n /**\r\n * Total table elements\r\n */\r\n total?: MlPaginationProps['total'];\r\n /**\r\n * Way to display total pagination table\r\n */\r\n showTotal?: MlPaginationProps['showTotal'];\r\n /**\r\n * Table page size\r\n */\r\n pageSize?: MlPaginationProps['pageSize'];\r\n /**\r\n * Current page table\r\n */\r\n currentPage?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * Search table elements\r\n */\r\n searchBoxOnSearch?: OrModuleTableHeaderProps['searchBoxOnSearch'];\r\n /**\r\n * title of drawer\r\n */\r\n titleLeftDrawer?: ReactNode;\r\n /**\r\n * Specify a callback that will be called when a user clicks mask, close button or Cancel button\r\n */\r\n onCloseLeftDrawer?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * whether left drawer is open or close\r\n */\r\n openLeftDrawer?: boolean;\r\n /**\r\n * Children for Left Drawer\r\n */\r\n leftDrawerContent?: React.ReactNode;\r\n /**\r\n * Custom component to render at left side of table header\r\n */\r\n tableHeaderCustomLeftElements?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n leftDrawerWidth?: number;\r\n /**\r\n * searchBox placeHolder\r\n */\r\n searchBoxPlaceholder?: string;\r\n /**\r\n * show search box\r\n */\r\n showSearchBox?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Text of first button\r\n */\r\n firstButtonText?: string;\r\n /**\r\n * Text of second button\r\n */\r\n secondButtonText?: string;\r\n /**\r\n * Function to execute when first button is clicked\r\n */\r\n onClickFirstButton?: () => void;\r\n /**\r\n * Function to execute when second button is clicked\r\n */\r\n onClickSecondButton?: () => void;\r\n /**\r\n * Show drawer content\r\n */\r\n showDrawerContent?: boolean;\r\n /**\r\n * margin\r\n */\r\n $margin?: string;\r\n /**\r\n * table title level\r\n */\r\n tableTitleLevel?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * button optional text\r\n */\r\n secondaryButtonText?: string;\r\n /**\r\n * button optional onClick\r\n */\r\n secondaryOnClick?: () => void;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /*\r\n * Callback when back button is clicked \r\n */\r\n onBack?: () => void;\r\n padding?: string;\r\n}\r\n\r\nexport const TmCrudPage = <\r\n RecordType extends AnyObject,\r\n FormType extends Store,\r\n>({\r\n columns,\r\n data,\r\n loadingTable = false,\r\n formSteps,\r\n onValuesChange,\r\n onCloseLeftDrawer,\r\n leftDrawerContent,\r\n openLeftDrawer,\r\n subtitle,\r\n subContent,\r\n open,\r\n pageSize = 10,\r\n currentPage = 1,\r\n currentFormStep = 0,\r\n titleLeftDrawer,\r\n leftDrawerWidth = 600,\r\n drawerContent,\r\n showDrawerContent = false,\r\n showSearchBox = true,\r\n drawerTitle,\r\n drawerWidth,\r\n firstButtonText,\r\n secondButtonText,\r\n onClickFirstButton,\r\n onClickSecondButton,\r\n $margin,\r\n title,\r\n tableTitle,\r\n buttonAddText,\r\n addButtonOnClick,\r\n onChangePagination,\r\n onChangeTable,\r\n total,\r\n showTotal,\r\n disabledButtons,\r\n searchBoxOnSearch,\r\n searchBoxPlaceholder,\r\n tableHeaderCustomLeftElements,\r\n pagination,\r\n handleCloseCallback,\r\n tableTitleLevel,\r\n secondaryButtonText,\r\n secondaryOnClick,\r\n showFormStepper = true,\r\n onBack,\r\n padding = '16px 24px',\r\n expandable\r\n}: TmCrudPageProps<RecordType, FormType>) => {\r\n const onChangePaginationDefault = (page: number, pageSize?: number) => {\r\n onChangeTable && onChangeTable({ current: page, pageSize, total }, {}, {}, { action: 'paginate', currentDataSource: [] })\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <OrTableModuleLayout\r\n $margin={$margin}\r\n title={title}\r\n subtitle={subtitle}\r\n subtitleContent={subContent}\r\n leftArrow={!!onBack}\r\n onClickLeftArrow={onBack}\r\n padding={padding}\r\n >\r\n <OrModuleTableHeader\r\n title={tableTitle}\r\n level={tableTitleLevel}\r\n buttonValue={buttonAddText}\r\n secondaryButtonValue={secondaryButtonText}\r\n secondaryButtonOnClick={secondaryOnClick}\r\n buttonOnClick={addButtonOnClick}\r\n searchBoxOnSearch={searchBoxOnSearch}\r\n customLeftElements={tableHeaderCustomLeftElements}\r\n searchBoxPlaceholder={searchBoxPlaceholder}\r\n showSearchBox={showSearchBox}\r\n />\r\n <OrTable<RecordType>\r\n columns={columns}\r\n dataSource={data}\r\n loading={loadingTable}\r\n pagination={pagination}\r\n onChange={onChangeTable}\r\n expandable={expandable}\r\n />\r\n <PaginationContainer>\r\n <MlPagination\r\n responsive={true}\r\n onChange={onChangeTable ? onChangePaginationDefault : onChangePagination}\r\n total={total}\r\n showTotal={showTotal}\r\n pageSize={pageSize}\r\n showSizeChanger={true}\r\n current={currentPage}\r\n disabled={!!loadingTable}\r\n />\r\n </PaginationContainer>\r\n </OrTableModuleLayout>\r\n\r\n {leftDrawerContent && (\r\n <OrDrawer\r\n open={openLeftDrawer}\r\n onClose={onCloseLeftDrawer}\r\n placement=\"left\"\r\n title={titleLeftDrawer}\r\n width={leftDrawerWidth}\r\n >\r\n {leftDrawerContent}\r\n </OrDrawer>\r\n )}\r\n\r\n <OrDrawer\r\n open={open}\r\n onClose={handleCloseCallback}\r\n title={drawerTitle}\r\n width={drawerWidth}\r\n >\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formSteps &&\r\n formSteps.map(({ customButtons = [], ...formStep }, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n {formStep.image && (\r\n <OrCol $alignItems=\"center\" $paddingBottom={30}>\r\n <AtImage\r\n src={formStep.image}\r\n preview={false}\r\n height={\"100%\"}\r\n width={250}\r\n />\r\n </OrCol>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n {customButtons.length === 0 && (\r\n <>\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n </>\r\n )}\r\n {customButtons.map((buttonProps) => (\r\n !buttonProps.hidden\r\n ?\r\n <MlFormItem>\r\n <AtButton\r\n {...buttonProps}\r\n $fullWidth={true}\r\n value={buttonProps.label}\r\n />\r\n </MlFormItem>\r\n : <></>\r\n ))}\r\n </OrForm>\r\n ))}\r\n {!formSteps && (\r\n <>\r\n {!showDrawerContent && (\r\n <OrCol $gap={15}>\r\n <AtButton\r\n type=\"primary\"\r\n value={firstButtonText}\r\n onClick={onClickFirstButton}\r\n />\r\n <AtButton\r\n value={secondButtonText}\r\n onClick={onClickSecondButton}\r\n />\r\n </OrCol>\r\n )}\r\n {showDrawerContent && drawerContent}\r\n </>\r\n )}\r\n </OrDrawer>\r\n </React.Fragment>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrFormProps,\r\n OrDescriptions,\r\n OrDescriptionsProps,\r\n OrDrawer,\r\n OrStep,\r\n OrForm,\r\n OrCol,\r\n OrFormItemsInline,\r\n} from '..';\r\nimport { AtButton, AtImage, AtTitle } from '../../atoms';\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { IFormStep } from '../../templates/TmCrudPage';\r\nimport { MlFormItem } from '../../molecules';\r\n\r\nexport interface OrDetailsPageProps<FormType = any> {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Title of the description set\r\n */\r\n title: string;\r\n /**\r\n * Whether the table has border or not\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Items to display\r\n */\r\n items: OrDescriptionsProps['items'];\r\n /**\r\n * Extra content to display\r\n */\r\n extra?: OrDescriptionsProps['extra'];\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n}\r\n\r\nexport const OrDetailsPage = <FormType extends Store>({\r\n title,\r\n bordered,\r\n items,\r\n extra,\r\n formSteps,\r\n handleCloseCallback,\r\n open,\r\n drawerTitle,\r\n drawerWidth,\r\n disabledButtons,\r\n currentFormStep,\r\n showFormStepper = true,\r\n onValuesChange,\r\n}: OrDetailsPageProps<FormType>) => {\r\n return (\r\n <React.Fragment>\r\n <OrDescriptions\r\n title={title}\r\n bordered={bordered}\r\n items={items}\r\n extra={extra}\r\n style={{ width: '100%', height: '100%' }}\r\n />\r\n <OrDrawer\r\n open={open}\r\n onClose={handleCloseCallback}\r\n title={drawerTitle}\r\n width={drawerWidth}\r\n >\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formSteps &&\r\n formSteps.map(({ customButtons = [], ...formStep }, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n {formStep.image && (\r\n <OrCol $alignItems=\"center\" $paddingBottom={30}>\r\n <AtImage\r\n src={formStep.image}\r\n preview={false}\r\n height={'100%'}\r\n width={250}\r\n />\r\n </OrCol>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n {customButtons.length === 0 && (\r\n <>\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n </>\r\n )}\r\n {customButtons.map((button) => (\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n type={button.type}\r\n value={button.label}\r\n onClick={button.onClick}\r\n htmlType={button.htmlType}\r\n />\r\n </MlFormItem>\r\n ))}\r\n </OrForm>\r\n ))}\r\n </OrDrawer>\r\n </React.Fragment>\r\n );\r\n};\r\n","import { AtButton, AtIcon } from '../../atoms';\r\nimport {\r\n MlFormItem,\r\n MlFromItemProps,\r\n MlUpload,\r\n MlUploadProps,\r\n} from '../../molecules';\r\nimport { OrCol } from '../../organisms';\r\n\r\ninterface OrDownloadProps {\r\n /**\r\n * The function to call when the download button is clicked\r\n */\r\n downloadOnClick?: () => any;\r\n /**\r\n * The text to display on the download button\r\n */\r\n downloadText: string;\r\n}\r\n\r\nexport interface OrDownloadUploadProps {\r\n /**\r\n * Key identifier\r\n */\r\n inputKey: string;\r\n /**\r\n * The function to call when the value of the file changes\r\n */\r\n getValueFromEvent?: (e: any) => any;\r\n /**\r\n * The rules for the file\r\n */\r\n rules?: MlFromItemProps['rules'];\r\n /**\r\n * If the file is required\r\n */\r\n isRequired?: boolean;\r\n downloadProps: OrDownloadProps;\r\n uploadProps: MlUploadProps;\r\n disabled?: boolean;\r\n /**\r\n * The mode of the upload\r\n */\r\n mode?: 'drag' | 'basic';\r\n}\r\n\r\nexport const OrDownloadUpload: React.FC<OrDownloadUploadProps> = ({\r\n downloadProps,\r\n uploadProps,\r\n inputKey,\r\n rules,\r\n getValueFromEvent,\r\n isRequired,\r\n disabled = false,\r\n mode = 'drag',\r\n}) => {\r\n return (\r\n <>\r\n <OrCol>\r\n <AtButton\r\n icon={<AtIcon name=\"DownloadOutlined\" />}\r\n type=\"dashed\"\r\n value={downloadProps.downloadText}\r\n onClick={downloadProps.downloadOnClick}\r\n disabled={disabled}\r\n />\r\n </OrCol>\r\n <OrCol $paddingTop={16} xs={24}>\r\n <MlFormItem\r\n key={inputKey}\r\n name={`${uploadProps.name}-upload-component`}\r\n valuePropName=\"fileList\"\r\n rules={rules}\r\n getValueFromEvent={getValueFromEvent}\r\n required={isRequired}\r\n >\r\n <MlUpload\r\n mode={mode}\r\n style={{ borderStyle: 'solid' }}\r\n disabled={disabled}\r\n {...uploadProps}\r\n />\r\n </MlFormItem>\r\n </OrCol>\r\n </>\r\n );\r\n};\r\n","import React, { CSSProperties, ReactNode } from 'react';\r\nimport { Drawer } from 'antd/lib/';\r\nimport { DrawerProps } from 'antd/es/drawer';\r\nimport { AtIcon } from '../../atoms';\r\n\r\nexport interface OrDrawerProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Whether Drawer should get focused after open\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Callback after the animation ends when switching drawers\r\n */\r\n afterOpenChange?: (open: boolean) => void;\r\n /**\r\n * Style of the drawer content part\r\n */\r\n bodyStyle?: CSSProperties;\r\n /**\r\n * Config Drawer Panel className. Use rootClassName if want to config top dom style\r\n */\r\n className?: string;\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: boolean | ReactNode;\r\n /**\r\n * Style of the drawer wrapper of content part\r\n */\r\n contentWrapperStyle?: CSSProperties;\r\n /**\r\n * Whether to unmount child components on closing drawer or not\r\n */\r\n destroyOnClose?: boolean;\r\n /**\r\n * Extra actions area at corner\r\n */\r\n extra?: ReactNode;\r\n /**\r\n * The footer for Drawer\r\n */\r\n footer?: ReactNode;\r\n /**\r\n * Style of the drawer footer part\r\n */\r\n footerStyle?: CSSProperties;\r\n /**\r\n * Pre-render Drawer component forcibly\r\n */\r\n forceRender?: boolean;\r\n /**\r\n * mounted node and display window for Drawer\r\n */\r\n getContainer?: DrawerProps['getContainer'];\r\n /**\r\n * Style of the drawer header part\r\n */\r\n headerStyle?: CSSProperties;\r\n /**\r\n * Placement is top or bottom, height of the Drawer dialog\r\n */\r\n height?: string | number;\r\n /**\r\n * Whether support press esc to close\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Whether to show mask or not\r\n */\r\n mask?: boolean;\r\n /**\r\n * Clicking on the mask (area outside the Drawer) to close the Drawer or not\r\n */\r\n maskClosable?: boolean;\r\n /**\r\n * Style for Drawer's mask element\r\n */\r\n maskStyle?: CSSProperties;\r\n /**\r\n * The placement of the Drawer\r\n */\r\n placement?: 'top' | 'right' | 'bottom' | 'left';\r\n /**\r\n * Nested drawers push behavior\r\n */\r\n push?: boolean | { distance: string | number };\r\n /**\r\n * The class name of the container of the Drawer dialog\r\n */\r\n rootClassName?: string;\r\n /**\r\n * Style of wrapper element which contains mask compare to style\r\n */\r\n rootStyle?: CSSProperties;\r\n /**\r\n * Style of Drawer panel. Use bodyStyle if want to config body only\r\n */\r\n style?: CSSProperties;\r\n /**\r\n * preset size of drawer, default 378px and large 736px\r\n */\r\n size?: 'default' | 'large';\r\n /**\r\n * The title for Drawer\r\n */\r\n title?: ReactNode;\r\n /**\r\n * Whether the Drawer dialog is visible or not\r\n */\r\n open?: boolean;\r\n /**\r\n * Width of the Drawer dialog\r\n */\r\n width?: string | number;\r\n /**\r\n * The z-index of the Drawer\r\n */\r\n zIndex?: number;\r\n /**\r\n * Specify a callback that will be called when a user clicks mask, close button or Cancel button\r\n */\r\n onClose?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * Children of the drawer\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrDrawer: React.FC<OrDrawerProps> = ({\r\n autoFocus = true,\r\n closeIcon = <AtIcon name=\"CloseOutlined\" />,\r\n destroyOnClose = false,\r\n forceRender = false,\r\n getContainer = 'body',\r\n height = 378,\r\n keyboard = true,\r\n mask = true,\r\n maskClosable = true,\r\n maskStyle = {},\r\n placement = 'right',\r\n push = { distance: 180 },\r\n size = 'default',\r\n open = false,\r\n width = 378,\r\n zIndex = 1000,\r\n ...props\r\n}) => {\r\n return (\r\n <Drawer\r\n autoFocus={autoFocus}\r\n closeIcon={closeIcon}\r\n destroyOnClose={destroyOnClose}\r\n forceRender={forceRender}\r\n getContainer={getContainer}\r\n height={height}\r\n keyboard={keyboard}\r\n mask={mask}\r\n maskClosable={maskClosable}\r\n maskStyle={maskStyle}\r\n placement={placement}\r\n push={push}\r\n size={size}\r\n open={open}\r\n width={width}\r\n zIndex={zIndex}\r\n {...props}\r\n >\r\n {props.children}\r\n </Drawer>\r\n );\r\n};\r\n","import { Empty } from \"antd\";\r\nimport { AtIcon, AtText, AtTitle } from \"../../atoms\";\r\n\r\nexport interface OrEmptyProps{\r\n /**\r\n * The main text of the empty card\r\n */ \r\n title: string;\r\n /**\r\n * The additional text of the empty card\r\n */\r\n description: string;\r\n}\r\n\r\nexport const OrEmpty: React.FC<OrEmptyProps> = ({\r\n title,\r\n description\r\n}) => {\r\n return (\r\n <Empty\r\n image={<AtIcon name=\"WarningFilled\" style={{ fontSize: 95, color: '#FFC53D' }} />}\r\n description={\r\n <>\r\n <AtTitle level={3}>{title}</AtTitle>\r\n <AtText type=\"secondary\" $fontSize={16}>{description}</AtText>\r\n </>\r\n }\r\n />\r\n )\r\n}\r\n","import React, { useMemo } from 'react';\r\nimport { OrCountryCardProps, OrCountryCard } from '../OrCountryCard';\r\nimport { Row, Col } from 'antd';\r\n\r\nexport interface OrFlagGridProps {\r\n /**\r\n * The ID for cards\r\n */\r\n id?: string;\r\n /**\r\n * Country data to show elements into the grid\r\n */\r\n data?: OrCountryCardProps[];\r\n /**\r\n * Number of items that can contain a row\r\n */\r\n itemsPerRow?: number;\r\n /**\r\n * Index selected Item\r\n */\r\n selectedItem?: number;\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onSelectCard?: (index: number) => void;\r\n}\r\n\r\nexport const OrFlagGrid: React.FC<OrFlagGridProps> = ({\r\n data = [],\r\n itemsPerRow = 2,\r\n selectedItem,\r\n onSelectCard,\r\n \r\n}) => {\r\n const span = useMemo(() => 24 / (itemsPerRow ?? 1), [itemsPerRow]);\r\n\r\n return (\r\n <Row gutter={[16, 16]} justify={'center'}>\r\n {data?.map((item, i) => (\r\n <Col key={i} xs={{ span: 24 }} md={{ span }}>\r\n <OrCountryCard\r\n selected={selectedItem === i}\r\n onClick={() => onSelectCard?.(i)}\r\n {...item}\r\n />\r\n </Col>\r\n ))}\r\n </Row>\r\n );\r\n};\r\n\r\n\r\n","import React from 'react';\r\nimport { Form, FormProps } from 'antd';\r\n\r\nexport interface OrFormProps extends FormProps {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const OrForm: React.FC<OrFormProps> = ({ children, ...props }) => {\r\n return <Form {...props}>{children}</Form>;\r\n};\r\n","import React from 'react';\r\nimport { Space } from 'antd';\r\n\r\nexport interface AtSpaceCompactProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Option to fit width to its parent's width\r\n */\r\n block?: boolean;\r\n /**\r\n * Set direction of layout\r\n */\r\n direction?: 'vertical' | 'horizontal';\r\n /**\r\n * Set child component size\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Children of the OrSpace\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrSpaceCompact: React.FC<AtSpaceCompactProps> = ({\r\n block = false,\r\n direction = 'horizontal',\r\n size = 'middle',\r\n ...props\r\n}) => {\r\n return <Space.Compact block={block} direction={direction} size={size} {...props}>{props.children}</Space.Compact>;\r\n};\r\n","import React from 'react';\r\nimport { MlFormItem, MlFromItemProps } from '../../molecules';\r\nimport { OrSpaceCompact } from '../OrSpaceCompact';\r\nimport { AtNumberInput, AtSelect, AtSelectProps } from '../../atoms';\r\n\r\nexport interface OrPhoneInputProps {\r\n /**\r\n * Name of input\r\n */\r\n name?: string;\r\n /**\r\n * Dial codes options\r\n */\r\n options: AtSelectProps['options'];\r\n /**\r\n * Disabled input\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Rules for validation\r\n * @default []\r\n */\r\n rules?: MlFromItemProps['rules'];\r\n}\r\n\r\nexport const OrPhoneInput: React.FC<OrPhoneInputProps> = ({\r\n name = \"phone\",\r\n options,\r\n disabled,\r\n rules\r\n}) => {\r\n return (\r\n <OrSpaceCompact block>\r\n <MlFormItem noStyle name={[name, 'dialCode']} rules={rules}>\r\n <AtSelect disabled={disabled} $width=\"119px\" options={options} />\r\n </MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n name={[name, 'phone']}\r\n rules={\r\n [\r\n ...rules? rules : [{ required: true, message: 'Field is required' }],\r\n {\r\n pattern: new RegExp( \r\n /^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im,\r\n ),\r\n message: 'Not valid phone',\r\n validateTrigger: 'onBlur',\r\n },\r\n ]\r\n }\r\n >\r\n <AtNumberInput disabled={disabled} $width=\"100%\" controls={false} />\r\n </MlFormItem>\r\n </OrSpaceCompact>\r\n );\r\n};\r\n","//TODO: Check PhoneInput to use this component\r\n//TODO: Improve this component OrSelectInput\r\n\r\nimport React, { useCallback } from 'react';\r\nimport { MlFormItem, MlFromItemProps } from '../../molecules';\r\nimport { OrSpaceCompact } from '../OrSpaceCompact';\r\nimport {\r\n AtNumberInput,\r\n AtNumberInputProps,\r\n AtSelect,\r\n AtSelectProps,\r\n AtTextInput,\r\n AtTextInputProps,\r\n} from '../../atoms';\r\n\r\nexport interface OrSelectInputProps {\r\n /**\r\n * Dial codes options\r\n */\r\n options: AtSelectProps['options'];\r\n /**\r\n * Disabled input\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Rules for validation\r\n * @default []\r\n */\r\n rules?: MlFromItemProps['rules'][];\r\n type?: 'number' | 'text';\r\n fieldName: string;\r\n inputProps?: AtTextInputProps | AtNumberInputProps;\r\n selectProps?: AtSelectProps;\r\n}\r\n\r\nexport const OrSelectInput: React.FC<OrSelectInputProps> = (props) => {\r\n const { options, disabled, rules, fieldName, selectProps } = props;\r\n\r\n const getInputComponent = useCallback(\r\n ({ type = 'text', ...props }: OrSelectInputProps) => {\r\n if (type === 'text') {\r\n return (\r\n <AtTextInput\r\n disabled={props.disabled}\r\n {...(props?.inputProps as AtTextInputProps)}\r\n />\r\n );\r\n } else if (type === 'number') {\r\n return (\r\n <AtNumberInput\r\n disabled={props.disabled}\r\n $width=\"100%\"\r\n controls={false}\r\n {...(props?.inputProps as AtNumberInputProps)}\r\n />\r\n );\r\n } else {\r\n return null;\r\n }\r\n },\r\n [props],\r\n );\r\n\r\n return (\r\n <OrSpaceCompact block>\r\n <MlFormItem\r\n noStyle\r\n name={[fieldName, 'select']}\r\n rules={rules && rules[0]}\r\n >\r\n <AtSelect\r\n disabled={disabled}\r\n $width=\"119px\"\r\n options={options}\r\n {...selectProps}\r\n />\r\n </MlFormItem>\r\n <MlFormItem noStyle name={[fieldName, 'input']} rules={rules && rules[1]}>\r\n {getInputComponent(props)}\r\n </MlFormItem>\r\n </OrSpaceCompact>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { AtText, AtTextProps } from '../../atoms/AtText';\r\nimport { OverlayView } from '@react-google-maps/api';\r\nimport { OrRow } from '..';\r\n\r\ntype Size = 'large' | 'middle' | 'small';\r\n\r\nconst sizes: { [key in Size]: { width: number; height: number } } = {\r\n large: {\r\n width: 40,\r\n height: 40,\r\n },\r\n middle: {\r\n width: 30,\r\n height: 30,\r\n },\r\n small: {\r\n width: 20,\r\n height: 20,\r\n },\r\n};\r\n\r\ninterface OverlayViewProps {\r\n children?: React.ReactNode | undefined;\r\n position?: google.maps.LatLng | google.maps.LatLngLiteral | undefined;\r\n getPixelPositionOffset?:\r\n | ((\r\n offsetWidth: number,\r\n offsetHeight: number,\r\n ) => {\r\n x: number;\r\n y: number;\r\n })\r\n | undefined;\r\n bounds?:\r\n | google.maps.LatLngBounds\r\n | google.maps.LatLngBoundsLiteral\r\n | undefined;\r\n zIndex?: number | undefined;\r\n onLoad?: ((overlayView: google.maps.OverlayView) => void) | undefined;\r\n onUnmount?: ((overlayView: google.maps.OverlayView) => void) | undefined;\r\n hasOverlay?: boolean;\r\n}\r\n\r\nconst CustomOverlay: React.FC<OverlayViewProps> = ({\r\n children,\r\n hasOverlay = true,\r\n ...props\r\n}) => {\r\n return hasOverlay ? (\r\n <OverlayView {...props} mapPaneName=\"overlayMouseTarget\">\r\n {children}\r\n </OverlayView>\r\n ) : (\r\n <React.Fragment>{children}</React.Fragment>\r\n );\r\n};\r\n\r\nexport interface OrMarkProps {\r\n id?: string;\r\n text?: string;\r\n color?: AtTextProps['color'];\r\n backgroundColor?: string;\r\n onClick?: React.MouseEventHandler<HTMLDivElement>;\r\n size?: Size;\r\n position: {\r\n lat: number;\r\n lng: number;\r\n };\r\n component?: React.ReactNode;\r\n hasOverlay?: boolean;\r\n translate?: number[]\r\n}\r\n\r\nexport const OrMark: React.FC<OrMarkProps> = ({\r\n text,\r\n color,\r\n onClick,\r\n backgroundColor,\r\n size = 'middle',\r\n position,\r\n component,\r\n hasOverlay = true,\r\n translate = [0, 0]\r\n}) => {\r\n return (\r\n <CustomOverlay position={position} hasOverlay={hasOverlay}>\r\n {component ?? (\r\n <OrRow\r\n style={{\r\n ...sizes[size],\r\n backgroundColor,\r\n borderRadius: sizes[size].width / 2,\r\n transform: `translate(${translate[0]}px, ${translate[1]}px)`\r\n }}\r\n align=\"middle\"\r\n justify=\"center\"\r\n onClick={onClick}\r\n >\r\n <AtText color={color}>{text}</AtText>\r\n </OrRow>\r\n )}\r\n </CustomOverlay>\r\n );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { DirectionsRenderer, GoogleMap, GoogleMapProps } from '@react-google-maps/api';\r\nimport { OrMark, OrMarkProps } from '../OrMark';\r\n\r\nexport enum MarkSize {\r\n Large = 'large',\r\n Middle = 'middle',\r\n Small = 'small',\r\n}\r\n\r\nexport interface MarkersGroup {\r\n color?: OrMarkProps['color'];\r\n backgroundColor?: string;\r\n size?: OrMarkProps['size'];\r\n marks: OrMarkProps[];\r\n polyLine: boolean; //TODO: Check Polyline stuck on refresh\r\n}\r\n\r\nexport interface OrGoogleMapsProps extends GoogleMapProps {\r\n /**\r\n * The origin of the route.\r\n */\r\n origin?:\r\n | string\r\n | google.maps.LatLng\r\n | google.maps.Place\r\n | google.maps.LatLngLiteral;\r\n /**\r\n * The destination of the route.\r\n */\r\n destination?:\r\n | string\r\n | google.maps.LatLng\r\n | google.maps.Place\r\n | google.maps.LatLngLiteral;\r\n /**\r\n * Type of routing requested.\r\n */\r\n travelMode?: google.maps.TravelMode;\r\n /**\r\n * The stroke color.\r\n */\r\n strokeColor?: string | null;\r\n /**\r\n * The stroke opacity between 0.0 and 1.0.\r\n */\r\n strokeOpacity?: number | null;\r\n /**\r\n * The stroke width in pixels.\r\n */\r\n strokeWeight?: number | null;\r\n /**\r\n * The Google Maps API key.\r\n */\r\n GOOGLE_MAPS_API_KEY: string;\r\n /**\r\n * Static markers.\r\n */\r\n staticMarkers?: MarkersGroup[];\r\n /**\r\n * Realtime markers.\r\n */\r\n realtimeMarkers?: MarkersGroup[];\r\n}\r\n\r\nexport const OrGoogleMaps: React.FC<OrGoogleMapsProps> = ({\r\n origin,\r\n destination,\r\n travelMode = google.maps.TravelMode.DRIVING,\r\n strokeColor = '#1d57f6',\r\n strokeOpacity = 1,\r\n strokeWeight = 6,\r\n staticMarkers,\r\n realtimeMarkers,\r\n ...props\r\n}) => {\r\n const markSizes: { [key in MarkSize]: { width: number; height: number } } = {\r\n large: {\r\n width: 40,\r\n height: 40,\r\n },\r\n middle: {\r\n width: 30,\r\n height: 30,\r\n },\r\n small: {\r\n width: 20,\r\n height: 20,\r\n },\r\n };\r\n\r\n const [directionsState, setDirectionsState] =\r\n React.useState<google.maps.DirectionsResult | null>(null);\r\n\r\n useEffect(() => {\r\n if (!window.google || !origin || !destination) return;\r\n\r\n const DirectionsService = new google.maps.DirectionsService();\r\n\r\n DirectionsService.route({\r\n origin,\r\n destination,\r\n travelMode,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n },\r\n (result, status) => {\r\n if (status === google.maps.DirectionsStatus.OK) {\r\n setDirectionsState(result);\r\n } else {\r\n console.error(`error fetching directions ${result}`);\r\n }\r\n }\r\n );\r\n }, [origin, destination]);\r\n\r\n return (\r\n <GoogleMap \r\n {...props}\r\n options={{\r\n ...props.options,\r\n panControl: false,\r\n zoomControl: false,\r\n mapTypeControl: false,\r\n scaleControl: false,\r\n streetViewControl: false,\r\n rotateControl: false,\r\n disableDefaultUI: true,\r\n }}\r\n >\r\n {directionsState && (\r\n <DirectionsRenderer options={{ \r\n directions: directionsState,\r\n polylineOptions: {\r\n strokeColor,\r\n strokeOpacity,\r\n strokeWeight,\r\n },\r\n }} />\r\n )}\r\n\r\n {staticMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n )),\r\n )}\r\n {realtimeMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n\r\n )),\r\n )}\r\n </GoogleMap>\r\n );\r\n};\r\n\r\n","import { message } from 'antd';\r\n\r\nexport const useMessage = () => {\r\n return message.useMessage();\r\n};\r\n","import { useState, useMemo, useCallback } from 'react';\r\nimport { Modal, ModalFuncProps } from 'antd';\r\n\r\nexport interface ModalProps extends ModalFuncProps {\r\n variant: 'confirm' | 'warning' | 'info' | 'error';\r\n}\r\n\r\nexport const useModal = () => {\r\n const [variant, setVariant] = useState<ModalProps['variant']>('confirm');\r\n const [modal, contextHolder] = Modal.useModal();\r\n\r\n const modalVariant = useMemo(() => {\r\n switch (variant) {\r\n case 'confirm':\r\n return modal.confirm;\r\n case 'warning':\r\n return modal.warning;\r\n case 'info':\r\n return modal.info;\r\n case 'error':\r\n return modal.error;\r\n default:\r\n return modal.confirm;\r\n }\r\n }, [variant, modal]);\r\n\r\n const show = useCallback(\r\n (config: ModalFuncProps) => {\r\n return modalVariant(config);\r\n },\r\n [modalVariant],\r\n );\r\n\r\n return {\r\n show,\r\n setVariant,\r\n contextHolder,\r\n };\r\n};\r\n","import { Form } from 'antd';\r\n\r\nexport const useForm = <T = any>() => {\r\n return Form.useForm<T>();\r\n};\r\n","import { Form, FormInstance } from 'antd';\r\nimport { WatchOptions } from 'rc-field-form/es/interface';\r\n\r\nexport const useFormWatch = <T = any>(\r\n name: string | string[],\r\n form?: FormInstance | WatchOptions<FormInstance>,\r\n) => {\r\n return Form.useWatch<T>(name, form);\r\n};\r\n","export * from './useMessage';\r\nexport * from './useCodeInput';\r\nexport * from './useModal';\r\nexport * from './useForm';\r\nexport * from './useFormWatch';\r\n","import React from 'react';\r\nimport { Table, TableProps } from 'antd';\r\nimport { AnyObject } from 'antd/es/_util/type';\r\nimport { ColumnsType, TablePaginationConfig } from 'antd/es/table';\r\nimport {\r\n ExpandableConfig,\r\n FilterValue,\r\n SorterResult,\r\n TableCurrentDataSource,\r\n} from 'antd/es/table/interface';\r\n\r\nexport type OrColumnsType<T = unknown> = ColumnsType<T>;\r\n\r\nexport type OnChangeTable<RecordType = AnyObject> = (\r\n pagination: TablePaginationConfig,\r\n filters: Record<string, FilterValue | null>,\r\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[],\r\n extra: TableCurrentDataSource<RecordType>,\r\n) => void;\r\n\r\nexport interface OrTableProps<RecordType = AnyObject> {\r\n /**\r\n * Whether to show all table borders\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Columns of table\r\n */\r\n columns: TableProps<RecordType>['columns'];\r\n /**\r\n * Data record array to be displayed\r\n */\r\n dataSource: TableProps<RecordType>['dataSource'];\r\n /**\r\n * Loading status of table\r\n */\r\n loading?: TableProps<RecordType>['loading'];\r\n /**\r\n * Config of pagination. You can ref table pagination config or full pagination document, hide it by setting it to false\r\n */\r\n pagination?: TableProps<RecordType>['pagination'];\r\n /**\r\n * Row's unique key, could be a string or function that returns a string\r\n */\r\n rowKey?: TableProps<RecordType>['rowKey'];\r\n /**\r\n * \tSize of table\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Set sticky header and scroll bar\r\n */\r\n sticky?: boolean;\r\n /**\r\n * Table title renderer\r\n */\r\n title?: TableProps<RecordType>['title'];\r\n /**\r\n * Callback executed when pagination, filters or sorter is changed\r\n */\r\n onChange?: OnChangeTable<RecordType>;\r\n /**\r\n * row selection config\r\n */\r\n rowSelection?: TableProps<RecordType>['rowSelection'];\r\n /**\r\n * Set the scroll of table, could be a number that indicates the width of the scroll area, or an object that has the following properties: x number | string, y number | string\r\n */\r\n scroll?: TableProps<RecordType>['scroll'];\r\n /**\r\n * Set the expandable of table\r\n * */\r\n expandable?: ExpandableConfig<RecordType> | undefined\r\n}\r\n\r\nexport const OrTable = <RecordType extends AnyObject>({\r\n bordered = false,\r\n loading = false,\r\n pagination = false,\r\n size = 'large',\r\n sticky = false,\r\n rowSelection,\r\n ...props\r\n}: OrTableProps<RecordType>) => {\r\n return (\r\n <Table<RecordType>\r\n rowSelection={rowSelection}\r\n bordered={bordered}\r\n loading={loading}\r\n pagination={pagination}\r\n size={size}\r\n sticky={sticky}\r\n scroll={{ x: 'max-content' }}\r\n expandable={{ rowExpandable: (record) => record.expandable, }}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { Form } from 'antd';\r\nimport { useFormWatch } from '../../../hooks';\r\nimport { AtSelect, AtSelectProps } from '../../atoms';\r\nimport { MlFormItem, MlFromItemProps } from '../../molecules';\r\nimport { OrSpace } from '../OrSpace';\r\nimport { OrTable, OrTableProps } from '../OrTable';\r\nimport { useEffect, useMemo, useState } from 'react';\r\n\r\nexport type OrSelectTableOption<T = any> = {\r\n label: string;\r\n value: string;\r\n fullData: T;\r\n};\r\n\r\nexport interface OrSelectTableProps<T = any> extends AtSelectProps {\r\n columns?: OrTableProps['columns'];\r\n data?: OrTableProps['dataSource'];\r\n options?: OrSelectTableOption<T>[];\r\n fieldName: string;\r\n rules?: MlFromItemProps['rules'][];\r\n}\r\n\r\nexport const OrSelectTable: React.FC<OrSelectTableProps> = ({\r\n columns,\r\n fieldName,\r\n rules,\r\n ...props\r\n}) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [fullData, setFullData] = useState<{ [key: string]: any[] }>({});\r\n const form = Form.useFormInstance();\r\n const selectWatcher = useFormWatch([fieldName, 'select'], form);\r\n const hideSelectWatcher = useFormWatch([fieldName, 'hideSelect'], form);\r\n\r\n const options = useMemo(() => {\r\n return props.options?.filter((option) => {\r\n return !hideSelectWatcher?.includes(option.value);\r\n });\r\n }, [props.options, hideSelectWatcher]);\r\n\r\n useEffect(() => {\r\n if (form) {\r\n const selectedValues =\r\n form.getFieldValue([fieldName, 'hideSelect']) ?? [];\r\n\r\n setData(\r\n selectedValues.map((value: string) => {\r\n return fullData[value];\r\n }),\r\n );\r\n }\r\n }, [form, fullData]);\r\n\r\n useEffect(() => {\r\n if (form && selectWatcher) {\r\n const selectedValues =\r\n form.getFieldValue([fieldName, 'hideSelect']) ?? [];\r\n\r\n if (selectedValues.includes(selectWatcher)) {\r\n selectedValues.splice(selectedValues.indexOf(selectWatcher), 1);\r\n } else {\r\n selectedValues.push(selectWatcher);\r\n }\r\n\r\n setFullData((prev) => {\r\n const newFullData = {\r\n ...prev,\r\n [selectWatcher]: props.options?.find(\r\n (option) => option.value === selectWatcher,\r\n )?.fullData,\r\n };\r\n\r\n return newFullData;\r\n });\r\n\r\n form.setFieldsValue({\r\n [`${fieldName}`]: {\r\n hideSelect: selectedValues,\r\n },\r\n });\r\n form.setFieldValue([fieldName, 'select'], undefined);\r\n }\r\n }, [selectWatcher, form]);\r\n\r\n return (\r\n <OrSpace $width=\"100%\" direction=\"vertical\">\r\n <MlFormItem noStyle name={[fieldName, 'select']}>\r\n <AtSelect\r\n showSearch={props.showSearch}\r\n filterOption={props.filterOption}\r\n onSearch={props.onSearch}\r\n options={options}\r\n $width=\"100%\"\r\n disabled={\r\n props.disabled ||\r\n (props.maxCount &&\r\n hideSelectWatcher &&\r\n hideSelectWatcher.length >= props.maxCount)\r\n }\r\n />\r\n </MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n hidden\r\n name={[fieldName, 'hideSelect']}\r\n rules={rules && rules[1]}\r\n >\r\n <AtSelect\r\n options={props.options}\r\n mode=\"multiple\"\r\n $width=\"100%\"\r\n maxCount={props.maxCount}\r\n />\r\n </MlFormItem>\r\n\r\n <OrTable columns={columns} dataSource={data ?? []} scroll={{ y: 340 }} />\r\n </OrSpace>\r\n );\r\n};\r\n","import React, { CSSProperties, ReactNode, useCallback } from 'react';\r\nimport {\r\n AtDatePicker,\r\n AtDatePickerPros,\r\n AtNumberInput,\r\n AtNumberInputProps,\r\n AtSelect,\r\n AtSelectProps,\r\n AtText,\r\n AtTextInput,\r\n AtTextProps,\r\n AtDateRangePicker,\r\n AtIcon,\r\n AtQrCode,\r\n AtButton,\r\n AtButtonProps,\r\n AtImageProps,\r\n AtImage,\r\n AtTimeRangePicker,\r\n AtTimeRangePickerProps,\r\n} from '../../atoms';\r\nimport {\r\n MlFormItem,\r\n MlRadioGroup,\r\n MlRadioGroupProps,\r\n MlFromItemProps,\r\n MlUpload,\r\n MlInfoList,\r\n MlInfoListProps,\r\n MlUploadProps,\r\n MlInputList,\r\n} from '../../molecules';\r\nimport { MlCheckboxGroup } from '../../molecules/MlCheckboxGroup';\r\nimport { OrPhoneInput } from '../OrPhoneInput';\r\nimport { LabeledValue, DefaultOptionType as Option } from 'antd/es/select';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { OrCopyInfo } from '../OrCopyInfo';\r\nimport { OrSelectInput, OrSelectInputProps } from '../OrSelectInput';\r\nimport { UploadProps } from 'antd';\r\nimport { OrCollapse, OrCollapseProps } from '../OrCollapse';\r\nimport { AtInputStatus } from '../../atoms/AtInputStatus';\r\nimport { OrDownloadUpload } from '../OrDownloadUpload';\r\nimport { OrGoogleMaps, OrGoogleMapsProps } from '../OrGoogleMaps';\r\nimport {\r\n MlAutocompleteSearch,\r\n MlAutocompleteSearchProps,\r\n} from '../../molecules/MlAutocompleteSearch';\r\nimport { OrSelectTable, OrSelectTableOption } from '../OrSelectTable';\r\nimport { OrTableProps } from '../OrTable';\r\nimport { OrStep, OrStepProp } from '../OrStep';\r\nimport { MlAutocompleteSearchText } from '../../molecules/MlAutocompleteSearchText';\r\nimport { OrTabs, OrTabsProps } from '../OrTab';\r\nimport { OrDescriptions } from '../OrDescriptions';\r\nimport { DescriptionsProps } from 'antd/lib';\r\nimport { AtBadgeCard, AtBadgeCardProps } from '../../atoms/AtBadgeCard';\r\n\r\ninterface TextProps extends AtTextProps {\r\n text: string;\r\n}\r\n\r\nexport interface OrFormInLineItem {\r\n /**\r\n * Type of components available for the form\r\n */\r\n component:\r\n | 'radio'\r\n | 'number-input'\r\n | 'checkbox'\r\n | 'select'\r\n | 'select-multiple'\r\n | 'text'\r\n | 'phone'\r\n | 'date-picker'\r\n | 'date-range-picker'\r\n | 'cvc'\r\n | 'name'\r\n | 'select-input'\r\n | 'info'\r\n | 'copy-info'\r\n | 'status-info'\r\n | 'file-input'\r\n | 'collapse'\r\n | 'download-upload'\r\n | 'summary'\r\n | 'qr-code'\r\n | 'select-table'\r\n | 'google-map'\r\n | 'google-autocomplete-search'\r\n | 'stepper'\r\n | 'input-list'\r\n | 'button'\r\n | 'image'\r\n | 'time-range-picker'\r\n | 'autocomplete-search'\r\n | 'tabs'\r\n | 'descriptions-table'\r\n | 'badge-ribbon';\r\n\r\n /**\r\n * Label of the field\r\n */\r\n label?: string | string[];\r\n /**\r\n * Key identifier\r\n */\r\n key?: string;\r\n /**\r\n * Field name (develop purpose)\r\n */\r\n fieldName: string;\r\n /**\r\n * Place holder (only for inputs)\r\n */\r\n placeHolder?: string;\r\n /**\r\n * Children of the FormItems (Recursive Form)\r\n */\r\n children?: OrFormItemsInlineProps | React.ReactElement | string;\r\n /**\r\n * Specifies options for fields that allows options\r\n */\r\n options?:\r\n | MlRadioGroupProps['options']\r\n | MlCheckboxGroup['options']\r\n | AtSelectProps['options']\r\n | OrSelectTableOption[];\r\n /**\r\n * Rules for field validation. Click [here](https://ant.design/components/form#components-form-demo-basic) to see an example\r\n */\r\n rules?: MlFromItemProps['rules'];\r\n compositeRules?: [MlFromItemProps['rules'], MlFromItemProps['rules']];\r\n compositeType?: OrSelectInputProps['type'];\r\n hidden?: boolean;\r\n disabled?: boolean;\r\n styles?: CSSProperties;\r\n addonAfter?: ReactNode;\r\n onSearch?: (value: string) => any;\r\n showSearch?: boolean;\r\n onChange?: (value: any, option: Option | Array<Option>) => any;\r\n onSelect?: AtSelectProps['onSelect'];\r\n filterOption?: AtSelectProps['filterOption'];\r\n disabledDate?: AtDatePickerPros['disabledDate'];\r\n formatter?: AtNumberInputProps['formatter'];\r\n parser?: AtNumberInputProps['parser'];\r\n items?: OrCollapseProps['items'];\r\n iconItems?: MlInfoListProps['items'];\r\n /**\r\n * Format of the date\r\n */\r\n format?: string;\r\n textProps?: TextProps | Array<TextProps>;\r\n tabProps?: OrTabsProps;\r\n badgeCardProps?: AtBadgeCardProps;\r\n onClick?: () => any;\r\n /**\r\n * Limit the number of uploaded files. Will replace current one when maxCount is 1\r\n */\r\n maxCount?: number;\r\n /**\r\n * Specify how to get value from event or other onChange arguments\r\n */\r\n getValueFromEvent?: (e: any) => any;\r\n /**\r\n * Hook function which will be executed before uploading. Uploading will be stopped with false or a rejected Promise returned. When returned value is Upload.LIST_IGNORE, the list of files that have been uploaded will ignore it. Warning:this function is not supported in IE9\r\n */\r\n beforeUpload?: UploadProps['beforeUpload'];\r\n /**\r\n * Enables full width\r\n */\r\n fullWidth?: boolean;\r\n /**\r\n * Type of the status info\r\n */\r\n type?: 'success' | 'warning' | 'danger' | 'info' | 'default';\r\n /**\r\n * Tooltip of the label\r\n */\r\n tooltip?: MlFromItemProps['tooltip'];\r\n /**\r\n * Title of the download-upload\r\n */\r\n title?: string;\r\n /**\r\n * Span of the column (only for inline items)\r\n */\r\n span?: number;\r\n /**\r\n * Span of the column on medium screens (only for inline items)\r\n */\r\n md?: number;\r\n /**\r\n * MlInfoList items\r\n */\r\n summaryItems?: MlInfoListProps['items'];\r\n /**\r\n * Label column span\r\n */\r\n labelCol?: number;\r\n /**\r\n * Information to be displayed below the input\r\n */\r\n extraInfo?: string;\r\n /**\r\n * The Google Maps props\r\n */\r\n mapsProps?: OrGoogleMapsProps;\r\n /**\r\n * The Google Maps API key.\r\n */\r\n GOOGLE_MAPS_API_KEY?: string;\r\n /**\r\n * Country code\r\n */\r\n country?: string;\r\n /**\r\n * The props for the autocomplete search\r\n */\r\n autocompleteProps?: Omit<MlAutocompleteSearchProps, 'fieldName' | 'rules'>;\r\n /**\r\n * The size of the QR code\r\n */\r\n size?: number;\r\n /**\r\n * Columns for the table (select-table component)\r\n */\r\n columns?: OrTableProps['columns'];\r\n /**\r\n * Data for the table (select-table component)\r\n */\r\n data?: OrTableProps['dataSource'];\r\n /**\r\n * The picker type (date-picker component)\r\n */\r\n picker?: AtDatePickerPros['picker'];\r\n /**\r\n * file list for the file-input component\r\n */\r\n fileList?: MlUploadProps['fileList'];\r\n /**\r\n * onRemove for the file-input component\r\n */\r\n onRemoveUploadedFile?: MlUploadProps['onRemove'];\r\n noStyle?: boolean;\r\n /**\r\n * The mode of the upload\r\n */\r\n uploadMode?: 'drag' | 'basic';\r\n /**\r\n * The description of the summary component\r\n */\r\n description?: string;\r\n /**\r\n * Stepper props\r\n */\r\n stepperProps?: OrStepProp;\r\n /**\r\n * Custom select options\r\n */\r\n customOptions?: AtSelectProps['options'];\r\n /**\r\n * Adds a collapse wrapper to the current input\r\n */\r\n collapseWrapper?: boolean;\r\n /**\r\n * The orientation of the input\r\n */\r\n orientation?: 'horizontal' | 'vertical';\r\n /**\r\n * The type of the list item\r\n */\r\n listValues?: LabeledValue[];\r\n /**\r\n * The type of the list item\r\n */\r\n listItemType?: 'autocomplete' | 'text';\r\n /**\r\n * The text for the bottom button\r\n */\r\n addButtonText?: string;\r\n /**\r\n * The mode of the button\r\n */\r\n buttonType?: AtButtonProps['type'];\r\n /**\r\n * The icon of the button\r\n */\r\n icon?: AtButtonProps['icon'];\r\n /**\r\n * The function to fetch the place details\r\n */\r\n fetchPlaceDetails?: (id: string) => any;\r\n /**\r\n * The minimum number of items\r\n */\r\n minItems?: number;\r\n /**\r\n * The props for the image field\r\n */\r\n imageProps?: AtImageProps;\r\n /**\r\n * The props for the time range picker\r\n */\r\n timeRangePickerProps?: AtTimeRangePickerProps;\r\n /**\r\n * The props for the time range picker\r\n */\r\n descriptionsTableProps?: DescriptionsProps;\r\n /**\r\n * Allow auto clear for a select field\r\n */\r\n autoClearSearchValue?: boolean | undefined;\r\n}\r\n\r\nconst NO_FIELD_NAME_COMPONENTS: OrFormInLineItem['component'][] = [\r\n 'phone',\r\n 'google-autocomplete-search',\r\n //'select-input', TODO: Check this component to include rules\r\n];\r\nconst NO_INPUT_NAME_COMPONENTS: OrFormInLineItem['component'][] = [\r\n 'info',\r\n 'copy-info',\r\n 'button',\r\n];\r\nconst SPECIAL_COMPONENTS: OrFormInLineItem['component'][] = [\r\n 'download-upload',\r\n 'input-list',\r\n];\r\n\r\nexport interface OrFormItemsInlineProps {\r\n inputs?: Array<\r\n OrFormInLineItem | Array<OrFormInLineItem | OrFormInLineItem[]>\r\n >;\r\n}\r\n\r\nconst isRequired = (\r\n inputRules: OrFormInLineItem['rules'],\r\n compositeRules: OrFormInLineItem['compositeRules'],\r\n): boolean => {\r\n const rules: MlFromItemProps['rules'] = [\r\n ...(inputRules ?? []),\r\n ...(compositeRules?.at(0) ?? []),\r\n ...(compositeRules?.at(1) ?? []),\r\n ];\r\n return !!rules?.filter((rule) => rule.required).length ?? false;\r\n};\r\n\r\nexport const OrFormItemsInline: React.FC<OrFormItemsInlineProps> = ({\r\n inputs = [],\r\n}) => {\r\n const dummyRequest: UploadProps['customRequest'] = useCallback(\r\n (options: any) => {\r\n //This any is necessary in this case\r\n setTimeout(() => {\r\n if (options.onSuccess) options.onSuccess('ok');\r\n }, 0);\r\n },\r\n [],\r\n );\r\n\r\n const getValuePropName = useCallback(\r\n (input: OrFormInLineItem) => {\r\n if (input.component === 'checkbox') {\r\n return 'checked';\r\n } else if (\r\n input.component === 'file-input' ||\r\n input.component === 'download-upload'\r\n ) {\r\n return 'fileList';\r\n } else {\r\n return 'value';\r\n }\r\n },\r\n [inputs],\r\n );\r\n\r\n const getInputComponent = useCallback(\r\n (input: OrFormInLineItem) => {\r\n if (input.component === 'radio') {\r\n return (\r\n <MlRadioGroup\r\n disabled={input.disabled}\r\n options={input.options as MlRadioGroupProps['options']}\r\n orientation={input.orientation}\r\n />\r\n );\r\n } else if (input.component === 'image') {\r\n return <AtImage {...input.imageProps} />;\r\n } else if (input.component === 'button') {\r\n return (\r\n <AtButton\r\n icon={input.icon}\r\n type={input.buttonType}\r\n onClick={input.onClick}\r\n disabled={input.disabled}\r\n value={input.label as string}\r\n $width={input.fullWidth ? '100%' : undefined}\r\n />\r\n );\r\n } else if (input.component === 'summary') {\r\n return (\r\n <MlInfoList\r\n title={input.title}\r\n titleLevel={input.size as MlInfoListProps['titleLevel']}\r\n description={input.description}\r\n items={input.iconItems as MlInfoListProps['items']}\r\n />\r\n );\r\n } else if (input.component === 'number-input') {\r\n return (\r\n <AtNumberInput\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n controls={false}\r\n formatter={input.formatter}\r\n parser={input.parser}\r\n addonAfter={input.addonAfter}\r\n />\r\n );\r\n } else if (input.component === 'checkbox') {\r\n return (\r\n <MlCheckboxGroup\r\n disabled={input.disabled}\r\n $direction={input.fullWidth ? 'vertical' : 'horizontal'}\r\n options={input.options as MlCheckboxGroup['options']}\r\n />\r\n );\r\n } else if (input.component === 'select') {\r\n return (\r\n <AtSelect\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n showSearch={input.showSearch}\r\n onSearch={input.onSearch}\r\n onChange={input.onChange}\r\n onSelect={input.onSelect}\r\n filterOption={input.filterOption}\r\n autoClearSearchValue={input.autoClearSearchValue}\r\n />\r\n );\r\n } else if (input.component === 'select-multiple') {\r\n return (\r\n <AtSelect\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n mode={'multiple'}\r\n />\r\n );\r\n } else if (input.component === 'text') {\r\n return (\r\n <AtTextInput\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n addonAfter={input.addonAfter}\r\n />\r\n );\r\n } else if (input.component === 'date-picker') {\r\n return (\r\n <AtDatePicker\r\n $width=\"100%\"\r\n placeholder={input.placeHolder}\r\n style={input.styles}\r\n format={input.format || 'DD/MM/YYYY'}\r\n disabled={input.disabled}\r\n disabledDate={input.disabledDate}\r\n picker={input.picker ?? 'date'}\r\n />\r\n );\r\n } else if (input.component === 'date-range-picker') {\r\n return (\r\n <AtDateRangePicker\r\n $width=\"100%\"\r\n placeholder={input.placeHolder}\r\n style={input.styles}\r\n format={input.format || 'DD/MM/YYYY'}\r\n disabled={input.disabled}\r\n disabledDate={input.disabledDate}\r\n />\r\n );\r\n } else if (input.component === 'phone') {\r\n return (\r\n <OrPhoneInput\r\n name={input.fieldName}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n rules={input.rules}\r\n />\r\n );\r\n } else if (input.component === 'select-input') {\r\n return (\r\n <OrSelectInput\r\n type={input.compositeType}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n rules={input.compositeRules}\r\n fieldName={input.fieldName}\r\n />\r\n );\r\n } else if (input.component === 'info') {\r\n if (Array.isArray(input.textProps)) {\r\n return (\r\n <OrRow justify=\"space-between\">\r\n <OrCol span={24 / input.textProps.length}>\r\n <AtText {...input.textProps?.[0]}>\r\n {input.textProps?.[0]?.text}\r\n </AtText>\r\n </OrCol>\r\n {input.textProps?.[1]?.text && (\r\n <OrCol span={24 / input.textProps.length}>\r\n <AtText {...input.textProps?.[1]}>\r\n {input.textProps?.[1]?.text}\r\n </AtText>\r\n </OrCol>\r\n )}\r\n {input.textProps?.[2]?.text && (\r\n <OrCol span={24 / input.textProps.length} $alignItems=\"end\">\r\n <AtText {...input.textProps?.[2]}>\r\n {input.textProps?.[2]?.text}\r\n </AtText>\r\n </OrCol>\r\n )}\r\n </OrRow>\r\n );\r\n } else {\r\n return <AtText {...input.textProps}>{input.textProps?.text}</AtText>;\r\n }\r\n } else if (input.component === 'copy-info') {\r\n return (\r\n <OrCopyInfo\r\n textProps={input.textProps as TextProps}\r\n text={(input.textProps as TextProps)?.text}\r\n copyable={!input.disabled}\r\n onCopy={input?.onClick}\r\n />\r\n );\r\n } else if (input.component === 'file-input') {\r\n return (\r\n <MlUpload\r\n name={`${input.fieldName}`}\r\n maxCount={input.maxCount}\r\n beforeUpload={input.beforeUpload}\r\n customRequest={dummyRequest}\r\n listType={'picture'}\r\n $fullWidth={input.fullWidth}\r\n title={input.placeHolder}\r\n fileList={input.fileList}\r\n mode={input.uploadMode ?? 'basic'}\r\n />\r\n );\r\n } else if (input.component === 'collapse') {\r\n return <OrCollapse items={input.items} />;\r\n } else if (input.component === 'status-info') {\r\n return (\r\n <AtInputStatus\r\n type={input?.type}\r\n onClose={input?.onClick}\r\n closeIcon={<AtIcon name=\"CloseOutlined\" width={14} height={14} />}\r\n children={(input.textProps as TextProps)?.text}\r\n visible={\r\n !!(\r\n (input?.textProps as TextProps)?.text !== undefined &&\r\n (input?.textProps as TextProps)?.text !== '' &&\r\n !input.disabled !== false\r\n )\r\n }\r\n />\r\n );\r\n } else if (input.component === 'download-upload') {\r\n return (\r\n <OrDownloadUpload\r\n inputKey={`download-input_${input.key}` ?? 'download-upload'}\r\n getValueFromEvent={input.getValueFromEvent}\r\n rules={input.rules}\r\n isRequired={isRequired(input.rules, input.compositeRules)}\r\n disabled={input.disabled}\r\n downloadProps={{\r\n downloadOnClick: input?.onClick,\r\n downloadText: (input.textProps as TextProps)?.text ?? '',\r\n }}\r\n uploadProps={{\r\n name: `${input.fieldName}`,\r\n title: input.title,\r\n hint: input.placeHolder,\r\n maxCount: input.maxCount,\r\n beforeUpload: input.beforeUpload,\r\n customRequest: dummyRequest,\r\n listType: 'picture',\r\n $fullWidth: input.fullWidth,\r\n mode: input.uploadMode ?? 'drag',\r\n onRemove: input.onRemoveUploadedFile,\r\n }}\r\n />\r\n );\r\n } else if (input.component === 'google-map') {\r\n return (\r\n input.mapsProps && (\r\n <OrGoogleMaps\r\n mapContainerStyle={{\r\n width: '100%',\r\n height: '600px',\r\n }}\r\n {...input.mapsProps}\r\n />\r\n )\r\n );\r\n } else if (input.component === 'google-autocomplete-search') {\r\n return (\r\n <MlAutocompleteSearch\r\n {...input.autocompleteProps}\r\n fieldName={input.fieldName}\r\n rules={input.rules}\r\n />\r\n );\r\n } else if (input.component === 'autocomplete-search') {\r\n return (\r\n <MlAutocompleteSearchText\r\n placeholder={input.placeHolder}\r\n disabled={input.disabled}\r\n options={input.options as AtSelectProps['options']}\r\n onSearch={input.onSearch}\r\n onChange={input.onChange}\r\n onSelectValue={input.onSelect}\r\n style={input.styles}\r\n />\r\n );\r\n } else if (input.component === 'qr-code') {\r\n return <AtQrCode size={input.size} text={input.placeHolder ?? ''} />;\r\n } else if (input.component === 'select-table') {\r\n return (\r\n <OrSelectTable\r\n columns={input.columns}\r\n data={input.data}\r\n options={input.options as OrSelectTableOption[]}\r\n onChange={input.onChange}\r\n fieldName={input.fieldName}\r\n showSearch={input.showSearch}\r\n filterOption={input.filterOption}\r\n onSearch={input.onSearch}\r\n rules={input.compositeRules}\r\n maxCount={input.maxCount}\r\n />\r\n );\r\n } else if (input.component === 'stepper') {\r\n return <OrStep {...input.stepperProps} />;\r\n } else if (input.component === 'input-list') {\r\n return (\r\n <MlInputList\r\n baseKey={input.key}\r\n withinForm={true}\r\n loading={false}\r\n mainLabel={input.fieldName}\r\n label={typeof input.label === 'string' ? input.label : 'Item'}\r\n rules={input.rules}\r\n list={input.listValues ?? []}\r\n listItemType={input.listItemType}\r\n country={input.country}\r\n GOOGLE_MAPS_API_KEY={input.GOOGLE_MAPS_API_KEY}\r\n placeholder={input.placeHolder}\r\n bottomButtonText={input.addButtonText}\r\n bottomButtonType={input.buttonType}\r\n bottomButtonIcon={input.icon}\r\n fetchPlaceDetails={input.fetchPlaceDetails}\r\n minItems={input.minItems}\r\n onSearch={input.onSearch}\r\n onSelect={input.onSelect}\r\n />\r\n );\r\n } else if (input.component === 'time-range-picker') {\r\n return <AtTimeRangePicker {...input.timeRangePickerProps} />;\r\n } else if (input.component === 'tabs') {\r\n return <OrTabs {...input.tabProps} />;\r\n } else if (input.component === 'descriptions-table') {\r\n return (\r\n <OrDescriptions\r\n {...input.descriptionsTableProps}\r\n items={\r\n input.descriptionsTableProps?.items as DescriptionsProps['items']\r\n }\r\n title={input.descriptionsTableProps?.title as string}\r\n />\r\n );\r\n } else if (input.component === 'badge-ribbon') {\r\n return <AtBadgeCard {...input.badgeCardProps} />;\r\n } else {\r\n return null;\r\n }\r\n },\r\n [inputs],\r\n );\r\n\r\n const getFormItemWrapper = (\r\n input: OrFormInLineItem,\r\n index: number,\r\n ): React.ReactNode => {\r\n return (\r\n <>\r\n <MlFormItem\r\n hidden={input.hidden}\r\n key={input.key || index} // Use index as a fallback if key is not provided\r\n label={\r\n typeof input.label !== 'string' || input.collapseWrapper\r\n ? undefined\r\n : input.label\r\n }\r\n labelCol={{ span: input.labelCol ?? undefined }}\r\n name={input.fieldName}\r\n valuePropName={getValuePropName(input)}\r\n rules={\r\n !NO_FIELD_NAME_COMPONENTS.includes(input.component)\r\n ? input.rules\r\n : undefined\r\n }\r\n getValueFromEvent={input.getValueFromEvent ?? undefined}\r\n tooltip={input.tooltip}\r\n required={\r\n !NO_FIELD_NAME_COMPONENTS.includes(input.component) &&\r\n isRequired(input.rules, input.compositeRules)\r\n }\r\n noStyle={input.noStyle}\r\n >\r\n {getInputComponent(input)}\r\n </MlFormItem>\r\n {input.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {input.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {inputs.map((input, index) =>\r\n Array.isArray(input) ? (\r\n <OrRow key={100 + index} gutter={[16]}>\r\n {input.map((elem, index) => {\r\n const thereIsNoArray = input.every(\r\n (elem) => !Array.isArray(elem),\r\n );\r\n\r\n let span: number, md: number;\r\n\r\n if (thereIsNoArray && !Array.isArray(elem)) {\r\n span = elem.span ?? 24;\r\n md = elem.md\r\n ? elem.md\r\n : elem.span\r\n ? elem.span\r\n : 24 / input.length;\r\n } else {\r\n span = 24;\r\n md = 24 / input.length;\r\n }\r\n\r\n return (\r\n <OrCol flex=\"auto\" span={span} sm={md}>\r\n {Array.isArray(elem) ? (\r\n <OrRow key={1000 + index} gutter={[16]}>\r\n {elem.map((innerElem, innerIndex) => {\r\n const innerSpan = innerElem.span ?? 24;\r\n const innerMd = innerElem.md\r\n ? innerElem.md\r\n : innerElem.span\r\n ? innerElem.span\r\n : 24 / input.length;\r\n\r\n return (\r\n <OrCol\r\n flex=\"auto\"\r\n span={innerSpan}\r\n md={innerMd}\r\n style={{\r\n width: innerElem.fullWidth ? '100%' : undefined,\r\n }}\r\n >\r\n <OrRow>\r\n <OrCol $paddingTop={5} span={24}>\r\n <MlFormItem\r\n hidden={innerElem.hidden}\r\n key={innerElem.key || innerIndex} // Use index as a fallback if key is not provided\r\n label={\r\n typeof innerElem.label !== 'string'\r\n ? undefined\r\n : innerElem.label\r\n }\r\n labelCol={{\r\n span: innerElem.labelCol ?? undefined,\r\n }}\r\n name={\r\n innerElem.component !== 'phone'\r\n ? innerElem.fieldName\r\n : undefined\r\n }\r\n valuePropName={getValuePropName(innerElem)}\r\n rules={\r\n !NO_FIELD_NAME_COMPONENTS.includes(\r\n innerElem.component,\r\n )\r\n ? innerElem.rules\r\n : undefined\r\n }\r\n getValueFromEvent={\r\n innerElem.getValueFromEvent ?? undefined\r\n }\r\n required={\r\n NO_FIELD_NAME_COMPONENTS.includes(\r\n innerElem.component,\r\n ) &&\r\n isRequired(\r\n innerElem.rules,\r\n innerElem.compositeRules,\r\n )\r\n }\r\n tooltip={innerElem.tooltip}\r\n >\r\n {getInputComponent(innerElem)}\r\n </MlFormItem>\r\n </OrCol>\r\n </OrRow>\r\n {innerElem.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {innerElem.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n ) : (\r\n <>\r\n <MlFormItem\r\n hidden={elem.hidden}\r\n key={elem.key || index} // Use index as a fallback if key is not provided\r\n label={\r\n typeof elem.label !== 'string'\r\n ? undefined\r\n : elem.label\r\n }\r\n labelCol={{ span: elem.labelCol ?? undefined }}\r\n name={\r\n elem.component !== 'phone'\r\n ? elem.fieldName\r\n : undefined\r\n }\r\n valuePropName={getValuePropName(elem)}\r\n rules={\r\n !NO_FIELD_NAME_COMPONENTS.includes(elem.component)\r\n ? elem.rules\r\n : undefined\r\n }\r\n getValueFromEvent={elem.getValueFromEvent}\r\n required={\r\n NO_FIELD_NAME_COMPONENTS.includes(elem.component) &&\r\n isRequired(elem.rules, elem.compositeRules)\r\n }\r\n tooltip={elem.tooltip}\r\n >\r\n {getInputComponent(elem)}\r\n </MlFormItem>\r\n {elem.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {elem.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </>\r\n )}\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n ) : NO_INPUT_NAME_COMPONENTS.includes(input.component) ? (\r\n <OrRow\r\n style={\r\n input.noStyle\r\n ? {}\r\n : {\r\n marginTop: 16,\r\n marginBottom: 16,\r\n }\r\n }\r\n >\r\n {getInputComponent(input)}\r\n {input.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {input.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </OrRow>\r\n ) : SPECIAL_COMPONENTS.includes(input.component) ? (\r\n <MlFormItem\r\n label={\r\n typeof input.label !== 'string' ||\r\n input.component === 'input-list'\r\n ? undefined\r\n : `${input.label}`\r\n }\r\n required={isRequired(input.rules, input.compositeRules)}\r\n tooltip={input.tooltip}\r\n noStyle={input.noStyle}\r\n >\r\n {getInputComponent(input)}\r\n {input.extraInfo && (\r\n <OrRow>\r\n <OrCol style={{ marginTop: -25 }} span={24}>\r\n <AtText color=\"black\" $opacity={0.45}>\r\n {input.extraInfo}\r\n </AtText>\r\n </OrCol>\r\n </OrRow>\r\n )}\r\n </MlFormItem>\r\n ) : input.collapseWrapper ? (\r\n <OrRow>\r\n <OrCol $paddingBottom={24} span={24}>\r\n <OrCollapse\r\n items={[\r\n {\r\n key: input.key,\r\n label: input.label,\r\n children: getFormItemWrapper(input, index),\r\n },\r\n ]}\r\n />\r\n </OrCol>\r\n </OrRow>\r\n ) : (\r\n getFormItemWrapper(input, index)\r\n ),\r\n )}\r\n </>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { AtText, AtTextProps } from '../../atoms/AtText';\r\nimport { OrCol, OrRow } from '..';\r\n\r\ntype Size = 'large' | 'middle' | 'small';\r\n\r\nconst sizes: { [key in Size]: { gap: number } } = {\r\n large: {\r\n gap: 10,\r\n },\r\n middle: {\r\n gap: 5,\r\n },\r\n small: {\r\n gap: 0,\r\n },\r\n};\r\n\r\nexport interface OrLabelTextBoxProps {\r\n title?: string;\r\n text?: string;\r\n id?: string;\r\n size?: Size;\r\n color?: AtTextProps['color'];\r\n}\r\n\r\nexport const OrLabelTextBox: React.FC<OrLabelTextBoxProps> = ({\r\n text,\r\n title,\r\n id,\r\n size = 'middle',\r\n color = 'black',\r\n}) => {\r\n return (\r\n <OrCol key={id} $gap={sizes[size].gap}>\r\n <OrRow>\r\n <AtText $fontSize={18} strong={true} color={color}>\r\n {title}\r\n </AtText>\r\n </OrRow>\r\n <OrRow key={id}>\r\n <AtText $fontSize={18} color={color}>\r\n {text}\r\n </AtText>\r\n </OrRow>\r\n </OrCol>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrLabelTextBox,\r\n OrLabelTextBoxProps,\r\n} from '../../organisms/OrLabelTextBox';\r\nimport { OrCol } from '../OrCol';\r\nimport { OrRow } from '../OrRow';\r\nimport { AtImage } from '../../atoms';\r\nimport { gray } from '../../../theme';\r\n\r\nexport interface OrInfoCardProps {\r\n data?: OrLabelTextBoxProps[];\r\n id?: string;\r\n image?: string;\r\n}\r\n\r\nexport const OrInfoCard: React.FC<OrInfoCardProps> = ({ data, image }) => {\r\n return (\r\n <OrRow\r\n align={'middle'}\r\n justify={'space-between'}\r\n $gap={24}\r\n $paddingLeft={24}\r\n $paddingRight={5}\r\n $paddingVertical={16}\r\n $backgroundColor={gray[3]}\r\n style={{ borderRadius: 8 }}\r\n >\r\n {!!image && (\r\n <OrCol>\r\n <AtImage width={40} height={40} src={image} preview={false} />\r\n </OrCol>\r\n )}\r\n {data?.map((item) => (\r\n <OrCol>\r\n <OrLabelTextBox {...item} color={item.color} />\r\n </OrCol>\r\n ))}\r\n </OrRow>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { MlCardProps } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtButton, AtIcon } from '../../atoms';\r\nimport { StyledCard } from '../OrCard/styles';\r\nimport { Breadcrumb } from 'antd';\r\nimport { BreadcrumbProps } from 'antd/lib';\r\n\r\nexport interface OrInfoHeaderCardProps extends MlCardProps {\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Breadcrumb items\r\n */\r\n breadcrumbItems?: BreadcrumbProps['items'];\r\n /**\r\n * Breadcrumb items\r\n */\r\n leftElement?: React.ReactElement;\r\n /**\r\n * Breadcrumb items\r\n */\r\n rightElement?: React.ReactElement;\r\n}\r\n\r\n/**\r\n * Primary input UI component for user interaction\r\n */\r\nexport const OrInfoHeaderCard: React.FC<OrInfoHeaderCardProps> = ({\r\n bordered = true,\r\n hoverable = false,\r\n loading = false,\r\n size = 'default',\r\n selected = false,\r\n $borderColor = 'gray',\r\n $marginBottom,\r\n $padding,\r\n $backgroundColor,\r\n $shadow,\r\n $maxWidth,\r\n $alignSelf,\r\n $margin,\r\n onClickLeftArrow,\r\n breadcrumbItems = [],\r\n leftElement,\r\n rightElement,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledCard\r\n bordered={bordered}\r\n hoverable={hoverable}\r\n loading={loading}\r\n $backgroundColor={$backgroundColor}\r\n size={size}\r\n selected={selected}\r\n $borderColor={$borderColor}\r\n $marginBottom={$marginBottom}\r\n $padding={$padding}\r\n $shadow={$shadow}\r\n $maxWidth={$maxWidth}\r\n $alignSelf={$alignSelf}\r\n $margin={$margin}\r\n {...props}\r\n >\r\n {breadcrumbItems && (\r\n <OrRow style={{ marginBottom: 17 }}>\r\n <Breadcrumb items={breadcrumbItems} />\r\n </OrRow>\r\n )}\r\n <OrRow justify={'space-between'}>\r\n <OrCol $flexDirection=\"row\" $alignItems=\"center\" $gap={10}>\r\n {onClickLeftArrow && (\r\n <AtButton\r\n onClick={onClickLeftArrow}\r\n icon={<AtIcon name=\"ArrowLeftOutlined\" />}\r\n borderless\r\n type=\"ghost\"\r\n />\r\n )}\r\n {leftElement}\r\n </OrCol>\r\n <OrCol>{rightElement}</OrCol>\r\n </OrRow>\r\n </StyledCard>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const ModuleContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const Container = styled.div<{ $padding?: string }>`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 15px;\r\n ${({ $padding }) => (`padding: ${$padding};`)}\r\n`;\r\n","import React from 'react';\r\nimport { AtButton, AtTitle } from '../../atoms';\r\nimport { ModuleContainer, Container } from './styles';\r\nimport { MlSearchBox } from '../../molecules';\r\n\r\nexport interface OrModuleTableHeaderProps {\r\n /**\r\n * Title of the module table header\r\n */\r\n title?: string;\r\n /**\r\n * Search box placeholder\r\n */\r\n searchBoxPlaceholder?: string;\r\n /**\r\n * Search box value\r\n */\r\n searchBoxValue?: string;\r\n /**\r\n * Search box onChange\r\n */\r\n searchBoxOnChange?:\r\n | ((e: React.ChangeEvent<HTMLInputElement>) => void)\r\n | undefined;\r\n /**\r\n * Search box onSearch\r\n */\r\n searchBoxOnSearch?:\r\n | ((\r\n value: string,\r\n event?:\r\n | React.ChangeEvent<HTMLInputElement>\r\n | React.MouseEvent<HTMLElement, MouseEvent>\r\n | React.KeyboardEvent<HTMLInputElement>\r\n | undefined,\r\n ) => void)\r\n | undefined;\r\n /**\r\n * Search box onPressEnter\r\n */\r\n searchBoxOnPressEnter?:\r\n | ((event: React.KeyboardEvent<HTMLInputElement>) => void)\r\n | undefined;\r\n /**\r\n * Button value\r\n */\r\n buttonValue?: string;\r\n /**\r\n * Button onClick\r\n */\r\n buttonOnClick?:\r\n | (React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>)\r\n | undefined;\r\n /**\r\n * Custom component to render at left side\r\n */\r\n customLeftElements?: React.ReactNode;\r\n /**\r\n * Show search box\r\n */\r\n showSearchBox?: boolean;\r\n /**\r\n * Level of title\r\n */\r\n level?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * Button value\r\n */\r\n secondaryButtonValue?: string;\r\n /**\r\n * Button onClick\r\n */\r\n secondaryButtonOnClick?:\r\n | (React.MouseEventHandler<HTMLAnchorElement> &\r\n React.MouseEventHandler<HTMLButtonElement>)\r\n | undefined;\r\n /**\r\n * Icon for first button\r\n */\r\n buttonIcon?: string;\r\n\r\n /**\r\n * Icon for second button\r\n */\r\n secondaryButtonIcon?: string;\r\n}\r\n\r\nexport const OrModuleTableHeader: React.FC<OrModuleTableHeaderProps> = ({\r\n title,\r\n customLeftElements,\r\n showSearchBox = true,\r\n searchBoxPlaceholder,\r\n searchBoxOnChange,\r\n searchBoxOnSearch,\r\n buttonValue,\r\n buttonOnClick,\r\n level = 5,\r\n secondaryButtonValue,\r\n secondaryButtonOnClick,\r\n buttonIcon,\r\n secondaryButtonIcon,\r\n}) => {\r\n return (\r\n <ModuleContainer>\r\n <Container>\r\n <AtTitle level={level} $margin=\"0\">\r\n {title}\r\n </AtTitle>\r\n {customLeftElements}\r\n </Container>\r\n <Container $padding=\"16px 8px\">\r\n {showSearchBox && (\r\n <MlSearchBox\r\n placeholder={searchBoxPlaceholder}\r\n onChange={searchBoxOnChange}\r\n onSearch={searchBoxOnSearch}\r\n />\r\n )}\r\n {secondaryButtonValue && (\r\n <AtButton\r\n icon={secondaryButtonIcon}\r\n value={secondaryButtonValue}\r\n onClick={secondaryButtonOnClick}\r\n />\r\n )}\r\n {!!buttonValue && (\r\n <AtButton\r\n icon={buttonIcon}\r\n value={buttonValue}\r\n type=\"primary\"\r\n onClick={buttonOnClick}\r\n />\r\n )}\r\n </Container>\r\n </ModuleContainer>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { AtButton, AtSelect, AtSelectProps, AtText } from '../../atoms';\r\nimport { OrModuleTableHeaderProps } from '../OrModuleTableHeader';\r\nimport { OrTable, OrTableProps } from '../OrTable';\r\nimport { TableRowSelection } from 'antd/es/table/interface';\r\nimport { AnyObject } from 'antd/es/_util/type';\r\nimport { OrRow } from '../OrRow';\r\nimport { Container } from '../OrModuleTableHeader/styles';\r\nimport { OrAlert } from '../OrAlert';\r\nimport { DefaultOptionType } from 'antd/es/select';\r\n\r\nexport interface OrListSelectionProps {\r\n /**\r\n * Text of button to add\r\n */\r\n buttonAddText?: string;\r\n /**\r\n * Function to execute when button to add is clicked\r\n */\r\n onAddButtonOnClick?: OrModuleTableHeaderProps['buttonOnClick'];\r\n /**\r\n * Function to execute when search box is searched\r\n */\r\n searchBoxOnSearch?: OrModuleTableHeaderProps['searchBoxOnSearch'];\r\n /**\r\n * Placeholder of search box\r\n */\r\n searchBoxPlaceholder?: string;\r\n /**\r\n * onChange rowSelection\r\n */\r\n onChangeRowSelection?: TableRowSelection<AnyObject>['onChange'];\r\n /**\r\n * Columns of table\r\n */\r\n columns: OrTableProps['columns'];\r\n /**\r\n * Data record array to be displayed\r\n */\r\n data?: OrTableProps['dataSource'];\r\n /**\r\n * Loading status of table\r\n */\r\n loadingTable?: OrTableProps['loading'];\r\n /**\r\n * Config of pagination. You can ref table pagination config or full pagination document, hide it by setting it to false\r\n */\r\n pagination?: OrTableProps['pagination'];\r\n /**\r\n * Title of table\r\n */\r\n tableTitle?: string;\r\n /**\r\n * Title of remove button\r\n */\r\n removeBtnTitle?: string;\r\n /**\r\n * Disabled status of remove button\r\n */\r\n removeBtnDisabled?: boolean;\r\n /**\r\n * dangerBtn status of remove button\r\n */\r\n dangerBtn?: boolean;\r\n /**\r\n * Function to execute when remove button is clicked\r\n */\r\n onRemoveClick?: () => void;\r\n /**\r\n * type of alert display\r\n */\r\n alertType?: 'success' | 'info' | 'error' | 'warning';\r\n /**\r\n * Description of alert display\r\n */\r\n alertDescription?: string;\r\n /**\r\n * select value \r\n */\r\n selectValue?: AtSelectProps['value']\r\n /**\r\n * select on change\r\n */\r\n selectOnChange?: AtSelectProps['onChange']\r\n /**\r\n * select options\r\n */\r\n selectOptions?: DefaultOptionType[]\r\n /**\r\n * not found select element\r\n */\r\n selectNotFoundContent?: React.ReactNode;\r\n}\r\n\r\nexport const OrListSelection: React.FC<OrListSelectionProps> = ({\r\n buttonAddText,\r\n onAddButtonOnClick,\r\n searchBoxOnSearch,\r\n searchBoxPlaceholder,\r\n onChangeRowSelection,\r\n columns,\r\n data,\r\n loadingTable,\r\n pagination,\r\n tableTitle,\r\n removeBtnTitle,\r\n removeBtnDisabled = false,\r\n onRemoveClick,\r\n alertType,\r\n alertDescription,\r\n selectOnChange,\r\n dangerBtn = false,\r\n selectValue,\r\n selectOptions,\r\n selectNotFoundContent\r\n}) => {\r\n return ( \r\n <>\r\n <Container $padding='16px 0px'>\r\n <AtSelect\r\n $width='100%'\r\n backgroundColor='white'\r\n showSearch\r\n filterOption={false}\r\n defaultActiveFirstOption={false}\r\n value={selectValue}\r\n placeholder={searchBoxPlaceholder}\r\n onSearch={searchBoxOnSearch}\r\n options={selectOptions}\r\n onChange={selectOnChange}\r\n notFoundContent={selectNotFoundContent}\r\n />\r\n <AtButton\r\n value={buttonAddText}\r\n type=\"primary\"\r\n onClick={onAddButtonOnClick}\r\n />\r\n </Container>\r\n {\r\n alertDescription &&\r\n <OrAlert type={alertType} closable showIcon message={alertDescription} />\r\n }\r\n <OrRow justify='space-between' $paddingBottom={15} $paddingTop={25} align='middle'>\r\n <AtText $fontSize={16} strong>{tableTitle}</AtText>\r\n <AtButton $width='auto' danger={dangerBtn} type={dangerBtn ? 'primary' : 'default'} disabled={removeBtnDisabled} value={removeBtnTitle} onClick={onRemoveClick}/>\r\n </OrRow>\r\n <OrTable\r\n rowSelection={\r\n {\r\n type: 'checkbox',\r\n onChange: onChangeRowSelection,\r\n }\r\n }\r\n columns={columns}\r\n dataSource={data}\r\n loading={loadingTable}\r\n pagination={pagination}\r\n />\r\n </>\r\n\r\n );\r\n}","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledContainer = styled.div`\r\n & {\r\n display: flex;\r\n background-color: ${gray[1]};\r\n height: 100vh;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const StyledCarouselImageContainer = styled.div`\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { StyledCarouselImageContainer, StyledContainer } from './styles';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { MlCarousel } from '../../molecules';\r\nimport { AtImage, AtText, AtTextProps } from '../../atoms';\r\n\r\nexport interface OrLoginLayoutProps {\r\n /**\r\n * Carousel image background source\r\n */\r\n $carouselBackgroundSrc?: string;\r\n /**\r\n * Images to show into carousel\r\n */\r\n carouselImages:\r\n | string[]\r\n | { src?: string; component?: React.ReactNode; text?: string }[];\r\n /**\r\n * Carousel text props\r\n */\r\n carouselTextProps?: AtTextProps;\r\n /**\r\n * Content to render into layout\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const OrLoginLayout: React.FC<OrLoginLayoutProps> = ({\r\n $carouselBackgroundSrc,\r\n carouselImages,\r\n carouselTextProps,\r\n children,\r\n}) => {\r\n return (\r\n <StyledContainer>\r\n <OrRow align=\"stretch\" justify=\"center\">\r\n <OrCol\r\n $justify=\"start\"\r\n xs={{ span: 24, $paddingHorizontal: 20, $paddingTop: 40 }}\r\n md={{ span: 14, $paddingHorizontal: 64, $paddingTop: 120 }}\r\n >\r\n {children}\r\n </OrCol>\r\n\r\n <OrCol\r\n xs={{ hidden: true }}\r\n md={{ span: 10 }}\r\n $justify=\"center\"\r\n $backgroundSrc={$carouselBackgroundSrc}\r\n >\r\n <MlCarousel\r\n dots={true}\r\n autoplay={true}\r\n waitForAnimate={true}\r\n dotPosition=\"bottom\"\r\n centerMode={true}\r\n >\r\n {carouselImages.map((elem, key) => {\r\n return (\r\n <div key={key}>\r\n {typeof elem === 'string' ? (\r\n <StyledCarouselImageContainer>\r\n <AtImage src={elem} preview={false} alt=\"Test image\" />\r\n </StyledCarouselImageContainer>\r\n ) : (\r\n <StyledCarouselImageContainer>\r\n {elem.src ? (\r\n <AtImage\r\n src={elem.src}\r\n preview={false}\r\n alt=\"Test image\"\r\n />\r\n ) : (\r\n elem.component\r\n )}\r\n {!!elem.text && (\r\n <OrRow\r\n $paddingHorizontal={50}\r\n justify=\"center\"\r\n style={{\r\n marginBottom: '3em',\r\n }}\r\n >\r\n <AtText {...carouselTextProps}>{elem.text}</AtText>\r\n </OrRow>\r\n )}\r\n </StyledCarouselImageContainer>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </MlCarousel>\r\n </OrCol>\r\n </OrRow>\r\n </StyledContainer>\r\n );\r\n};\r\n\r\nexport default OrLoginLayout;\r\n","import React from 'react';\r\nimport { Modal, ModalFuncProps, ModalProps } from 'antd';\r\n\r\ntype ConfigUpdate =\r\n | ModalFuncProps\r\n | ((prevConfig: ModalFuncProps) => ModalFuncProps);\r\nexport type instanceModal = {\r\n destroy: () => void;\r\n update: (configUpdate: ConfigUpdate) => void;\r\n} | null;\r\ninterface OrModalProps {\r\n /**\r\n * Specify a function that will be called when modal is closed completely\r\n */\r\n afterClose?: () => void;\r\n /**\r\n * Body style for modal body element. Such as height, padding etc\r\n */\r\n bodyStyle?: React.CSSProperties;\r\n /**\r\n * The cancel button props\r\n */\r\n cancelButtonProps?: ModalProps['cancelButtonProps'];\r\n /**\r\n * Text of the Cancel button\r\n */\r\n cancelText?: React.ReactNode;\r\n /**\r\n * Centered Modal\r\n */\r\n centered?: boolean;\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: React.ReactNode;\r\n /**\r\n * Whether to apply loading visual effect for OK button or not\r\n */\r\n confirmLoading?: boolean;\r\n /**\r\n * Whether to unmount child components on onClose\r\n */\r\n destroyOnClose?: boolean;\r\n /**\r\n * Footer content, set as footer={null} when you don't need default buttons\r\n */\r\n footer?: React.ReactNode;\r\n /**\r\n * Force render Modal\r\n */\r\n forceRender?: boolean;\r\n /**\r\n * The mounted node for Modal but still display at fullscreen\r\n */\r\n getContainer?: ModalProps['getContainer'];\r\n /**\r\n * Whether support press esc to close\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Whether show mask or not\r\n */\r\n mask?: boolean;\r\n /**\r\n * Whether to close the modal dialog when the mask (area outside the modal) is clicked\r\n */\r\n maskClosable?: boolean;\r\n /**\r\n * Style for modal's mask element\r\n */\r\n maskStyle?: React.CSSProperties;\r\n /**\r\n * Custom modal content render\r\n */\r\n modalRender?: (node: React.ReactNode) => React.ReactNode;\r\n /**\r\n * The ok button props\r\n */\r\n okButtonProps?: ModalProps['okButtonProps'];\r\n /**\r\n * Text of the OK button\r\n */\r\n okText?: React.ReactNode;\r\n /**\r\n * Button type of the OK button\r\n */\r\n okType?: ModalProps['okType'];\r\n /**\r\n * The modal dialog's title\r\n */\r\n title?: ModalProps['title'];\r\n /**\r\n * Whether the modal dialog is visible or not\r\n */\r\n visible?: boolean;\r\n /**\r\n * Open Modal with async logic\r\n */\r\n open?: boolean;\r\n /**\r\n * Width of the modal dialog\r\n */\r\n width?: string | number;\r\n /**\r\n * The class name of the container of the modal dialog\r\n */\r\n wrapClassName?: string;\r\n /**\r\n * The z-index of the Modal\r\n */\r\n zIndex?: number;\r\n /**\r\n * Specify a function that will be called when a user clicks mask, close button on top right or Cancel button\r\n */\r\n onCancel?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Specify a function that will be called when a user clicks the OK button\r\n */\r\n onOk?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Callback when the animation ends when Modal is turned on and off\r\n */\r\n afterOpenChange?: ((open: boolean) => void) | undefined;\r\n /**\r\n * children of Modal\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Content of the confirm dialog\r\n */\r\n content?: string | React.ReactNode;\r\n}\r\n\r\nexport const OrModal: React.FC<OrModalProps> = (props) => {\r\n return <Modal {...props}>{props.children}</Modal>;\r\n};\r\n\r\nOrModal.defaultProps = {\r\n open: false,\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrFormProps,\r\n OrTabsModuleLayout,\r\n OrTabs,\r\n OrTabsProps,\r\n} from '../../organisms';\r\nimport { AtIconProps } from '../../atoms';\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { IFormStep } from '../TmCrudPage';\r\n\r\nexport interface TmCustomTabsPageProps<FormType = any> {\r\n /**\r\n * Avatar image\r\n */\r\n avatar?: string;\r\n /**\r\n * User name\r\n */\r\n username: string;\r\n /**\r\n * User phone number\r\n */\r\n phone: string;\r\n /**\r\n * Balance ticket label\r\n */\r\n balanceLabel: string;\r\n /**\r\n * Balance ticket value\r\n */\r\n balanceValue: string;\r\n /**\r\n * Icon for the info part\r\n */\r\n infoIcon?: AtIconProps['name'];\r\n /**\r\n * Info label\r\n */\r\n infoLabel?: string;\r\n /**\r\n * Info value\r\n */\r\n infoValue?: string;\r\n /**\r\n * Main button label\r\n */\r\n mainButtonLabel: string;\r\n /**\r\n * Main button icon\r\n */\r\n mainButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Main action click event\r\n */\r\n onClickMainAction?: () => void;\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Tabs props\r\n */\r\n tabsProps: OrTabsProps;\r\n}\r\n\r\nexport const TmCustomTabsPage = <\r\n FormType extends Store,\r\n>({\r\n avatar,\r\n username,\r\n phone,\r\n balanceLabel,\r\n balanceValue,\r\n infoIcon = 'FileDoneOutlined',\r\n infoLabel,\r\n infoValue,\r\n mainButtonLabel,\r\n mainButtonIcon = 'FileDoneOutlined',\r\n onClickLeftArrow,\r\n onClickMainAction,\r\n formSteps,\r\n handleCloseCallback,\r\n open,\r\n drawerTitle,\r\n drawerWidth,\r\n disabledButtons,\r\n currentFormStep,\r\n showFormStepper = true,\r\n onValuesChange,\r\n tabsProps,\r\n }: TmCustomTabsPageProps<FormType>) => {\r\n return (\r\n <React.Fragment>\r\n <OrTabsModuleLayout\r\n avatar={avatar}\r\n username={username}\r\n phone={phone}\r\n balanceLabel={balanceLabel}\r\n balanceValue={balanceValue}\r\n infoIcon={infoIcon}\r\n infoLabel={infoLabel}\r\n infoValue={infoValue}\r\n mainButtonLabel={mainButtonLabel}\r\n mainButtonIcon={mainButtonIcon}\r\n onClickLeftArrow={onClickLeftArrow}\r\n onClickMainAction={onClickMainAction}\r\n formSteps={formSteps}\r\n handleCloseCallback={handleCloseCallback}\r\n open={open}\r\n drawerTitle={drawerTitle}\r\n drawerWidth={drawerWidth}\r\n disabledButtons={disabledButtons}\r\n currentFormStep={currentFormStep}\r\n showFormStepper={showFormStepper}\r\n onValuesChange={onValuesChange}\r\n >\r\n <OrTabs {...tabsProps} type='card'/>\r\n </OrTabsModuleLayout>\r\n </React.Fragment>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrFormProps, OrCol, OrRow } from '../../organisms';\r\nimport {\r\n OrDetailsPage,\r\n OrDetailsPageProps,\r\n} from '../../organisms/OrDetailsPage';\r\n\r\nexport interface TmDescriptionsPageProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Whether the table has border or not\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Items to display\r\n */\r\n items: Array<OrDetailsPageProps | Array<OrDetailsPageProps>>;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Custom header page template\r\n */\r\n header?: React.ReactElement;\r\n}\r\n\r\nexport const TmDescriptionsPage = ({\r\n items,\r\n header,\r\n}: TmDescriptionsPageProps) => {\r\n return (\r\n <React.Fragment>\r\n {header}\r\n {items.map((item) => {\r\n return (\r\n <>\r\n {Array.isArray(item) ? (\r\n <OrRow\r\n style={{\r\n display: 'grid',\r\n gridTemplateColumns: `repeat(${item.length}, 1fr)`,\r\n gap: 8,\r\n marginBlock: 8,\r\n }}\r\n >\r\n {item.map((columnItem: OrDetailsPageProps) => {\r\n return (\r\n <OrCol style={{ height: '100%' }}>\r\n <OrDetailsPage {...columnItem} />\r\n </OrCol>\r\n );\r\n })}\r\n </OrRow>\r\n ) : (\r\n <OrRow>\r\n <OrDetailsPage {...item} />\r\n </OrRow>\r\n )}\r\n </>\r\n );\r\n })}\r\n </React.Fragment>\r\n );\r\n};\r\n","import {\r\n OrCard,\r\n OrCol,\r\n OrForm,\r\n OrFormItemsInline,\r\n OrFormProps,\r\n OrRow,\r\n OrStep,\r\n OrStepProp\r\n} from '../../organisms';\r\n\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { IFormStep } from '../TmCrudPage';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { AtButton, AtButtonProps, AtTitle } from '../../atoms';\r\nimport { gray } from '../../../theme';\r\n\r\n\r\nexport interface TmFormListPageProps<FormType = any> {\r\n formList?: {\r\n title?: string,\r\n formStepProps?: IFormStep<FormType>[],\r\n formProps?: OrFormProps,\r\n stepProps?: OrStepProp,\r\n disabledButtons?: boolean,\r\n formButtonProps?: AtButtonProps\r\n }[];\r\n}\r\n\r\nexport const TmFormListPage = <FormType extends Store>({\r\n formList,\r\n}: TmFormListPageProps<FormType>) => {\r\n\r\n\r\n return (\r\n <OrCol>\r\n {\r\n formList?.map(({ title, formStepProps, formProps, stepProps, disabledButtons, formButtonProps }, index) => {\r\n return (\r\n <OrCol $gap={8}>\r\n <OrRow style={{\r\n borderColor: gray[3],\r\n backgroundColor: gray[0],\r\n borderWidth: 1,\r\n borderRadius: 8,\r\n borderStyle: 'solid',\r\n padding: 16,\r\n }} ><AtTitle $margin='0' level={4} >{title}</AtTitle>\r\n </OrRow>\r\n <OrCard\r\n key={index}\r\n >\r\n {formStepProps && formStepProps?.length > 1 && (\r\n <OrStep\r\n current={stepProps?.current}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formStepProps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formStepProps &&\r\n formStepProps.map((formStep, index) => (\r\n <OrForm\r\n hidden={stepProps?.current !== index}\r\n form={formProps?.form}\r\n onFinish={formProps?.onFinish}\r\n onValuesChange={formProps?.onValuesChange}\r\n name={title}\r\n layout=\"vertical\"\r\n initialValues={formProps?.initialValues}\r\n >\r\n <OrRow align={'bottom'} gutter={8}>\r\n <OrCol>\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n </OrCol>\r\n <OrCol>\r\n {formButtonProps?.onClick && <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n {...formButtonProps}\r\n />\r\n </MlFormItem>}\r\n </OrCol>\r\n </OrRow>\r\n\r\n </OrForm>\r\n\r\n ))}\r\n </OrCard>\r\n </OrCol>\r\n )\r\n })\r\n }\r\n </OrCol>\r\n );\r\n};\r\n","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\nimport { OrLayout } from '../../organisms';\r\n\r\nexport const StyledContainer = styled(OrLayout)`\r\n & {\r\n background-color: ${gray[1]};\r\n min-height: 100vh;\r\n }\r\n & h2 {\r\n text-align: center;\r\n }\r\n`;\r\n","import { styled } from 'styled-components';\r\nimport { StyledHeader as StyledHeaderImported } from '../OrHeader/styles';\r\n\r\nexport const LogoContainer = styled.div`\r\n padding-top: 69px;\r\n padding-bottom: 69px;\r\n`;\r\n\r\nexport const StyledHeader = styled(StyledHeaderImported)`\r\n height: auto;\r\n padding-inline: 0;\r\n`;\r\n","import React from 'react';\r\nimport { AtLogo } from '../../atoms';\r\nimport { OrRow } from '../OrRow';\r\nimport { LogoContainer, StyledHeader } from './styles';\r\nexport interface OrSimpleBannerProps {\r\n /**\r\n * Id of the OrSimpleBannerProps\r\n */\r\n id?: string;\r\n /**\r\n * Background image for banner\r\n */\r\n $backgroundSrc?: string;\r\n}\r\n\r\nexport const OrSimpleBanner: React.FC<OrSimpleBannerProps> = (props) => {\r\n return (\r\n <StyledHeader>\r\n <OrRow justify={'center'} {...props}>\r\n <LogoContainer>\r\n <AtLogo color={props.$backgroundSrc ? 'white' : 'violet'} />\r\n </LogoContainer>\r\n </OrRow>\r\n </StyledHeader>\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport { OrFlagGrid } from '../../organisms/OrFlagGrid';\r\nimport { AtTitle } from '../../atoms';\r\nimport { StyledContainer } from './styles';\r\nimport { OrCountryCardProps } from '../../organisms/OrCountryCard';\r\nimport { OrSimpleBanner } from '../../organisms/OrSimpleBanner';\r\nimport { OrRow, OrCol, OrContent } from '../../organisms';\r\nexport interface TmLoginCountryProps {\r\n data?: OrCountryCardProps[];\r\n title?: string;\r\n itemsPerRow?: number;\r\n $backgroundSrc?: string;\r\n /**\r\n * Index selected Item\r\n */\r\n selectedItem?: number;\r\n /**\r\n * Callback when card is clicked\r\n */\r\n onSelectCard?: (index: number) => void;\r\n}\r\n\r\nexport const TmLoginCountry: React.FC<TmLoginCountryProps> = ({\r\n data,\r\n $backgroundSrc,\r\n itemsPerRow,\r\n title,\r\n selectedItem,\r\n onSelectCard,\r\n}) => {\r\n return (\r\n <StyledContainer>\r\n <OrSimpleBanner $backgroundSrc={$backgroundSrc} />\r\n <OrContent>\r\n <OrRow justify={'center'} gutter={[0, 16]}>\r\n <OrCol span={24}>\r\n <AtTitle level={2}>{title}</AtTitle>\r\n </OrCol>\r\n <OrCol span={16}>\r\n <OrRow justify={'center'}>\r\n <OrFlagGrid\r\n data={data}\r\n itemsPerRow={itemsPerRow}\r\n selectedItem={selectedItem}\r\n onSelectCard={onSelectCard}\r\n />\r\n </OrRow>\r\n </OrCol>\r\n </OrRow>\r\n </OrContent>\r\n </StyledContainer>\r\n );\r\n};\r\n\r\nTmLoginCountry.defaultProps = {\r\n data: [],\r\n itemsPerRow: 2,\r\n};\r\n","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledContainer = styled.div`\r\n & {\r\n display: flex;\r\n background-color: ${gray[1]};\r\n height: 100vh;\r\n }\r\n`;\r\n\r\nexport const StyledMainContainer = styled.div`\r\n max-width: 365px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n height: 100%;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledTitleContainer = styled.div`\r\n margin-bottom: 45px;\r\n`;\r\n\r\nexport const StyledButtonContainer = styled.div`\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const StyledCarouselImageContainer = styled.div`\r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport {\r\n AtButton,\r\n AtLogo,\r\n AtNumberInput,\r\n AtSelect,\r\n AtTitle,\r\n} from '../../atoms';\r\nimport { OrSpaceCompact, OrRow, OrCol, OrForm } from '../../organisms';\r\nimport { violet } from '../../../theme';\r\nimport { Select, FormProps } from 'antd';\r\nimport {\r\n StyledButtonContainer,\r\n StyledMainContainer,\r\n StyledTitleContainer,\r\n} from './styles';\r\nimport { MlFormItem } from '../../molecules';\r\n\r\nexport interface IRegion {\r\n id: string;\r\n countryName: string;\r\n region: string;\r\n city: string;\r\n}\r\n\r\nexport interface IFormData {\r\n phone: {\r\n dialCode: string;\r\n phone: string;\r\n };\r\n}\r\n\r\nexport interface TmLoginPhoneProps {\r\n countrySelectOptions?: IRegion[];\r\n /**\r\n * Welcome title\r\n */\r\n title?: string;\r\n /**\r\n * Highlighted text into title\r\n */\r\n highlightedTitle?: string;\r\n /**\r\n * Submit button text\r\n */\r\n buttonText: string;\r\n /**\r\n * Form init values\r\n */\r\n initialValues?: IFormData;\r\n /**\r\n * Dial codes available\r\n */\r\n dialCodes: string[];\r\n /**\r\n * Phone regex validation\r\n */\r\n phoneRegex?: RegExp;\r\n /**\r\n * Phone validation message\r\n */\r\n phoneValidationMessage?: string;\r\n /**\r\n * Phone validation input message\r\n */\r\n ruleMessage?: string;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Show country select\r\n */\r\n showCountrySelect?: boolean;\r\n}\r\n\r\nexport const TmLoginPhone: React.FC<TmLoginPhoneProps> = ({\r\n countrySelectOptions,\r\n title,\r\n highlightedTitle,\r\n buttonText,\r\n initialValues,\r\n dialCodes,\r\n phoneRegex,\r\n phoneValidationMessage,\r\n onFinish,\r\n form,\r\n ruleMessage,\r\n showCountrySelect = false,\r\n}) => {\r\n return (\r\n <OrForm\r\n form={form}\r\n initialValues={initialValues}\r\n onFinish={onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n }}\r\n >\r\n <OrRow\r\n gutter={[0, 20]}\r\n justify={{ xs: 'center', sm: 'center', lg: 'space-between' }}\r\n align={'middle'}\r\n >\r\n <OrCol>\r\n <AtLogo color=\"violet\" />\r\n </OrCol>\r\n {showCountrySelect && (\r\n <OrCol>\r\n <MlFormItem name=\"region\" noStyle>\r\n <AtSelect size=\"large\">\r\n {countrySelectOptions?.map((elem) => (\r\n <Select.Option\r\n key={elem.id}\r\n label={elem.countryName}\r\n value={elem.region}\r\n >\r\n {elem.countryName}\r\n </Select.Option>\r\n ))}\r\n </AtSelect>\r\n </MlFormItem>\r\n </OrCol>\r\n )}\r\n </OrRow>\r\n <StyledMainContainer>\r\n <OrCol $justify={'center'}>\r\n <StyledTitleContainer>\r\n <AtTitle>\r\n {title}{' '}\r\n <span style={{ color: violet[5] }}>{highlightedTitle}</span>\r\n </AtTitle>\r\n </StyledTitleContainer>\r\n <MlFormItem>\r\n <OrSpaceCompact block>\r\n <MlFormItem\r\n noStyle\r\n name={['phone', 'dialCode']}\r\n rules={[{ required: true, message: ruleMessage }]}\r\n >\r\n <AtSelect $width=\"119px\" size=\"large\">\r\n {dialCodes?.map((elem) => (\r\n <Select.Option key={elem} label={elem} value={elem}>\r\n {elem}\r\n </Select.Option>\r\n ))}\r\n </AtSelect>\r\n </MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n name={['phone', 'phone']}\r\n rules={[\r\n { required: true, message: ruleMessage },\r\n {\r\n pattern: phoneRegex,\r\n message: phoneValidationMessage,\r\n validateTrigger: 'onBlur',\r\n },\r\n ]}\r\n >\r\n <AtNumberInput $width=\"100%\" size=\"large\" controls={false} />\r\n </MlFormItem>\r\n </OrSpaceCompact>\r\n </MlFormItem>\r\n <StyledButtonContainer>\r\n <MlFormItem noStyle>\r\n <AtButton\r\n block\r\n type=\"primary\"\r\n size=\"large\"\r\n value={buttonText}\r\n htmlType=\"submit\"\r\n />\r\n </MlFormItem>\r\n </StyledButtonContainer>\r\n </OrCol>\r\n </StyledMainContainer>\r\n </OrForm>\r\n );\r\n};\r\n\r\nTmLoginPhone.defaultProps = {\r\n countrySelectOptions: [],\r\n phoneRegex: new RegExp(\r\n /^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im,\r\n ),\r\n phoneValidationMessage: 'This field must be a phone',\r\n ruleMessage: 'This field is required',\r\n};\r\n","import 'react';\r\nimport { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const StyledContainer = styled.div`\r\n & {\r\n display: flex;\r\n background-color: ${gray[1]};\r\n height: 100vh;\r\n }\r\n`;\r\n\r\nexport const StyledMainContainer = styled.div`\r\n max-width: 365px;\r\n margin-right: auto;\r\n margin-left: auto;\r\n height: 100%;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledTitleContainer = styled.div`\r\n margin-bottom: 32px;\r\n`;\r\n\r\nexport const StyledButtonContainer = styled.div`\r\n margin-top: 5px;\r\n`;\r\n\r\nexport const StyledCarouselImageContainer = styled.div`\r\n text-align: center;\r\n`;\r\n\r\nexport const StyledCountdownContainer = styled.div`\r\n margin-bottom: 24px;\r\n display: flex;\r\n flex-direction: row;\r\n gap: 10px;\r\n`;\r\n\r\nexport const StyledTextContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n gap: 5px;\r\n cursor: pointer;\r\n`;\r\n","import { FormProps } from 'antd';\r\nimport React from 'react';\r\nimport { OrCol, OrForm, OrRow } from '../../organisms';\r\nimport { AtButton, AtLogo, AtText, AtTitle } from '../../atoms';\r\nimport {\r\n StyledButtonContainer,\r\n StyledCountdownContainer,\r\n StyledMainContainer,\r\n StyledTextContainer,\r\n StyledTitleContainer,\r\n} from './styles';\r\nimport { violet } from '../../../theme';\r\nimport { MlCodeInput, MlFormItem } from '../../molecules';\r\nimport { AtCountdown } from '../../atoms/AtCountdown';\r\n\r\nexport interface TmLoginPhoneCodeProps {\r\n /**\r\n * Page title\r\n */\r\n title: string;\r\n /**\r\n * Page title highlighted\r\n */\r\n highlightedTitle: string;\r\n /**\r\n * Page description\r\n */\r\n description: string;\r\n /**\r\n * Button text\r\n */\r\n buttonText: string;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Countdown description\r\n */\r\n countdownDescription?: string;\r\n /**\r\n * Countdown value\r\n */\r\n countdownValue?: number;\r\n /**\r\n * Countdown format\r\n */\r\n countdownFormat?: string;\r\n /**\r\n * Indicate if the count down ended\r\n */\r\n countdownEnded?: boolean;\r\n /**\r\n * Callback triggered when countdown ends\r\n */\r\n onFinishCountdown?: () => void;\r\n /**\r\n * Countdown text part\r\n */\r\n countdownText?: [string, string];\r\n /**\r\n * Send again text\r\n */\r\n sendAgainText?: string;\r\n /**\r\n * Function to call when resend is press it\r\n */\r\n onResendPress?: () => void;\r\n}\r\n\r\nexport const TmLoginPhoneCode: React.FC<TmLoginPhoneCodeProps> = ({\r\n title,\r\n highlightedTitle,\r\n description,\r\n buttonText,\r\n onFinish,\r\n form,\r\n countdownText,\r\n countdownDescription,\r\n countdownValue,\r\n countdownFormat = 'mm:ss',\r\n countdownEnded = false,\r\n onFinishCountdown,\r\n sendAgainText,\r\n onResendPress,\r\n}) => {\r\n return (\r\n <OrForm\r\n form={form}\r\n initialValues={{ code: '' }}\r\n onFinish={onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n }}\r\n >\r\n <OrRow\r\n gutter={[0, 20]}\r\n justify={{ xs: 'center', sm: 'center', lg: 'space-between' }}\r\n align={'middle'}\r\n >\r\n <OrCol>\r\n <AtLogo color=\"violet\" />\r\n </OrCol>\r\n </OrRow>\r\n <StyledMainContainer>\r\n <OrCol $justify={'center'}>\r\n <StyledTitleContainer>\r\n <AtTitle>\r\n {title}{' '}\r\n <span style={{ color: violet[5] }}>{highlightedTitle}</span>\r\n </AtTitle>\r\n <AtTitle level={5}>{description}</AtTitle>\r\n </StyledTitleContainer>\r\n <MlFormItem>\r\n <MlFormItem\r\n noStyle\r\n name={'code'}\r\n rules={[{ required: true, message: 'Field is required' }]}\r\n >\r\n <MlCodeInput />\r\n </MlFormItem>\r\n </MlFormItem>\r\n <StyledCountdownContainer>\r\n <AtText>{countdownDescription}</AtText>\r\n {countdownEnded ? (\r\n <StyledTextContainer onClick={onResendPress}>\r\n <AtText color={'violet'}>{sendAgainText}</AtText>\r\n </StyledTextContainer>\r\n ) : (\r\n <StyledTextContainer>\r\n <AtText color={'violet'}>{countdownText?.[0]}</AtText>\r\n <AtCountdown\r\n $color=\"primary\"\r\n value={countdownValue}\r\n format={countdownFormat}\r\n $fontSize={14}\r\n onFinish={onFinishCountdown}\r\n />\r\n <AtText color={'violet'}>{countdownText?.[1]}</AtText>\r\n </StyledTextContainer>\r\n )}\r\n </StyledCountdownContainer>\r\n <StyledButtonContainer>\r\n <MlFormItem noStyle>\r\n <AtButton\r\n block\r\n type=\"primary\"\r\n size=\"large\"\r\n value={buttonText}\r\n htmlType=\"submit\"\r\n />\r\n </MlFormItem>\r\n </StyledButtonContainer>\r\n </OrCol>\r\n </StyledMainContainer>\r\n </OrForm>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n OrCol,\r\n OrDrawer,\r\n OrDrawerProps,\r\n OrMark,\r\n OrMarkProps,\r\n OrRow\r\n} from '../../organisms';\r\nimport { AtButton, AtButtonProps, AtSelect, AtSelectProps } from '../../atoms';\r\nimport {\r\n GoogleMap,\r\n GoogleMapProps,\r\n useJsApiLoader,\r\n} from '@react-google-maps/api';\r\n\r\nexport interface MarkersArray {\r\n color?: OrMarkProps['color'];\r\n backgroundColor?: string;\r\n size?: OrMarkProps['size'];\r\n marks: OrMarkProps[];\r\n polyLine: boolean; //TODO: Check Polyline stuck on refresh\r\n}\r\n\r\nexport interface TmMapPageProps {\r\n rightDrawer?: OrDrawerProps;\r\n topLeftSelect: AtSelectProps;\r\n topLeftButton?: AtButtonProps;\r\n map: GoogleMapProps & {\r\n GOOGLE_MAPS_API_KEY: string;\r\n ref?: React.RefObject<GoogleMap>;\r\n };\r\n staticMarkers?: MarkersArray[];\r\n realtimeMarkers?: MarkersArray[];\r\n}\r\n\r\nexport const TmMapPage: React.FC<TmMapPageProps> = ({\r\n rightDrawer,\r\n topLeftSelect,\r\n topLeftButton,\r\n map,\r\n staticMarkers,\r\n realtimeMarkers,\r\n}) => {\r\n /* if (!map.GOOGLE_MAPS_API_KEY) return <AtText>Map api key not set</AtText>; */\r\n\r\n const { isLoaded } = useJsApiLoader({\r\n id: 'google-map-script',\r\n googleMapsApiKey: map.GOOGLE_MAPS_API_KEY,\r\n });\r\n\r\n type Size = 'large' | 'middle' | 'small';\r\n\r\n const markSizes: { [key in Size]: { width: number; height: number } } = {\r\n large: {\r\n width: 40,\r\n height: 40,\r\n },\r\n middle: {\r\n width: 30,\r\n height: 30,\r\n },\r\n small: {\r\n width: 20,\r\n height: 20,\r\n },\r\n };\r\n\r\n return (\r\n <React.Fragment>\r\n <OrCol flex={1} $position=\"relative\">\r\n {isLoaded && (\r\n <GoogleMap\r\n {...map}\r\n options={{\r\n ...map.options,\r\n mapTypeControl: false,\r\n fullscreenControl: false,\r\n rotateControl: false,\r\n streetViewControl: false,\r\n }}\r\n >\r\n {staticMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n )),\r\n )}\r\n {realtimeMarkers?.map((group) =>\r\n group.marks.map((marker) => (\r\n <OrMark\r\n key={marker.id}\r\n {...marker}\r\n color={marker.color ?? group.color}\r\n backgroundColor={\r\n marker.backgroundColor ?? group.backgroundColor\r\n }\r\n size={marker.size ?? group.size}\r\n translate={Object.values(markSizes[marker.size ?? group.size ?? 'middle']).map(el => el * -1 / 2)}\r\n />\r\n\r\n )),\r\n )}\r\n </GoogleMap>\r\n )}\r\n <OrCol $position=\"absolute\" $paddingTop={52} $paddingLeft={64}>\r\n <OrRow $gap={8}>\r\n <AtSelect $width=\"300px\" {...topLeftSelect} />\r\n {topLeftButton && <AtButton {...topLeftButton} />}\r\n </OrRow>\r\n </OrCol>\r\n </OrCol>\r\n <OrDrawer {...rightDrawer} width={750} />\r\n </React.Fragment>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrHeader } from '../OrHeader';\r\nimport { OrContent } from '../OrContent';\r\n\r\nexport interface OrRentalLayoutProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Background source\r\n */\r\n $backgroundSrc?: string;\r\n}\r\n\r\nexport const OrRentalLayout: React.FC<OrRentalLayoutProps> = (props) => (\r\n <>\r\n <OrHeader\r\n $backgroundColor='white'\r\n showLogo={true}\r\n hideHeaderMobile={true}\r\n logoColor='violet'\r\n />\r\n <OrContent $backgroundSrc={props.$backgroundSrc} $main>{props.children}</OrContent>\r\n </>\r\n);\r\n","import React from \"react\";\r\nimport { OrRentalLayout } from \"../../organisms/OrRentalLayout\";\r\nimport { OrCard, OrCol, OrRentalResult, OrRentalResultProps, OrRentalVehicleItem, OrRentalVehicleItemProps, OrRow} from \"../../organisms\";\r\nimport { MlLoading } from \"../../molecules\";\r\nimport { AtButton, AtIcon, AtText } from \"../../atoms\";\r\n\r\nexport interface TmQuoteResultPageProps {\r\n /**\r\n * Background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Rental result\r\n */\r\n rentalResult: OrRentalResultProps;\r\n /**\r\n * Rental vehicle item\r\n */\r\n rentalVehicleItem: OrRentalVehicleItemProps | null;\r\n /**\r\n * Loading status\r\n */\r\n loading?: boolean;\r\n /**\r\n * Empty message\r\n */\r\n emptyMessage?: string;\r\n /**\r\n * Empty button text\r\n */\r\n emptyButtonText?: string;\r\n /**\r\n * Empty callback\r\n */\r\n emptyCallback?: () => void;\r\n}\r\n\r\nexport const TmQuoteResultPage = ({\r\n $backgroundSrc,\r\n rentalResult,\r\n rentalVehicleItem = null,\r\n loading = false,\r\n emptyMessage,\r\n emptyButtonText,\r\n emptyCallback,\r\n}: TmQuoteResultPageProps) => {\r\n return (\r\n <React.Fragment>\r\n <OrRentalLayout $backgroundSrc={$backgroundSrc}>\r\n {\r\n loading ? <MlLoading /> : (\r\n <OrRow>\r\n <OrCol span={24} $gapVertical={16}> \r\n <OrRentalResult {...rentalResult} />\r\n {\r\n rentalVehicleItem ? <OrRentalVehicleItem {...rentalVehicleItem}/> :\r\n <OrCard $padding={0} $maxWidth={1080} $alignSelf=\"center\" $shadow=\"0px 4px 8px 0px #0000001A\">\r\n <OrRow align=\"middle\">\r\n <OrCol span={24} $alignItems=\"center\" $gap={20}>\r\n <AtIcon name=\"WarningFilled\" style={{ fontSize: 70, color: \"#FFC53D\" }} />\r\n <AtText $fontSize={18}>{emptyMessage}</AtText>\r\n <AtButton type=\"primary\" value={emptyButtonText} onClick={emptyCallback}/>\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n }\r\n </OrCol>\r\n </OrRow>)\r\n }\r\n </OrRentalLayout>\r\n </React.Fragment>\r\n );\r\n};","export const amountFormatter = (amount: number) => {\r\n const parts = amount.toFixed(2).split('.');\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\r\n return parts.join(',');\r\n};","import React, { ReactNode, useEffect, useMemo, useState } from 'react';\r\nimport { FormProps } from 'antd';\r\nimport {\r\n OrCard,\r\n OrCol,\r\n OrForm,\r\n OrPaymentMethods,\r\n OrRow,\r\n OrTableModuleLayout,\r\n PaymentMethod,\r\n} from '../../organisms';\r\nimport { IFormData } from '../TmLoginPhone';\r\nimport { MlFormItem, MlFromItemProps, MlRadioGroup } from '../../molecules';\r\nimport { CheckboxChangeEvent } from 'antd/es/checkbox';\r\nimport { IFormStep } from '../TmCrudPage';\r\nimport { Store } from 'antd/es/form/interface';\r\nimport {\r\n AtButton,\r\n AtDivider,\r\n AtNumberInput,\r\n AtText,\r\n AtTitle,\r\n} from '../../atoms';\r\nimport { gray } from '../../../theme';\r\nimport { useFormWatch } from '../../../hooks';\r\nimport { amountFormatter } from '../../../utils/numberProcessing';\r\nexport interface TmRechargePageProps<FormType = any> {\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * page subtitle content\r\n */\r\n balance?: string;\r\n /**\r\n * The title of the card\r\n */\r\n cardTitle: string;\r\n /**\r\n * number of digits (input) to show\r\n */\r\n digits?: number;\r\n /**\r\n * The input content value\r\n */\r\n value?: number;\r\n /**\r\n * Custom values for amounts\r\n */\r\n values?: { label: string; value: number; type: 'VALUE' | 'PERCENTAGE' }[];\r\n /**\r\n * font size of the input\r\n */\r\n fontSize?: string;\r\n /**\r\n * height of the input\r\n */\r\n height?: string;\r\n /**\r\n * rule for the amount input\r\n */\r\n ruleAmount?: MlFromItemProps['rules'];\r\n /**\r\n * rule for the coupon input\r\n */\r\n ruleCoupon?: MlFromItemProps['rules'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Form init values\r\n */\r\n initialValues?: IFormData;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Coupon button text\r\n */\r\n couponBtn?: string;\r\n /**\r\n * Amount placeholder\r\n */\r\n amountPlaceholder?: string;\r\n /**\r\n * Coupon placeholder\r\n */\r\n couponPlaceholder?: string;\r\n /**\r\n * Radio group items\r\n */\r\n currenciesOptions?: Array<{\r\n label: ReactNode;\r\n value: string;\r\n disabled?: boolean;\r\n symbol?: string;\r\n }>;\r\n /**\r\n * Radio group default value\r\n */\r\n defaultCurrency?: number;\r\n /**\r\n * Amount to pay text\r\n */\r\n amountToPayText?: string;\r\n /**\r\n * Amount to pay\r\n */\r\n amountToPay?: number;\r\n /**\r\n * Coupon text\r\n */\r\n couponText?: string;\r\n /**\r\n * Discount\r\n */\r\n discount?: number;\r\n /**\r\n * Total text\r\n */\r\n totalText?: string;\r\n /**\r\n * Total\r\n */\r\n total?: number;\r\n /**\r\n * Tax text\r\n */\r\n taxText?: string;\r\n /**\r\n * Tax\r\n */\r\n tax?: number;\r\n /**\r\n * Pay button text\r\n */\r\n payBtn?: string;\r\n /**\r\n * Apply coupon click\r\n */\r\n applyCouponClick?: () => void;\r\n /**\r\n * The title of the drawer\r\n */\r\n drawerTitle?: string;\r\n /**\r\n * Whether the Drawer dialog is visible or not\r\n */\r\n open?: boolean;\r\n /**\r\n * payment Methods\r\n */\r\n paymentMethods: PaymentMethod[];\r\n /**\r\n * Form Steps info\r\n */\r\n currentPaymentSelectedFields: IFormStep<FormType>;\r\n /**\r\n * Disable continue button drawer\r\n */\r\n disabledButton?: boolean;\r\n /**\r\n * Show payment methods\r\n */\r\n showPaymentMethods?: boolean;\r\n /**\r\n * terms and conditions disclaimer\r\n */\r\n termsDisclaimer?: string;\r\n /**\r\n * terms and conditions change\r\n */\r\n termsChange?: ((e: CheckboxChangeEvent) => void) | undefined;\r\n /**\r\n * onCloseDrawer function\r\n */\r\n onCloseDrawer?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n /**\r\n * whether to show left arrow\r\n */\r\n showLeftArrow?: boolean;\r\n /**\r\n * left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /*\r\n * Editable input\r\n */\r\n editable?: boolean;\r\n /*\r\n * Exchange currency rate\r\n */\r\n rate?: number;\r\n /*\r\n * Currencies enable/disable\r\n */\r\n currenciesEnabled?: boolean;\r\n}\r\n\r\nexport const TmRechargePage = <FormType extends Store>({\r\n title,\r\n subtitle,\r\n balance,\r\n cardTitle,\r\n fontSize,\r\n height,\r\n ruleAmount,\r\n // ruleCoupon,\r\n form,\r\n initialValues,\r\n onFinish,\r\n // couponBtn,\r\n amountPlaceholder,\r\n // couponPlaceholder,\r\n currenciesOptions,\r\n defaultCurrency = 0,\r\n amountToPayText,\r\n amountToPay = 0,\r\n couponText,\r\n discount = 0,\r\n totalText,\r\n taxText,\r\n tax = 0,\r\n payBtn,\r\n // applyCouponClick,\r\n drawerTitle,\r\n open,\r\n paymentMethods,\r\n currentPaymentSelectedFields,\r\n disabledButton,\r\n showPaymentMethods = true,\r\n termsDisclaimer,\r\n onCloseDrawer,\r\n showLeftArrow,\r\n onClickLeftArrow,\r\n editable = true,\r\n rate = 1,\r\n values = [],\r\n currenciesEnabled = true\r\n}: TmRechargePageProps<FormType>) => {\r\n const symbolForm = useFormWatch('currency', form);\r\n const amountForm = useFormWatch('amount', form);\r\n const [computedAmount, setComputedAmount] = useState(0);\r\n const symbol = useMemo(\r\n () =>\r\n currenciesOptions?.find((el) => el.value === symbolForm)?.symbol ?? '',\r\n [symbolForm],\r\n );\r\n useEffect(() => {\r\n let amount = 0;\r\n if (values.length > 0){\r\n values.forEach((value) => {\r\n if (value.type === 'VALUE') {\r\n amount += value.value;\r\n } else {\r\n amount += amountForm * (value.value / 100);\r\n }\r\n });\r\n }\r\n setComputedAmount(amountForm + amount + tax - discount || 0);\r\n }, [rate, symbolForm, amountForm]);\r\n\r\n return (\r\n <>\r\n <OrCard size=\"small\" $marginBottom={20}>\r\n <OrTableModuleLayout\r\n leftArrow={showLeftArrow}\r\n onClickLeftArrow={onClickLeftArrow}\r\n title={title}\r\n subtitle={subtitle}\r\n subtitleContent={\r\n balance && parseFloat(balance)\r\n ? amountFormatter(parseFloat(balance))\r\n : balance\r\n }\r\n />\r\n </OrCard>\r\n\r\n <OrCard>\r\n <OrCol $gap={15}>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {cardTitle}\r\n </AtTitle>\r\n <OrForm\r\n form={form}\r\n initialValues={{\r\n currency: currenciesOptions\r\n ? currenciesOptions[defaultCurrency].value\r\n : undefined,\r\n amount: `${amountToPay}`,\r\n ...initialValues,\r\n }}\r\n onFinish={onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '15px',\r\n flex: 1,\r\n }}\r\n >\r\n <MlFormItem noStyle name={'amount'} rules={ruleAmount}>\r\n <AtNumberInput\r\n $fontSize={fontSize}\r\n $height={height}\r\n placeholder={amountPlaceholder}\r\n min={0}\r\n controls={false}\r\n disabled={!editable}\r\n />\r\n </MlFormItem>\r\n {/* <OrRow wrap={false} $gap={15}>\r\n <MlFormItem\r\n noStyle\r\n name={'discountCode'}\r\n rules={ruleCoupon}\r\n >\r\n <AtTextInput placeholder={couponPlaceholder} />\r\n </MlFormItem>\r\n <AtButton $width='auto' value={couponBtn} onClick={applyCouponClick} />\r\n </OrRow> */}\r\n <MlFormItem\r\n name={'currency'}\r\n hidden={\r\n !!currenciesOptions &&\r\n !!currenciesOptions[defaultCurrency] &&\r\n !(currenciesOptions.length > 1)\r\n }\r\n >\r\n <MlRadioGroup\r\n options={currenciesOptions}\r\n optionType={'button'}\r\n buttonStyle={'solid'}\r\n disabled={!currenciesEnabled}\r\n />\r\n </MlFormItem>\r\n\r\n <OrCard type=\"inner\" $backgroundColor={gray[3]}>\r\n <OrRow justify=\"space-between\">\r\n <AtText>{amountToPayText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(amountForm * rate || 0)}\r\n </AtText>\r\n </OrRow>\r\n {\r\n values.map((item, index) => (\r\n <OrRow key={index} justify=\"space-between\">\r\n <AtText>{item.label} { item.type === 'PERCENTAGE' ? `(${item.value}%)` : '' }</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(\r\n (item.type === 'VALUE' ? item.value : amountForm * (item.value / 100)) * rate \r\n )}\r\n </AtText>\r\n </OrRow>\r\n ))\r\n }\r\n {!!discount && (\r\n <OrRow justify=\"space-between\">\r\n <AtText>{couponText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(discount * rate * -1)}\r\n </AtText>\r\n </OrRow>\r\n )}\r\n {!!tax && (\r\n <OrRow justify=\"space-between\">\r\n <AtText>{taxText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(tax * rate || 0)}\r\n </AtText>\r\n </OrRow>\r\n )}\r\n <AtDivider $margin={10} />\r\n <OrRow justify=\"space-between\">\r\n <AtText>{totalText}</AtText>\r\n <AtText>\r\n {symbol} {amountFormatter(computedAmount * rate)}\r\n </AtText>\r\n </OrRow>\r\n </OrCard>\r\n <OrRow justify=\"end\" $paddingTop={25} wrap>\r\n <MlFormItem>\r\n <AtButton\r\n $width=\"203px\"\r\n value={payBtn}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={typeof computedAmount !== 'number' || computedAmount <= 0}\r\n />\r\n </MlFormItem>\r\n </OrRow>\r\n </OrForm>\r\n </OrCol>\r\n </OrCard>\r\n\r\n <OrPaymentMethods\r\n drawerTitle={drawerTitle}\r\n open={open}\r\n paymentMethods={paymentMethods}\r\n currentPaymentSelectedFields={currentPaymentSelectedFields}\r\n disabledButton={disabledButton}\r\n showPaymentMethods={showPaymentMethods}\r\n termsDisclaimer={termsDisclaimer}\r\n onCloseDrawer={onCloseDrawer}\r\n />\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\n\r\nexport const ButtonContainer = styled.div`\r\n width: 100%;\r\n display: flex;\r\n align-items: end;\r\n justify-content: end;\r\n gap: 8px;\r\n`;\r\n\r\nexport const DisclaimerContainer = styled.div`\r\n padding-top: 15px;\r\n`;","import React from \"react\";\r\nimport { OrRentalLayout } from \"../../organisms/OrRentalLayout\";\r\nimport { OrCard, OrCol, OrForm, OrFormItemsInline, OrFormProps, OrRow, OrStep } from \"../../organisms\";\r\nimport { AtButton, AtLink, AtText, AtTitle } from \"../../atoms\";\r\nimport { MlFormItem } from \"../../molecules\";\r\nimport { IFormStep } from \"../TmCrudPage\";\r\nimport { Store } from 'antd/es/form/interface';\r\nimport { ButtonContainer, DisclaimerContainer } from \"./styles\";\r\n\r\n\r\nexport interface TmRentalsPageProps<FormType = any> {\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n /**\r\n * Current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * Disabled buttons\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * Background source\r\n */\r\n $backgroundSrc?: string;\r\n /**\r\n * Disclaimer text\r\n */\r\n disclaimer?: string;\r\n /**\r\n * Disclaimer href\r\n */\r\n disclaimerHref?: string;\r\n /**\r\n * Disclaimer message\r\n */\r\n disclaimerMessage?: string;\r\n}\r\n\r\nexport const TmRentalsPage = <\r\n FormType extends Store,\r\n>({\r\n formSteps,\r\n onValuesChange,\r\n currentFormStep = 0,\r\n disabledButtons,\r\n showFormStepper = true,\r\n $backgroundSrc,\r\n disclaimer,\r\n disclaimerHref,\r\n disclaimerMessage,\r\n}: TmRentalsPageProps<FormType>) => {\r\n return (\r\n <React.Fragment>\r\n <OrRentalLayout $backgroundSrc={$backgroundSrc}>\r\n <OrRow>\r\n <OrCol span={24} $gapVertical={16}>\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrCard $maxWidth={1080} $alignSelf=\"center\">\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0\"\r\n $lineHeight=\"32px\"\r\n labelPlacement=\"horizontal\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n </OrCard>\r\n )}\r\n <OrCard $maxWidth={1080} $alignSelf=\"center\">\r\n {formSteps &&\r\n formSteps.map((formStep, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n <ButtonContainer>\r\n {currentFormStep > 0 && (\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n )}\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n </ButtonContainer>\r\n </OrForm>\r\n ))\r\n }\r\n </OrCard>\r\n </OrCol>\r\n </OrRow>\r\n {disclaimer &&\r\n <OrRow justify='center' align='middle'>\r\n <OrCol $gapHorizontal={0} $flexDirection=\"column\" $alignItems=\"start\" $justify=\"start\">\r\n <DisclaimerContainer>\r\n <AtText>{disclaimer}</AtText>\r\n <AtLink href={disclaimerHref} target='_blank'>{disclaimerMessage}</AtLink>\r\n </DisclaimerContainer>\r\n </OrCol>\r\n </OrRow>}\r\n </OrRentalLayout>\r\n </React.Fragment>\r\n );\r\n};","import React from 'react';\r\nimport { OrCol, OrRow } from '../../organisms';\r\nimport { AtButton, AtIcon, AtIconProps, AtText } from '../../atoms';\r\n\r\nexport interface TmRequestsPageProps {\r\n username?: string;\r\n /**\r\n * Main button label\r\n */\r\n mainButtonLabel?: string;\r\n /**\r\n * Main button icon\r\n */\r\n mainButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Main button label\r\n */\r\n cancelButtonLabel?: string;\r\n /**\r\n * cancel button icon\r\n */\r\n cancelButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Main action click event\r\n */\r\n onClickMainAction?: () => void;\r\n /**\r\n * cancel action click event\r\n */\r\n onClickCancelAction?: () => void;\r\n /**\r\n * disabled cancel Button\r\n */\r\n disabledCancelButton?: boolean;\r\n /**\r\n * disabled Main Button\r\n */\r\n disabledMainButton?: boolean;\r\n /**\r\n * left column content\r\n */\r\n firstColumnContent: React.ReactNode;\r\n /**\r\n * right column content\r\n */\r\n secondColumnContent: React.ReactNode;\r\n /**\r\n * isEditing request\r\n */\r\n isEditing?: boolean;\r\n}\r\n\r\nexport const TmRequestsPage: React.FC<TmRequestsPageProps> = ({\r\n username,\r\n mainButtonLabel,\r\n onClickMainAction,\r\n mainButtonIcon,\r\n cancelButtonLabel,\r\n onClickCancelAction,\r\n cancelButtonIcon,\r\n firstColumnContent,\r\n secondColumnContent,\r\n disabledCancelButton = false,\r\n disabledMainButton = false,\r\n onClickLeftArrow,\r\n}) => {\r\n return (\r\n <OrCol>\r\n {\r\n <OrRow\r\n justify={'space-between'}\r\n align={'middle'}\r\n style={{ marginBottom: 8, paddingInline: 8, paddingBlock: 16 }}\r\n >\r\n <OrCol $flexDirection=\"row\" $alignItems=\"center\" $gap={10}>\r\n {onClickLeftArrow && (\r\n <AtButton\r\n onClick={onClickLeftArrow}\r\n icon={<AtIcon name=\"ArrowLeftOutlined\" />}\r\n borderless\r\n type=\"ghost\"\r\n />\r\n )}\r\n <AtText $fontSize={24} strong>\r\n {username}\r\n </AtText>{' '}\r\n </OrCol>\r\n <OrCol $flexDirection=\"row\" $gap={10}>\r\n {onClickCancelAction && (\r\n <AtButton\r\n value={cancelButtonLabel}\r\n onClick={onClickCancelAction}\r\n disabled={disabledCancelButton}\r\n icon={\r\n cancelButtonIcon ? <AtIcon name={cancelButtonIcon} /> : null\r\n }\r\n />\r\n )}\r\n {onClickMainAction && (\r\n <AtButton\r\n value={mainButtonLabel}\r\n onClick={onClickMainAction}\r\n disabled={disabledMainButton}\r\n icon={mainButtonIcon ? <AtIcon name={mainButtonIcon} /> : null}\r\n type=\"primary\"\r\n />\r\n )}\r\n </OrCol>\r\n </OrRow>\r\n }\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, 1fr)',\r\n gap: 8,\r\n }}\r\n >\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {firstColumnContent}\r\n </OrCol>\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {secondColumnContent}\r\n </OrCol>\r\n </OrRow>\r\n </OrCol>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { OrCol, OrRow } from '../../organisms';\r\nimport { AtButton, AtIcon, AtText } from '../../atoms';\r\nimport { TmRequestsPageProps } from '../TmRequestsPage';\r\n\r\nexport const TmRequestsForm: React.FC<TmRequestsPageProps> = ({\r\n username,\r\n mainButtonLabel,\r\n onClickMainAction,\r\n mainButtonIcon,\r\n cancelButtonLabel,\r\n onClickCancelAction,\r\n cancelButtonIcon,\r\n firstColumnContent,\r\n secondColumnContent,\r\n disabledCancelButton = false,\r\n disabledMainButton = false,\r\n}) => {\r\n return (\r\n <React.Fragment>\r\n <OrRow\r\n justify={'space-between'}\r\n align={'middle'}\r\n style={{ marginBottom: 8, paddingInline: 8, paddingBlock: 16 }}\r\n >\r\n <AtText $fontSize={24} strong>\r\n {username}\r\n </AtText>\r\n <OrCol $flexDirection=\"row\" $gap={10}>\r\n {onClickCancelAction && (\r\n <AtButton\r\n value={cancelButtonLabel}\r\n onClick={onClickCancelAction}\r\n disabled={disabledCancelButton}\r\n icon={\r\n cancelButtonIcon ? <AtIcon name={cancelButtonIcon} /> : null\r\n }\r\n />\r\n )}\r\n {onClickMainAction && (\r\n <AtButton\r\n value={mainButtonLabel}\r\n onClick={onClickMainAction}\r\n disabled={disabledMainButton}\r\n icon={mainButtonIcon ? <AtIcon name={mainButtonIcon} /> : null}\r\n type=\"primary\"\r\n />\r\n )}\r\n </OrCol>\r\n </OrRow>\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, 1fr)',\r\n gap: 8,\r\n }}\r\n >\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {firstColumnContent}\r\n </OrCol>\r\n <OrCol\r\n style={{\r\n gap: 8,\r\n }}\r\n >\r\n {secondColumnContent}\r\n </OrCol>\r\n </OrRow>\r\n </React.Fragment>\r\n );\r\n};\r\n","export * from './TmCrudPage';\nexport * from './TmCustomTabsPage';\nexport * from './TmDescriptionsPage';\nexport * from './TmFormListPage';\nexport * from './TmLoginCountry';\nexport * from './TmLoginPhone';\nexport * from './TmLoginPhoneCode';\nexport * from './TmMapPage';\nexport * from './TmQuoteResultPage';\nexport * from './TmRechargePage';\nexport * from './TmRentalsPage';\nexport * from './TmRequestsForm';\nexport * from './TmRequestsPage';\n","import { styled } from 'styled-components';\r\nimport { AtCheckbox } from '../../atoms';\r\n\r\nexport const StyledCheckBox = styled(AtCheckbox)`\r\n margin-bottom: 21px ;\r\n font-size: 12px !important;\r\n\r\n`;\r\n","import React from 'react';\r\nimport { OrDrawer } from '../OrDrawer';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtButton, AtImage } from '../../atoms';\r\nimport { OrForm } from '../OrForm';\r\nimport { OrFormItemsInline } from '../OrFormItemsInline';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { IFormStep } from '../../templates';\r\nimport { StyledCheckBox } from './styles';\r\nimport { useFormWatch } from '../../../hooks';\r\nimport { Store } from 'antd/es/form/interface';\r\nexport interface PaymentMethod {\r\n value: string;\r\n icon?: React.ReactNode;\r\n onClick: (value: string) => void;\r\n}\r\n\r\nexport interface OrPaymentMethodsProps<FormType = any> {\r\n /**\r\n * The title of the drawer\r\n */\r\n drawerTitle?: string;\r\n /**\r\n * Whether the Drawer dialog is visible or not\r\n */\r\n open?: boolean;\r\n /**\r\n * payment Methods\r\n */\r\n paymentMethods: PaymentMethod[];\r\n /**\r\n * Form Steps info\r\n */\r\n currentPaymentSelectedFields?: IFormStep<FormType>; //TODO: check this @JesusWebTs if you are looking this please type it\r\n /**\r\n * Disable continue button drawer\r\n */\r\n disabledButton?: boolean;\r\n /**\r\n * Show payment methods\r\n */\r\n showPaymentMethods?: boolean;\r\n /**\r\n * terms and conditions disclaimer\r\n */\r\n termsDisclaimer?: string;\r\n /**\r\n * onCloseDrawer function\r\n */\r\n onCloseDrawer?: (e: React.MouseEvent | React.KeyboardEvent) => void;\r\n}\r\n\r\nexport const OrPaymentMethods = <\r\n FormType extends Store\r\n>({\r\n drawerTitle,\r\n open,\r\n paymentMethods,\r\n currentPaymentSelectedFields,\r\n showPaymentMethods = true,\r\n termsDisclaimer,\r\n onCloseDrawer,\r\n disabledButton = false,\r\n}: OrPaymentMethodsProps<FormType>) => {\r\n const termsAndConditions = useFormWatch(\"termsAndConditions\", currentPaymentSelectedFields?.form)\r\n return (\r\n <OrDrawer\r\n width={400}\r\n open={open}\r\n title={drawerTitle}\r\n onClose={onCloseDrawer}\r\n >\r\n <OrCol $gap={18} $alignItems=\"center\">\r\n {showPaymentMethods &&\r\n paymentMethods.map((paymentMethod, index) => {\r\n return (\r\n <AtButton\r\n key={index}\r\n value={paymentMethod.value}\r\n icon={paymentMethod.icon}\r\n $fullWidth={true}\r\n onClick={() => {\r\n paymentMethod.onClick(paymentMethod.value);\r\n }}\r\n />\r\n );\r\n })}\r\n\r\n {currentPaymentSelectedFields && !showPaymentMethods && (\r\n <>\r\n <AtImage\r\n src={currentPaymentSelectedFields.image}\r\n preview={false}\r\n height={36}\r\n width={153}\r\n />\r\n <OrForm\r\n form={currentPaymentSelectedFields.form}\r\n onFinish={currentPaymentSelectedFields.onFinish}\r\n name={currentPaymentSelectedFields.title}\r\n layout=\"vertical\"\r\n initialValues={currentPaymentSelectedFields.formInitialItems}\r\n >\r\n <OrFormItemsInline inputs={currentPaymentSelectedFields.inputs} />\r\n <MlFormItem\r\n name={'termsAndConditions'}\r\n initialValue={termsAndConditions}\r\n >\r\n <StyledCheckBox value=\"terms\" checked={termsAndConditions} onChange={() => {\r\n currentPaymentSelectedFields.form?.setFieldValue('termsAndConditions', !termsAndConditions)\r\n }}>\r\n {termsDisclaimer}\r\n </StyledCheckBox>\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={currentPaymentSelectedFields.submitButtonText}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={!termsAndConditions || disabledButton}\r\n />\r\n </MlFormItem>\r\n {\r\n !!currentPaymentSelectedFields.onCancelClick && <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={currentPaymentSelectedFields.cancelButtonText}\r\n onClick={currentPaymentSelectedFields.onCancelClick}\r\n icon={currentPaymentSelectedFields.cancelBtnIcon}\r\n type=\"default\"\r\n />\r\n </MlFormItem>\r\n }\r\n </OrForm>\r\n </>\r\n )}\r\n </OrCol>\r\n </OrDrawer>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const Container = styled.div<{padding: string}>`\r\n margin: 0px 12px;\r\n ${({ padding }) => (padding ? `padding: ${padding} !important` : '')};\r\n background-color: ${gray[0]};\r\n`;\r\n\r\nexport const Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nexport const BalanceContainer = styled.div`\r\n display: flex; \r\n flex-direction: column;\r\n`;\r\n\r\nexport const TitleContainer = styled.div`\r\n display: flex; \r\n flex-direction: row; \r\n align-items: baseline; \r\n gap: 10px; \r\n text-align: center;\r\n`;\r\n","import React from 'react';\r\nimport { AtButton, AtIcon, AtText, AtTitle } from '../../atoms';\r\nimport { BalanceContainer, Container, Header, TitleContainer } from './styles';\r\n\r\nexport interface OrTableModuleLayoutProps {\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * subtitle Content\r\n */\r\n subtitleContent?: string;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * margin\r\n */\r\n $margin?: string;\r\n /**\r\n * padding\r\n */\r\n padding?: string;\r\n /**\r\n * whether to show left arrow\r\n */\r\n leftArrow?: boolean;\r\n /**\r\n * left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n}\r\n\r\nexport const OrTableModuleLayout: React.FC<OrTableModuleLayoutProps> = (\r\n {\r\n $margin,\r\n title,\r\n subtitle,\r\n subtitleContent,\r\n children,\r\n padding = '16px 24px',\r\n leftArrow,\r\n onClickLeftArrow,\r\n },\r\n) => {\r\n return (\r\n <Container padding={padding}>\r\n <Header>\r\n <TitleContainer>\r\n {\r\n leftArrow && (\r\n <AtButton onClick={onClickLeftArrow} icon={<AtIcon name='ArrowLeftOutlined' />} borderless />\r\n )\r\n }\r\n <AtTitle level={4} $margin={$margin}>{title}</AtTitle>\r\n </TitleContainer>\r\n <BalanceContainer style={{\r\n\r\n }}>\r\n <AtText $fontSize={14} color='lightGray'>{subtitle}</AtText>\r\n <AtText $fontSize={24} $textAlign='right'>{subtitleContent}</AtText>\r\n </BalanceContainer>\r\n </Header>\r\n {children}\r\n </Container>\r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n MlFormItem,\r\n MlFromItemProps,\r\n MlRadioGroup,\r\n MlRadioGroupProps,\r\n} from '../../molecules';\r\nimport {\r\n AtButton,\r\n AtDivider,\r\n AtNumberInput,\r\n AtText,\r\n AtTextInput,\r\n AtTitle,\r\n} from '../../atoms';\r\nimport { OrForm } from '../OrForm';\r\nimport { FormProps } from 'antd';\r\nimport { IFormData } from '../../templates/TmLoginPhone';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { OrTableModuleLayout } from '../OrTableModuleLayout';\r\nimport { gray } from '../../../theme';\r\nimport { OrCard } from '../OrCard';\r\n\r\nexport interface OrRechargeProps {\r\n /**\r\n * Page title\r\n */\r\n title?: string;\r\n /**\r\n * page subtitle\r\n */\r\n subtitle?: string;\r\n /**\r\n * page subtitle content\r\n */\r\n balance?: string;\r\n /**\r\n * The title of the card\r\n */\r\n cardTitle: string;\r\n /**\r\n * number of digits (input) to show\r\n */\r\n digits?: number;\r\n /**\r\n * The input content value\r\n */\r\n value?: number;\r\n /**\r\n * Callback when user input amount\r\n */\r\n onChangeAmount?: ((value: string | number | null) => void) | undefined;\r\n /**\r\n * Callback when user input coupon\r\n */\r\n couponOnChange?:\r\n | ((e: React.ChangeEvent<HTMLInputElement>) => void)\r\n | undefined;\r\n /**\r\n * font size of the input\r\n */\r\n fontSize?: string;\r\n /**\r\n * height of the input\r\n */\r\n height?: string;\r\n /**\r\n * rule for the amount input\r\n */\r\n ruleAmount?: MlFromItemProps['rules'];\r\n /**\r\n * rule for the coupon input\r\n */\r\n ruleCoupon?: MlFromItemProps['rules'];\r\n /**\r\n * Form ref\r\n */\r\n form?: FormProps['form'];\r\n /**\r\n * Form init values\r\n */\r\n initialValues?: IFormData;\r\n /**\r\n * On submit function\r\n */\r\n onFinish?: FormProps['onFinish'];\r\n /**\r\n * Coupon button text\r\n */\r\n couponBtn?: string;\r\n /**\r\n * Amount placeholder\r\n */\r\n amountPlaceholder?: string;\r\n /**\r\n * Coupon placeholder\r\n */\r\n couponPlaceholder?: string;\r\n /**\r\n * Radio group items\r\n */\r\n radioGroupItems?: MlRadioGroupProps['options'];\r\n /**\r\n * Radio group default value\r\n */\r\n radioDefaultValue?: string;\r\n /**\r\n * Amount to pay text\r\n */\r\n amountToPayText?: string;\r\n /**\r\n * Amount to pay\r\n */\r\n amountToPay?: string;\r\n /**\r\n * Coupon text\r\n */\r\n couponText?: string;\r\n /**\r\n * Discount\r\n */\r\n discount?: string;\r\n /**\r\n * Total text\r\n */\r\n totalText?: string;\r\n /**\r\n * Total\r\n */\r\n total?: string;\r\n /**\r\n * Tax text\r\n */\r\n taxText?: string;\r\n /**\r\n * Tax\r\n */\r\n tax?: string;\r\n /**\r\n * Pay button text\r\n */\r\n payBtn?: string;\r\n /**\r\n * Apply coupon click\r\n */\r\n applyCouponClick?: () => void;\r\n /**\r\n * Pay click\r\n */\r\n payClick?: () => void;\r\n /**\r\n * onChange radio group\r\n */\r\n onChangeRadio?: MlRadioGroupProps['onChange'];\r\n}\r\n\r\nexport const OrRecharge: React.FC<OrRechargeProps> = (props) => {\r\n return (\r\n <>\r\n <OrCard size=\"small\" $marginBottom={20} $padding={0}>\r\n <OrTableModuleLayout\r\n title={props.title}\r\n subtitle={props.subtitle}\r\n subtitleContent={props.balance}\r\n />\r\n </OrCard>\r\n <OrCard>\r\n <OrCol $gap={15}>\r\n <AtTitle $margin=\"0\" level={5}>\r\n {props.cardTitle}\r\n </AtTitle>\r\n <OrForm\r\n form={props.form}\r\n initialValues={props.initialValues}\r\n onFinish={props.onFinish}\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '15px',\r\n flex: 1,\r\n }}\r\n >\r\n <MlFormItem noStyle name={'amount'} rules={props.ruleAmount}>\r\n <AtNumberInput\r\n $fontSize={props.fontSize}\r\n $height={props.height}\r\n id=\"quantity\"\r\n placeholder={props.amountPlaceholder}\r\n min={0}\r\n controls={false}\r\n onChange={props.onChangeAmount}\r\n />\r\n </MlFormItem>\r\n <OrRow wrap={false} $gap={15}>\r\n <MlFormItem\r\n noStyle\r\n name={'discountCode'}\r\n rules={props.ruleCoupon}\r\n >\r\n <AtTextInput\r\n onChange={props.couponOnChange}\r\n placeholder={props.couponPlaceholder}\r\n />\r\n </MlFormItem>\r\n <AtButton\r\n value={props.couponBtn}\r\n onClick={props.applyCouponClick}\r\n />\r\n </OrRow>\r\n </OrForm>\r\n {!!props.radioGroupItems && !!props.radioDefaultValue && (\r\n <MlRadioGroup\r\n onChange={props.onChangeRadio}\r\n options={props.radioGroupItems}\r\n optionType={'button'}\r\n defaultValue={props.radioDefaultValue}\r\n buttonStyle={'solid'}\r\n />\r\n )}\r\n <OrCard type=\"inner\" $backgroundColor={gray[3]}>\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.amountToPayText}</AtText>\r\n <AtText>{props.amountToPay}</AtText>\r\n </OrRow>\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.couponText}</AtText>\r\n <AtText>{props.discount}</AtText>\r\n </OrRow>\r\n {props.totalText && (\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.taxText}</AtText>\r\n <AtText>{props.tax}</AtText>\r\n </OrRow>\r\n )}\r\n <AtDivider $margin={10} />\r\n <OrRow justify=\"space-between\">\r\n <AtText>{props.totalText}</AtText>\r\n <AtText>{props.total}</AtText>\r\n </OrRow>\r\n </OrCard>\r\n <OrRow justify=\"end\" $paddingTop={25}>\r\n <AtButton\r\n value={props.payBtn}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n onClick={props.payClick}\r\n />\r\n </OrRow>\r\n </OrCol>\r\n </OrCard>\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { OrRentalResultProps } from '.';\r\n\r\nexport const StyledOrRentalResult = styled.div<OrRentalResultProps>`\r\n align-self: center;\r\n width: 100%;\r\n\r\n & .hide-desktop {\r\n display: none;\r\n }\r\n & .content .ant-typography {\r\n font-size: 20px;\r\n }\r\n\r\n @media (max-width: 767px) {\r\n & .hide-mobile {\r\n display: none!important;\r\n }\r\n & .hide-desktop {\r\n display: flex;\r\n }\r\n & .ant-card{\r\n border-radius: 0;\r\n }\r\n & .content .ant-typography {\r\n font-size: 16px;\r\n }\r\n }\r\n\r\n`","import React from 'react';\r\nimport { OrCard } from '../OrCard';\r\nimport { OrRow } from '../OrRow';\r\nimport { OrCol } from '../OrCol';\r\nimport { AtButton, AtIcon, AtText } from '../../atoms';\r\nimport { MlIconText } from '../../molecules';\r\nimport { StyledOrRentalResult } from './styles';\r\n\r\nexport interface OrRentalResultProps {\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * The address from\r\n */\r\n addressFrom: string;\r\n /**\r\n * The address to\r\n */\r\n addressTo: string;\r\n /**\r\n * The date of the search\r\n */\r\n date?: string;\r\n /**\r\n * The edit rental search form callback\r\n */\r\n editOnClick: () => void;\r\n /**\r\n * The delete rental search form callback\r\n */\r\n deleteOnClick: () => void;\r\n /**\r\n * Number of minimum passengers required\r\n */\r\n minPassengersRequired: string;\r\n /**\r\n * The max width of the card\r\n */\r\n $maxWidth?: number;\r\n}\r\n\r\nexport const OrRentalResult: React.FC<OrRentalResultProps> = ({ $maxWidth = 1080, ...props }) => (\r\n <StyledOrRentalResult {...props}>\r\n <OrCard $margin='auto' $alignSelf=\"center\" $maxWidth={$maxWidth} $backgroundColor='#4C2375'>\r\n <OrRow align='middle'>\r\n <OrCol span={14} md={12} onClick={props.editOnClick}>\r\n <OrRow>\r\n <OrCol className='content' $gapHorizontal={5} style={{ flexDirection: 'row' }}>\r\n <AtText $maxWidth={150} ellipsis color='white'>{props.addressFrom}</AtText>\r\n <AtIcon name='ArrowRightOutlined' style={{ color: '#FAAD14', fontSize: 16 }} />\r\n <AtText $maxWidth={150} ellipsis color='white'>{props.addressTo}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n {props.date && <OrRow className='hide-desktop'>\r\n <MlIconText iconProps={{ name: 'CalendarOutlined', style: { color: 'white' } }} text={props.date} textProps={{ color: 'white' }}/>\r\n </OrRow>}\r\n </OrCol>\r\n <OrCol className='hide-mobile' span={8} onClick={props.editOnClick}>\r\n {props.date && <MlIconText iconProps={{ name: 'CalendarOutlined', style: { marginLeft: 10, color: 'white' } }} text={props.date} textProps={{ color: 'white' }}/>}\r\n </OrCol>\r\n <OrCol style={{ flexDirection: 'row' }} $alignItems='center' $justify='end' $gapHorizontal={10} span={10} md={4}>\r\n <MlIconText iconProps={{ name: 'UserOutlined', style: {color: 'white'} }} text={props.minPassengersRequired} textProps={{ color: 'white' }} />\r\n <AtButton shape='circle' icon={<AtIcon name='CloseOutlined' />} onClick={props.deleteOnClick} />\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n </StyledOrRentalResult>\r\n);\r\n","import { styled } from 'styled-components';\r\nimport { OrRentalVehicleItemProps } from '.';\r\n\r\nexport const StyledOrRentalVehicleItem = styled.div<OrRentalVehicleItemProps>`\r\n align-self: center;\r\n & .ant-btn-primary {\r\n width: 150px;\r\n }\r\n & .hide-desktop {\r\n display: none;\r\n }\r\n & .main-title {\r\n flex: 1;\r\n }\r\n & .row-content {\r\n align-items: center;\r\n }\r\n\r\n @media (max-width: 767px) {\r\n & .hide-mobile {\r\n display: none!important;\r\n }\r\n & .hide-desktop {\r\n display: flex;\r\n }\r\n & .main-title {\r\n margin: 0;\r\n }\r\n & .ant-btn-primary {\r\n width: 100%;\r\n max-width: 330px;\r\n margin: auto;\r\n }\r\n }\r\n\r\n`","import { AtButton, AtIconProps, AtImage, AtTag, AtText, AtTitle } from \"../../atoms\";\r\nimport { MlIconText } from \"../../molecules\";\r\nimport { OrCard } from \"../OrCard\";\r\nimport { OrCol } from \"../OrCol\";\r\nimport { OrRow } from \"../OrRow\";\r\nimport { StyledOrRentalVehicleItem } from \"./styles\";\r\n\r\nexport interface OrRentalVehicleItemProps {\r\n /**\r\n * The title of the vehicle\r\n */\r\n title: string;\r\n /**\r\n * The tag of the vehicle\r\n */\r\n tag?: string;\r\n /**\r\n * The main image of the vehicle\r\n */\r\n imageSrc: string;\r\n /**\r\n * The items of the vehicle\r\n */\r\n items: { icon: AtIconProps['name'], text: string }[];\r\n /**\r\n * The extras of the vehicle\r\n */\r\n extras: { label: string, text: string }[];\r\n /**\r\n * The price of the vehicle\r\n */\r\n price: string;\r\n /**\r\n * The on click event\r\n */\r\n onClick?: () => void;\r\n /**\r\n * The max width of the card\r\n */\r\n $maxWidth?: number;\r\n /**\r\n * The select text\r\n */\r\n selectText?: string;\r\n}\r\n\r\nexport const OrRentalVehicleItem: React.FC<OrRentalVehicleItemProps> = (props) => {\r\n const {title, tag, imageSrc, price, items, extras, $maxWidth = 1080, selectText} = props;\r\n const {onClick, ...stylesProps} = props;\r\n return (\r\n <StyledOrRentalVehicleItem {...stylesProps}>\r\n <OrCard $padding={0} $maxWidth={$maxWidth} $alignSelf=\"center\" $shadow=\"0px 4px 8px 0px #0000001A\">\r\n <OrRow align=\"middle\">\r\n <OrCol className=\"hide-mobile\" span={9} $paddingRight={30}>\r\n <AtImage\r\n src={imageSrc}\r\n preview={false}\r\n />\r\n </OrCol>\r\n <OrCol span={24} md={6}>\r\n {tag && <OrRow>\r\n <AtTag color=\"purple\" bordered={true}>{tag}</AtTag>\r\n </OrRow>}\r\n <OrRow className=\"row-content\">\r\n <AtTitle className=\"main-title\" level={4}>{title}</AtTitle>\r\n <OrCol className=\"hide-desktop\">\r\n <AtText $fontSize={24} $textAlign='right' strong={true}>{price}</AtText>\r\n </OrCol>\r\n </OrRow>\r\n <OrRow className=\"hide-mobile\">\r\n {items && items.map((item, i) => <OrCol style={{ flexDirection: 'row' }} span={8} md={24} key={i}>\r\n <MlIconText iconProps={{ name: item.icon, style: { color: '#8C8C8C' } }} text={item.text} textProps={{ color: 'black', $opacity: .85 }}/>\r\n </OrCol>)}\r\n </OrRow>\r\n <OrRow className=\"hide-mobile\" $paddingTop={10}>\r\n {extras && extras.map((extra, i) => <OrCol style={{ flexDirection: 'row' }} span={8} md={24} key={i}>\r\n <AtText>{`${extra.label}: ${extra.text}`}</AtText>\r\n </OrCol>)}\r\n </OrRow>\r\n </OrCol>\r\n <OrCol className=\"hide-mobile\" md={4} $alignItems=\"start\">\r\n <AtText $fontSize={24} $textAlign='right' strong={true}>{price}</AtText>\r\n </OrCol>\r\n <OrCol span={24} md={5} $paddingTop={12}>\r\n <OrRow className=\"hide-desktop\" $gapHorizontal={8} $gapVertical={2}>\r\n {items && items.map((item) => <OrCol style={{ flexDirection: 'row' }}>\r\n <MlIconText iconProps={{ name: item.icon, style: { color: '#8C8C8C'} }} text={item.text} textProps={{ color: 'black', $opacity: .85 }}/>\r\n </OrCol>)}\r\n </OrRow>\r\n \r\n <OrRow className=\"hide-desktop\">\r\n <AtImage\r\n wrapperStyle={{ maxWidth: 300, margin: 'auto'}}\r\n src={imageSrc}\r\n preview={false}\r\n />\r\n </OrRow>\r\n <AtButton \r\n type='primary' \r\n size='large'\r\n shape='round'\r\n value={selectText}\r\n onClick={onClick}\r\n />\r\n </OrCol>\r\n </OrRow>\r\n </OrCard>\r\n </StyledOrRentalVehicleItem>\r\n )\r\n}","import React, { useMemo } from 'react';\r\nimport { RadioChangeEvent } from 'antd';\r\nimport { MlRadioGroup, MlSubscriptionCardProps } from '../../molecules';\r\nimport { MlServicesCard } from '../../molecules/MlServicesCard';\r\n\r\nexport interface OrServiceCardsProps {\r\n /**\r\n * subscriptions onChange event\r\n */\r\n onChange?: (e: RadioChangeEvent) => void;\r\n /**\r\n * services\r\n */\r\n options: Array<MlSubscriptionCardProps>;\r\n /**\r\n * Used for setting the currently selected value\r\n */\r\n value?: any;\r\n /**\r\n * disable card icons\r\n */\r\n disabled?: boolean;\r\n}\r\n\r\nexport const OrServiceCards: React.FC<OrServiceCardsProps> = ({\r\n options,\r\n onChange,\r\n value,\r\n disabled = false,\r\n}) => {\r\n const services = useMemo(\r\n () =>\r\n options.map((subscription) => ({\r\n label: <MlServicesCard {...subscription} />,\r\n value: subscription.value,\r\n disabled: subscription.disabled,\r\n })),\r\n [options],\r\n );\r\n return (\r\n <>\r\n <MlRadioGroup\r\n onChange={onChange}\r\n options={services}\r\n bordered\r\n size=\"large\"\r\n fullWidth={true}\r\n disabled={disabled}\r\n padding=\"16px\"\r\n value={value}\r\n buttonStyle=\"outline\"\r\n cardChecked={true}\r\n />\r\n </>\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { gray } from '../../../theme';\r\n\r\nexport const Container = styled.div`\r\n margin: 0px 12px;\r\n background-color: #f5f5f5;\r\n padding: 18px;\r\n`;\r\n\r\nexport const Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 10px;\r\n background-color: ${gray[0]};\r\n padding: 21.5px 24px;\r\n`;\r\n\r\nexport const UserContainer = styled.div`\r\n display: flex; \r\n flex-direction: row;\r\n position: relative;\r\n padding-left: 10px;\r\n align-items: center;\r\n`;\r\n\r\nexport const BalanceContainer = styled.div`\r\n display: flex; \r\n flex-direction: column;\r\n position: relative;\r\n padding-left: 40px;\r\n\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n width: 1px;\r\n height: calc(100% - 16px);\r\n background-color: black;\r\n position: absolute;\r\n top: 8px;\r\n left: 19.5px;\r\n }\r\n`;\r\n\r\nexport const InfoContainer = styled.div`\r\n display: flex; \r\n flex-direction: row;\r\n position: relative;\r\n padding-left: 40px;\r\n\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n width: 1px;\r\n height: calc(100% - 16px);\r\n background-color: black;\r\n position: absolute;\r\n top: 8px;\r\n left: 19.5px;\r\n }\r\n`;\r\n\r\nexport const MainContainer = styled.div`\r\n flex-direction: row;\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const ButtonContainer = styled.div`\r\n`;\r\n\r\nexport const TextContainer = styled.div`\r\n display: flex; \r\n flex-direction: column;\r\n margin-left: 10px;\r\n`;\r\n","import React, { useMemo } from 'react';\r\nimport { AtAvatar, AtButton, AtIcon, AtIconProps, AtImage, AtText, AtTitle } from '../../atoms';\r\nimport { Container, Header, UserContainer, BalanceContainer, InfoContainer, MainContainer, ButtonContainer, TextContainer } from './styles';\r\nimport { OrDrawer } from '../OrDrawer';\r\nimport { OrStep } from '../OrStep';\r\nimport { OrForm, OrFormProps } from '../OrForm';\r\nimport { OrFormItemsInline } from '../OrFormItemsInline';\r\nimport { OrCol } from '../OrCol';\r\nimport { MlFormItem } from '../../molecules';\r\nimport { IFormStep } from '../../templates/TmCrudPage';\r\n\r\nexport interface OrTabsModuleLayoutProps<FormType = any> {\r\n /**\r\n * Avatar image\r\n */\r\n avatar?: string;\r\n /**\r\n * User name\r\n */\r\n username: string;\r\n /**\r\n * User phone number\r\n */\r\n phone: string;\r\n /**\r\n * Balance ticket label\r\n */\r\n balanceLabel: string;\r\n /**\r\n * Balance ticket value\r\n */\r\n balanceValue: string;\r\n /**\r\n * Icon for the info part\r\n */\r\n infoIcon?: AtIconProps['name'];\r\n /**\r\n * Info label\r\n */\r\n infoLabel?: string;\r\n /**\r\n * Info value\r\n */\r\n infoValue?: string;\r\n /**\r\n * Main button label\r\n */\r\n mainButtonLabel: string;\r\n /**\r\n * Main button icon\r\n */\r\n mainButtonIcon?: AtIconProps['name'];\r\n /**\r\n * Left arrow click event\r\n */\r\n onClickLeftArrow?: () => void;\r\n /**\r\n * Main action click event\r\n */\r\n onClickMainAction?: () => void;\r\n /**\r\n * Children component\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Form Steps info\r\n */\r\n formSteps?: IFormStep<FormType>[];\r\n /**\r\n * On press cancel and close button function\r\n */\r\n handleCloseCallback?: () => void;\r\n /**\r\n * State of the drawer\r\n */\r\n open?: boolean;\r\n /**\r\n * Drawer Content\r\n */\r\n drawerContent?: React.ReactNode;\r\n /**\r\n * Drawer Title\r\n */\r\n drawerTitle?: React.ReactNode;\r\n /**\r\n * Drawer Width\r\n */\r\n drawerWidth?: number;\r\n /**\r\n * Disable buttons drawer\r\n */\r\n disabledButtons?: boolean;\r\n /**\r\n * current step\r\n */\r\n currentFormStep?: number;\r\n /**\r\n * button optional text\r\n */\r\n showFormStepper?: boolean;\r\n /**\r\n * On change form content\r\n */\r\n onValuesChange?: OrFormProps['onValuesChange'];\r\n}\r\n\r\nexport const OrTabsModuleLayout: React.FC<OrTabsModuleLayoutProps> = (\r\n {\r\n avatar,\r\n username,\r\n phone,\r\n balanceLabel,\r\n balanceValue,\r\n infoIcon = 'FileDoneOutlined',\r\n infoLabel,\r\n infoValue,\r\n mainButtonLabel,\r\n mainButtonIcon = 'FileDoneOutlined',\r\n onClickLeftArrow,\r\n onClickMainAction,\r\n children,\r\n formSteps,\r\n handleCloseCallback,\r\n open,\r\n drawerTitle,\r\n drawerWidth,\r\n disabledButtons,\r\n currentFormStep,\r\n showFormStepper = true,\r\n onValuesChange\r\n },\r\n) => {\r\n const letters = useMemo(\r\n () => {\r\n const name = username.split(' ');\r\n if(name.length > 1) {\r\n return name[0][0] + name[1][0];\r\n } else {\r\n return name[0][0];\r\n }\r\n }, \r\n [username]);\r\n\r\n return (\r\n <React.Fragment>\r\n <Container>\r\n <Header>\r\n <MainContainer>\r\n {\r\n onClickLeftArrow && (\r\n <AtButton onClick={onClickLeftArrow} icon={<AtIcon name='ArrowLeftOutlined' />} borderless />\r\n )\r\n }\r\n <UserContainer>\r\n {\r\n avatar ? <AtAvatar \r\n src={avatar} \r\n alt='avatar' \r\n size={32}\r\n shape='circle'\r\n /> :\r\n <AtAvatar \r\n icon={letters}\r\n alt='avatar' \r\n size={32}\r\n shape='circle'\r\n />\r\n }\r\n <TextContainer>\r\n <AtText $fontSize={16} strong>{username}</AtText>\r\n <AtText $fontSize={14}>{phone}</AtText>\r\n </TextContainer>\r\n </UserContainer>\r\n <BalanceContainer>\r\n <AtText $fontSize={14}>{balanceLabel}</AtText>\r\n <AtText $fontSize={16} strong>{balanceValue}</AtText>\r\n </BalanceContainer>\r\n {infoLabel && infoValue && (\r\n <InfoContainer>\r\n {infoIcon && <AtIcon style={{ fontSize: '24px' }} name={infoIcon} />}\r\n <TextContainer>\r\n <AtText $fontSize={16} strong>{infoLabel}</AtText>\r\n <AtText $fontSize={16}>{infoValue}</AtText>\r\n </TextContainer>\r\n </InfoContainer>\r\n )}\r\n </MainContainer>\r\n <ButtonContainer>\r\n <AtButton type='primary' icon={<AtIcon name={mainButtonIcon} />} onClick={onClickMainAction} value={mainButtonLabel}/>\r\n </ButtonContainer>\r\n </Header>\r\n {children}\r\n </Container>\r\n <OrDrawer\r\n open={open}\r\n onClose={handleCloseCallback}\r\n title={drawerTitle}\r\n width={drawerWidth}\r\n >\r\n {showFormStepper && formSteps && formSteps?.length > 1 && (\r\n <OrStep\r\n current={currentFormStep}\r\n $margin=\"0 0 20px 0\"\r\n labelPlacement=\"vertical\"\r\n items={formSteps.map((item) => ({\r\n key: item.title,\r\n title: item.title,\r\n }))}\r\n />\r\n )}\r\n {formSteps &&\r\n formSteps.map(({customButtons = [], ...formStep}, index) => (\r\n <OrForm\r\n hidden={currentFormStep !== index}\r\n form={formStep.form}\r\n onFinish={formStep.onFinish}\r\n onValuesChange={onValuesChange}\r\n name={formStep.title}\r\n layout=\"vertical\"\r\n initialValues={formStep.formInitialItems}\r\n >\r\n {!showFormStepper && !!formStep.title && (\r\n <AtTitle $textAlign=\"center\" $margin=\"5px 0 25px\" level={5}>\r\n {formStep.title}\r\n </AtTitle>\r\n )}\r\n {formStep.image && (\r\n <OrCol $alignItems=\"center\" $paddingBottom={30}>\r\n <AtImage\r\n src={formStep.image}\r\n preview={false}\r\n height={\"100%\"}\r\n width={250}\r\n />\r\n </OrCol>\r\n )}\r\n <OrFormItemsInline inputs={formStep.inputs} />\r\n {customButtons.length === 0 && (\r\n <>\r\n <MlFormItem>\r\n {!formStep.hiddeSubmitButton && (\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.submitButtonText}\r\n danger={formStep.isSubmitButtonDanger}\r\n htmlType=\"submit\"\r\n type=\"primary\"\r\n disabled={disabledButtons}\r\n />\r\n )}\r\n </MlFormItem>\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n value={formStep.cancelButtonText}\r\n onClick={formStep.onCancelClick}\r\n type=\"default\"\r\n disabled={disabledButtons}\r\n />\r\n </MlFormItem>\r\n </>\r\n )}\r\n {customButtons.map((button) => (\r\n <MlFormItem>\r\n <AtButton\r\n $fullWidth={true}\r\n type={button.type}\r\n value={button.label}\r\n onClick={button.onClick}\r\n htmlType={button.htmlType}\r\n />\r\n </MlFormItem>\r\n ))}\r\n </OrForm>\r\n ))}\r\n </OrDrawer>\r\n </React.Fragment>\r\n );\r\n};\r\n","export * from './OrActiveCards';\nexport * from './OrAlert';\nexport * from './OrAssignBalance';\nexport * from './OrBasicUserInfoCard';\nexport * from './OrCard';\nexport * from './OrCardDetails';\nexport * from './OrCardIconsGroup';\nexport * from './OrCardRequestSummary';\nexport * from './OrCoinTable';\nexport * from './OrCol';\nexport * from './OrCollapse';\nexport * from './OrContent';\nexport * from './OrCopyInfo';\nexport * from './OrCountryCard';\nexport * from './OrDashboardLayout';\nexport * from './OrDescriptions';\nexport * from './OrDetailsPage';\nexport * from './OrDownloadUpload';\nexport * from './OrDrawer';\nexport * from './OrEmpty';\nexport * from './OrFlagGrid';\nexport * from './OrForm';\nexport * from './OrFormItemsInline';\nexport * from './OrGoogleMaps';\nexport * from './OrHeader';\nexport * from './OrInfoCard';\nexport * from './OrInfoHeaderCard';\nexport * from './OrLabelTextBox';\nexport * from './OrLayout';\nexport * from './OrListSelection';\nexport * from './OrLoginLayout';\nexport * from './OrMark';\nexport * from './OrMenu';\nexport * from './OrModal';\nexport * from './OrModuleTableHeader';\nexport * from './OrPaymentMethods';\nexport * from './OrPhoneInput';\nexport * from './OrPlanCards';\nexport * from './OrRecharge';\nexport * from './OrRentalLayout';\nexport * from './OrRentalResult';\nexport * from './OrRentalVehicleItem';\nexport * from './OrRow';\nexport * from './OrSelectInput';\nexport * from './OrSelectTable';\nexport * from './OrServiceCards';\nexport * from './OrSider';\nexport * from './OrSiderMenu';\nexport * from './OrSimpleBanner';\nexport * from './OrSpace';\nexport * from './OrSpaceCompact';\nexport * from './OrStep';\nexport * from './OrTab';\nexport * from './OrTable';\nexport * from './OrTableModuleLayout';\nexport * from './OrTabsModuleLayout';\nexport * from './OrTicketCard';\nexport * from './OrTickets';\nexport * from './OrTwoButtons';\n","import React from \"react\";\r\nimport { OrRow, OrSpace } from \"../../organisms\";\r\nimport { AtText } from \"../AtText\";\r\nimport { gold, red, green, geekblue } from '@ant-design/colors';\r\nimport { violet } from \"../../../theme\";\r\nimport { AtIcon } from \"../AtIcon\";\r\n\r\nexport interface AtInputStatusProps {\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: React.ReactNode;\r\n /**\r\n * Set the icon of tag\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * Callback executed when tag is closed\r\n */\r\n onClose?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Tag text\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * Status type\r\n */\r\n type?: 'success' | 'warning' | 'danger' | 'info' | 'default';\r\n visible?: boolean;\r\n}\r\n\r\nexport const AtInputStatus: React.FC<AtInputStatusProps> = (\r\n {\r\n children,\r\n closeIcon,\r\n icon,\r\n type = 'danger',\r\n onClose,\r\n visible,\r\n ...props\r\n }\r\n) => {\r\n const typeColorMap = {\r\n success: green,\r\n warning: gold,\r\n danger: red,\r\n info: violet,\r\n default: geekblue,\r\n }\r\n\r\n return visible ?\r\n <OrRow\r\n style={{\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n padding: 14,\r\n fontSize: 14,\r\n backgroundColor: type && typeColorMap[type][0],\r\n color: type && typeColorMap[type][4],\r\n borderWidth: 1,\r\n borderColor: type && typeColorMap[type][1],\r\n borderStyle: 'solid',\r\n borderRadius: 8,\r\n }}\r\n {...props}\r\n >\r\n <OrRow style={{\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n gap: 15,\r\n flex: 1,\r\n width: '100%',\r\n }}>\r\n <OrSpace>\r\n {\r\n icon ?? type === 'success' ? \r\n <AtIcon name='CheckCircleFilled' width={14} height={14} /> : \r\n type === 'warning' ? \r\n <AtIcon name='ExclamationCircleFilled' width={14} height={14} /> :\r\n type === 'info' || type === 'danger' ? \r\n <AtIcon name='CloseCircleFilled' width={14} height={14} /> :\r\n <></>\r\n }\r\n <AtText color=\"black\">{children}</AtText>\r\n </OrSpace >\r\n </OrRow >\r\n {!!onClose ? <div onClick={onClose} style={{\r\n cursor: 'pointer',\r\n width: 14,\r\n height: 14,\r\n padding: 5,\r\n color: '#00000073',\r\n }}>\r\n {closeIcon}\r\n </div> : <></>}\r\n </OrRow > :\r\n <></>\r\n}","import Link, { LinkProps } from 'antd/es/typography/Link';\r\nimport React from 'react';\r\n\r\nexport interface AtLinkProps extends LinkProps{\r\n /**\r\n * The href of the link\r\n */\r\n href?: LinkProps['href'];\r\n /**\r\n * The target type of the link\r\n */\r\n target?: LinkProps['target'];\r\n}\r\n\r\nexport const AtLink: React.FC<AtLinkProps> = ({\r\n ...props\r\n}) => {\r\n return (\r\n <Link \r\n {...props}\r\n />\r\n );\r\n};\r\n","import { styled } from 'styled-components';\r\nimport { AtLogoProps } from '.';\r\nimport { violet } from '../../../theme';\r\nimport { gold } from '@ant-design/colors';\r\nimport SVG from 'react-inlinesvg';\r\n\r\ntype LogoAttrs = AtLogoProps & {\r\n width?: number;\r\n height?: number;\r\n};\r\n\r\nconst colorMap = {\r\n violet: violet[5],\r\n gold: gold[5],\r\n white: '#FFFFFF',\r\n};\r\n\r\nexport const Logo = styled(SVG)<LogoAttrs>`\r\n & svg {\r\n width: ${({ width, type }) => width ?? (type === 'logo' ? 243 : 90)};\r\n height: ${({ height, type }) => height ?? (type === 'logo' ? 50 : 38)};\r\n }\r\n & path {\r\n fill: ${({ color }) => (color ? colorMap[color] : colorMap.violet)};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport WaWaLogo from '../../../assets/icons/wawa-logo.svg';\r\nimport WaWaIsotype from '../../../assets/icons/wawa-isotype.svg';\r\nimport { Logo } from './styles';\r\n\r\nexport interface AtLogoProps {\r\n width?: number;\r\n height?: number;\r\n color?: 'violet' | 'gold' | 'white';\r\n type?: 'logo' | 'isotype';\r\n}\r\n\r\nexport const AtLogo: React.FC<AtLogoProps> = ({color = \"violet\", type = \"logo\", ...props}) => {\r\n return (\r\n <Logo\r\n type={type}\r\n color={color}\r\n {...props}\r\n src={\r\n type === 'logo' ? (WaWaLogo as string) : (WaWaIsotype as string)\r\n }\r\n />\r\n );\r\n};\r\n\r\n","import { Input } from 'antd';\r\nimport React from 'react';\r\nimport { AtTextInputProps } from '../AtTextInput';\r\n\r\ntype AtPasswordInputProp = AtTextInputProps & {\r\n iconRender?: (visible: boolean) => React.ReactNode;\r\n};\r\n\r\nexport const AtPasswordInput: React.FC<AtPasswordInputProp> = (props) => {\r\n return <Input.Password {...props} />;\r\n};\r\n","import React from 'react';\r\nimport { QRCode } from 'antd';\r\n\r\nexport interface AtQrCodeProps {\r\n /**\r\n * The text to encode\r\n */\r\n text: string;\r\n /**\r\n * The size of the QR code\r\n */\r\n size?: number;\r\n}\r\n\r\nexport const AtQrCode: React.FC<AtQrCodeProps> = ({\r\n text,\r\n size\r\n}) => <QRCode value={text} size={size} />;\r\n","import React from 'react';\r\nimport { Radio } from 'antd';\r\nimport { RadioChangeEvent } from 'antd/es/radio';\r\n\r\nexport interface AtRadioProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Specifies whether the radio is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * Specifies the initial state: whether or not the radio is selected\r\n */\r\n defaultChecked?: boolean;\r\n /**\r\n * Disable radio\r\n */\r\n disabled?: boolean;\r\n /**\r\n * According to value for comparison, to determine whether the selected\r\n */\r\n value?: any;\r\n /**\r\n * Children of the AtRadio\r\n */\r\n children?: React.ReactNode;\r\n /**\r\n * On select option callback\r\n */\r\n onChange?: ((e: RadioChangeEvent) => void) | undefined;\r\n}\r\n\r\nexport const AtRadio: React.FC<AtRadioProps> = ({\r\n checked = false,\r\n defaultChecked = false,\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return <Radio checked={checked} defaultChecked={defaultChecked} disabled={disabled} {...props} />;\r\n};\r\n\r\n","import React from 'react';\r\nimport { Radio } from 'antd';\r\n\r\n\r\nexport interface AtRadioButtonsProps {\r\n /**\r\n * The title of the button\r\n */\r\n title: string;\r\n /**\r\n * The value of the button\r\n */\r\n value: string;\r\n}\r\n\r\nexport const AtRadioButtons: React.FC<AtRadioButtonsProps> = ({ title, value }) => {\r\n return (\r\n <Radio.Button value={value} type='solid'>{title}</Radio.Button>\r\n );\r\n}","import { Result } from \"antd\";\r\nimport React from \"react\";\r\n\r\nexport interface AtResultProps {\r\n /**\r\n * Icon to show in result\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * Title to show in result\r\n */\r\n title?: React.ReactNode;\r\n /**\r\n * Extra content to show in result\r\n */\r\n extra?: React.ReactNode;\r\n}\r\n\r\nexport const AtResult: React.FC<AtResultProps> = ({ icon, title, extra }) => {\r\n return (\r\n <Result\r\n icon={icon}\r\n title={title}\r\n extra={extra}\r\n />\r\n )\r\n}","import React from 'react';\r\nimport Segmented, { SegmentedProps, SegmentedValue } from 'antd/lib/segmented';\r\n\r\nexport interface AtSegmentedProps {\r\n /**\r\n * State for the current value of the segmented\r\n */\r\n value?: SegmentedValue;\r\n /**\r\n * On change callback\r\n */\r\n onChange?: (value: SegmentedValue) => void;\r\n /**\r\n * List of options for the segmented\r\n */\r\n options: SegmentedProps['options'];\r\n /**\r\n * Disable the segmented\r\n */\r\n disabled?: SegmentedProps['disabled'];\r\n}\r\n\r\nexport const AtSegmented: React.FC<AtSegmentedProps> = ({\r\n options,\r\n value,\r\n onChange,\r\n disabled\r\n}) => {\r\n return <Segmented options={options} disabled={disabled} value={value} onChange={onChange} />;\r\n};\r\n\r\n","import { styled } from 'styled-components';\r\nimport { Select } from 'antd';\r\nimport { AtSelectProps } from '.';\r\nimport { violet, gray } from '../../../theme';\r\nconst colors = {\r\n violet: violet[5],\r\n white: gray[0],\r\n}\r\n\r\nexport const StyledAtSelect = styled(Select)<AtSelectProps>`\r\n ${({ $height }) => ($height ? `height: ${$height};` : '')}\r\n ${({ $width }) => ($width ? `width: ${$width} !important;` : '')}\r\n ${({ $textColor }) => ($textColor \r\n ? `\r\n .ant-select-selector {\r\n color: ${colors[$textColor]} !important;\r\n }\r\n .ant-select-arrow {\r\n color: ${colors[$textColor]} !important;\r\n }\r\n `\r\n : '')}\r\n ${({ backgroundColor }) => (backgroundColor \r\n ? `\r\n .ant-select-selector {\r\n background-color: ${colors[backgroundColor]} !important;\r\n }\r\n `\r\n : '')}\r\n`;","import React, {\r\n CSSProperties,\r\n JSXElementConstructor,\r\n ReactElement,\r\n ReactNode,\r\n useMemo,\r\n} from 'react';\r\nimport { SelectProps } from 'antd';\r\nimport { DefaultOptionType as Option, LabeledValue } from 'antd/es/select';\r\nimport { StyledAtSelect } from './styles';\r\n\r\nexport interface AtSelectProps {\r\n /**\r\n * The ID for input\r\n */\r\n id?: string;\r\n /**\r\n * Show clear button\r\n */\r\n allowClear?: boolean;\r\n /**\r\n * Whether the current search will be cleared on selecting an item. Only applies when mode is set to multiple or tags\r\n */\r\n autoClearSearchValue?: boolean;\r\n /**\r\n * Get focus by default\r\n */\r\n autoFocus?: boolean;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * The custom clear icon\r\n */\r\n clearIcon?: ReactNode;\r\n /**\r\n * Whether active first option by default\r\n */\r\n defaultActiveFirstOption?: boolean;\r\n /**\r\n * Initial selected option\r\n */\r\n defaultValue?:\r\n | string\r\n | string[]\r\n | number\r\n | number[]\r\n | LabeledValue\r\n | LabeledValue[];\r\n /**\r\n * Whether disabled select\r\n */\r\n disabled?: boolean;\r\n /**\r\n * Determine whether the popup menu and the select input are the same width. Default set\r\n * min-width same as input. Will ignore when value less than select width. false\r\n * will disable virtual scroll\r\n */\r\n popupMatchSelectWidth?: boolean | number;\r\n /**\r\n * Customize dropdown content\r\n */\r\n dropdownRender?: (\r\n originNode: ReactNode,\r\n ) => ReactElement<any, string | JSXElementConstructor<any>>;\r\n /**\r\n * The style of dropdown menu\r\n */\r\n dropdownStyle?: CSSProperties;\r\n /**\r\n * Customize node label, value, options,groupLabel field name\r\n */\r\n fieldNames?: object;\r\n /**\r\n * If true, filter options by input, if function, filter options against it. The function will receive two arguments, inputValue and option, if the function returns true, the option will be included in the filtered set; Otherwise, it will be excluded\r\n */\r\n filterOption?: SelectProps['filterOption'];\r\n /**\r\n * Sort function for search options sorting, see Array.sort's\r\n * compareFunction\r\n */\r\n filterSort?: (optionA: Option, optionB: Option) => number;\r\n /**\r\n * Whether to embed label in value, turn the format of value from string to { value: string,\r\n * label: ReactNode }\r\n */\r\n labelInValue?: boolean;\r\n /**\r\n * Config popup height\r\n */\r\n listHeight?: number;\r\n /**\r\n * Indicate loading state\r\n */\r\n loading?: boolean;\r\n /**\r\n * Select height\r\n */\r\n $height?: string;\r\n /**\r\n * Max tag count to show. responsive will cost render performance\r\n */\r\n maxTagCount?: number | 'responsive';\r\n /**\r\n * The custom menuItemSelected icon with multiple options\r\n */\r\n menuItemSelectedIcon?: ReactNode;\r\n /**\r\n * Set mode of Select\r\n */\r\n mode?: 'multiple' | 'tags';\r\n /**\r\n * Specify content to show when no result matches\r\n */\r\n notFoundContent?: ReactNode;\r\n /**\r\n * Controlled open state of dropdown\r\n */\r\n open?: boolean;\r\n /**\r\n * Which prop value of option will be used for filter if filterOption is true. If options is\r\n set, it should be set to label\r\n */\r\n optionFilterProp?: string;\r\n /**\r\n * Which prop value of option will render as content of select. Example\r\n */\r\n optionLabelProp?: string;\r\n /**\r\n * Select options. Will get better perf than jsx definition\r\n */\r\n options?: SelectProps['options'];\r\n /**\r\n * Placeholder of select\r\n */\r\n placeholder?: ReactNode;\r\n /**\r\n * The current input \"search\" text\r\n */\r\n searchValue?: string;\r\n /**\r\n * Whether select is searchable\r\n */\r\n showSearch?: boolean;\r\n /**\r\n * Size of Select input\r\n */\r\n size?: 'large' | 'middle' | 'small';\r\n /**\r\n * Set validation status\r\n */\r\n status?: 'error' | 'warning';\r\n /**\r\n * Styles\r\n */\r\n style?: React.CSSProperties;\r\n /**\r\n * Current selected option (considered as a immutable array)\r\n */\r\n value?: string | string[] | number | number[] | LabeledValue | LabeledValue[];\r\n /**\r\n * Called when blur\r\n */\r\n onBlur?: () => any;\r\n /**\r\n * Called when select an option or input value change\r\n */\r\n onChange?: (value: any, option: Option | Array<Option>) => any;\r\n /**\r\n * Called when clear\r\n */\r\n onClear?: () => any;\r\n /**\r\n * Called when an option is deselected, param is the selected option's value. Only called for\r\n * multiple or tags, effective in multiple or tags mode only\r\n */\r\n onDeselect?: (value: string | number | LabeledValue) => any;\r\n /**\r\n * Called when dropdown open\r\n */\r\n onDropdownVisibleChange?: (open: boolean) => any;\r\n /**\r\n * Called when focus\r\n */\r\n onFocus?: () => any;\r\n /**\r\n * Callback function that is fired when input changed\r\n */\r\n onSearch?: (value: string) => any;\r\n /**\r\n * Called when an option is selected, the params are option's value (or key) and option instance\r\n */\r\n onSelect?: SelectProps['onSelect'];\r\n /**\r\n * Select width\r\n */\r\n $width?: string;\r\n /**\r\n * Children\r\n */\r\n children?: ReactNode;\r\n /**\r\n * background color\r\n */\r\n backgroundColor?: 'violet' | 'white';\r\n /**\r\n * text color\r\n */\r\n $textColor?: 'white' | 'violet';\r\n /**\r\n * variant\r\n */\r\n variant?: SelectProps['variant'];\r\n /**\r\n * maxCount\r\n */\r\n maxCount?: SelectProps['maxCount'];\r\n}\r\nexport const AtSelect: React.FC<AtSelectProps> = ({\r\n allowClear = false,\r\n autoClearSearchValue = true,\r\n autoFocus = false,\r\n variant = 'outlined',\r\n defaultActiveFirstOption = true,\r\n fieldNames = {\r\n label: 'label',\r\n value: 'value',\r\n options: 'options',\r\n groupLabel: 'label',\r\n },\r\n filterOption = true,\r\n labelInValue = false,\r\n listHeight = 256,\r\n loading = false,\r\n $textColor,\r\n size = 'middle',\r\n popupMatchSelectWidth = true,\r\n options,\r\n ...props\r\n}) => {\r\n const optionsWithIcons = useMemo(\r\n () =>\r\n options?.map((option) => {\r\n return {\r\n ...option,\r\n label: (\r\n <>\r\n {option.icon ?? null} {option.label}\r\n </>\r\n ),\r\n };\r\n }),\r\n [options],\r\n );\r\n\r\n return (\r\n <StyledAtSelect\r\n allowClear={allowClear}\r\n $textColor={$textColor}\r\n autoClearSearchValue={autoClearSearchValue}\r\n autoFocus={autoFocus}\r\n variant={variant}\r\n defaultActiveFirstOption={defaultActiveFirstOption}\r\n fieldNames={fieldNames}\r\n filterOption={filterOption}\r\n labelInValue={labelInValue}\r\n listHeight={listHeight}\r\n loading={loading}\r\n searchValue={props.searchValue}\r\n size={size}\r\n popupMatchSelectWidth={popupMatchSelectWidth}\r\n options={optionsWithIcons}\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { Spin, SpinProps } from 'antd';\r\n\r\nexport interface AtSpinProps extends SpinProps {}\r\n\r\nexport const AtSpin: React.FC<AtSpinProps> = (props) => {\r\n return <Spin {...props} />;\r\n};\r\n","import { Switch } from 'antd';\r\nimport { SwitchProps } from 'antd/lib';\r\n\r\nexport interface AtSwitchProps extends SwitchProps{\r\n /**\r\n * Whether get focus when component mounted\r\n */\r\n autoFocus?: boolean\r\n /**\r\n * Determine whether the Switch is checked\r\n */\r\n checked?: boolean\r\n /**\r\n * Determine whether the Switch is checked\r\n */\r\n disabled?: boolean\r\n /**\r\n * Trigger when the checked state is changing\r\n */\r\n onChange?: SwitchProps['onChange']\r\n}\r\n\r\nexport const AtSwitch: React.FC<AtSwitchProps> = ({\r\n autoFocus = false,\r\n disabled = false,\r\n ...props\r\n}) => {\r\n return (\r\n <Switch \r\n autoFocus={autoFocus}\r\n disabled={disabled}\r\n {...props}\r\n />\r\n )\r\n}\r\n","import React from \"react\";\r\nimport { Tag, TagProps} from 'antd';\r\n\r\n\r\nexport interface AtTagProps {\r\n /**\r\n * Custom close icon. 5.7.0: close button will be hidden when setting to null or false\r\n */\r\n closeIcon?: React.ReactNode;\r\n /**\r\n * Tag color\r\n */\r\n color?: TagProps['color'];\r\n /**\r\n * Set the icon of tag\r\n */\r\n icon?: React.ReactNode;\r\n /**\r\n * Whether has border style\r\n */\r\n bordered?: boolean;\r\n /**\r\n * Callback executed when tag is closed\r\n */\r\n onClose?: (e: React.MouseEvent<HTMLElement>) => void;\r\n /**\r\n * Tag text\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const AtTag: React.FC<AtTagProps> = (\r\n {\r\n children, \r\n closeIcon,\r\n color,\r\n icon,\r\n bordered,\r\n onClose,\r\n ...props\r\n }\r\n ) => {\r\n return <Tag \r\n closeIcon={closeIcon}\r\n color={color}\r\n icon={icon}\r\n bordered={bordered}\r\n onClose={onClose}\r\n {...props}\r\n >{children}</Tag>;\r\n}","import { TimePicker } from \"antd\";\r\nimport { RangePickerTimeProps } from \"antd/lib/time-picker\";\r\nimport { Dayjs } from \"dayjs\";\r\n\r\ninterface RangePicker extends RangePickerTimeProps<Dayjs> {}\r\n\r\nexport interface AtTimeRangePickerProps {\r\n /**\r\n * Whether the time picker is clearable\r\n */\r\n allowClear?: RangePicker['allowClear'];\r\n /**\r\n * If get focus when component mounted\r\n */\r\n autoFocus?: RangePicker['autoFocus'];\r\n /**\r\n * Custom rendering function for picker cells\r\n */\r\n cellRender?: RangePicker['cellRender'];\r\n /**\r\n * Trigger selection when scroll the column\r\n */\r\n changeOnScroll?: RangePicker['changeOnScroll'];\r\n /**\r\n * The className of picker\r\n */\r\n className?: RangePicker['className'];\r\n /**\r\n * To set default time\r\n */\r\n defaultValue?: RangePicker['defaultValue'];\r\n /**\r\n * Whether the time picker is disabled\r\n */\r\n disabled?: RangePicker['disabled'];\r\n /**\r\n * To specify the time that cannot be selected\r\n */\r\n disabledTime?: RangePicker['disabledTime'];\r\n /**\r\n * To set the time format\r\n */\r\n format?: RangePicker['format'];\r\n /**\r\n * To set the container of the floating layer, while the default is to create a div element in body\r\n */\r\n getPopupContainer?: RangePicker['getPopupContainer'];\r\n /**\r\n * Whether to popup panel\r\n */\r\n open?: RangePicker['open'];\r\n /**\r\n * Display when there's no value\r\n */\r\n placeholder?: RangePicker['placeholder'];\r\n /**\r\n * The position where the selection box pops up\r\n */\r\n placement?: RangePicker['placement'];\r\n /**\r\n * To determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32px\r\n */\r\n size?: RangePicker['size'];\r\n /**\r\n * Whether the time picker is disabled\r\n */\r\n status?: RangePicker['status'];\r\n /**\r\n * Display as 12 hours format, with default format h:mm:ss a\r\n */\r\n use12Hours?: RangePicker['use12Hours'];\r\n /**\r\n * To set time\r\n */\r\n value?: RangePicker['value'];\r\n /**\r\n * Variants of picker\r\n */\r\n variant?: RangePicker['variant'];\r\n /**\r\n * Callback function, can be executed when the start time or the end time of the range is changing.\r\n */\r\n onCalendarChange?: RangePicker['onCalendarChange'];\r\n /**\r\n * A callback function, can be executed when the selected time is changing\r\n */\r\n onChange?: RangePicker['onChange'];\r\n /**\r\n * A callback function which will be called while panel opening/closing\r\n */\r\n onOpenChange?: RangePicker['onOpenChange'];\r\n}\r\n\r\nexport const AtTimeRangePicker: React.FC<AtTimeRangePickerProps> = ({ ...props }) => (\r\n <TimePicker.RangePicker { ...props } />\r\n)","import { Typography } from 'antd';\r\nimport { styled } from 'styled-components';\r\nimport { colorMap } from '../../../utils/colorMap';\r\nimport { AtTitleProps } from '.';\r\n\r\nexport const StyledTitle = styled(Typography.Title)<AtTitleProps>`\r\n ${({ color }) => (color \r\n ? `color: ${colorMap[color]};` \r\n : ''\r\n )}\r\n ${({ $margin }) => ($margin\r\n ? `margin: ${$margin};`\r\n : ''\r\n )}\r\n &.ant-typography {\r\n ${({ $margin }) => ($margin\r\n ? `margin: ${$margin};`\r\n : ''\r\n )}\r\n }\r\n ${({ $textAlign }) => ($textAlign\r\n ? `text-align: ${$textAlign};`\r\n : ''\r\n )}\r\n`;\r\n","import React, { ReactNode } from 'react';\r\nimport { BlockProps, EllipsisConfig, BaseType } from 'antd/es/typography/Base';\r\nimport { StyledTitle } from './styles';\r\n\r\nexport interface AtTitleProps {\r\n /**\r\n * Code style\r\n */\r\n code?: boolean;\r\n /**\r\n * Whether to be copyable, customize it via setting an object\r\n */\r\n copyable?: boolean | BlockProps['copyable'];\r\n /**\r\n * Deleted line style\r\n */\r\n delete?: boolean;\r\n /**\r\n * Disabled content\r\n */\r\n disabled?: boolean;\r\n /**\r\n * If editable. Can control edit state when is object\r\n */\r\n editable?: boolean | BlockProps['editable'];\r\n /**\r\n * Display ellipsis when text overflows, can configure rows and expandable by using object\r\n */\r\n ellipsis?: boolean | EllipsisConfig;\r\n /**\r\n * Set content importance. Match with h1, h2, h3, h4, h5\r\n */\r\n level?: 1 | 2 | 3 | 4 | 5;\r\n /**\r\n * Whether the text is mark or not\r\n */\r\n mark?: boolean;\r\n /**\r\n * Set the handler to handle click event\r\n */\r\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\r\n /**\r\n * Whether the text is italic or not\r\n */\r\n italic?: boolean;\r\n /**\r\n * Content type\r\n */\r\n type?: BaseType;\r\n /**\r\n * Whether the text is underline or not\r\n */\r\n underline?: boolean;\r\n /**\r\n * Additional content to include\r\n */\r\n children?: ReactNode;\r\n /**\r\n * Color of the title\r\n */\r\n color?: 'violet' | 'gold' | 'white';\r\n /**\r\n * Margin\r\n */\r\n $margin?: string;\r\n /**\r\n * Text Align\r\n */\r\n $textAlign?: string;\r\n /**\r\n * Custom class name\r\n */\r\n className?: string;\r\n}\r\n\r\nexport const AtTitle: React.FC<AtTitleProps> = ({\r\n code = false,\r\n copyable = false,\r\n delete: deleteProp = false,\r\n editable = false,\r\n level = 1,\r\n mark = false,\r\n italic = false,\r\n underline = false,\r\n $margin,\r\n $textAlign,\r\n ...props\r\n}) => {\r\n return (\r\n <StyledTitle\r\n $textAlign={$textAlign}\r\n $margin={$margin}\r\n code={code}\r\n copyable={copyable}\r\n delete={deleteProp}\r\n editable={editable}\r\n level={level}\r\n mark={mark}\r\n italic={italic}\r\n underline={underline}\r\n {...props}\r\n >\r\n {props.children}\r\n </StyledTitle>\r\n );\r\n};\r\n\r\n","export * from './AtAvatar';\nexport * from './AtBadgeCard';\nexport * from './AtButton';\nexport * from './AtCheckBox';\nexport * from './AtCountdown';\nexport * from './AtDateMultiplePicker';\nexport * from './AtDatePicker';\nexport * from './AtDateRangePicker';\nexport * from './AtDivider';\nexport * from './AtIcon';\nexport * from './AtImage';\nexport * from './AtInputStatus';\nexport * from './AtLink';\nexport * from './AtLogo';\nexport * from './AtNumberInput';\nexport * from './AtPasswordInput';\nexport * from './AtQrCode';\nexport * from './AtRadio';\nexport * from './AtRadioButton';\nexport * from './AtResult';\nexport * from './AtSegmented';\nexport * from './AtSelect';\nexport * from './AtSpin';\nexport * from './AtSwitch';\nexport * from './AtTag';\nexport * from './AtText';\nexport * from './AtTextInput';\nexport * from './AtTimeRangePicker';\nexport * from './AtTitle';\n","export * from './atoms';\r\nexport * from './molecules';\r\nexport * from './organisms';\r\nexport * from './templates';\r\n","/// <reference types=\"./custom.d.ts\" />\r\n\r\nexport * from './stories';\r\nexport * from './theme';\r\nexport * from './hooks';\r\n"],"names":[],"version":3,"file":"index.d.ts.map"}