= (props: ErrorComponentProps) => (\n\t\n\t\t{typeof props.error === 'string' ? props.error : Object.keys(props.error)\n\t\t\t.filter((key: string) => typeof props.error[key] === 'string')\n\t\t\t.map((key: string) => props.error[key])\n\t\t\t.join(', ')}\n\t
\n);\n\nexport const FormikInput: React.FC = ({\n\tfieldProps,\n\tcontainerClassName = 'form-group col-sm-6',\n\trender = defaultRender,\n\ttitle,\n\tinputId,\n\tshowValidateAfterSubmit = true,\n\tinputProps,\n\tErrorComponent = defaultErrorComponent,\n}) => {\n\tconst { form, field } = fieldProps;\n\n\tconst errorMessage = (showValidateAfterSubmit ? form.submitCount > 0 : true)\n\t\t? ) => } />\n\t\t: null;\n\tconst isError = errorMessage && Object.keys(form.errors).includes(field.name);\n\n\treturn (\n\t\t\n\t\t\t{title && }\n\t\t\t{render(fieldProps, inputProps)}\n\t\t\t{errorMessage}\n\t\t
\n\t);\n};\n","module.exports = (__webpack_require__(5))(1);","import { WithId } from '@common/typescript/objects/WithId';\nimport { Nullable } from '@common/typescript/objects/Nullable';\n\nimport { StatusOrder } from '@app/objects/StatusOrder';\nimport { User } from '@app/objects/User';\n\nexport enum FunctionsGroup {\n\tReports = 'Reports',\n\tClinic = 'Clinic Dashboard',\n\tSystemActions = 'System Actions',\n}\n\nexport enum StatusFunction {\n\tPickupReport = 0,\n\tBatchAction = 1,\n\tDropOffReport = 2,\n\tMarkAtClinic = 3,\n\tMarkAtCrematory = 4,\n\tMarkDelivered = 5,\n\tRequireManualChange = 6,\n\tInvoiceDate = 7,\n\tCoordinateBatch = 9,\n\tTurnAroundDelivered = 10,\n\tTurnAroundPickup = 11,\n}\n\nexport interface StatusOrderFunction extends WithId {\n\tstatusOrder: Nullable;\n\tstatusOrderId: number;\n\tcreator: Nullable;\n\tcreatorId: number;\n\tfunction: StatusFunction;\n\tcreatedDate: number;\n}\n\n/* eslint max-len: [\"error\", { \"ignoreStrings\": true }] */\nexport const statusOrderFunctionDescriptions: Record = {\n\t[StatusFunction.PickupReport]: 'Mark pets in this status to be used for pickup report as pet to be picked up.',\n\t[StatusFunction.BatchAction]: 'Mark pets in this status to be used by Batch Action.',\n\t[StatusFunction.DropOffReport]: 'Mark pets in this status to be used for pickup report as pet to be dropped off.',\n\t[StatusFunction.MarkAtClinic]: 'Pets in this status and all subsequent statuses (until Mark At Crematory / Mark Delivered) will be counted as \\'At Clinic\\' on clinic\\'s dashboard.',\n\t[StatusFunction.MarkAtCrematory]: 'Pets in this status and all subsequent statuses (until Mark At Clinic / Mark Delivered) will be counted as \\'At Crematory\\' on clinic\\'s dashboard.',\n\t[StatusFunction.MarkDelivered]: 'Pets in this status and all subsequent statuses (until Mark At Clinic / Mark At Crematory) will be counted as \\'Delivered\\' on clinic\\'s dashboard.',\n\t[StatusFunction.RequireManualChange]: 'Force stop at this status during status change even if no user action is required. This makes difference only when using Status Flow Policy - Allow Skipping.',\n\t[StatusFunction.InvoiceDate]: 'Use date and time when pet entered current status for invoice calculation. By default invoices use date and time when pet was added to the system.',\n\t[StatusFunction.CoordinateBatch]: 'Pets in this or any subsequent status can be used for \\'Coordinate Batch\\'',\n\t[StatusFunction.TurnAroundDelivered]: 'Mark status to be used as final status for turnaround report (except Pickup delivery type)',\n\t[StatusFunction.TurnAroundPickup]: 'Mark status to be used as final status for turnaround report (Pickup delivery type)',\n};\n","module.exports = (__webpack_require__(5))(174);","import notification from 'antd/lib/notification';\nimport { ReactNode } from 'react';\n\nexport enum MessageType {\n\tsuccess = 'success',\n\terror = 'error',\n\twarning = 'warning',\n\tinfo = 'info'\n}\n\nexport function alertMessage(type: MessageType, message: ReactNode): void {\n\tnotification[type]({\n\t\tmessage,\n\t\tplacement: 'bottomRight',\n\t});\n}\n","import {\n\tbindActionCreators,\n\tDispatch,\n\tReducer,\n} from 'redux';\n\nimport {\n\tgetActionCreators as baseGetActionCreators, getReducer,\n\tIActionCreators,\n\tIMappedActionCreators, ItemsState, KnownPageAction,\n} from '@common/react/store/ItemList';\nimport { WithId } from '@common/typescript/objects/WithId';\n\nimport { User } from '@app/objects/User';\n\nimport { ApplicationState } from '@app/store/index';\n\nexport type ItemsActionCreators = IActionCreators;\nexport type MappedItemsActionCreators = IMappedActionCreators;\nexport type KnownItemsActions = KnownPageAction;\n\nexport function getItemsActionCreators(): ItemsActionCreators {\n\treturn baseGetActionCreators();\n}\n\nexport function bindItemsActionCreators(dispatch: Dispatch): MappedItemsActionCreators {\n\treturn bindActionCreators, MappedItemsActionCreators>(getItemsActionCreators(), dispatch);\n}\n\nexport function getItemsReducer(storageName: keyof ApplicationState): Reducer> {\n\treturn getReducer(storageName);\n}\n","module.exports = (__webpack_require__(5))(615);","module.exports = (__webpack_require__(5))(193);","module.exports = (__webpack_require__(5))(593);","/* eslint-disable radix */\nimport dayjs from 'dayjs';\nimport { parse, stringify } from 'query-string';\nimport * as Yup from 'yup';\n\nimport { List } from '@common/typescript/objects/List';\nimport { Named } from '@common/react/utils/utils';\nimport { Sorter } from '@common/react/smart components/Table/TableRemoteSorter';\nimport { SortingDirection } from '@common/react/components/Pages/ItemsPage';\n\nimport { ExpirationColoring } from '@app/objects/Crematory';\nimport { filterKeys, Filters } from '@app/components/UI/Filters/FilterHook';\n/** An abstraction over different date types */\nexport type DateType = Date | dayjs.Dayjs | number | null | undefined;\n\nexport const dateFormat = 'MM/DD/yyyy';\nexport const timeFormat = 'hh:mm a';\n\nexport const phoneMask = (code: string) => [...code.split(''), ' ', '(', /\\d/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\nexport const phoneFormat = /^\\+\\d{1,3} \\(\\d{3}\\) \\d{3}-\\d{4}$/;\n\nexport const FILE_INFO_MESSAGE = 'Image size must not exceed 5 Mb';\n\nexport enum ViewMode {\n\tview = 'view',\n\tedit = 'edit',\n}\n\nexport enum DeviceType {\n\tmobile = 0,\n\tdesktop = 1,\n}\n\nexport interface ResultDatesRange {\n\tfrom: number | undefined,\n\tto: number | undefined,\n}\n\n/**\n * Function takes formatted phone (i.e. +1 (999) 642-2120 and converts it to raw number string (+19996422120)\n * @param {string | null | undefined} phone - formatted phone string (it's not being verified)\n * @returns {string} Formatted phone\n */\nexport const phoneReplace = (phone: string | null | undefined): string => (phone?.replace(/[()\\-\\s]/g, '') ?? '');\n\n/**\n * Function converts phone saved as number string to formatted phone string (i.e. +19996422120 to +1 (999) 642-2120)\n * @param {string | null | undefined} phone - raw number string phone\n * @returns {string} formatted phone string\n */\nexport const formatPhone = (phone: string | null | undefined): string => (phone?.replace(/^\\+1(\\d{3})(\\d{3})(\\d{4})$/, '+1 ($1) $2-$3') ?? '');\n\n/**\n * Function checks if specified string is formatted phone string\n * @param {string | null | undefined} phone - formatted phone string\n * @returns {boolean} True if string is formatted phone string, false otherwise\n */\nexport const isFormattedPhone = (phone: string | null | undefined): boolean =>\n\t(phone ? new RegExp(/^\\+1 \\(\\d{3}\\) \\d{3}-\\d{4}$/, undefined).test(phone) : false);\n\n/**\n * Converts string of type 'testString' to 'TestString' - making first char to be upper cased\n * @param {string} item - string for conversion\n * @return {string}\n */\nexport const toUpperCase = (item: string): string => item[0].toUpperCase() + item.slice(1);\nexport const toLowerCase = (item: string): string => item[0].toLowerCase() + item.slice(1);\n\nexport const toWords = (camelCase: string): string => camelCase.replace(/([a-z])([A-Z])/g, '$1 $2');\n/**\n * Returns concatenated name string. Use this function in order to have uniform names\n * @param {Named} item - any object that has firstName and lastName\n * @return {string}\n */\nexport const getUserName = (item: Named): string => (item ? `${item.firstName || ''} ${item.lastName || ''}`.trim() : '');\n\n/**\n * Options that control how date should be formatted\n */\ninterface FormatDateOptions {\n\tview: 'short' | 'long';\n\twithTime: boolean;\n\twithWeekDay: boolean;\n\tfallback: string;\n}\n\n/**\n * Convert DateType object to string to display\n * @param {DateType} date - date that needs to be displayed\n * @param {Partial} formatOptions - options that control formatting\n * @return {string}\n */\nexport const formatDate = (date: DateType, formatOptions?: Partial): string => {\n\tconst locale = 'en-US';\n\tlet options: Intl.DateTimeFormatOptions;\n\tconst formatDateOptions: FormatDateOptions = {\n\t\tview: formatOptions?.view ?? 'short',\n\t\twithTime: formatOptions?.withTime ?? false,\n\t\twithWeekDay: formatOptions?.withWeekDay ?? false,\n\t\tfallback: formatOptions?.fallback ?? '-',\n\t};\n\tconst time: Intl.DateTimeFormatOptions = {\n\t\thour12: true,\n\t\thour: formatDateOptions.withTime ? 'numeric' : undefined,\n\t\tminute: formatDateOptions.withTime ? 'numeric' : undefined,\n\t};\n\n\tif (formatDateOptions.view === 'long') {\n\t\toptions = {\n\t\t\tyear: 'numeric',\n\t\t\tmonth: 'long',\n\t\t\tday: 'numeric',\n\t\t\tweekday: formatDateOptions.withWeekDay ? 'long' : undefined,\n\t\t\t...time,\n\t\t};\n\t} else {\n\t\toptions = {\n\t\t\tyear: 'numeric',\n\t\t\tmonth: '2-digit',\n\t\t\tday: '2-digit',\n\t\t\t...time,\n\t\t};\n\t}\n\n\tif (typeof date === 'number') return new Date(date).toLocaleDateString(locale, options);\n\tif (date instanceof Date) return date.toLocaleDateString(locale, options);\n\tif (dayjs.isDayjs(date)) return dayjs().toDate().toLocaleDateString(locale, options);\n\n\treturn formatDateOptions.fallback;\n};\n\n/**\n * Helper function that identifies whether current device's viewport is mobile or not\n * @return {boolean}\n */\nexport const isMobile = (): boolean => typeof window !== 'undefined' && window.innerWidth < 768;\n\n/**\n * Calculated difference between current date (today) and 'value' in full days\n * @param {DateType} value - date to calculate difference for\n * @return {number}\n */\nexport const convertDate = (value: number): number => dayjs().subtract(value, 'days').startOf('day').valueOf();\nexport const getDatesDiff = (value: DateType): number => dayjs().diff(dayjs(value).startOf('day'), 'days');\nexport const isTablet = (): boolean => typeof window !== 'undefined' && window.innerWidth < 1024;\nexport const isDesktop = (): boolean => typeof window !== 'undefined' && window.innerWidth > 1200;\nexport const getFiltersDate = (value: number | undefined):number | undefined => (value !== undefined ? convertDate(value) : undefined);\n\nexport const withZeroNumberValidator = Yup.number().integer().moreThan(-1).required('Required field');\n\n/**\n * Return expiration color code based on passed time\n * @param {ExpirationColoring[]} colorTags - an array of preferences to choose from\n * @param {number} daysDiff - how much time has passed\n * @return {string | undefined}\n */\nexport const getColor = (colorTags: Array, daysDiff: number): string | undefined => {\n\tfor (let i = 0; i < colorTags.length; i++) {\n\t\tconst elm = colorTags[i];\n\t\tif (daysDiff >= elm.days) {\n\t\t\treturn elm.color;\n\t\t}\n\t}\n\n\treturn undefined;\n};\n\nexport const getDateRange = (colorTags: Array, color: string | undefined): ResultDatesRange => {\n\tconst res: ResultDatesRange = { from: undefined, to: undefined };\n\n\tfor (let i = 0; i < colorTags.length; i++) {\n\t\tconst elm = colorTags[i];\n\t\tif (elm.color === color) {\n\t\t\tres.from = elm.days;\n\n\t\t\tif (i > 0) {\n\t\t\t\tres.to = colorTags[i - 1].days;\n\t\t\t}\n\t\t}\n\n\t\tif (res.from === undefined && colorTags.length) {\n\t\t\tres.to = colorTags[colorTags.length - 1].days;\n\t\t}\n\t}\n\n\treturn res;\n};\n\n/**\n * Type Guard that checks if items are a List\n * @param {Array | List} items - items which type is tested\n * @return {items is List}\n */\nexport function isList(items: Array | List): items is List {\n\treturn (items as List).list !== undefined;\n}\n\n/**\n * Type Guard that checks if items are an array\n * @param {Array | List} items - items which type is tested\n * @return {items is Array}\n */\nexport function isArray(items: Array | List): items is Array {\n\treturn (items as Array).length !== undefined;\n}\n\n/**\n * The function is used to get an exact number of items in array or list.\n * This is a helper function that allows one to skip checks for exact items type (list or array)\n * @param {Array | List} items - a list or array of items\n * @return {number}\n */\nexport function count(items: Array | List): number {\n\tif (isList(items)) return items.count;\n\n\treturn items.length;\n}\n\n/**\n * Function converts current filter preset to url search params string\n * @param {Partial} params - filters object that needs to be encoded\n * @return {string}\n */\nexport const encodeSearchParams = (params: Partial): string => {\n\tconst parsedParams = Object.keys(params).reduce((acc, key) => {\n\t\tif (Object.prototype.toString.call(params[key]) === '[object Object]') {\n\t\t\tacc[key] = JSON.stringify(params[key]);\n\t\t} else {\n\t\t\tacc[key] = params[key];\n\t\t}\n\n\t\treturn acc;\n\t}, {});\n\n\treturn stringify(parsedParams, { arrayFormat: 'bracket' });\n};\n\n/**\n * Helper function that identifies whether current string is a json object\n * @param {string} value - string to test\n * @return {boolean}\n */\nexport function isJsonObject(value: string): boolean {\n\ttry {\n\t\treturn JSON.parse(value).toString() === '[object Object]';\n\t} catch (e) {\n\t\treturn false;\n\t}\n}\n\n/**\n * Function converts url search params into a Filters object\n * @param {string} params - a url encoded filters object\n * @return {Partial}\n */\nexport const decodeSearchParams = (params: string): Partial => {\n\tconst parsedParams: Partial = parse(params, { arrayFormat: 'bracket', parseNumbers: true });\n\n\treturn Object.keys(parsedParams).reduce((acc, key) => {\n\t\tif (isJsonObject(parsedParams[key])) {\n\t\t\tacc[key] = JSON.parse(parsedParams[key].toString());\n\t\t} else {\n\t\t\tacc[key] = parsedParams[key];\n\t\t}\n\n\t\treturn acc;\n\t}, {});\n};\n\n/**\n * Converts an object of extended type T to object of type T by removing all of its keys that do not fit filter function\n * @param {T} object - an object that needs to be filtered\n * @param {(key: string) => boolean} filter - a function that tests whether current key should be included into final object\n * @return {T}\n */\nexport const filterObject = <\n\tT extends Record,\n>(object: T, filter: (key: keyof T) => boolean): T => {\n\treturn Object.keys(object)\n\t\t.filter(filter)\n\t\t.reduce((obj: Partial, key: keyof T) => {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tobj[key] = object[key];\n\n\t\t\treturn obj;\n\t\t}, {}) as T;\n};\n\n/**\n * Leaves only those fields of 'filters' that are valid filter options\n * @param {Record} filters - an object containing both filters options and other fields\n * @return {Record}\n */\nexport const getPageFilters = (filters: Record): Partial => {\n\treturn filterObject(filters, (key: string) => (filterKeys as Array).includes(key));\n};\n\n/**\n * Leaves only those fields of 'filters' that are not valid filter options\n * @param {Record} filters - an object containing both filters options and other fields\n * @return {Record}\n */\nexport const getSideFilters = (filters: Record): Record => {\n\treturn filterObject(filters, (key: string) => !(filterKeys as Array).includes(key));\n};\n\n/**\n * Transforms Antd sorter props to ones we send to server\n * @param {SorterResult|undefined} sorter - an object containing props from ant table sorter\n * @return {Sorter}\n */\nexport const transformSorter = (sorter): Sorter => {\n\treturn {\n\t\tcolumn: sorter?.column ? [{\n\t\t\tcaption: sorter.field,\n\t\t\tdirection: sorter.order === 'descend'\n\t\t\t\t? SortingDirection.Descending\n\t\t\t\t: SortingDirection.Ascending,\n\t\t}] : [],\n\t};\n};\n","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */ export function invariant(condition, format, ...args) {\n if (isProduction()) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n let error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n let argIndex = 0;\n error = new Error(format.replace(/%s/g, function() {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1 // we don't care about invariant's own frame\n ;\n throw error;\n }\n}\nfunction isProduction() {\n return typeof process !== 'undefined' && process.env['NODE_ENV'] === 'production';\n}\n\n//# sourceMappingURL=index.js.map","import { request as baseRequest } from '@common/react/components/Api';\nimport { BaseParams } from '@common/react/objects/BaseParams';\n\nimport { ApplicationState } from '@app/store';\nimport { User } from '@app/objects/User';\n\nexport function request(type: string, data?: D, state?: ApplicationState, signal?: AbortSignal): Promise {\n\treturn baseRequest(type, data, state, signal);\n}\n","module.exports = (__webpack_require__(5))(2);","module.exports = (__webpack_require__(5))(5);","import * as React from 'react';\n\nimport { Nullable } from '@common/typescript/objects/Nullable';\nimport { request } from '@common/react/components/Api/Request';\nimport { wrapDomain } from '@common/react/components/Api/Wrappers';\nimport { ResponseError } from '@common/react/components/Api/RequestError';\n\nimport { User } from '@app/objects/User';\nimport { ApplicationState } from '@app/store';\n\nexport interface RequestConfig {\n\trequestOnMount: boolean;\n\tcancelOnUnmount?: boolean;\n}\n\ntype LoadFunction = (data?: TData) => Promise;\n\nexport interface RequestData {\n\tloading: boolean;\n\terror: Nullable;\n\tcode: number;\n\titem: Nullable;\n\n\treload: LoadFunction;\n\tcancel: (reason?: string) => void;\n}\n\nconst defaultConfig: RequestConfig = {\n\trequestOnMount: true,\n\tcancelOnUnmount: true,\n};\n\nfunction toResponseError(msg: string | ResponseError): ResponseError {\n\tif (typeof msg === 'string') return new ResponseError({ message: msg, code: -1 });\n\n\treturn msg;\n}\n\nconst defaultAbortReason: string = 'Request terminated. Most likely these happened due to unmount event of component to prevent memory leaks';\n\nexport function useRequest(\n\tendpoint: string,\n\tdata: TData | undefined = undefined,\n\tconfig: RequestConfig = defaultConfig,\n): RequestData {\n\tconst [item, setItem] = React.useState(null);\n\tconst [loading, setLoading] = React.useState(false);\n\tconst [error, setError] = React.useState(null);\n\tconst [code, setCode] = React.useState(0);\n\tconst controller = React.useRef>(null);\n\n\tconst cancel = (reason: string = defaultAbortReason) => controller.current?.abort(reason);\n\tconst load: LoadFunction = (data?: TData) => {\n\t\tsetItem(null);\n\t\tsetError(null);\n\t\tsetLoading(true);\n\n\t\tcontroller.current?.abort('Another fetch of the same kind is requested');\n\t\tconst abortController = new AbortController();\n\t\tcontroller.current = abortController;\n\n\t\tconst task = wrapDomain(request(endpoint, data, undefined, abortController.signal));\n\n\t\treturn task\n\t\t\t.then((item: TItem) => {\n\t\t\t\tsetItem(item);\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetCode(0);\n\n\t\t\t\treturn item;\n\t\t\t})\n\t\t\t.catch((error: string | ResponseError) => {\n\t\t\t\tif (abortController.signal.aborted) return;\n\n\t\t\t\tconst content = toResponseError(error);\n\t\t\t\tsetError(content.message);\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetCode(content.code);\n\n\t\t\t\tthrow content;\n\t\t\t});\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (config.requestOnMount) {\n\t\t\tload(data);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (config.cancelOnUnmount) cancel();\n\t\t};\n\t}, []);\n\n\treturn {\n\t\tloading,\n\t\terror,\n\t\tcode,\n\t\titem,\n\n\t\treload: load,\n\t\tcancel,\n\t};\n}\n","import * as React from 'react';\n\nimport { Field, FieldProps } from 'formik';\nimport { InputProps } from 'antd/lib/input';\n\nimport { FormikInput, FormikInputRenderFunc } from '@common/react/components/Forms/FormikInput/FormikInput';\n\nexport interface FormikFieldProps {\n\tfieldName: string;\n\ttitle?: React.ReactNode;\n\trender?: FormikInputRenderFunc;\n\tcontainerClass?: string;\n\treplaceContainerClass?: boolean;\n\tinputProps?: InputProps;\n}\n\nexport const FormikField = (props: FormikFieldProps): JSX.Element => {\n\tconst containerClass = props.containerClass ?? '';\n\n\treturn (\n\t\t\n\t\t\t{(fieldProps: FieldProps) => (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","module.exports = (__webpack_require__(5))(6);","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ListContext = exports.ListConsumer = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _configProvider = require(\"../config-provider\");\nvar _defaultRenderEmpty = _interopRequireDefault(require(\"../config-provider/defaultRenderEmpty\"));\nvar _grid = require(\"../grid\");\nvar _useBreakpoint = _interopRequireDefault(require(\"../grid/hooks/useBreakpoint\"));\nvar _pagination = _interopRequireDefault(require(\"../pagination\"));\nvar _spin = _interopRequireDefault(require(\"../spin\"));\nvar _responsiveObserve = require(\"../_util/responsiveObserve\");\nvar _Item = _interopRequireDefault(require(\"./Item\"));\nvar __rest = void 0 && (void 0).__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar ListContext = exports.ListContext = /*#__PURE__*/React.createContext({});\nvar ListConsumer = exports.ListConsumer = ListContext.Consumer;\nfunction List(_a) {\n var _a$pagination = _a.pagination,\n pagination = _a$pagination === void 0 ? false : _a$pagination,\n customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? false : _a$bordered,\n _a$split = _a.split,\n split = _a$split === void 0 ? true : _a$split,\n className = _a.className,\n children = _a.children,\n itemLayout = _a.itemLayout,\n loadMore = _a.loadMore,\n grid = _a.grid,\n _a$dataSource = _a.dataSource,\n dataSource = _a$dataSource === void 0 ? [] : _a$dataSource,\n size = _a.size,\n header = _a.header,\n footer = _a.footer,\n _a$loading = _a.loading,\n loading = _a$loading === void 0 ? false : _a$loading,\n rowKey = _a.rowKey,\n renderItem = _a.renderItem,\n locale = _a.locale,\n rest = __rest(_a, [\"pagination\", \"prefixCls\", \"bordered\", \"split\", \"className\", \"children\", \"itemLayout\", \"loadMore\", \"grid\", \"dataSource\", \"size\", \"header\", \"footer\", \"loading\", \"rowKey\", \"renderItem\", \"locale\"]);\n var paginationObj = pagination && (0, _typeof2[\"default\"])(pagination) === 'object' ? pagination : {};\n var _React$useState = React.useState(paginationObj.defaultCurrent || 1),\n _React$useState2 = (0, _slicedToArray2[\"default\"])(_React$useState, 2),\n paginationCurrent = _React$useState2[0],\n setPaginationCurrent = _React$useState2[1];\n var _React$useState3 = React.useState(paginationObj.defaultPageSize || 10),\n _React$useState4 = (0, _slicedToArray2[\"default\"])(_React$useState3, 2),\n paginationSize = _React$useState4[0],\n setPaginationSize = _React$useState4[1];\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n var defaultPaginationProps = {\n current: 1,\n total: 0\n };\n var triggerPaginationEvent = function triggerPaginationEvent(eventName) {\n return function (page, pageSize) {\n setPaginationCurrent(page);\n setPaginationSize(pageSize);\n if (pagination && pagination[eventName]) {\n pagination[eventName](page, pageSize);\n }\n };\n };\n var onPaginationChange = triggerPaginationEvent('onChange');\n var onPaginationShowSizeChange = triggerPaginationEvent('onShowSizeChange');\n var renderInnerItem = function renderInnerItem(item, index) {\n if (!renderItem) return null;\n var key;\n if (typeof rowKey === 'function') {\n key = rowKey(item);\n } else if (rowKey) {\n key = item[rowKey];\n } else {\n key = item.key;\n }\n if (!key) {\n key = \"list-item-\".concat(index);\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, renderItem(item, index));\n };\n var isSomethingAfterLastItem = function isSomethingAfterLastItem() {\n return !!(loadMore || pagination || footer);\n };\n var renderEmptyFunc = function renderEmptyFunc(prefixCls, renderEmptyHandler) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-empty-text\")\n }, locale && locale.emptyText || renderEmptyHandler('List'));\n };\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var loadingProp = loading;\n if (typeof loadingProp === 'boolean') {\n loadingProp = {\n spinning: loadingProp\n };\n }\n var isLoading = loadingProp && loadingProp.spinning;\n // large => lg\n // small => sm\n var sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n default:\n break;\n }\n var classString = (0, _classnames[\"default\"])(prefixCls, (0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-vertical\"), itemLayout === 'vertical'), \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), \"\".concat(prefixCls, \"-split\"), split), \"\".concat(prefixCls, \"-bordered\"), bordered), \"\".concat(prefixCls, \"-loading\"), isLoading), \"\".concat(prefixCls, \"-grid\"), !!grid), \"\".concat(prefixCls, \"-something-after-last-item\"), isSomethingAfterLastItem()), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var paginationProps = (0, _extends2[\"default\"])((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, defaultPaginationProps), {\n total: dataSource.length,\n current: paginationCurrent,\n pageSize: paginationSize\n }), pagination || {});\n var largestPage = Math.ceil(paginationProps.total / paginationProps.pageSize);\n if (paginationProps.current > largestPage) {\n paginationProps.current = largestPage;\n }\n var paginationContent = pagination ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-pagination\")\n }, /*#__PURE__*/React.createElement(_pagination[\"default\"], (0, _extends2[\"default\"])({}, paginationProps, {\n onChange: onPaginationChange,\n onShowSizeChange: onPaginationShowSizeChange\n })))) : null;\n var splitDataSource = (0, _toConsumableArray2[\"default\"])(dataSource);\n if (pagination) {\n if (dataSource.length > (paginationProps.current - 1) * paginationProps.pageSize) {\n splitDataSource = (0, _toConsumableArray2[\"default\"])(dataSource).splice((paginationProps.current - 1) * paginationProps.pageSize, paginationProps.pageSize);\n }\n }\n var needResponsive = Object.keys(grid || {}).some(function (key) {\n return ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].includes(key);\n });\n var screens = (0, _useBreakpoint[\"default\"])(needResponsive);\n var currentBreakpoint = React.useMemo(function () {\n for (var i = 0; i < _responsiveObserve.responsiveArray.length; i += 1) {\n var breakpoint = _responsiveObserve.responsiveArray[i];\n if (screens[breakpoint]) {\n return breakpoint;\n }\n }\n return undefined;\n }, [screens]);\n var colStyle = React.useMemo(function () {\n if (!grid) {\n return undefined;\n }\n var columnCount = currentBreakpoint && grid[currentBreakpoint] ? grid[currentBreakpoint] : grid.column;\n if (columnCount) {\n return {\n width: \"\".concat(100 / columnCount, \"%\"),\n maxWidth: \"\".concat(100 / columnCount, \"%\")\n };\n }\n }, [grid === null || grid === void 0 ? void 0 : grid.column, currentBreakpoint]);\n var childrenContent = isLoading && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: 53\n }\n });\n if (splitDataSource.length > 0) {\n var items = splitDataSource.map(function (item, index) {\n return renderInnerItem(item, index);\n });\n childrenContent = grid ? ( /*#__PURE__*/React.createElement(_grid.Row, {\n gutter: grid.gutter\n }, React.Children.map(items, function (child) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: child === null || child === void 0 ? void 0 : child.key,\n style: colStyle\n }, child);\n }))) : ( /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-items\")\n }, items));\n } else if (!children && !isLoading) {\n childrenContent = renderEmptyFunc(prefixCls, renderEmpty || _defaultRenderEmpty[\"default\"]);\n }\n var paginationPosition = paginationProps.position || 'bottom';\n var contextValue = React.useMemo(function () {\n return {\n grid: grid,\n itemLayout: itemLayout\n };\n }, [JSON.stringify(grid), itemLayout]);\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", (0, _extends2[\"default\"])({\n className: classString\n }, rest), (paginationPosition === 'top' || paginationPosition === 'both') && paginationContent, header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, header), /*#__PURE__*/React.createElement(_spin[\"default\"], (0, _extends2[\"default\"])({}, loadingProp), childrenContent, children), footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer), loadMore || (paginationPosition === 'bottom' || paginationPosition === 'both') && paginationContent));\n}\nList.Item = _Item[\"default\"];\nvar _default = exports[\"default\"] = List;","import * as React from 'react';\n\nimport clsx from 'clsx';\n\nimport Button from '@common/react/components/Forms/Button';\n\nexport enum PromoteDirection {\n\tPD_NEXT,\n\tPD_PREVIOUS\n}\n\nexport enum PromoteResponseCode\n{\n\tSuccess = 0,\n\n\tBatchWarning = 1,\n\tServicesWarning = 2,\n\tFinalStatusWarning = 3,\n\tMissingActualWeight = 4,\n\tPermissionDeniedWarning = 5,\n\tMissingUrnWarning = 6,\n\tHasUnconfirmedChanges = 7,\n\tRequireTrackingNumber = 10,\n\tMissingInternalId = 11,\n\tMissingAshesWeight = 12,\n\tConfirmProducts = 13,\n}\n\ninterface ComponentProps {\n\tonClick: (direction: PromoteDirection)=> void;\n\tloading?: boolean;\n\tdisabled?: boolean;\n\tdirection: PromoteDirection;\n\n\tchildren?: React.ReactNode;\n}\n\nexport const PetStatusButton: React.FC = (props: ComponentProps) => {\n\treturn (\n\t\t\n\t);\n};\n","import * as React from 'react';\nimport {Redirect} from 'react-router';\nimport { Route, RouteProps } from 'react-router-dom';\nimport {connect} from 'react-redux';\n\nimport {BaseApplicationState} from '@common/react/store';\nimport {BaseUser} from '@common/react/objects/BaseUser';\n\ninterface Props extends RouteProps {\n\tcomponent: any;\n\tredirectPath?: string;\n}\n\ninterface ReduxProps {\n\tuser: BaseUser | null;\n}\n\nconst PrivateRoute: React.SFC = ({ component: Component, user, redirectPath = '/', ...rest }) => (\n\t user ? : } \n\t/>\n);\n\nexport default connect>(\n\t(state: BaseApplicationState) => ({\n\t\tuser: state.login.user\n\t})\n)(PrivateRoute);\n","module.exports = (__webpack_require__(5))(8);","import { Action, ActionCreatorsMapObject, Dispatch } from 'redux';\n\nimport { List } from '@common/typescript/objects/List';\nimport { Nullable } from '@common/typescript/objects/Nullable';\nimport { WithId } from '@common/typescript/objects/WithId';\nimport { WithName } from '@common/typescript/objects/WithName';\n\nimport { request } from '@app/components/Api';\n\nimport { ApplicationState } from '@app/store';\nimport {\n\tSelectList,\n\tGeneralKey,\n\tgetSelectItemState,\n} from '@app/store/SelectList/SelectList';\nimport { FilterComparator } from '@app/store/SelectList/SelectsInterfaces';\nimport {\n\tEntityType,\n\tFilterType,\n\tStoreType,\n\tRecordType,\n} from '@app/store/SelectList/UtilityTypes';\n\ntype GetState = () => ApplicationState;\n\nexport enum TypeKeys {\n\tREQUESTITEMS = 'SELECTREQUESTITEMS',\n\tRECEIVEITEMS = 'SELECTRECEIVEITEMS',\n\tRECEIVEERROR = 'SELECTRECEIVEERROR',\n\tREQUESTMOREITEMS = 'SELECTREQUESTMOREITEMS',\n\tRECEIVEMOREITEMS = 'SELECTRECEIVEMOREITEMS',\n\tUPDATEITEM = 'SELECTUPDATEITEM',\n\tREQUESTREFRESHITEMS = 'SELECTREQUESTREFRESHITEMS',\n\tRECEIVEREFRESHITEMS = 'SELECTRECEIVEREFRESHITEMS',\n\tRESETSTORE = 'RESETSTORE',\n}\n\nexport interface IListAction {\n\ttype: Type;\n\tpayload: Payload;\n\tstore: keyof SelectList;\n\tkey?: string; // This should be subtype of SelectList[store]\n}\n\nexport type IListRequestAction