{"version":3,"file":"useRange.mjs","sources":["../../../../components/date-picker/hooks/useRange.tsx"],"sourcesContent":["import { ref, computed, watch } from 'vue';\nimport { CalendarIcon as TdCalendarIcon } from 'tdesign-icons-vue-next';\nimport { omit } from 'lodash-es';\n\nimport { useConfig, useTNodeJSX, useReadonly, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { TdDateRangePickerProps, DateValue, DateRangePickerPartial } from '../type';\nimport { isValidDate, formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { useRangeValue } from './useRangeValue';\n\nexport const PARTIAL_MAP: Record<'first' | 'second', DateRangePickerPartial> = { first: 'start', second: 'end' };\n\nexport function useRange(props: TdDateRangePickerProps) {\n  const COMPONENT_NAME = usePrefixClass('date-range-picker');\n  const { globalConfig } = useConfig('datePicker');\n  const { CalendarIcon } = useGlobalIcon({ CalendarIcon: TdCalendarIcon });\n  const renderTNodeJSX = useTNodeJSX();\n\n  const isMountedRef = ref(false);\n  const inputRef = ref();\n\n  const { value, onChange, time, month, year, cacheValue, isFirstValueSelected } = useRangeValue(props);\n\n  const formatRef = computed(() =>\n    getDefaultFormat({\n      mode: props.mode,\n      format: props.format,\n      valueType: props.valueType,\n      enableTimePicker: props.enableTimePicker,\n    }),\n  );\n\n  const popupVisible = ref(false);\n  const isHoverCell = ref(false);\n  const activeIndex = ref<0 | 1>(0); // 确定当前选中的输入框序号\n  const inputValue = ref(formatDate(props.value, { format: formatRef.value.format })); // 未真正选中前可能不断变更输入框的内容\n  const isReadOnly = useReadonly();\n\n  // input 设置\n  const rangeInputProps = computed(() => ({\n    ...props.rangeInputProps,\n    size: props.size,\n    ref: inputRef,\n    borderless: props.borderless,\n    clearable: props.clearable && !isReadOnly.value,\n    prefixIcon: () => renderTNodeJSX('prefixIcon'),\n    readonly: isReadOnly.value || !props.allowInput,\n    separator: props.separator || globalConfig.value.rangeSeparator,\n    placeholder:\n      props.placeholder || (globalConfig.value.placeholder as { [key in typeof props.mode]: string })[props.mode],\n    // activeIndex: popupVisible.value ? activeIndex.value : undefined,\n    suffixIcon: () => {\n      return renderTNodeJSX('suffixIcon') || <CalendarIcon />;\n    },\n    class: {\n      [`${COMPONENT_NAME.value}__input--placeholder`]: isHoverCell.value,\n    },\n    onClick: ({ position }: any) => {\n      activeIndex.value = position === 'first' ? 0 : 1;\n    },\n    onClear: (context: { e: MouseEvent } | MouseEvent) => {\n      // 处理全局替换关闭图标的场景，此时 event 可能不在 context 里面，而是 context 本身\n      if (context instanceof MouseEvent) context.stopPropagation();\n      else context.e.stopPropagation();\n\n      popupVisible.value = false;\n      onChange?.([], { dayjsValue: [], trigger: 'clear' });\n    },\n    onBlur: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n      props.onBlur?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n    },\n    onFocus: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n      props.onFocus?.({ value: newVal, partial: PARTIAL_MAP[position], e });\n      activeIndex.value = position === 'first' ? 0 : 1;\n    },\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    onChange: (newVal: string[], { e, position }: { e: MouseEvent; position: 'first' | 'second' }) => {\n      inputValue.value = newVal;\n\n      // 跳过不符合格式化的输入框内容\n      if (!isValidDate(newVal, formatRef.value.format)) return;\n      cacheValue.value = newVal;\n      const newYear: Array<number> = [];\n      const newMonth: Array<number> = [];\n      const newTime: Array<string> = [];\n      newVal.forEach((v) => {\n        newYear.push(parseToDayjs(v, formatRef.value.format).year());\n        newMonth.push(parseToDayjs(v, formatRef.value.format).month());\n        newTime.push(parseToDayjs(v, formatRef.value.format).format(formatRef.value.timeFormat));\n      });\n      year.value = newYear;\n      month.value = newMonth;\n      time.value = newTime;\n    },\n    onEnter: (newVal: string[]) => {\n      if (!isValidDate(newVal, formatRef.value.format) && !isValidDate(value.value, formatRef.value.format)) return;\n\n      popupVisible.value = false;\n      if (isValidDate(newVal, formatRef.value.format)) {\n        onChange?.(\n          formatDate(newVal, {\n            format: formatRef.value.format,\n            targetFormat: formatRef.value.valueType,\n            autoSwap: true,\n          }) as DateValue[],\n          {\n            dayjsValue: newVal.map((v) => parseToDayjs(v, formatRef.value.format)),\n            trigger: 'enter',\n          },\n        );\n      } else if (isValidDate(value.value, formatRef.value.format)) {\n        inputValue.value = formatDate(value.value, {\n          format: formatRef.value.format,\n        });\n      } else {\n        inputValue.value = [];\n      }\n    },\n  }));\n\n  // popup 设置\n  const popupProps = computed(() => ({\n    expandAnimation: true,\n    ...omit(props.popupProps, 'on-visible-change'),\n    overlayInnerStyle: props.popupProps?.overlayInnerStyle ?? { width: 'auto' },\n    overlayClassName: [props.popupProps?.overlayClassName, `${COMPONENT_NAME.value}__panel-container`],\n    onVisibleChange: (visible: boolean, context: any) => {\n      if (isReadOnly.value) return;\n\n      // 这里劫持了进一步向 popup 传递的 onVisibleChange 事件，为了保证可以在 Datepicker 中使用 popupProps.onVisibleChange，故此处理\n      props.popupProps?.onVisibleChange?.(visible, context);\n      // TODO\n      // @ts-ignore types only declare onVisibleChange，but not declare on-visible-change\n      props.popupProps?.['on-visible-change']?.(visible, context);\n\n      // 输入框点击不关闭面板\n      if (context.trigger === 'trigger-element-click') {\n        const indexMap = { 0: 'first', 1: 'second' };\n        inputRef.value.focus({ position: indexMap[activeIndex.value] });\n        popupVisible.value = true;\n        return;\n      }\n\n      popupVisible.value = visible;\n    },\n  }));\n\n  // 输入框响应 value 变化\n  watch(\n    value,\n    (value) => {\n      if (!value) {\n        inputValue.value = [];\n        return;\n      }\n      if (!isValidDate(value, formatRef.value.format)) return;\n\n      inputValue.value = formatDate(value, {\n        format: formatRef.value.valueType,\n        targetFormat: formatRef.value.format,\n      });\n    },\n    {\n      immediate: true,\n    },\n  );\n\n  // activeIndex 变化自动 focus 对应输入框\n  watch(\n    activeIndex,\n    (index) => {\n      if (!isMountedRef.value) {\n        isMountedRef.value = true;\n        return;\n      }\n      if (!popupVisible.value) return;\n      const indexMap = { 0: 'first', 1: 'second' };\n      inputRef.value?.focus?.({ position: indexMap[index] });\n    },\n    {\n      immediate: true,\n    },\n  );\n\n  return {\n    year,\n    month,\n    value,\n    time,\n    inputValue,\n    popupVisible,\n    rangeInputProps,\n    popupProps,\n    isHoverCell,\n    activeIndex,\n    isFirstValueSelected,\n    cacheValue,\n    onChange,\n  };\n}\n"],"names":["PARTIAL_MAP","first","second","useRange","props","COMPONENT_NAME","usePrefixClass","_useConfig","useConfig","globalConfig","_useGlobalIcon","useGlobalIcon","CalendarIcon","TdCalendarIcon","renderTNodeJSX","useTNodeJSX","isMountedRef","ref","inputRef","_useRangeValue","useRangeValue","value","onChange","time","month","year","cacheValue","isFirstValueSelected","formatRef","computed","getDefaultFormat","mode","format","valueType","enableTimePicker","popupVisible","isHoverCell","activeIndex","inputValue","formatDate","isReadOnly","useReadonly","rangeInputProps","_objectSpread","size","borderless","clearable","prefixIcon","readonly","allowInput","separator","rangeSeparator","placeholder","suffixIcon","_createVNode","_defineProperty","concat","onClick","_ref","position","onClear","context","MouseEvent","stopPropagation","e","dayjsValue","trigger","onBlur","newVal","_ref2","_props$onBlur","call","partial","onFocus","_ref3","_props$onFocus","_ref4","isValidDate","newYear","newMonth","newTime","forEach","v","push","parseToDayjs","timeFormat","onEnter","targetFormat","autoSwap","map","popupProps","_props$popupProps$ove","_props$popupProps","_props$popupProps2","expandAnimation","omit","overlayInnerStyle","width","overlayClassName","onVisibleChange","visible","_props$popupProps3","_props$popupProps3$on","_props$popupProps4","_props$popupProps4$on","indexMap","focus","watch","immediate","index","_inputRef$value","_inputRef$value$focus"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,IAAMA,WAAkE,GAAA;AAAEC,EAAAA,KAAO,EAAA,OAAA;AAASC,EAAAA,QAAQ,KAAA;AAAM,EAAA;AAExG,SAASC,SAASC,KAA+B,EAAA;AAChD,EAAA,IAAAC,cAAA,GAAiBC,eAAe,mBAAmB,CAAA,CAAA;AACzD,EAAA,IAAAC,UAAA,GAAyBC,SAAA,CAAU,YAAY,CAAA;IAAvCC,YAAA,GAAAF,UAAA,CAAAE,YAAA,CAAA;EACR,IAAAC,cAAA,GAAyBC,cAAc;AAAEC,MAAAA,YAAA,EAAcC,YAAAA;AAAe,KAAC,CAAA;IAA/DD,cAAa,GAAAF,cAAA,CAAbE,YAAa,CAAA;AACrB,EAAA,IAAME,iBAAiBC,WAAY,EAAA,CAAA;AAE7B,EAAA,IAAAC,YAAA,GAAeC,IAAI,KAAK,CAAA,CAAA;AAC9B,EAAA,IAAMC,WAAWD,GAAI,EAAA,CAAA;AAEf,EAAA,IAAAE,cAAA,GAA2EC,aAAA,CAAchB,KAAK,CAAA;IAA5FiB,KAAO,GAAAF,cAAA,CAAPE,KAAO;IAAAC,QAAA,GAAAH,cAAA,CAAAG,QAAA;IAAUC,IAAM,GAAAJ,cAAA,CAANI,IAAM;IAAAC,KAAA,GAAAL,cAAA,CAAAK,KAAA;IAAOC,sBAAAA;IAAMC,UAAY,GAAAP,cAAA,CAAZO,UAAY;IAAAC,oBAAA,GAAAR,cAAA,CAAAQ,oBAAA,CAAA;EAExD,IAAMC,SAAY,GAAAC,QAAA,CAAS,YAAA;AAAA,IAAA,OACzBC,gBAAiB,CAAA;MACfC,MAAM3B,KAAM,CAAA2B,IAAA;MACZC,QAAQ5B,KAAM,CAAA4B,MAAA;MACdC,WAAW7B,KAAM,CAAA6B,SAAA;MACjBC,kBAAkB9B,KAAM,CAAA8B,gBAAAA;AAC1B,KAAC,CAAA,CAAA;AAAA,GACH,CAAA,CAAA;AAEM,EAAA,IAAAC,YAAA,GAAelB,IAAI,KAAK,CAAA,CAAA;AACxB,EAAA,IAAAmB,WAAA,GAAcnB,IAAI,KAAK,CAAA,CAAA;AACvB,EAAA,IAAAoB,WAAA,GAAcpB,IAAW,CAAC,CAAA,CAAA;EAC1B,IAAAqB,UAAA,GAAarB,GAAI,CAAAsB,UAAA,CAAWnC,KAAM,CAAAiB,KAAA,EAAO;AAAEW,IAAAA,MAAA,EAAQJ,SAAU,CAAAP,KAAA,CAAMW,MAAAA;AAAO,GAAC,CAAC,CAAA,CAAA;AAClF,EAAA,IAAMQ,aAAaC,WAAY,EAAA,CAAA;EAGzB,IAAAC,eAAA,GAAkBb,SAAS,YAAA;AAAA,IAAA,OAAAc,aAAA,CAAAA,aAAA,CAC5BvC,EAAAA,EAAAA,KAAM,CAAAsC,eAAA,CAAA,EAAA,EAAA,EAAA;MACTE,MAAMxC,KAAM,CAAAwC,IAAA;AACZ3B,MAAAA,GAAK,EAAAC,QAAA;MACL2B,YAAYzC,KAAM,CAAAyC,UAAA;MAClBC,SAAW,EAAA1C,KAAA,CAAM0C,SAAa,IAAA,CAACN,UAAW,CAAAnB,KAAA;MAC1C0B,UAAA,EAAY,SAAZA,UAAAA,GAAA;QAAA,OAAkBjC,cAAA,CAAe,YAAY,CAAA,CAAA;AAAA,OAAA;MAC7CkC,QAAU,EAAAR,UAAA,CAAWnB,KAAS,IAAA,CAACjB,KAAM,CAAA6C,UAAA;MACrCC,SAAW,EAAA9C,KAAA,CAAM8C,SAAa,IAAAzC,YAAA,CAAaY,KAAM,CAAA8B,cAAA;AACjDC,MAAAA,aACEhD,KAAM,CAAAgD,WAAA,IAAgB3C,YAAa,CAAAY,KAAA,CAAM+B,YAAuDhD,KAAM,CAAA2B,IAAA,CAAA;AAExGsB,MAAAA,YAAY,SAAZA,aAAkB;QAChB,OAAOvC,cAAe,CAAA,YAAY,CAAK,IAAAwC,WAAA,CAAA1C,cAAA,EAAc,IAAA,EAAA,IAAA,CAAA,CAAA;OACvD;MACA,OAAA2C,EAAAA,eAAA,CAAAC,EAAAA,EAAAA,EAAAA,CAAAA,MAAA,CACMnD,cAAe,CAAAgB,KAAA,EAA8Be,sBAAAA,CAAAA,EAAAA,WAAY,CAAAf,KAAA,CAC/D;AACAoC,MAAAA,OAAS,EAAA,SAATA,OAASA,CAAAC,IAAA,EAAuB;AAAA,QAAA,IAApBC,QAAA,GAAAD,IAAA,CAAAC,QAAA,CAAA;QACEtB,WAAA,CAAAhB,KAAA,GAAQsC,QAAa,KAAA,OAAA,GAAU,CAAI,GAAA,CAAA,CAAA;OACjD;AACAC,MAAAA,OAAA,EAAS,SAATA,OAAAA,CAAUC,OAA4C,EAAA;AAEpD,QAAA,IAAIA,OAAmB,YAAAC,UAAA,EAAYD,OAAA,CAAQE,eAAgB,EAAA,CAAA,KACtDF,OAAA,CAAQG,EAAED,eAAgB,EAAA,CAAA;QAE/B5B,YAAA,CAAad,KAAQ,GAAA,KAAA,CAAA;AACVC,QAAAA,QAAA,aAAAA,QAAA,KAAA,KAAA,CAAA,IAAAA,QAAA,CAAA,IAAI;AAAE2C,UAAAA,UAAA,EAAY,EAAI;AAAAC,UAAAA,OAAA,EAAS,OAAA;AAAQ,SAAC,CAAA,CAAA;OACrD;AACAC,MAAAA,QAAQ,SAARA,OAASC,MAAA,EAAAC,KAAA,EAAuF;AAAA,QAAA,IAAAC,aAAA,CAAA;AAAA,QAAA,IAAnEN,CAAA,GAAAK,KAAA,CAAAL,CAAA;UAAGL,iBAAAA;AACxB,QAAA,CAAAW,aAAA,GAAAlE,KAAA,CAAA+D,MAAA,MAAA,IAAA,IAAAG,aAAA,KAAA,KAAA,CAAA,IAAAA,aAAA,CAAAC,IAAA,CAAAnE,KAAA,EAAS;AAAEiB,UAAAA,KAAO,EAAA+C,MAAA;AAAQI,UAAAA,SAASxE,WAAY,CAAA2D,QAAA,CAAA;AAAWK,UAAAA,GAAAA,CAAAA;AAAE,SAAC,CAAA,CAAA;OACrE;AACAS,MAAAA,SAAS,SAATA,QAAUL,MAAA,EAAAM,KAAA,EAAuF;AAAA,QAAA,IAAAC,cAAA,CAAA;AAAA,QAAA,IAAnEX,CAAA,GAAAU,KAAA,CAAAV,CAAA;UAAGL,iBAAAA;AACzB,QAAA,CAAAgB,cAAA,GAAAvE,KAAA,CAAAqE,OAAA,MAAA,IAAA,IAAAE,cAAA,KAAA,KAAA,CAAA,IAAAA,cAAA,CAAAJ,IAAA,CAAAnE,KAAA,EAAU;AAAEiB,UAAAA,KAAO,EAAA+C,MAAA;AAAQI,UAAAA,SAASxE,WAAY,CAAA2D,QAAA,CAAA;AAAWK,UAAAA,GAAAA,CAAAA;AAAE,SAAC,CAAA,CAAA;QACxD3B,WAAA,CAAAhB,KAAA,GAAQsC,QAAa,KAAA,OAAA,GAAU,CAAI,GAAA,CAAA,CAAA;OACjD;AAEArC,MAAAA,UAAU,SAAVA,SAAW8C,MAAA,EAAAQ,KAAA,EAAuF;AAAA,QAAA,IAAnEZ,CAAA,GAAAY,KAAA,CAAAZ,CAAA;UAAGL,iBAAAA;QAChCrB,UAAA,CAAWjB,KAAQ,GAAA+C,MAAA,CAAA;QAGnB,IAAI,CAACS,WAAA,CAAYT,MAAQ,EAAAxC,SAAA,CAAUP,MAAMW,MAAM,CAAA,EAAG,OAAA;QAClDN,UAAA,CAAWL,KAAQ,GAAA+C,MAAA,CAAA;QACnB,IAAMU,UAAyB,EAAC,CAAA;QAChC,IAAMC,WAA0B,EAAC,CAAA;QACjC,IAAMC,UAAyB,EAAC,CAAA;AACzBZ,QAAAA,MAAA,CAAAa,OAAA,CAAQ,UAACC,CAAM,EAAA;AACZJ,UAAAA,OAAA,CAAAK,IAAA,CAAKC,aAAaF,CAAG,EAAAtD,SAAA,CAAUP,MAAMW,MAAM,CAAA,CAAEP,MAAM,CAAA,CAAA;AAClDsD,UAAAA,QAAA,CAAAI,IAAA,CAAKC,aAAaF,CAAG,EAAAtD,SAAA,CAAUP,MAAMW,MAAM,CAAA,CAAER,OAAO,CAAA,CAAA;UACrDwD,OAAA,CAAAG,IAAA,CAAKC,YAAa,CAAAF,CAAA,EAAGtD,SAAU,CAAAP,KAAA,CAAMW,MAAM,CAAA,CAAEA,MAAO,CAAAJ,SAAA,CAAUP,KAAM,CAAAgE,UAAU,CAAC,CAAA,CAAA;AACzF,SAAC,CAAA,CAAA;QACD5D,IAAA,CAAKJ,KAAQ,GAAAyD,OAAA,CAAA;QACbtD,KAAA,CAAMH,KAAQ,GAAA0D,QAAA,CAAA;QACdxD,IAAA,CAAKF,KAAQ,GAAA2D,OAAA,CAAA;OACf;AACAM,MAAAA,OAAA,EAAS,SAATA,OAAAA,CAAUlB,MAAqB,EAAA;QAC7B,IAAI,CAACS,WAAA,CAAYT,MAAQ,EAAAxC,SAAA,CAAUP,KAAM,CAAAW,MAAM,CAAK,IAAA,CAAC6C,WAAY,CAAAxD,KAAA,CAAMA,KAAO,EAAAO,SAAA,CAAUP,MAAMW,MAAM,CAAA,EAAG,OAAA;QAEvGG,YAAA,CAAad,KAAQ,GAAA,KAAA,CAAA;QACrB,IAAIwD,WAAY,CAAAT,MAAA,EAAQxC,SAAU,CAAAP,KAAA,CAAMW,MAAM,CAAG,EAAA;UAC/CV,QAAA,KAAA,IAAA,IAAAA,QAAA,KAAAA,KAAAA,CAAAA,IAAAA,QAAA,CACEiB,WAAW6B,MAAQ,EAAA;AACjBpC,YAAAA,MAAA,EAAQJ,UAAUP,KAAM,CAAAW,MAAA;AACxBuD,YAAAA,YAAA,EAAc3D,UAAUP,KAAM,CAAAY,SAAA;AAC9BuD,YAAAA,QAAU,EAAA,IAAA;AACZ,WAAC,CAAA,EACD;AACEvB,YAAAA,UAAA,EAAYG,MAAO,CAAAqB,GAAA,CAAI,UAACP,CAAA,EAAA;cAAA,OAAME,aAAaF,CAAG,EAAAtD,SAAA,CAAUP,KAAM,CAAAW,MAAM,CAAC,CAAA;aAAA,CAAA;AACrEkC,YAAAA,OAAS,EAAA,OAAA;AACX,WACF,CAAA,CAAA;AACF,mBAAWW,WAAY,CAAAxD,KAAA,CAAMA,OAAOO,SAAU,CAAAP,KAAA,CAAMW,MAAM,CAAG,EAAA;UAChDM,UAAA,CAAAjB,KAAA,GAAQkB,UAAW,CAAAlB,KAAA,CAAMA,KAAO,EAAA;AACzCW,YAAAA,MAAA,EAAQJ,UAAUP,KAAM,CAAAW,MAAAA;AAC1B,WAAC,CAAA,CAAA;AACH,SAAO,MAAA;UACLM,UAAA,CAAWjB,QAAQ,EAAC,CAAA;AACtB,SAAA;AACF,OAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GACA,CAAA,CAAA;EAGI,IAAAqE,UAAA,GAAa7D,SAAS,YAAA;AAAA,IAAA,IAAA8D,qBAAA,EAAAC,iBAAA,EAAAC,kBAAA,CAAA;IAAA,OAAAlD,aAAA,CAAAA,aAAA,CAAA;AAC1BmD,MAAAA,eAAiB,EAAA,IAAA;AAAA,KAAA,EACdC,IAAA,CAAK3F,KAAM,CAAAsF,UAAA,EAAY,mBAAmB,CAAA,CAAA,EAAA,EAAA,EAAA;AAC7CM,MAAAA,iEAAmB5F,KAAM,CAAAsF,UAAA,MAAA,IAAA,IAAAE,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,iBAAA,CAAkBI,iBAAqB,cAAAL,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAA;AAAEM,QAAAA,OAAO,MAAA;OAAO;AAC1EC,MAAAA,kBAAkB,CAAAL,CAAAA,kBAAA,GAACzF,KAAA,CAAMsF,iEAANG,kBAAA,CAAkBK,gBAAkB,EAAA1C,EAAAA,CAAAA,MAAA,CAAGnD,eAAegB,KAAwB,EAAA,mBAAA,CAAA,CAAA;AACjG8E,MAAAA,eAAA,EAAiB,SAAjBA,eAAAA,CAAkBC,OAAA,EAAkBvC,OAAiB,EAAA;AAAA,QAAA,IAAAwC,kBAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,qBAAA,CAAA;QACnD,IAAIhE,UAAW,CAAAnB,KAAA,EAAO,OAAA;QAGhB,CAAAgF,kBAAA,GAAAjG,KAAA,CAAAsF,UAAA,cAAAW,kBAAA,KAAA,KAAA,CAAA,IAAA,CAAAC,qBAAA,GAAAD,kBAAA,CAAYF,eAAkB,MAAAG,IAAAA,IAAAA,qBAAA,KAA9BA,KAAAA,CAAAA,IAAAA,qBAAA,CAAA/B,IAAA,CAAA8B,kBAAA,EAA8BD,OAAA,EAASvC,OAAO,CAAA,CAAA;QAG9C,CAAA0C,kBAAA,GAAAnG,KAAA,CAAAsF,UAAA,MAAAa,IAAAA,IAAAA,kBAAA,KAAAC,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAAD,kBAAA,CAAa,mBAAuB,CAAA,MAAAC,IAAAA,IAAAA,qBAAA,KAApCA,KAAAA,CAAAA,IAAAA,qBAAA,CAAAjC,IAAA,CAAAgC,kBAAA,EAAoCH,OAAA,EAASvC,OAAO,CAAA,CAAA;AAGtD,QAAA,IAAAA,OAAA,CAAQK,YAAY,uBAAyB,EAAA;AAC/C,UAAA,IAAMuC,QAAW,GAAA;AAAE,YAAA,CAAG,EAAA,OAAA;AAAS,YAAA,GAAG,QAAA;WAAS,CAAA;AAC3CvF,UAAAA,QAAA,CAASG,MAAMqF,KAAM,CAAA;AAAE/C,YAAAA,UAAU8C,QAAS,CAAApE,WAAA,CAAYhB;AAAO,WAAC,CAAA,CAAA;UAC9Dc,YAAA,CAAad,KAAQ,GAAA,IAAA,CAAA;AACrB,UAAA,OAAA;AACF,SAAA;QAEAc,YAAA,CAAad,KAAQ,GAAA+E,OAAA,CAAA;AACvB,OAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GACA,CAAA,CAAA;AAGFO,EAAAA,KAAA,CACEtF,KAAA,EACA,UAACA,MAAU,EAAA;IACT,IAAI,CAACA,MAAO,EAAA;MACViB,UAAA,CAAWjB,QAAQ,EAAC,CAAA;AACpB,MAAA,OAAA;AACF,KAAA;IACA,IAAI,CAACwD,WAAA,CAAYxD,MAAO,EAAAO,SAAA,CAAUP,MAAMW,MAAM,CAAA,EAAG,OAAA;AAEtCM,IAAAA,UAAA,CAAAjB,KAAA,GAAQkB,WAAWlB,MAAO,EAAA;AACnCW,MAAAA,MAAA,EAAQJ,UAAUP,KAAM,CAAAY,SAAA;AACxBsD,MAAAA,YAAA,EAAc3D,UAAUP,KAAM,CAAAW,MAAAA;AAChC,KAAC,CAAA,CAAA;AACH,GAAA,EACA;AACE4E,IAAAA,SAAW,EAAA,IAAA;AACb,GACF,CAAA,CAAA;AAGAD,EAAAA,KAAA,CACEtE,WAAA,EACA,UAACwE,KAAU,EAAA;IAAA,IAAAC,eAAA,EAAAC,qBAAA,CAAA;AACL,IAAA,IAAA,CAAC/F,aAAaK,KAAO,EAAA;MACvBL,YAAA,CAAaK,KAAQ,GAAA,IAAA,CAAA;AACrB,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI,CAACc,YAAa,CAAAd,KAAA,EAAO,OAAA;AACzB,IAAA,IAAMoF,QAAW,GAAA;AAAE,MAAA,CAAG,EAAA,OAAA;AAAS,MAAA,GAAG,QAAA;KAAS,CAAA;IAC3C,CAAAK,eAAA,GAAA5F,QAAA,CAASG,0EAATyF,eAAA,CAAgBJ,KAAQ,cAAAK,qBAAA,KAAA,KAAA,CAAA,IAAxBA,qBAAA,CAAAxC,IAAA,CAAAuC,eAAA,EAAwB;MAAEnD,QAAU,EAAA8C,QAAA,CAASI;AAAO,KAAC,CAAA,CAAA;AACvD,GAAA,EACA;AACED,IAAAA,SAAW,EAAA,IAAA;AACb,GACF,CAAA,CAAA;EAEO,OAAA;AACLnF,IAAAA,IAAA,EAAAA,IAAA;AACAD,IAAAA,KAAA,EAAAA,KAAA;AACAH,IAAAA,KAAA,EAAAA,KAAA;AACAE,IAAAA,IAAA,EAAAA,IAAA;AACAe,IAAAA,UAAA,EAAAA,UAAA;AACAH,IAAAA,YAAA,EAAAA,YAAA;AACAO,IAAAA,eAAA,EAAAA,eAAA;AACAgD,IAAAA,UAAA,EAAAA,UAAA;AACAtD,IAAAA,WAAA,EAAAA,WAAA;AACAC,IAAAA,WAAA,EAAAA,WAAA;AACAV,IAAAA,oBAAA,EAAAA,oBAAA;AACAD,IAAAA,UAAA,EAAAA,UAAA;AACAJ,IAAAA,QAAA,EAAAA,QAAAA;GACF,CAAA;AACF;;;;"}