@ctlyst.id/utils 2.1.0 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2DTW2MMP.js +2 -0
- package/dist/chunk-2DTW2MMP.js.map +1 -0
- package/dist/chunk-2XNWBZU3.js +2 -0
- package/dist/chunk-2XNWBZU3.js.map +1 -0
- package/dist/chunk-3EZJIWT4.js +2 -0
- package/dist/chunk-3EZJIWT4.js.map +1 -0
- package/dist/chunk-55ZXUIJW.js +2 -0
- package/dist/chunk-55ZXUIJW.js.map +1 -0
- package/dist/chunk-AKPPANNV.mjs +2 -0
- package/dist/chunk-AKPPANNV.mjs.map +1 -0
- package/dist/chunk-BUGYRVTO.js +2 -0
- package/dist/chunk-BUGYRVTO.js.map +1 -0
- package/dist/chunk-CKFIKCHU.mjs +2 -0
- package/dist/chunk-CKFIKCHU.mjs.map +1 -0
- package/dist/chunk-CWURCKL2.js +2 -0
- package/dist/chunk-CWURCKL2.js.map +1 -0
- package/dist/chunk-ELX5IXB4.js +2 -0
- package/dist/chunk-ELX5IXB4.js.map +1 -0
- package/dist/chunk-FMUZKH36.mjs +2 -0
- package/dist/chunk-FMUZKH36.mjs.map +1 -0
- package/dist/chunk-HXT73NCV.mjs +2 -0
- package/dist/chunk-HXT73NCV.mjs.map +1 -0
- package/dist/chunk-IX7NK5RI.js +2 -0
- package/dist/chunk-IX7NK5RI.js.map +1 -0
- package/dist/chunk-J2L4VY5C.mjs +2 -0
- package/dist/chunk-J2L4VY5C.mjs.map +1 -0
- package/dist/chunk-KOCPH2DG.js +2 -0
- package/dist/chunk-KOCPH2DG.js.map +1 -0
- package/dist/chunk-M2YCT7CB.mjs +2 -0
- package/dist/chunk-M2YCT7CB.mjs.map +1 -0
- package/dist/chunk-N7Z7DA36.js +2 -0
- package/dist/chunk-N7Z7DA36.js.map +1 -0
- package/dist/chunk-P7FXF4IE.mjs +2 -0
- package/dist/chunk-P7FXF4IE.mjs.map +1 -0
- package/dist/chunk-Q2LVN3QY.js +2 -0
- package/dist/chunk-Q2LVN3QY.js.map +1 -0
- package/dist/chunk-QAXXZNJX.mjs +2 -0
- package/dist/chunk-QAXXZNJX.mjs.map +1 -0
- package/dist/chunk-RATGBP35.js +2 -0
- package/dist/chunk-RATGBP35.js.map +1 -0
- package/dist/chunk-T3V567AP.mjs +2 -0
- package/dist/chunk-T3V567AP.mjs.map +1 -0
- package/dist/chunk-THVM4Z3S.mjs +2 -0
- package/dist/chunk-THVM4Z3S.mjs.map +1 -0
- package/dist/chunk-X4C76ZKK.mjs +2 -0
- package/dist/chunk-X4C76ZKK.mjs.map +1 -0
- package/dist/chunk-Y5HNEW7L.js +2 -0
- package/dist/chunk-Y5HNEW7L.js.map +1 -0
- package/dist/chunk-Z6WQXCNF.mjs +2 -0
- package/dist/chunk-Z6WQXCNF.mjs.map +1 -0
- package/dist/chunk-ZFGFCYYK.mjs +2 -0
- package/dist/chunk-ZFGFCYYK.mjs.map +1 -0
- package/dist/dom.d.mts +9 -0
- package/dist/dom.d.ts +9 -0
- package/dist/dom.js +2 -0
- package/dist/dom.js.map +1 -0
- package/dist/dom.mjs +2 -0
- package/dist/dom.mjs.map +1 -0
- package/dist/hooks/index.d.mts +13 -0
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/index.mjs +2 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/use-callback-ref.d.mts +5 -0
- package/dist/hooks/use-callback-ref.d.ts +5 -0
- package/dist/hooks/use-callback-ref.js +2 -0
- package/dist/hooks/use-callback-ref.js.map +1 -0
- package/dist/hooks/use-callback-ref.mjs +2 -0
- package/dist/hooks/use-callback-ref.mjs.map +1 -0
- package/dist/hooks/use-clipboard.d.mts +18 -0
- package/dist/hooks/use-clipboard.d.ts +18 -0
- package/dist/hooks/use-clipboard.js +2 -0
- package/dist/hooks/use-clipboard.js.map +1 -0
- package/dist/hooks/use-clipboard.mjs +2 -0
- package/dist/hooks/use-clipboard.mjs.map +1 -0
- package/dist/hooks/use-debounce.d.mts +7 -0
- package/dist/hooks/use-debounce.d.ts +7 -0
- package/dist/hooks/use-debounce.js +2 -0
- package/dist/hooks/use-debounce.js.map +1 -0
- package/dist/hooks/use-debounce.mjs +2 -0
- package/dist/hooks/use-debounce.mjs.map +1 -0
- package/dist/hooks/use-dimensions.d.mts +7 -0
- package/dist/hooks/use-dimensions.d.ts +7 -0
- package/dist/hooks/use-dimensions.js +2 -0
- package/dist/hooks/use-dimensions.js.map +1 -0
- package/dist/hooks/use-dimensions.mjs +2 -0
- package/dist/hooks/use-dimensions.mjs.map +1 -0
- package/dist/hooks/use-disclosure.d.mts +20 -0
- package/dist/hooks/use-disclosure.d.ts +20 -0
- package/dist/hooks/use-disclosure.js +2 -0
- package/dist/hooks/use-disclosure.js.map +1 -0
- package/dist/hooks/use-disclosure.mjs +2 -0
- package/dist/hooks/use-disclosure.mjs.map +1 -0
- package/dist/hooks/use-media-query.d.mts +7 -0
- package/dist/hooks/use-media-query.d.ts +7 -0
- package/dist/hooks/use-media-query.js +2 -0
- package/dist/hooks/use-media-query.js.map +1 -0
- package/dist/hooks/use-media-query.mjs +2 -0
- package/dist/hooks/use-media-query.mjs.map +1 -0
- package/dist/hooks/use-number-formatter.d.mts +10 -0
- package/dist/hooks/use-number-formatter.d.ts +10 -0
- package/dist/hooks/use-number-formatter.js +2 -0
- package/dist/hooks/use-number-formatter.js.map +1 -0
- package/dist/hooks/use-number-formatter.mjs +2 -0
- package/dist/hooks/use-number-formatter.mjs.map +1 -0
- package/dist/hooks/use-online-status.d.mts +6 -0
- package/dist/hooks/use-online-status.d.ts +6 -0
- package/dist/hooks/use-online-status.js +2 -0
- package/dist/hooks/use-online-status.js.map +1 -0
- package/dist/hooks/use-online-status.mjs +2 -0
- package/dist/hooks/use-online-status.mjs.map +1 -0
- package/dist/hooks/use-outside-click.d.mts +10 -0
- package/dist/hooks/use-outside-click.d.ts +10 -0
- package/dist/hooks/use-outside-click.js +2 -0
- package/dist/hooks/use-outside-click.js.map +1 -0
- package/dist/hooks/use-outside-click.mjs +2 -0
- package/dist/hooks/use-outside-click.mjs.map +1 -0
- package/dist/hooks/use-safe-layout-effect.d.mts +5 -0
- package/dist/hooks/use-safe-layout-effect.d.ts +5 -0
- package/dist/hooks/use-safe-layout-effect.js +2 -0
- package/dist/hooks/use-safe-layout-effect.js.map +1 -0
- package/dist/hooks/use-safe-layout-effect.mjs +2 -0
- package/dist/hooks/use-safe-layout-effect.mjs.map +1 -0
- package/dist/hooks/use-voucher-tnc.d.mts +60 -0
- package/dist/hooks/use-voucher-tnc.d.ts +60 -0
- package/dist/hooks/use-voucher-tnc.js +2 -0
- package/dist/hooks/use-voucher-tnc.js.map +1 -0
- package/dist/hooks/use-voucher-tnc.mjs +2 -0
- package/dist/hooks/use-voucher-tnc.mjs.map +1 -0
- package/dist/index.d.mts +14 -142
- package/dist/index.d.ts +14 -142
- package/dist/index.js +1 -685
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -631
- package/dist/index.mjs.map +1 -1
- package/package.json +145 -5
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/dom.ts","../src/hooks/use-callback-ref/use-callback-ref.ts","../src/hooks/use-clipboard/use-clipboard.ts","../src/hooks/use-debounce/use-debounce.ts","../src/hooks/use-dimensions/use-dimensions.ts","../src/hooks/use-safe-layout-effect/use-safe-layout-effect.ts","../src/hooks/use-disclosure/use-disclosure.ts","../src/hooks/use-media-query/use-media-query.ts","../src/hooks/use-number-formatter/use-number-formatter.ts","../src/hooks/use-online-status/use-online-status.ts","../src/hooks/use-outside-click/use-outside-click.ts","../src/hooks/use-voucher-tnc/use-voucher-tnc.types.ts","../src/hooks/use-voucher-tnc/get-applies-to.ts","../src/hooks/use-voucher-tnc/get-bank-bin.ts","../src/hooks/use-voucher-tnc/get-period.ts","../src/hooks/use-voucher-tnc/get-usage-limit.ts","../src/hooks/use-voucher-tnc/use-voucher-method-terms.ts","../src/hooks/use-voucher-tnc/use-voucher-tnc.ts"],"sourcesContent":["export * from './dom';\nexport * from './hooks';\n","import type { RefObject } from 'react';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst isElement = (el: any): el is Element => {\n return el != null && typeof el === 'object' && 'nodeType' in el && el.nodeType === Node.ELEMENT_NODE;\n};\n\nconst getOwnerDocument = (node?: Element | null): Document => {\n return isElement(node) ? (node.ownerDocument ?? document) : document;\n};\n\nconst isValidEvent = (event: any, ref: RefObject<HTMLElement>) => {\n const target = event.target as HTMLElement;\n if (event.button > 0) return false;\n // if the event target is no longer in the document\n if (target) {\n const doc = getOwnerDocument(target);\n if (!doc.contains(target)) return false;\n }\n\n return !ref.current?.contains(target);\n};\n\nconst canUseDOM = (): boolean => {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n};\n\nconst isBrowser = canUseDOM();\n\nexport { canUseDOM, getOwnerDocument, isBrowser, isElement, isValidEvent };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from 'react';\nimport { useCallback, useEffect, useRef } from 'react';\n\nconst useCallbackRef = <T extends (...args: any[]) => any>(callback: T | undefined, deps: DependencyList = []) => {\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(((...args: any) => callbackRef.current?.(...args)) as T, deps);\n};\n\nexport default useCallbackRef;\n","import copy from 'copy-to-clipboard';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface UseClipboardOptions {\n timeout?: number;\n format?: string;\n}\n\nexport interface UseClipboardProps {\n value?: string;\n optionsOrTimeout?: number | UseClipboardOptions;\n}\n\nconst useClipboard = ({ value = '', optionsOrTimeout = {} }: UseClipboardProps = {}) => {\n const [hasCopied, setHasCopied] = useState(false);\n\n const [valueState, setValueState] = useState(value);\n useEffect(() => setValueState(value), [value]);\n\n const { timeout = 1500, ...copyOptions } =\n typeof optionsOrTimeout === 'number' ? { timeout: optionsOrTimeout } : optionsOrTimeout;\n\n const onCopy = useCallback(() => {\n const didCopy = copy(valueState, copyOptions);\n setHasCopied(didCopy);\n }, [valueState, copyOptions]);\n\n useEffect(() => {\n let timeoutId: number | null = null;\n\n if (hasCopied) {\n timeoutId = window.setTimeout(() => {\n setHasCopied(false);\n }, timeout);\n }\n\n return () => {\n if (timeoutId) {\n window.clearTimeout(timeoutId);\n }\n };\n }, [timeout, hasCopied]);\n\n return {\n value: valueState,\n setValue: setValueState,\n onCopy,\n hasCopied,\n };\n};\n\nexport default useClipboard;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport { useEffect, useState } from 'react';\n\nexport interface UseDebounceProps<T> {\n value: T;\n delay?: number;\n}\n\nconst useDebounce = <T>({ value, delay = 500 }: UseDebounceProps<T>) => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [JSON.stringify(value), delay]);\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import type { BoxModel as BoxModelType } from 'css-box-model';\nimport { getBox } from 'css-box-model';\nimport type { RefObject } from 'react';\nimport { useRef, useState } from 'react';\n\nimport { useSafeLayoutEffect } from '../use-safe-layout-effect';\n\nexport type BoxModel = BoxModelType;\n\nconst useDimensions = (ref: RefObject<HTMLElement>, observe?: boolean) => {\n const [dimensions, setDimensions] = useState<BoxModelType | null>(null);\n const rafId = useRef<number>();\n\n useSafeLayoutEffect(() => {\n const measure = () => {\n const node = ref.current;\n if (!node) return;\n rafId.current = requestAnimationFrame(() => {\n const boxModel = getBox(node);\n setDimensions(boxModel);\n });\n };\n\n measure();\n\n if (observe) {\n window.addEventListener('resize', measure);\n window.addEventListener('scroll', measure);\n }\n\n return () => {\n if (observe) {\n window.removeEventListener('resize', measure);\n window.removeEventListener('scroll', measure);\n }\n\n if (rafId.current) {\n cancelAnimationFrame(rafId.current);\n }\n };\n }, [observe]);\n\n return dimensions;\n};\n\nexport default useDimensions;\n","import { useEffect, useLayoutEffect } from 'react';\n\nimport { isBrowser } from '../../dom';\n\nconst useSafeLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\nexport default useSafeLayoutEffect;\n","import type { HTMLAttributes } from 'react';\nimport { useCallback, useId, useState } from 'react';\n\nimport { useCallbackRef } from '../use-callback-ref';\n\nexport interface UseDisclosureProps {\n isOpen?: boolean;\n defaultIsOpen?: boolean;\n onClose?(): void;\n onOpen?(): void;\n id?: string;\n}\n\ntype HTMLProps = HTMLAttributes<HTMLElement>;\n\nconst useDisclosure = ({\n onClose: onCloseProp,\n onOpen: onOpenProp,\n isOpen: isOpenProp,\n defaultIsOpen: defaultIsOpenProp,\n id: idProp,\n}: UseDisclosureProps = {}) => {\n const [isOpenState, setIsOpenState] = useState(defaultIsOpenProp || false);\n const isOpen = isOpenProp !== undefined ? isOpenProp : isOpenState;\n const isControlled = isOpenProp !== undefined;\n const uid = useId();\n const id = idProp ?? `disclosure-${uid}`;\n\n const handleOpen = useCallbackRef(onOpenProp);\n const handleClose = useCallbackRef(onCloseProp);\n\n const onClose = useCallback(() => {\n if (!isControlled) {\n setIsOpenState(false);\n }\n handleClose?.();\n }, [isControlled, handleClose]);\n\n const onOpen = useCallback(() => {\n if (!isControlled) {\n setIsOpenState(true);\n }\n handleOpen?.();\n }, [isControlled, handleOpen]);\n\n const onToggle = useCallback(() => {\n if (isOpen) {\n onClose();\n } else {\n onOpen();\n }\n }, [isOpen, onOpen, onClose]);\n\n const getButtonProps = ({ onClick, ...rest }: HTMLProps = {}): HTMLProps => {\n return {\n ...rest,\n 'aria-expanded': isOpen,\n 'aria-controls': id,\n onClick(event) {\n onClick?.(event);\n onToggle();\n },\n };\n };\n\n const getDisclosureProps = ({ ...rest }: HTMLProps = {}): HTMLProps => {\n return {\n ...rest,\n hidden: !isOpen,\n id,\n };\n };\n\n return {\n onClose,\n onOpen,\n onToggle,\n getButtonProps,\n getDisclosureProps,\n isOpen,\n };\n};\n\nexport default useDisclosure;\n","import { useEffect, useState } from 'react';\n\nexport type UseMediaQueryOptions = {\n fallback?: boolean | boolean[];\n ssr?: boolean;\n};\n\nconst useMediaQuery = (query: string | string[], options: UseMediaQueryOptions = {}): boolean[] => {\n const { ssr = true, fallback } = options;\n\n const queries = Array.isArray(query) ? query : [query];\n\n let fallbackValues = Array.isArray(fallback) ? fallback : [fallback];\n fallbackValues = fallbackValues.filter(v => v != null) as boolean[];\n\n const [value, setValue] = useState(() => {\n return queries.map((data, index) => ({\n media: data,\n matches: ssr ? !!fallbackValues[index] : window.matchMedia(data).matches,\n }));\n });\n\n useEffect(() => {\n const win = window;\n setValue(\n queries.map(data => ({\n media: data,\n matches: win.matchMedia(data).matches,\n }))\n );\n\n const mql = queries.map(data => win.matchMedia(data));\n\n const handler = (evt: MediaQueryListEvent) => {\n setValue(prev => {\n return prev.slice().map(item => {\n if (item.media === evt.media) return { ...item, matches: evt.matches };\n return item;\n });\n });\n };\n\n mql.forEach(data => {\n data.addEventListener('change', handler);\n });\n\n return () => {\n mql.forEach(data => {\n data.removeEventListener('change', handler);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [window]);\n\n return value.map(item => item.matches);\n};\n\nexport default useMediaQuery;\n","export interface NumberFormatterProps {\n value: number;\n thousandSeparator?: string;\n decimalLength?: number;\n decimalSeparator?: string;\n prefix?: string;\n}\n\nconst useNumberFormatter = ({\n value,\n thousandSeparator = '.',\n decimalLength,\n decimalSeparator = ',',\n prefix = '',\n}: NumberFormatterProps): string => {\n const formatNumber = (number: number) => {\n const parts = number.toString().split('.');\n const integerPart = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n let decimalPart = '';\n\n if (decimalLength !== undefined) {\n if (parts.length > 1 && decimalLength > 0) {\n decimalPart = decimalSeparator + parts[1].padEnd(decimalLength, '0').slice(0, decimalLength);\n } else if (decimalLength > 0) {\n decimalPart = decimalSeparator + '0'.repeat(decimalLength);\n }\n } else if (parts.length > 1) {\n decimalPart = decimalSeparator + parts[1];\n }\n\n return integerPart + decimalPart;\n };\n\n const formattedValue = formatNumber(value);\n\n if (formattedValue.charAt(0) === `-`) {\n return formattedValue.replace(/^-/g, `-${prefix}`);\n }\n\n return `${prefix}${formattedValue}`;\n};\n\nexport default useNumberFormatter;\n","import { useEffect, useState } from 'react';\n\nconst useOnlineStatus = () => {\n const [isOnline, setIsOnline] = useState(navigator.onLine);\n\n useEffect(() => {\n const handleEvent = () => setIsOnline(navigator.onLine);\n\n window.addEventListener('online', handleEvent);\n window.addEventListener('offline', handleEvent);\n return () => {\n window.removeEventListener('online', handleEvent);\n window.removeEventListener('offline', handleEvent);\n };\n }, []);\n\n return { isOnline, isOffline: !isOnline };\n};\n\nexport default useOnlineStatus;\n","import type { RefObject } from 'react';\nimport { useEffect, useRef } from 'react';\n\nimport { getOwnerDocument, isValidEvent } from '../../dom';\nimport { useCallbackRef } from '../use-callback-ref';\n\nexport interface UseOutsideClickProps {\n enabled?: boolean;\n ref: RefObject<HTMLElement>;\n handler?: (e: Event) => void;\n}\n\nconst useOutsideClick = ({ enabled = true, ref, handler }: UseOutsideClickProps): void => {\n const savedHandler = useCallbackRef(handler);\n\n const stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n });\n\n const state = stateRef.current;\n\n useEffect(() => {\n if (!enabled) return undefined;\n const onPointerDown = <T extends PointerEvent | MouseEvent | TouchEvent>(e: T) => {\n if (isValidEvent(e, ref)) {\n state.isPointerDown = true;\n }\n };\n\n const onMouseUp = (event: MouseEvent) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (state.isPointerDown && handler && isValidEvent(event, ref)) {\n state.isPointerDown = false;\n savedHandler(event);\n }\n };\n\n const onTouchEnd = (event: TouchEvent) => {\n state.ignoreEmulatedMouseEvents = true;\n if (handler && state.isPointerDown && isValidEvent(event, ref)) {\n state.isPointerDown = false;\n savedHandler(event);\n }\n };\n\n const doc = getOwnerDocument(ref.current);\n doc.addEventListener('mousedown', onPointerDown, true);\n doc.addEventListener('mouseup', onMouseUp, true);\n doc.addEventListener('touchstart', onPointerDown, true);\n doc.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n doc.removeEventListener('mousedown', onPointerDown, true);\n doc.removeEventListener('mouseup', onMouseUp, true);\n doc.removeEventListener('touchstart', onPointerDown, true);\n doc.removeEventListener('touchend', onTouchEnd, true);\n };\n }, [handler, ref, savedHandler, state, enabled]);\n};\n\nexport default useOutsideClick;\n","export enum VoucherType {\n product = 'Product',\n order = 'Order',\n gift = 'Gift',\n freeShipping = 'Free Shipping',\n freeInsurance = 'Free Insurance',\n bundling = 'Bundling',\n payment = 'Payment',\n affiliate = 'Affiliate',\n}\n\nexport enum DiscountType {\n percentage = 'percentage',\n amount = 'amount',\n}\n\ntype CollectionType = {\n collectionId: number;\n name: string;\n};\n\ntype BrandType = {\n brandId: number;\n name: string;\n};\n\nexport type VoucherPaymentType = {\n bankId: number;\n bankName: string;\n paymentMethod: string[];\n bin: string[];\n creditBinGroup: string[];\n debitBinGroup: string[];\n};\n\nexport interface VoucherTncProps {\n type: string;\n discountType: string;\n discountValue: number | string;\n maxDiscountAmount: number | string;\n collections: CollectionType[];\n brands: BrandType[];\n eligibilityType: string | null;\n isCheckedMaxFee: boolean;\n limitFee: number | string;\n termsMinQty: number | string;\n termsMinTotalAmount: number | string;\n isOneTimeUsage: boolean;\n quota: number;\n transactionTerms: number;\n dateStart: string;\n dateEnd: string;\n isOneTimeUsagePerCard: boolean;\n payment: VoucherPaymentType | null;\n isGiftCard?: boolean;\n}\n\nexport type GetPeriodProps = Pick<VoucherTncProps, 'dateStart' | 'dateEnd'>;\nexport type GetAppliesToProps = Pick<\n VoucherTncProps,\n 'type' | 'brands' | 'collections' | 'eligibilityType' | 'payment'\n>;\nexport type GetMethodTermsProps = Pick<\n VoucherTncProps,\n | 'type'\n | 'discountType'\n | 'discountValue'\n | 'isCheckedMaxFee'\n | 'maxDiscountAmount'\n | 'transactionTerms'\n | 'termsMinTotalAmount'\n | 'termsMinQty'\n | 'limitFee'\n>;\nexport type GetUsageLimitProps = Pick<VoucherTncProps, 'isOneTimeUsage' | 'isOneTimeUsagePerCard'>;\nexport type GetBankBinProps = Pick<VoucherPaymentType, 'bankName' | 'creditBinGroup' | 'debitBinGroup'>;\n","import type { GetAppliesToProps } from './use-voucher-tnc.types';\nimport { VoucherType } from './use-voucher-tnc.types';\n\nexport default function getAppliesTo(args: GetAppliesToProps): string {\n let appliesTo = '';\n const { type, eligibilityType, payment } = args;\n\n const collections = args.collections ?? [];\n const brands = args.brands ?? [];\n\n if (type === VoucherType.product) {\n if (collections.length > 0) {\n appliesTo = `Voucher hanya berlaku untuk produk tertentu dari collection ${collections\n .map(value => value.name)\n .join(', ')}.`;\n } else if (brands.length > 0) {\n appliesTo = `Voucher hanya berlaku untuk produk tertentu dari brand ${brands\n .map(value => value.name)\n .join(', ')}.`;\n } else if (eligibilityType === 'selected_products') {\n appliesTo = `Hanya berlaku untuk produk tertentu.`;\n }\n } else if (type === VoucherType.payment) {\n const { bankName, paymentMethod, creditBinGroup, debitBinGroup } = payment || {};\n const isFullPayment = (paymentMethod || []).some(pay => (pay || '').includes('(Full Payment)'));\n const isInstallment3 = (paymentMethod || []).some(pay => (pay || '').includes('(Cicilan 3x)'));\n const isInstallment6 = (paymentMethod || []).some(pay => (pay || '').includes('(Cicilan 6x)'));\n const isInstallment12 = (paymentMethod || []).some(pay => (pay || '').includes('(Cicilan 12x)'));\n const isInstallment18 = (paymentMethod || []).some(pay => (pay || '').includes('(Cicilan 18x)'));\n const isInstallment = isInstallment3 || isInstallment6 || isInstallment12 || isInstallment18;\n const isCredit = isFullPayment || isInstallment;\n const isDebit = (paymentMethod || []).some(pay => (pay || '').includes('Debit Card'));\n const debitAndCredit = [\n ...(isDebit && (debitBinGroup || []).length > 0 ? ['Kartu Debit'] : []),\n ...(isCredit && (creditBinGroup || []).length > 0 ? ['Kartu Kredit'] : []),\n ];\n let txtCreditSystem = '';\n\n if (isCredit) {\n const creditSystem = [\n ...(isFullPayment ? ['sistem pembayaran penuh'] : []),\n ...(isInstallment ? ['sistem cicilan'] : []),\n ];\n const installments = [\n ...(isInstallment3 ? ['3'] : []),\n ...(isInstallment6 ? ['6'] : []),\n ...(isInstallment12 ? ['12'] : []),\n ...(isInstallment18 ? ['18'] : []),\n ];\n let replacedStrInstallment = installments.join(' dan ');\n\n if (installments.length > 2) {\n const strInstallment = installments.join(', ');\n const lastCharIndex = strInstallment.lastIndexOf(',');\n const left = strInstallment.slice(0, lastCharIndex);\n const right = strInstallment.slice(lastCharIndex + 1, strInstallment.length);\n\n replacedStrInstallment = [left, right].join(', dan');\n }\n\n txtCreditSystem = [\n 'dengan',\n creditSystem.join(' dan '),\n ...(isInstallment ? [`(${replacedStrInstallment} bulan)`] : []),\n ].join(' ');\n }\n\n if (debitAndCredit.length > 0) {\n appliesTo = `${[\n 'Voucher berlaku untuk pembayaran menggunakan',\n debitAndCredit.join(' dan '),\n bankName,\n txtCreditSystem,\n ]\n .filter(txt => (txt || '').length > 0)\n .join(' ')}.`;\n }\n }\n\n return appliesTo;\n}\n","import type { GetBankBinProps } from './use-voucher-tnc.types';\n\nexport default function getBankBin(args: GetBankBinProps): string[] {\n const { bankName, creditBinGroup, debitBinGroup } = args;\n const txtCreditBin = (creditBinGroup || []).join(', ');\n const txtDebitBin = (debitBinGroup || []).join(', ');\n\n return [\n ...(bankName && txtCreditBin\n ? [`Voucher berlaku untuk Kartu Kredit ${bankName} dengan Bank Identification Number (BIN): ${txtCreditBin}.`]\n : []),\n ...(bankName && txtDebitBin\n ? [`Voucher berlaku untuk Kartu Debit ${bankName} dengan Bank Identification Number (BIN): ${txtDebitBin}.`]\n : []),\n ];\n}\n","import { format } from 'date-fns';\nimport { id } from 'date-fns/locale';\n\nimport type { GetPeriodProps } from './use-voucher-tnc.types';\n\nexport default function getPeriodText(args: GetPeriodProps): string {\n let period = '';\n const { dateStart, dateEnd } = args;\n\n if (dateStart && dateEnd) {\n const dateStartFormatter = format(new Date(dateStart), 'yyyy-MM-dd HH:mm');\n const dateEndFormatter = format(new Date(dateEnd), 'yyyy-MM-dd HH:mm');\n\n const dateStartSplitTime = dateStartFormatter.split(' ');\n const dateStartSplit = dateStartSplitTime[0].split('-');\n const dateStartYear = dateStartSplit[0];\n const dateStartMonth = dateStartSplit[1];\n const dateEndSplitTime = dateEndFormatter.split(' ');\n const dateEndSplit = dateEndSplitTime[0].split('-');\n const dateEndYear = dateEndSplit[0];\n const dateEndMonth = dateEndSplit[1];\n\n if (dateStartSplitTime[0] === dateEndSplitTime[0]) {\n period = `Voucher hanya berlaku di tanggal ${format(new Date(dateStart), 'd MMM yyyy', { locale: id })}.`;\n } else if (dateStartYear !== dateEndYear) {\n period = `Voucher berlaku dari ${format(new Date(dateStart), 'd MMM yyyy', { locale: id })} - ${format(\n new Date(dateEnd),\n 'd MMM yyyy',\n { locale: id }\n )}.`;\n } else if (dateStartYear === dateEndYear) {\n if (dateStartMonth === dateEndMonth) {\n period = `Voucher berlaku dari ${format(new Date(dateStart), 'd', { locale: id })} - ${format(\n new Date(dateEnd),\n 'd MMM yyyy',\n {\n locale: id,\n }\n )}.`;\n } else {\n period = `Voucher berlaku dari ${format(new Date(dateStart), 'd MMM', { locale: id })} - ${format(\n new Date(dateEnd),\n 'd MMM yyyy',\n { locale: id }\n )}.`;\n }\n }\n } else if (dateStart) {\n period = `Voucher berlaku dari ${format(new Date(dateStart), 'd MMM yyyy', { locale: id })}.`;\n }\n\n return period;\n}\n","import type { GetUsageLimitProps } from './use-voucher-tnc.types';\n\nexport default function getVoucherUsageLimit(args: GetUsageLimitProps): string {\n const { isOneTimeUsage, isOneTimeUsagePerCard } = args;\n\n if (!isOneTimeUsage && !isOneTimeUsagePerCard) {\n return '';\n }\n\n let usageLimit = '';\n\n if (isOneTimeUsage) {\n usageLimit = 'Voucher hanya dapat digunakan 1x per member selama masa berlaku.';\n }\n\n if (isOneTimeUsagePerCard) {\n usageLimit = 'Voucher hanya dapat digunakan 1x per kartu selama masa berlaku.';\n }\n\n if (isOneTimeUsage && isOneTimeUsagePerCard) {\n usageLimit = 'Voucher hanya dapat digunakan 1x transaksi untuk 1 kartu dan 1 member selama masa berlaku.';\n }\n\n return usageLimit;\n}\n","import { useNumberFormatter } from '../use-number-formatter';\nimport type { GetMethodTermsProps } from './use-voucher-tnc.types';\nimport { DiscountType, VoucherType } from './use-voucher-tnc.types';\n\nexport default function useVoucherMethodTerms(args: GetMethodTermsProps) {\n let methodTerm = '';\n const {\n type,\n discountType,\n discountValue,\n isCheckedMaxFee,\n maxDiscountAmount,\n transactionTerms,\n termsMinTotalAmount,\n termsMinQty,\n limitFee,\n } = args;\n const safeNumber = (val: number | string): number => {\n if (typeof val === 'number') return val;\n\n return !Number.isNaN(Number(val)) ? Number(val) : 0;\n };\n const formattedMaxDiscount = useNumberFormatter({ value: safeNumber(maxDiscountAmount), prefix: 'Rp' });\n const formattedDiscountVal = useNumberFormatter({ value: safeNumber(discountValue), prefix: 'Rp' });\n const formattedLimitFee = useNumberFormatter({ value: safeNumber(limitFee), prefix: 'Rp' });\n const formattedMinTotalAmount = useNumberFormatter({ value: safeNumber(termsMinTotalAmount), prefix: 'Rp' });\n const formattedMinTotalQty = useNumberFormatter({ value: safeNumber(termsMinQty) });\n\n if (\n type === VoucherType.product ||\n type === VoucherType.order ||\n type === VoucherType.gift ||\n type === VoucherType.affiliate ||\n type === VoucherType.payment\n ) {\n if (discountType === DiscountType.percentage && type !== VoucherType.gift) {\n methodTerm = `Diskon ${discountValue || 0}%`;\n\n if (isCheckedMaxFee) {\n methodTerm += ` (hingga ${formattedMaxDiscount})`;\n }\n } else if (discountType === DiscountType.amount && type !== VoucherType.gift) {\n methodTerm = `Potongan ${formattedDiscountVal}`;\n } else {\n methodTerm = `Potongan ${formattedLimitFee}`;\n }\n } else if (type === VoucherType.freeShipping) {\n methodTerm = 'Shipping fee ditanggung oleh voilà.id';\n\n if (isCheckedMaxFee) {\n methodTerm += ` (hingga ${formattedLimitFee})`;\n }\n } else if (type === VoucherType.freeInsurance) {\n methodTerm = 'Insurance fee ditanggung oleh voilà.id';\n\n if (isCheckedMaxFee) {\n methodTerm += ` (hingga ${formattedLimitFee})`;\n }\n }\n\n switch (transactionTerms) {\n case 0:\n methodTerm += ' tanpa minimum pembelian.';\n break;\n case 1:\n methodTerm += ` dengan min. pembelian ${formattedMinTotalAmount}.`;\n break;\n case 2:\n methodTerm += ` dengan min. pembelian ${termsMinQty ? formattedMinTotalQty : 0} item.`;\n break;\n default:\n methodTerm += '';\n }\n\n return methodTerm;\n}\n","import getAppliesTo from './get-applies-to';\nimport getBankBin from './get-bank-bin';\nimport getPeriodText from './get-period';\nimport getVoucherUsageLimit from './get-usage-limit';\nimport getMethodTerms from './use-voucher-method-terms';\nimport type { VoucherTncProps } from './use-voucher-tnc.types';\nimport { VoucherType } from './use-voucher-tnc.types';\n\nconst useVoucherTnc = (props: VoucherTncProps | null): string[] => {\n if (props) {\n const terms = [];\n const {\n dateEnd,\n dateStart,\n type,\n discountType,\n discountValue,\n isCheckedMaxFee,\n maxDiscountAmount,\n transactionTerms,\n termsMinTotalAmount,\n termsMinQty,\n limitFee,\n collections,\n brands,\n eligibilityType,\n isOneTimeUsage,\n quota,\n isOneTimeUsagePerCard,\n payment,\n isGiftCard,\n } = props;\n const { bankName = '', creditBinGroup = [], debitBinGroup = [] } = payment || {};\n\n const period = getPeriodText({ dateStart, dateEnd });\n const appliesTo = getAppliesTo({ type, collections, brands, eligibilityType, payment });\n const methodTerms = getMethodTerms({\n type,\n discountType,\n discountValue,\n isCheckedMaxFee,\n maxDiscountAmount,\n transactionTerms,\n termsMinTotalAmount,\n termsMinQty,\n limitFee,\n });\n const usageLimit = getVoucherUsageLimit({ isOneTimeUsage, isOneTimeUsagePerCard });\n const bankBin = getBankBin({ bankName, creditBinGroup, debitBinGroup });\n\n if (period) terms.push(period);\n if (methodTerms) terms.push(methodTerms);\n if (type === VoucherType.affiliate) {\n terms.push('Voucher affiliate dapat digabungkan dengan tipe voucher lainnya.');\n }\n if (appliesTo) terms.push(appliesTo);\n if (usageLimit) terms.push(usageLimit);\n if (quota > 0) terms.push('Kuota voucher terbatas.');\n if ((bankBin || []).length > 0) terms.push(...bankBin);\n\n if (\n type === VoucherType.order ||\n type === VoucherType.payment ||\n type === VoucherType.freeInsurance ||\n (type === VoucherType.gift && !isGiftCard)\n ) {\n terms.push('Hanya berlaku untuk produk tertentu.');\n }\n\n return terms;\n }\n\n return [];\n};\n\nexport default useVoucherTnc;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,IAAM,YAAY,CAAC,OAA2B;AAC5C,SAAO,MAAM,QAAQ,OAAO,OAAO,YAAY,cAAc,MAAM,GAAG,aAAa,KAAK;AAC1F;AAEA,IAAM,mBAAmB,CAAC,SAAoC;AAP9D;AAQE,SAAO,UAAU,IAAI,KAAK,UAAK,kBAAL,YAAsB,WAAY;AAC9D;AAEA,IAAM,eAAe,CAAC,OAAY,QAAgC;AAXlE;AAYE,QAAM,SAAS,MAAM;AACrB,MAAI,MAAM,SAAS,EAAG,QAAO;AAE7B,MAAI,QAAQ;AACV,UAAM,MAAM,iBAAiB,MAAM;AACnC,QAAI,CAAC,IAAI,SAAS,MAAM,EAAG,QAAO;AAAA,EACpC;AAEA,SAAO,GAAC,SAAI,YAAJ,mBAAa,SAAS;AAChC;AAEA,IAAM,YAAY,MAAe;AAC/B,SAAO,CAAC,EAAE,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,SAAS;AAChF;AAEA,IAAM,YAAY,UAAU;;;ACzB5B,mBAA+C;AAE/C,IAAM,iBAAiB,CAAoC,UAAyB,OAAuB,CAAC,MAAM;AAChH,QAAM,kBAAc,qBAAO,QAAQ;AAEnC,8BAAU,MAAM;AACd,gBAAY,UAAU;AAAA,EACxB,CAAC;AAGD,aAAO,0BAAa,IAAI,SAAW;AAZrC;AAYwC,6BAAY,YAAZ,qCAAsB,GAAG;AAAA,KAAa,IAAI;AAClF;AAEA,IAAO,2BAAQ;;;ACff,+BAAiB;AACjB,IAAAA,gBAAiD;AAYjD,IAAM,eAAe,CAAC,EAAE,QAAQ,IAAI,mBAAmB,CAAC,EAAE,IAAuB,CAAC,MAAM;AACtF,QAAM,CAAC,WAAW,YAAY,QAAI,wBAAS,KAAK;AAEhD,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,KAAK;AAClD,+BAAU,MAAM,cAAc,KAAK,GAAG,CAAC,KAAK,CAAC;AAE7C,QAAM,EAAE,UAAU,MAAM,GAAG,YAAY,IACrC,OAAO,qBAAqB,WAAW,EAAE,SAAS,iBAAiB,IAAI;AAEzE,QAAM,aAAS,2BAAY,MAAM;AAC/B,UAAM,cAAU,yBAAAC,SAAK,YAAY,WAAW;AAC5C,iBAAa,OAAO;AAAA,EACtB,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,+BAAU,MAAM;AACd,QAAI,YAA2B;AAE/B,QAAI,WAAW;AACb,kBAAY,OAAO,WAAW,MAAM;AAClC,qBAAa,KAAK;AAAA,MACpB,GAAG,OAAO;AAAA,IACZ;AAEA,WAAO,MAAM;AACX,UAAI,WAAW;AACb,eAAO,aAAa,SAAS;AAAA,MAC/B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,SAAS,CAAC;AAEvB,SAAO;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAO,wBAAQ;;;AClDf,IAAAC,gBAAoC;AAOpC,IAAM,cAAc,CAAI,EAAE,OAAO,QAAQ,IAAI,MAA2B;AACtE,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,wBAAY,KAAK;AAE7D,+BAAU,MAAM;AACd,UAAM,QAAQ,WAAW,MAAM,kBAAkB,KAAK,GAAG,SAAS,GAAG;AAErE,WAAO,MAAM;AACX,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,KAAK,UAAU,KAAK,GAAG,KAAK,CAAC;AAEjC,SAAO;AACT;AAEA,IAAO,uBAAQ;;;ACrBf,2BAAuB;AAEvB,IAAAC,gBAAiC;;;ACHjC,IAAAC,gBAA2C;AAI3C,IAAM,sBAAsB,YAAY,gCAAkB;AAC1D,IAAO,iCAAQ;;;ADIf,IAAM,gBAAgB,CAAC,KAA6B,YAAsB;AACxE,QAAM,CAAC,YAAY,aAAa,QAAI,wBAA8B,IAAI;AACtE,QAAM,YAAQ,sBAAe;AAE7B,iCAAoB,MAAM;AACxB,UAAM,UAAU,MAAM;AACpB,YAAM,OAAO,IAAI;AACjB,UAAI,CAAC,KAAM;AACX,YAAM,UAAU,sBAAsB,MAAM;AAC1C,cAAM,eAAW,6BAAO,IAAI;AAC5B,sBAAc,QAAQ;AAAA,MACxB,CAAC;AAAA,IACH;AAEA,YAAQ;AAER,QAAI,SAAS;AACX,aAAO,iBAAiB,UAAU,OAAO;AACzC,aAAO,iBAAiB,UAAU,OAAO;AAAA,IAC3C;AAEA,WAAO,MAAM;AACX,UAAI,SAAS;AACX,eAAO,oBAAoB,UAAU,OAAO;AAC5C,eAAO,oBAAoB,UAAU,OAAO;AAAA,MAC9C;AAEA,UAAI,MAAM,SAAS;AACjB,6BAAqB,MAAM,OAAO;AAAA,MACpC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,SAAO;AACT;AAEA,IAAO,yBAAQ;;;AE5Cf,IAAAC,gBAA6C;AAc7C,IAAM,gBAAgB,CAAC;AAAA,EACrB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,IAAI;AACN,IAAwB,CAAC,MAAM;AAC7B,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAS,qBAAqB,KAAK;AACzE,QAAM,SAAS,eAAe,SAAY,aAAa;AACvD,QAAM,eAAe,eAAe;AACpC,QAAM,UAAM,qBAAM;AAClB,QAAMC,MAAK,0BAAU,cAAc,GAAG;AAEtC,QAAM,aAAa,yBAAe,UAAU;AAC5C,QAAM,cAAc,yBAAe,WAAW;AAE9C,QAAM,cAAU,2BAAY,MAAM;AAChC,QAAI,CAAC,cAAc;AACjB,qBAAe,KAAK;AAAA,IACtB;AACA;AAAA,EACF,GAAG,CAAC,cAAc,WAAW,CAAC;AAE9B,QAAM,aAAS,2BAAY,MAAM;AAC/B,QAAI,CAAC,cAAc;AACjB,qBAAe,IAAI;AAAA,IACrB;AACA;AAAA,EACF,GAAG,CAAC,cAAc,UAAU,CAAC;AAE7B,QAAM,eAAW,2BAAY,MAAM;AACjC,QAAI,QAAQ;AACV,cAAQ;AAAA,IACV,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,QAAQ,QAAQ,OAAO,CAAC;AAE5B,QAAM,iBAAiB,CAAC,EAAE,SAAS,GAAG,KAAK,IAAe,CAAC,MAAiB;AAC1E,WAAO;AAAA,MACL,GAAG;AAAA,MACH,iBAAiB;AAAA,MACjB,iBAAiBA;AAAA,MACjB,QAAQ,OAAO;AACb,2CAAU;AACV,iBAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAEA,QAAM,qBAAqB,CAAC,EAAE,GAAG,KAAK,IAAe,CAAC,MAAiB;AACrE,WAAO;AAAA,MACL,GAAG;AAAA,MACH,QAAQ,CAAC;AAAA,MACT,IAAAA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAO,yBAAQ;;;ACnFf,IAAAC,gBAAoC;AAOpC,IAAM,gBAAgB,CAAC,OAA0B,UAAgC,CAAC,MAAiB;AACjG,QAAM,EAAE,MAAM,MAAM,SAAS,IAAI;AAEjC,QAAM,UAAU,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAErD,MAAI,iBAAiB,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AACnE,mBAAiB,eAAe,OAAO,OAAK,KAAK,IAAI;AAErD,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAS,MAAM;AACvC,WAAO,QAAQ,IAAI,CAAC,MAAM,WAAW;AAAA,MACnC,OAAO;AAAA,MACP,SAAS,MAAM,CAAC,CAAC,eAAe,KAAK,IAAI,OAAO,WAAW,IAAI,EAAE;AAAA,IACnE,EAAE;AAAA,EACJ,CAAC;AAED,+BAAU,MAAM;AACd,UAAM,MAAM;AACZ;AAAA,MACE,QAAQ,IAAI,WAAS;AAAA,QACnB,OAAO;AAAA,QACP,SAAS,IAAI,WAAW,IAAI,EAAE;AAAA,MAChC,EAAE;AAAA,IACJ;AAEA,UAAM,MAAM,QAAQ,IAAI,UAAQ,IAAI,WAAW,IAAI,CAAC;AAEpD,UAAM,UAAU,CAAC,QAA6B;AAC5C,eAAS,UAAQ;AACf,eAAO,KAAK,MAAM,EAAE,IAAI,UAAQ;AAC9B,cAAI,KAAK,UAAU,IAAI,MAAO,QAAO,EAAE,GAAG,MAAM,SAAS,IAAI,QAAQ;AACrE,iBAAO;AAAA,QACT,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,QAAI,QAAQ,UAAQ;AAClB,WAAK,iBAAiB,UAAU,OAAO;AAAA,IACzC,CAAC;AAED,WAAO,MAAM;AACX,UAAI,QAAQ,UAAQ;AAClB,aAAK,oBAAoB,UAAU,OAAO;AAAA,MAC5C,CAAC;AAAA,IACH;AAAA,EAEF,GAAG,CAAC,MAAM,CAAC;AAEX,SAAO,MAAM,IAAI,UAAQ,KAAK,OAAO;AACvC;AAEA,IAAO,0BAAQ;;;ACjDf,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA,mBAAmB;AAAA,EACnB,SAAS;AACX,MAAoC;AAClC,QAAM,eAAe,CAAC,WAAmB;AACvC,UAAM,QAAQ,OAAO,SAAS,EAAE,MAAM,GAAG;AACzC,UAAM,cAAc,MAAM,CAAC,EAAE,QAAQ,yBAAyB,iBAAiB;AAC/E,QAAI,cAAc;AAElB,QAAI,kBAAkB,QAAW;AAC/B,UAAI,MAAM,SAAS,KAAK,gBAAgB,GAAG;AACzC,sBAAc,mBAAmB,MAAM,CAAC,EAAE,OAAO,eAAe,GAAG,EAAE,MAAM,GAAG,aAAa;AAAA,MAC7F,WAAW,gBAAgB,GAAG;AAC5B,sBAAc,mBAAmB,IAAI,OAAO,aAAa;AAAA,MAC3D;AAAA,IACF,WAAW,MAAM,SAAS,GAAG;AAC3B,oBAAc,mBAAmB,MAAM,CAAC;AAAA,IAC1C;AAEA,WAAO,cAAc;AAAA,EACvB;AAEA,QAAM,iBAAiB,aAAa,KAAK;AAEzC,MAAI,eAAe,OAAO,CAAC,MAAM,KAAK;AACpC,WAAO,eAAe,QAAQ,OAAO,IAAI,MAAM,EAAE;AAAA,EACnD;AAEA,SAAO,GAAG,MAAM,GAAG,cAAc;AACnC;AAEA,IAAO,+BAAQ;;;AC1Cf,IAAAC,gBAAoC;AAEpC,IAAM,kBAAkB,MAAM;AAC5B,QAAM,CAAC,UAAU,WAAW,QAAI,wBAAS,UAAU,MAAM;AAEzD,+BAAU,MAAM;AACd,UAAM,cAAc,MAAM,YAAY,UAAU,MAAM;AAEtD,WAAO,iBAAiB,UAAU,WAAW;AAC7C,WAAO,iBAAiB,WAAW,WAAW;AAC9C,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,WAAW;AAChD,aAAO,oBAAoB,WAAW,WAAW;AAAA,IACnD;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO,EAAE,UAAU,WAAW,CAAC,SAAS;AAC1C;AAEA,IAAO,4BAAQ;;;AClBf,IAAAC,gBAAkC;AAWlC,IAAM,kBAAkB,CAAC,EAAE,UAAU,MAAM,KAAK,QAAQ,MAAkC;AACxF,QAAM,eAAe,yBAAe,OAAO;AAE3C,QAAM,eAAW,sBAAO;AAAA,IACtB,eAAe;AAAA,IACf,2BAA2B;AAAA,EAC7B,CAAC;AAED,QAAM,QAAQ,SAAS;AAEvB,+BAAU,MAAM;AACd,QAAI,CAAC,QAAS,QAAO;AACrB,UAAM,gBAAgB,CAAmD,MAAS;AAChF,UAAI,aAAa,GAAG,GAAG,GAAG;AACxB,cAAM,gBAAgB;AAAA,MACxB;AAAA,IACF;AAEA,UAAM,YAAY,CAAC,UAAsB;AACvC,UAAI,MAAM,2BAA2B;AACnC,cAAM,4BAA4B;AAClC;AAAA,MACF;AAEA,UAAI,MAAM,iBAAiB,WAAW,aAAa,OAAO,GAAG,GAAG;AAC9D,cAAM,gBAAgB;AACtB,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAEA,UAAM,aAAa,CAAC,UAAsB;AACxC,YAAM,4BAA4B;AAClC,UAAI,WAAW,MAAM,iBAAiB,aAAa,OAAO,GAAG,GAAG;AAC9D,cAAM,gBAAgB;AACtB,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAEA,UAAM,MAAM,iBAAiB,IAAI,OAAO;AACxC,QAAI,iBAAiB,aAAa,eAAe,IAAI;AACrD,QAAI,iBAAiB,WAAW,WAAW,IAAI;AAC/C,QAAI,iBAAiB,cAAc,eAAe,IAAI;AACtD,QAAI,iBAAiB,YAAY,YAAY,IAAI;AAEjD,WAAO,MAAM;AACX,UAAI,oBAAoB,aAAa,eAAe,IAAI;AACxD,UAAI,oBAAoB,WAAW,WAAW,IAAI;AAClD,UAAI,oBAAoB,cAAc,eAAe,IAAI;AACzD,UAAI,oBAAoB,YAAY,YAAY,IAAI;AAAA,IACtD;AAAA,EACF,GAAG,CAAC,SAAS,KAAK,cAAc,OAAO,OAAO,CAAC;AACjD;AAEA,IAAO,4BAAQ;;;ACjER,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,WAAQ;AACR,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,kBAAe;AACf,EAAAA,aAAA,mBAAgB;AAChB,EAAAA,aAAA,cAAW;AACX,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,eAAY;AARF,SAAAA;AAAA,GAAA;AAWL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,cAAA,gBAAa;AACb,EAAAA,cAAA,YAAS;AAFC,SAAAA;AAAA,GAAA;;;ACRG,SAAR,aAA8B,MAAiC;AAHtE;AAIE,MAAI,YAAY;AAChB,QAAM,EAAE,MAAM,iBAAiB,QAAQ,IAAI;AAE3C,QAAM,eAAc,UAAK,gBAAL,YAAoB,CAAC;AACzC,QAAM,UAAS,UAAK,WAAL,YAAe,CAAC;AAE/B,MAAI,kCAA8B;AAChC,QAAI,YAAY,SAAS,GAAG;AAC1B,kBAAY,+DAA+D,YACxE,IAAI,WAAS,MAAM,IAAI,EACvB,KAAK,IAAI,CAAC;AAAA,IACf,WAAW,OAAO,SAAS,GAAG;AAC5B,kBAAY,0DAA0D,OACnE,IAAI,WAAS,MAAM,IAAI,EACvB,KAAK,IAAI,CAAC;AAAA,IACf,WAAW,oBAAoB,qBAAqB;AAClD,kBAAY;AAAA,IACd;AAAA,EACF,WAAW,kCAA8B;AACvC,UAAM,EAAE,UAAU,eAAe,gBAAgB,cAAc,IAAI,WAAW,CAAC;AAC/E,UAAM,iBAAiB,iBAAiB,CAAC,GAAG,KAAK,UAAQ,OAAO,IAAI,SAAS,gBAAgB,CAAC;AAC9F,UAAM,kBAAkB,iBAAiB,CAAC,GAAG,KAAK,UAAQ,OAAO,IAAI,SAAS,cAAc,CAAC;AAC7F,UAAM,kBAAkB,iBAAiB,CAAC,GAAG,KAAK,UAAQ,OAAO,IAAI,SAAS,cAAc,CAAC;AAC7F,UAAM,mBAAmB,iBAAiB,CAAC,GAAG,KAAK,UAAQ,OAAO,IAAI,SAAS,eAAe,CAAC;AAC/F,UAAM,mBAAmB,iBAAiB,CAAC,GAAG,KAAK,UAAQ,OAAO,IAAI,SAAS,eAAe,CAAC;AAC/F,UAAM,gBAAgB,kBAAkB,kBAAkB,mBAAmB;AAC7E,UAAM,WAAW,iBAAiB;AAClC,UAAM,WAAW,iBAAiB,CAAC,GAAG,KAAK,UAAQ,OAAO,IAAI,SAAS,YAAY,CAAC;AACpF,UAAM,iBAAiB;AAAA,MACrB,GAAI,YAAY,iBAAiB,CAAC,GAAG,SAAS,IAAI,CAAC,aAAa,IAAI,CAAC;AAAA,MACrE,GAAI,aAAa,kBAAkB,CAAC,GAAG,SAAS,IAAI,CAAC,cAAc,IAAI,CAAC;AAAA,IAC1E;AACA,QAAI,kBAAkB;AAEtB,QAAI,UAAU;AACZ,YAAM,eAAe;AAAA,QACnB,GAAI,gBAAgB,CAAC,yBAAyB,IAAI,CAAC;AAAA,QACnD,GAAI,gBAAgB,CAAC,gBAAgB,IAAI,CAAC;AAAA,MAC5C;AACA,YAAM,eAAe;AAAA,QACnB,GAAI,iBAAiB,CAAC,GAAG,IAAI,CAAC;AAAA,QAC9B,GAAI,iBAAiB,CAAC,GAAG,IAAI,CAAC;AAAA,QAC9B,GAAI,kBAAkB,CAAC,IAAI,IAAI,CAAC;AAAA,QAChC,GAAI,kBAAkB,CAAC,IAAI,IAAI,CAAC;AAAA,MAClC;AACA,UAAI,yBAAyB,aAAa,KAAK,OAAO;AAEtD,UAAI,aAAa,SAAS,GAAG;AAC3B,cAAM,iBAAiB,aAAa,KAAK,IAAI;AAC7C,cAAM,gBAAgB,eAAe,YAAY,GAAG;AACpD,cAAM,OAAO,eAAe,MAAM,GAAG,aAAa;AAClD,cAAM,QAAQ,eAAe,MAAM,gBAAgB,GAAG,eAAe,MAAM;AAE3E,iCAAyB,CAAC,MAAM,KAAK,EAAE,KAAK,OAAO;AAAA,MACrD;AAEA,wBAAkB;AAAA,QAChB;AAAA,QACA,aAAa,KAAK,OAAO;AAAA,QACzB,GAAI,gBAAgB,CAAC,IAAI,sBAAsB,SAAS,IAAI,CAAC;AAAA,MAC/D,EAAE,KAAK,GAAG;AAAA,IACZ;AAEA,QAAI,eAAe,SAAS,GAAG;AAC7B,kBAAY,GAAG;AAAA,QACb;AAAA,QACA,eAAe,KAAK,OAAO;AAAA,QAC3B;AAAA,QACA;AAAA,MACF,EACG,OAAO,UAAQ,OAAO,IAAI,SAAS,CAAC,EACpC,KAAK,GAAG,CAAC;AAAA,IACd;AAAA,EACF;AAEA,SAAO;AACT;;;AC9Ee,SAAR,WAA4B,MAAiC;AAClE,QAAM,EAAE,UAAU,gBAAgB,cAAc,IAAI;AACpD,QAAM,gBAAgB,kBAAkB,CAAC,GAAG,KAAK,IAAI;AACrD,QAAM,eAAe,iBAAiB,CAAC,GAAG,KAAK,IAAI;AAEnD,SAAO;AAAA,IACL,GAAI,YAAY,eACZ,CAAC,sCAAsC,QAAQ,6CAA6C,YAAY,GAAG,IAC3G,CAAC;AAAA,IACL,GAAI,YAAY,cACZ,CAAC,qCAAqC,QAAQ,6CAA6C,WAAW,GAAG,IACzG,CAAC;AAAA,EACP;AACF;;;ACfA,sBAAuB;AACvB,oBAAmB;AAIJ,SAAR,cAA+B,MAA8B;AAClE,MAAI,SAAS;AACb,QAAM,EAAE,WAAW,QAAQ,IAAI;AAE/B,MAAI,aAAa,SAAS;AACxB,UAAM,yBAAqB,wBAAO,IAAI,KAAK,SAAS,GAAG,kBAAkB;AACzE,UAAM,uBAAmB,wBAAO,IAAI,KAAK,OAAO,GAAG,kBAAkB;AAErE,UAAM,qBAAqB,mBAAmB,MAAM,GAAG;AACvD,UAAM,iBAAiB,mBAAmB,CAAC,EAAE,MAAM,GAAG;AACtD,UAAM,gBAAgB,eAAe,CAAC;AACtC,UAAM,iBAAiB,eAAe,CAAC;AACvC,UAAM,mBAAmB,iBAAiB,MAAM,GAAG;AACnD,UAAM,eAAe,iBAAiB,CAAC,EAAE,MAAM,GAAG;AAClD,UAAM,cAAc,aAAa,CAAC;AAClC,UAAM,eAAe,aAAa,CAAC;AAEnC,QAAI,mBAAmB,CAAC,MAAM,iBAAiB,CAAC,GAAG;AACjD,eAAS,wCAAoC,wBAAO,IAAI,KAAK,SAAS,GAAG,cAAc,EAAE,QAAQ,iBAAG,CAAC,CAAC;AAAA,IACxG,WAAW,kBAAkB,aAAa;AACxC,eAAS,4BAAwB,wBAAO,IAAI,KAAK,SAAS,GAAG,cAAc,EAAE,QAAQ,iBAAG,CAAC,CAAC,UAAM;AAAA,QAC9F,IAAI,KAAK,OAAO;AAAA,QAChB;AAAA,QACA,EAAE,QAAQ,iBAAG;AAAA,MACf,CAAC;AAAA,IACH,WAAW,kBAAkB,aAAa;AACxC,UAAI,mBAAmB,cAAc;AACnC,iBAAS,4BAAwB,wBAAO,IAAI,KAAK,SAAS,GAAG,KAAK,EAAE,QAAQ,iBAAG,CAAC,CAAC,UAAM;AAAA,UACrF,IAAI,KAAK,OAAO;AAAA,UAChB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,UACV;AAAA,QACF,CAAC;AAAA,MACH,OAAO;AACL,iBAAS,4BAAwB,wBAAO,IAAI,KAAK,SAAS,GAAG,SAAS,EAAE,QAAQ,iBAAG,CAAC,CAAC,UAAM;AAAA,UACzF,IAAI,KAAK,OAAO;AAAA,UAChB;AAAA,UACA,EAAE,QAAQ,iBAAG;AAAA,QACf,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,WAAW,WAAW;AACpB,aAAS,4BAAwB,wBAAO,IAAI,KAAK,SAAS,GAAG,cAAc,EAAE,QAAQ,iBAAG,CAAC,CAAC;AAAA,EAC5F;AAEA,SAAO;AACT;;;AClDe,SAAR,qBAAsC,MAAkC;AAC7E,QAAM,EAAE,gBAAgB,sBAAsB,IAAI;AAElD,MAAI,CAAC,kBAAkB,CAAC,uBAAuB;AAC7C,WAAO;AAAA,EACT;AAEA,MAAI,aAAa;AAEjB,MAAI,gBAAgB;AAClB,iBAAa;AAAA,EACf;AAEA,MAAI,uBAAuB;AACzB,iBAAa;AAAA,EACf;AAEA,MAAI,kBAAkB,uBAAuB;AAC3C,iBAAa;AAAA,EACf;AAEA,SAAO;AACT;;;ACpBe,SAAR,sBAAuC,MAA2B;AACvE,MAAI,aAAa;AACjB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,aAAa,CAAC,QAAiC;AACnD,QAAI,OAAO,QAAQ,SAAU,QAAO;AAEpC,WAAO,CAAC,OAAO,MAAM,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI;AAAA,EACpD;AACA,QAAM,uBAAuB,6BAAmB,EAAE,OAAO,WAAW,iBAAiB,GAAG,QAAQ,KAAK,CAAC;AACtG,QAAM,uBAAuB,6BAAmB,EAAE,OAAO,WAAW,aAAa,GAAG,QAAQ,KAAK,CAAC;AAClG,QAAM,oBAAoB,6BAAmB,EAAE,OAAO,WAAW,QAAQ,GAAG,QAAQ,KAAK,CAAC;AAC1F,QAAM,0BAA0B,6BAAmB,EAAE,OAAO,WAAW,mBAAmB,GAAG,QAAQ,KAAK,CAAC;AAC3G,QAAM,uBAAuB,6BAAmB,EAAE,OAAO,WAAW,WAAW,EAAE,CAAC;AAElF,MACE,oCACA,gCACA,8BACA,wCACA,kCACA;AACA,QAAI,kDAA4C,4BAA2B;AACzE,mBAAa,UAAU,iBAAiB,CAAC;AAEzC,UAAI,iBAAiB;AACnB,sBAAc,YAAY,oBAAoB;AAAA,MAChD;AAAA,IACF,WAAW,0CAAwC,4BAA2B;AAC5E,mBAAa,YAAY,oBAAoB;AAAA,IAC/C,OAAO;AACL,mBAAa,YAAY,iBAAiB;AAAA,IAC5C;AAAA,EACF,WAAW,6CAAmC;AAC5C,iBAAa;AAEb,QAAI,iBAAiB;AACnB,oBAAc,YAAY,iBAAiB;AAAA,IAC7C;AAAA,EACF,WAAW,+CAAoC;AAC7C,iBAAa;AAEb,QAAI,iBAAiB;AACnB,oBAAc,YAAY,iBAAiB;AAAA,IAC7C;AAAA,EACF;AAEA,UAAQ,kBAAkB;AAAA,IACxB,KAAK;AACH,oBAAc;AACd;AAAA,IACF,KAAK;AACH,oBAAc,0BAA0B,uBAAuB;AAC/D;AAAA,IACF,KAAK;AACH,oBAAc,0BAA0B,cAAc,uBAAuB,CAAC;AAC9E;AAAA,IACF;AACE,oBAAc;AAAA,EAClB;AAEA,SAAO;AACT;;;ACnEA,IAAM,gBAAgB,CAAC,UAA4C;AACjE,MAAI,OAAO;AACT,UAAM,QAAQ,CAAC;AACf,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,EAAE,WAAW,IAAI,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,EAAE,IAAI,WAAW,CAAC;AAE/E,UAAM,SAAS,cAAc,EAAE,WAAW,QAAQ,CAAC;AACnD,UAAM,YAAY,aAAa,EAAE,MAAM,aAAa,QAAQ,iBAAiB,QAAQ,CAAC;AACtF,UAAM,cAAc,sBAAe;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,aAAa,qBAAqB,EAAE,gBAAgB,sBAAsB,CAAC;AACjF,UAAM,UAAU,WAAW,EAAE,UAAU,gBAAgB,cAAc,CAAC;AAEtE,QAAI,OAAQ,OAAM,KAAK,MAAM;AAC7B,QAAI,YAAa,OAAM,KAAK,WAAW;AACvC,QAAI,sCAAgC;AAClC,YAAM,KAAK,kEAAkE;AAAA,IAC/E;AACA,QAAI,UAAW,OAAM,KAAK,SAAS;AACnC,QAAI,WAAY,OAAM,KAAK,UAAU;AACrC,QAAI,QAAQ,EAAG,OAAM,KAAK,yBAAyB;AACnD,SAAK,WAAW,CAAC,GAAG,SAAS,EAAG,OAAM,KAAK,GAAG,OAAO;AAErD,QACE,gCACA,oCACA,iDACC,8BAA6B,CAAC,YAC/B;AACA,YAAM,KAAK,sCAAsC;AAAA,IACnD;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,CAAC;AACV;AAEA,IAAO,0BAAQ;","names":["import_react","copy","import_react","import_react","import_react","import_react","id","import_react","import_react","import_react","VoucherType","DiscountType"]}
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|